APIR Agent Verification

Check an AI agent you did not build: is it who it claims, inside its mandate, and what's its record

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
77%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~527Tokens (tool definitions)
~344 BTypical response size
Minimal attention impact (0.41% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "verify": {
      "url": "https://apir.ai/api/mcp"
    }
  }
}

Remote endpoints

https://apir.ai/api/mcpstreamable-http

What it can do

Tool inventory

Tools (3)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢verify_agent(query)

Check whether an AI agent carries a real, cryptographically signed credential. Accepts an agent name, a credential id (TP-...), an agent UUID, a domain or a DID. Returns one of seven verdicts: VERIFIED, EXPIRED, REVOKED, SUPERSEDED, UNSIGNED, UNCHECKED or NO_RECORD. IMPORTANT for interpreting the answer: VERIFIED means the Ed25519 signature recomputes against the key published at apir.ai and the credential is unexpired and unrevoked. It confirms WHO issued the credential and that its contents are unaltered. It is NOT a guarantee that the agent behaves well. NO_RECORD is an honest, first-class answer: it means nothing is on file, which is not evidence of wrongdoing and not a warning. It means any claim the agent makes about itself is unverified. Free, unauthenticated, and no account is required.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Agent name, credential id (TP-... or APIR-TP-...), agent UUID, domain, or DID."
    }
  },
  "required": [
    "query"
  ]
}
🟢check_authority(query)

Resolve the human mandate behind an AI agent: which actions a named person actually permitted, any value cap, the expiry, and whether the grant itself is signed. Where authority was delegated agent to agent, the full chain is walked back to the human at the root, and one law is enforced at every hop: authority may only ever narrow. No hop can hold an action, a target or a spending cap wider than the hop above it, and the root must be a human. Use this before letting an agent transact, sign, spend or commit on someone else's behalf. An agent holding a valid credential may still be acting outside its mandate, and those are different questions.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Agent name, credential id, or agent UUID."
    }
  },
  "required": [
    "query"
  ]
}
🟢get_verification_keys

Return the Ed25519 public keys APIR publishes, so a signature can be recomputed offline without trusting any APIR response, including this one. Keys are published as a JWKS at apir.ai/.well-known/jwks.json and as did:web:apir.ai. Retired keys stay published so older credentials still verify.

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded3 tools