Skip to main content
Glama

arcid-mcp

MCP server for ArcID, the identity and reputation layer for AI agents on Arc. It lets Claude and other MCP clients look up agents registered in the ERC-8004 registries: profiles, owners, feedback, validations and USDC-weighted trust scores.

Read-only. No wallet or API key needed.

Tools

Tool

What it does

search_agents

Full-text search, owner filter, sort by newest / score / feedback / settled / relevance

get_agent

Full record: profile, reputation, validations, trust score, settlement evidence

get_agent_feedback

Reputation Registry feedback, newest first, classified and normalised

get_agent_validations

Latest 100 Validation Registry entries

get_registry_stats

Index totals

get_indexer_health

How far the indexer is behind the chain head

Related MCP server: @agentcivics/mcp-server

Connect

Remote (claude.ai, ChatGPT, any URL-based client)

https://mcp.arcusid.com/mcp

Streamable HTTP, stateless, no authentication.

  • claude.ai / Claude Desktop: Settings → Connectors → Add custom connector → paste the URL.

  • ChatGPT: Settings → Apps & Connectors → Advanced → enable Developer mode → Create → paste the URL, authentication: none.

  • Claude Code: claude mcp add --transport http arcid https://mcp.arcusid.com/mcp

Local (stdio via npx)

No install step needed; clients run it with npx.

Claude Code

claude mcp add arcid -- npx -y arcid-mcp

Claude Desktop / Cursor / other clients

{
  "mcpServers": {
    "arcid": {
      "command": "npx",
      "args": ["-y", "arcid-mcp"]
    }
  }
}

Configuration

Variable

Default

ARCID_API_URL

https://api.arcusid.com

ArcID indexer API. Use http://127.0.0.1:4000 for a local indexer

ARCID_TIMEOUT_MS

10000

Per-request timeout, 1000 to 60000

Development

git clone https://github.com/arcusid/arcid-mcp.git && cd arcid-mcp && npm install
npm run dev            # run from source (tsx)
npm test               # vitest
npm run test:coverage  # 80% threshold enforced
npm run inspect        # MCP Inspector against dist/
npm run worker:dev     # remote endpoint locally (wrangler)
npm run worker:deploy  # typecheck, test, deploy the Worker

The remote endpoint is worker/index.ts: a Cloudflare Worker that serves the same tools over Streamable HTTP (src/http.ts). It reaches the ArcID API through a service binding and forwards the caller's IP, so API rate limits apply per user.

License

MIT

Available Tools

6 tools
get_agentGet agentA
Read-onlyIdempotent
Inspect

Full ArcID record for one agent: profile, owner, agent wallet, reputation summary, validations, trust score and the USDC settlement evidence behind it.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesERC-8004 agent ID (token ID in the Identity Registry)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds genuine behavioral value by inventorying the returned data ('USDC settlement evidence', 'trust score'), though it says nothing about response shape, pagination, or freshness/latency of the indexer.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the verb+resource leads and the payload inventory follows. Every clause carries information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description correctly compensates by listing what the record contains. With one fully documented parameter and complete safety annotations, the only remaining gap is sibling routing and any note on data staleness, which is minor for this simplicity level.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single agent_id parameter is documented in the schema as the ERC-8004 token ID in the Identity Registry. The description adds only 'for one agent', which conveys cardinality but no formatting or lookup semantics beyond the schema, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb/resource ('Full ArcID record for one agent') and enumerates the payload (profile, owner, wallet, reputation, validations, trust score, settlement evidence). This implicitly distinguishes it from narrower siblings like get_agent_feedback and get_agent_validations by signalling a complete record, but it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the tool takes one agent_id and returns that agent's full record, so an agent can infer it is the lookup-by-ID entry point. There is no statement of when to prefer it over search_agents (discovery) or the focused feedback/validations tools, and no prerequisites are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_feedbackGet agent feedbackA
Read-onlyIdempotent
Inspect

