# AxioRank: Zero-Trust for AI Agents (remote · app.axiorank.com)

Zero-trust gateway for AI agents: score tool calls, verify agent cards, enforce policy, audit.

- Trust score: 76/100 (medium)
- Change this week: +10
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `app.axiorank.com`: 76/100 (this document), [markdown](https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp.md), [page](https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp)

## Channel facts

- Endpoint: `https://app.axiorank.com/api/mcp-server/mcp`
- Transports: `streamable-http`
- Auth: `required`
- Version: `1.0.1`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 94/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token.
  - HTTPS is enforced; there's no plaintext access path.
  - The HSTS (Strict-Transport-Security) header is present.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
  - The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 57/100
  - AI-judged instruction clarity (fair).
  - Context-footprint check failed: tool/resource definitions use about 2310 tokens (~105/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 76/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 29% of tool parameters carry a description.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

```bash
claude mcp add --transport http com-axiorank-axiorank https://app.axiorank.com/api/mcp-server/mcp
```

### Codex

```toml
[mcp_servers.com-axiorank-axiorank]
url = "https://app.axiorank.com/api/mcp-server/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-axiorank-axiorank": {
      "type": "remote",
      "url": "https://app.axiorank.com/api/mcp-server/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add com-axiorank-axiorank --url https://app.axiorank.com/api/mcp-server/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  com-axiorank-axiorank:
    url: "https://app.axiorank.com/api/mcp-server/mcp"
```

### Other

```json
{
  "mcpServers": {
    "com-axiorank-axiorank": {
      "type": "http",
      "url": "https://app.axiorank.com/api/mcp-server/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 76, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 75, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 74, +6)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 68, +1)

No change was recorded against any check on this day. Stability & Change Management went from 10 to 13. That category is still filling its 30-day observation window: 3 days of observed history at the previous scan, 4 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-29 (score 67, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 66, +1)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 65)

First indexed and scored.

## MCP tools (22)

### `axiorank_score_tool_call` (~292 tokens)

Score an agent tool call

Inspect a proposed agent tool call BEFORE executing it. AxioRank scores its risk (0–100), runs content inspection (secrets, PII, destructive ops, prompt-injection, egress), applies your policies, records an audit log, and returns a decision: `allow`, `deny`, or `hold`. On `hold`, a human must approve. Poll `axiorank_check_approval` with the returned `approvalId`. Call this in your tool-use loop and refuse or wait on any non-`allow` decision. Requires the `gateway:write` scope.

Input parameters:

- `arguments` (object)
- `completionText` (string)
- `context` (string)
- `costUsd` (number)
- `durationMs` (integer)
- `inputTokens` (integer)
- `intent` (string)
- `metadata` (object)
- `model` (string)
- `outputTokens` (integer)
- `parentStepIndex` (integer)
- `passport` (boolean)
- `phase` (string)
- `promptText` (string)
- `resultText` (string)
- `sessionId` (string)
- `source` (string)
- `stepIndex` (integer)
- `taintHandle` (string)
- `tool` (string, required)
- `traceId` (string)

### `axiorank_verify_card` (~142 tokens)

Verify an agent/server card

Vet a remote agent or tool's identity card (A2A Agent Card, MCP server card, OAuth metadata, x402, …) BEFORE connecting to it. Supply EITHER `url` (AxioRank fetches the card) OR an inline `document`. AxioRank verifies signatures, scores supply-chain risk, folds in cross-tenant threat intel, and returns `allow` / `review` / `deny` with the resolved identity, capabilities and auth. Use it as a connection preflight. Requires the `cards:verify` scope.

Input parameters:

- `document`
- `protocol` (string)
- `url` (string)

### `axiorank_check_approval` (~115 tokens)

Check a held tool call

Poll the verdict of a held (`hold`) tool call. Pass the `approvalId` returned by `axiorank_score_tool_call`. Blocks briefly server-side and returns as soon as an operator approves/denies; otherwise returns the still-`pending` status so you can call again. Requires the `gateway:write` scope and the same agent key that made the original call.

Input parameters:

- `approvalId` (string, required): The approvalId returned by axiorank_score_tool_call when the decision was 'hold'.

### `axiorank_get_protocol_coverage` (~96 tokens)

Get protocol coverage

List the agent-interop protocols AxioRank can govern (A2A, MCP, OAuth, x402, DIDs, robots.txt/llms.txt, AP2, …), grouped into six planes, each with coverage status (live/beta/planned) and direction (inbound/outbound/both). Use this to discover what AxioRank speaks before wiring up card verification or inbound bot management.

### `axiorank_get_health` (~39 tokens)

Get AxioRank health

Liveness/readiness probe for the AxioRank control plane (API + database reachability). Returns `status: ok|degraded`.

### `axiorank_list_agents` (~57 tokens)

List agents

List the active agents in your AxioRank workspace (id, name, labels, quarantine + last-used status). Use this to find an agent's id before calling agent-specific tools. Requires the `agents:read` scope.

### `axiorank_get_agent` (~65 tokens)

Get an agent

Fetch one agent's posture (quarantine state, labels, last-used, revocation) by id, scoped to your workspace. Requires the `agents:read` scope.

Input parameters:

- `agentId` (string, required): The agent's UUID (from axiorank_list_agents).

### `axiorank_quarantine_agent` (~92 tokens)

Quarantine or release an agent

Reversible kill switch: quarantine an agent so the gateway DENIES all of its tool calls, or release it. Set `quarantine: false` to restore. Requires the `agents:write` scope.

Input parameters:

- `agentId` (string, required): The agent's UUID (from axiorank_list_agents).
- `quarantine` (boolean, required): true = quarantine (deny all its calls); false = release.

### `axiorank_revoke_agent` (~89 tokens)

Revoke an agent

Permanently revoke an agent: its API keys stop authenticating immediately (incident response). Irreversible. Issue a new agent to restore access. Its audit history is kept. Requires the `agents:write` scope. Prefer `axiorank_quarantine_agent` for a reversible pause.

Input parameters:

- `agentId` (string, required): The agent's UUID (from axiorank_list_agents).

### `axiorank_list_policies` (~61 tokens)

List policies

List the outbound governance policies in your workspace (enabled or not), each with its tool pattern, action (allow/deny/require_approval/redact), risk threshold, priority and enabled flag. Requires the `policies:read` scope.

### `axiorank_get_policy` (~53 tokens)

Get a policy

Fetch one outbound policy by id, scoped to your workspace. Requires the `policies:read` scope.

Input parameters:

- `policyId` (string, required): The policy's UUID (from axiorank_list_policies).

### `axiorank_create_policy` (~150 tokens)

Create a policy (disabled)

Create an outbound governance policy. It is created DISABLED so an LLM can never arm enforcement unattended. Review it (axiorank_get_policy) then enable it with axiorank_update_policy. `toolPattern` is a glob over tool names; `action` is allow / deny / require_approval / redact (redact masks PII in a model completion). Requires the `policies:write` scope.

Input parameters:

- `action` (string, required)
- `context`
- `enforcementMode` (string)
- `name` (string, required)
- `priority` (integer)
- `riskThreshold`
- `signalCategory`
- `toolPattern` (string, required)

### `axiorank_update_policy` (~110 tokens)

Update a policy

Update an existing policy: enable/disable it, rename it, or change its priority. (Other fields are edited in the dashboard.) Requires the `policies:write` scope.

Input parameters:

- `enabled` (boolean): Arm (true) or disarm (false) the policy.
- `name` (string)
- `policyId` (string, required): The policy's UUID (from axiorank_list_policies).
- `priority` (integer): Lower runs first; ties broken by creation order.

### `axiorank_search_audit_logs` (~184 tokens)

Search audit logs

Search your workspace's governance audit trail, newest first, with filters: decision (allow/deny/hold), source (sdk/mcp), agentId, tool name (substring), minimum risk, and a time window (ISO `from`/`to`). Payloads are already secret-redacted. Use it to answer questions like "show denied tool calls in the last 24h". Requires the `logs:read` scope.

Input parameters:

- `agentId` (string)
- `decision` (string)
- `from` (string): ISO timestamp: inclusive lower bound on created_at.
- `limit` (integer)
- `minRisk` (integer)
- `source` (string)
- `to` (string): ISO timestamp: exclusive upper bound on created_at.
- `tool` (string): Case-insensitive substring of the tool name.

### `axiorank_list_incidents` (~104 tokens)

List incidents

List security alerts/incidents in your workspace, newest first, filterable by status (open/acknowledged/resolved/suppressed), severity (low/medium/high/critical) and kind (high_risk/anomaly/auto_response/kill_chain/ml_threat). Requires the `logs:read` scope.

Input parameters:

- `kind` (string)
- `limit` (integer)
- `severity` (string)
- `status` (string)

### `axiorank_get_incident` (~81 tokens)

Get incident kill-chain evidence

Fetch the kill-chain finding behind an alert (the multi-step attack pattern, severity, and the contributing tool-call ids) by alert id. Returns null evidence for a non-kill-chain alert. Requires the `logs:read` scope.

Input parameters:

- `alertId` (string, required): The alert/incident UUID (from axiorank_list_incidents).

### `axiorank_list_threat_intel` (~76 tokens)

List network threat intel

List external identities (card hosts/keys) flagged across the AxioRank network, with k-anonymity-gated aggregate counts (workspaces, sightings, deny/review, max risk). This is the shared cross-tenant feed, not your private data. Requires the `logs:read` scope.

### `axiorank_list_ml_assessments` (~59 tokens)

List ML assessments

List your workspace's most recent ML/LLM threat assessments (model verdict, threat class, confidence, recommendation) for tool calls and cards. Requires the `logs:read` scope.

Input parameters:

- `limit` (integer)

### `axiorank_get_usage` (~46 tokens)

Get usage & plan

Report this billing period's usage for your workspace: plan tier, governed events used vs the monthly limit, and ML assessments used. Requires the `logs:read` scope.

### `axiorank_issue_token` (~152 tokens)

Issue a short-lived agent token

Mint a short-lived, scoped `axr_tok_…` access token for an existing agent. This is the Zero-Trust credential the agent sends as `Authorization: Bearer <token>`. It expires within the hour and cannot be replayed afterwards. Durable static keys are issued in the dashboard, not here. Requires the `keys:write` scope.

Input parameters:

- `agentId` (string, required): The agent's UUID (from axiorank_list_agents).
- `scopes` (array): Operational scopes for the token (gateway:write, cards:verify, logs:read).
- `ttlSeconds` (integer): Token lifetime in seconds (60–3600). Defaults to 900 (15 min).

### `axiorank_create_agent` (~135 tokens)

Create an agent

Create a new agent in your workspace and return a SHORT-LIVED bootstrap token to start using it immediately (no durable secret is emitted). For long-term auth, add a static key or a federation binding in the dashboard. Requires the `agents:write` scope.

Input parameters:

- `description` (string)
- `labels` (array)
- `name` (string, required)
- `tokenScopes` (array): Operational scopes for the token (gateway:write, cards:verify, logs:read).
- `ttlSeconds` (integer): Token lifetime in seconds (60–3600). Defaults to 900 (15 min).

### `axiorank_author_detector` (~112 tokens)

Author a detector from a description

Describe a risk in plain English and AxioRank's AI proposes a custom content detector (regex or keyword) and SAVES it DISABLED for your review. An LLM never arms detection unattended. Outbound content categories only (secret/pii/destructive/injection/egress). Requires the `policies:write` scope and an AI-assessments-enabled plan (Team+).

Input parameters:

- `description` (string, required): What to detect, e.g. 'flag AWS secret access keys in tool arguments'.

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp#diagnostics

## Score history

- 2026-08-03: 76
- 2026-08-02: 75
- 2026-08-01: 75
- 2026-07-31: 74
- 2026-07-30: 68
- 2026-07-29: 67
- 2026-07-28: 66
- 2026-07-27: 66
- 2026-07-26: 65

## Links

- Remote endpoint: https://app.axiorank.com/api/mcp-server/mcp
- Authorisation metadata: https://app.axiorank.com/.well-known/oauth-protected-resource/api/mcp-server/mcp
- Website: https://axiorank.com/
- Changelog RSS feed: https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp/changelog.json
- HTML version of this page: https://verifymcp.io/servers/com-axiorank-axiorank/api-mcp-server-mcp
