DID.is evidence
by did.is · remote · no sign-in to list tools · v0.1.0 · published by is.did
Read-only checks for DIDs, credentials, MCP servers, A2A cards and agent delegation.
7 tools: 3 change things and 4 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads4Claude Code: allow: see these tools
9 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http did https://did.is/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "authorize_tool_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "authorize_tool_call" says "call": a word for a change.
- Warnevaluate_policy
The server marks "evaluate_policy" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "evaluate_policy" says "evaluate": a word for a change.
The title mentions "credential".
What this check looks forMatched text
title: "Verify a credential"
The annotations title mentions "credential".
What this check looks forMatched text
annotations.title: "Verify a credential"
The description mentions "Credential".
What this check looks forMatched text
description: "Verify a W3C Verifiable Credential or SD-JWT VC (JSON object or compact st..."
The input schema at properties.credential.description mentions "Credential".
What this check looks forMatched text
inputSchema.properties.credential.description: "Credential as a JSON object (W3C VC with Data Inte..."
Show 3 more findingsShow fewer
The input schema at required[0] mentions "credential".
What this check looks forMatched text
inputSchema.required[0]: "credential"
- Infoevaluate_policy
The description mentions "credential".
What this check looks forMatched text
description: "...S, linked accounts, verifiable history, credential status). Returns PASS, FAIL or INDETERM..."
- Infoevaluate_policy
The input schema at properties.credential.description mentions "Credential".
What this check looks forMatched text
inputSchema.properties.credential.description: "Credential as a JSON object (W3C VC with Data Inte..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Changes things 3Claude Code: ask
authorize_tool_callCheck whether a DID.is delegation chain (compact JWTs, root first) allows an agent to call a given tool.1 finding
Why it is in this group
- The name "authorize_tool_call" says "call": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "authorize_tool_call" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "authorize_tool_call" says "call": a word for a change.
Description, as the server wrote it Check whether a DID.is delegation chain (compact JWTs, root first) allows an agent to call a given tool. Returns ALLOW or DENY with the verified chain. Read-only; nothing is stored.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Check a delegation chain for a tool call
evaluate_policyEvaluate a DID against declarative rules (allowed methods, curves, domain binding, TLS, linked accounts, verifiable history, credential status).3 findings
Why it is in this group
- The name "evaluate_policy" says "evaluate": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The description mentions "credential".
What this check looks forMatched text
description: "...S, linked accounts, verifiable history, credential status). Returns PASS, FAIL or INDETERM..."
- Info
The input schema at properties.credential.description mentions "Credential".
What this check looks forMatched text
inputSchema.properties.credential.description: "Credential as a JSON object (W3C VC with Data Inte..."
- Warn
The server marks "evaluate_policy" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "evaluate_policy" says "evaluate": a word for a change.
Description, as the server wrote it Evaluate a DID against declarative rules (allowed methods, curves, domain binding, TLS, linked accounts, verifiable history, credential status). Returns PASS, FAIL or INDETERMINATE (not a pass). Read-only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Evaluate a DID against rules
verify_credentialVerify a W3C Verifiable Credential or SD-JWT VC (JSON object or compact string): signature, validity period and status list.5 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Info
The title mentions "credential".
What this check looks forMatched text
title: "Verify a credential"
- Info
The annotations title mentions "credential".
What this check looks forMatched text
annotations.title: "Verify a credential"
- Info
The description mentions "Credential".
What this check looks forMatched text
description: "Verify a W3C Verifiable Credential or SD-JWT VC (JSON object or compact st..."
- Info
The input schema at properties.credential.description mentions "Credential".
What this check looks forMatched text
inputSchema.properties.credential.description: "Credential as a JSON object (W3C VC with Data Inte..."
- Info
The input schema at required[0] mentions "credential".
What this check looks forMatched text
inputSchema.required[0]: "credential"
Description, as the server wrote it Verify a W3C Verifiable Credential or SD-JWT VC (JSON object or compact string): signature, validity period and status list. Optional requiredClaims checks issuer-signed claim values. Read-only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Verify a credential
Only reads 4Claude Code: allow
inspect_a2a_agentFetch an A2A agent card (agent URL or card URL) and report its signature status, interfaces and skills.No findings
Why it is in this group
- The name "inspect_a2a_agent" says "inspect": a word for reading.
Description, as the server wrote it Fetch an A2A agent card (agent URL or card URL) and report its signature status, interfaces and skills. Read-only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Inspect an A2A agent card
inspect_mcp_serverInspect a remote MCP server over Streamable HTTP: protocol version, tool inventory fingerprints, declared annotations versus DID.is side-effect heuristics, and changes since the la…No findings
Why it is in this group
- The name "inspect_mcp_server" says "inspect": a word for reading.
Description, as the server wrote it Inspect a remote MCP server over Streamable HTTP: protocol version, tool inventory fingerprints, declared annotations versus DID.is side-effect heuristics, and changes since the last observation. Read-only; never authenticates to the server.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Inspect an MCP server
resolve_didResolve a DID (did:key, did:jwk, did:web, did:webvh) and report which evidence dimensions are established and which are not.No findings
Why it is in this group
- The name "resolve_did" says "resolve": a word for reading.
Description, as the server wrote it Resolve a DID (did:key, did:jwk, did:web, did:webvh) and report which evidence dimensions are established and which are not. Read-only; fetches the DID document from its origin.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Resolve a DID
search_directorySearch the public DID.is directory of DIDs whose controllers proved control and chose to be listed.No findings
Why it is in this group
- The name "search_directory" says "search": a word for reading.
Description, as the server wrote it Search the public DID.is directory of DIDs whose controllers proved control and chose to be listed. Matches names and domains. Read-only.
Annotations the server declares
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
- readOnlyHint: true
- title: Search the DID.is directory
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http did https://did.is/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__did__resolve_did",
"mcp__did__inspect_mcp_server",
"mcp__did__inspect_a2a_agent",
"mcp__did__search_directory"
],
"ask": [
"mcp__did__verify_credential",
"mcp__did__authorize_tool_call",
"mcp__did__evaluate_policy"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as did. Review it before you use it.