Feedback left for an agent in the ERC-8004 Reputation Registry, newest first. Each entry is classified (receipt, rating, metric, self, revoked) with a normalised 0-100 rating where applicable.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
limitNoResults per page, 1-100 (default 50)
agent_idYesERC-8004 agent ID (token ID in the Identity Registry)

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, open-world), so the bar is lower. The description still adds genuine value by disclosing the return shape: entries are classified (receipt, rating, metric, self, revoked) with a normalised 0-100 rating, and results are ordered newest first.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences with zero filler; the resource and ordering are front-loaded and the second sentence delivers the return-value classification. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns and does so reasonably (classification categories, normalised rating). Pagination is left entirely to the schema, which documents page/limit adequately, so nothing critical is missing for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so agent_id, page, and limit are already documented in the input schema. The description adds only the implicit ordering ('newest first'), which mildly extends the schema's pagination semantics but does not clarify the parameter formats themselves.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Feedback left for an agent in the ERC-8004 Reputation Registry') and adds ordering ('newest first'). It is naturally distinct from the sibling get_agent_validations, though it does not explicitly name or contrast with any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: it is a read-only getter that returns feedback for a given agent, so an agent can infer when to call it. There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives such as get_agent or get_agent_validations.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_agent_validationsGet agent validationsB
Read-onlyIdempotent
Inspect

The latest 100 validation requests and responses for an agent from the ERC-8004 Validation Registry.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesERC-8004 agent ID (token ID in the Identity Registry)

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description usefully adds the 'latest 100' result cap, but says nothing about ordering semantics beyond 'latest', pagination past 100, or behavior when an agent has no validations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single tight sentence with zero filler, front-loading the result count and the resource. Nothing needs to be trimmed or moved.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description should characterize the return, and it does: validation requests and responses, capped at the latest 100, from a named registry. Only the pagination/ordering edge case is left implicit, which is a minor gap for a one-parameter read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the single agent_id parameter is fully documented in the schema, including its ERC-8004 Identity Registry token ID meaning. The description adds no format or semantic detail beyond what the schema provides, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (validation requests and responses) scoped to an agent and names the source registry (ERC-8004 Validation Registry), which distinguishes it from siblings like get_agent_feedback. It is clear what the tool returns, though it doesn't explicitly contrast itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description says what is returned but gives no when-to-use guidance, prerequisites, or alternatives. An agent must infer on its own whether to call this versus get_agent_feedback or get_agent.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_indexer_healthGet indexer healthA
Read-onlyIdempotent
Inspect

How far the ArcID indexer is behind the Arc chain head. Check this when results look empty or stale.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety profile is covered. The description adds that the tool quantifies lag magnitude, implying a diagnostic read, but says nothing about response shape, units (blocks/time), or thresholds for 'healthy'. Some added value, not rich.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, the measurement is front-loaded and the usage cue follows immediately. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no output schema, the description carries a light burden: what the tool measures and when to reach for it, both of which are present. It could note the units or that a healthy result is near-zero, but the omission is minor for a zero-arg diagnostic.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there are no parameter semantics to document. Baseline 4 applies; the description does not need to compensate for anything in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a precise quantity — the lag between the ArcID indexer and the Arc chain head — so an agent knows exactly what this tool measures. It lacks an explicit verb (e.g. 'report' or 'return'), but the resource and scope are unambiguous. No sibling tool is health-related, so differentiation is not a concern.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'Check this when results look empty or stale' gives a concrete triggering condition rather than generic advice. There are no when-not clauses or named alternatives, but none of the sibling tools (search_agents, get_agent, get_registry_stats) overlap enough to require routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_registry_statsGet registry statsA
Read-onlyIdempotent
Inspect

Totals across the ArcID index: agents, owners, feedback, validations and settled USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered elsewhere. The description adds real content by disclosing which aggregate dimensions exist, but says nothing about index freshness/staleness or the shape of the totals, which matters for a stats endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that packs the resource and the full metric list with no filler. Nothing is wasted and nothing is buried.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns, and enumerating the five counted categories fills most of that gap. It stops short of stating the response structure or units beyond USDC, but for a no-argument stats call it is nearly complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4 per the rubric. The description correctly indicates this tool takes no filtering input — the totals are unconditional — which is the only parameter-level fact available.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the specific resource (the ArcID index) and enumerates exactly what aggregates it returns: agents, owners, feedback, validations and settled USDC. That distinguishes it clearly from siblings like get_agent_feedback or get_indexer_health, which return per-entity data or operational health.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: the enumeration of registry-wide totals suggests an overview/dashboard role, but there is no explicit when-to-use statement, no mention of when to prefer it over search_agents or get_indexer_health, and no prerequisites. For a zero-parameter summary tool, implied usage is acceptable but leaves a gap.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_agentsSearch agentsA
Read-onlyIdempotent
Inspect

Search the ArcID directory of AI agents registered on Arc (ERC-8004). Supports full-text search over names and descriptions, filtering by owner address, and sorting by trust score, feedback count or settled USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
pageNoPage number, starting at 1
sortNoDefault: relevance when a query is given, otherwise newest
limitNoResults per page, 1-100 (default 24)
ownerNoOwner wallet address
queryNoFull-text search (prefix match on words)
readable_onlyNoOnly agents with a readable profile (name, description). Default true; set false to include unnamed agents

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so safety is covered. The description adds that the source is an on-chain registry (ERC-8004), but says nothing about pagination limits, default readable_only behavior effects, or result shape.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the verb and resource, then the capability set. No filler or repetition of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only search tool with no output schema and full schema coverage, the essentials are present. Return shape and pagination interaction are not described, but an agent can call this correctly from the given information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% so the baseline is 3, but the description earns extra: it expands the opaque enum values 'score', 'feedback' and 'settled' into 'trust score, feedback count or settled USDC', and clarifies that full-text applies to names and descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (Search) and resource (ArcID directory of AI agents registered on Arc, ERC-8004), and enumerates the search modes. It is clearly a discovery/browse tool, distinguishable from the get_agent sibling, but never names siblings explicitly, so sibling routing is left implicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description lists capabilities (full-text, owner filtering, sorting) which implies when the tool applies, but gives no explicit when-to-use guidance versus get_agent or when-not to use it, and no prerequisites. Usage is inferable rather than stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv0.2.0
    • First observedget_agent
    • First observedget_agent_feedback
    • First observedget_agent_validations
    • First observedget_indexer_health
    • First observedget_registry_stats
    • First observedsearch_agents

TDQS

A4/5.0

Scored across 6 tools

Disambiguation5/5

Each tool targets a clearly distinct resource or action: search_agents for discovery, get_agent for full records, get_agent_feedback and get_agent_validations for specific sub-resources, and get_registry_stats/get_indexer_health for operational context. There is no overlap or ambiguity in purpose.

Naming Consistency5/5

All tools use snake_case with a consistent verb_noun pattern, predominantly get_* with a single search_* verb that appropriately reflects its discovery function. No mixed conventions or vague names.

Tool Count5/5

Six tools is well-scoped for a read-only directory and lookup service, with each tool earning its place without redundancy. The count sits comfortably in the ideal 3-15 range.

Completeness4/5

The surface covers agent search, retrieval, feedback, validations, aggregate stats, and indexer health, which is strong for a read-only index. Minor gaps exist, such as no global feedback search or batch agent retrieval, but core workflows are fully supported.

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Read-only on-chain query surface for the AgentCivics civil registry on Sui — soulbound AI-agent identities, on-chain memories, reputation, refusal records. Hosted, no install, no keypair. For write tools (register, write_memory, record_refusal), install the npm package @agentcivics/mcp-server locally and supply your own keypair.
    26
    1
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    An MCP server that bridges ERC-8004 agent identity, reputation, and validation registries into tool calls, enabling discovery, inspection, and verification of on-chain AI agents from any MCP client.
    8
    MIT
  • F
    license
    A
    quality
    D
    maintenance
    Enables querying ERC-8004 AI agent identities from on-chain and IPFS metadata. Supports search, listing, details, feedback, stats, and full metadata retrieval.
    11
    2
    -