@agentkarma/mcp
OfficialClick on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@@agentkarma/mcpcheck the karma of agent 0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
@agentkarma/mcp
Turnkey MCP server for AgentKarma — the reputation layer for autonomous on-chain agents.
Expose AgentKarma's read surface (two-faced karma, ERC-8004 agents, succession/bond signals, and a local check_trust gate) to any MCP client — Claude Desktop, Cursor, Continue, …
Run it
npx @agentkarma/mcp # stdio (default) — for Claude Desktop / Cursor
npx @agentkarma/mcp --http --port 8787 # HTTP streamable endpoint at /mcpThat's the whole story — this package bundles @agentkarma/sdk and @modelcontextprotocol/sdk as regular dependencies, so there are no peer flags to remember.
Options
--http Serve over HTTP instead of stdio (default: stdio)
--port <n> HTTP port (default 8787)
--host <host> HTTP host (default 127.0.0.1)
--base-url <url> AgentKarma API base (default https://agentkarma.io;
also reads AGENTKARMA_BASE_URL)
-v, --version Print version
-h, --help Show helpThe HTTP server binds loopback (127.0.0.1) by default and enables DNS-rebinding
protection there. The endpoint is read-only and unauthenticated — binding a
non-loopback host (e.g. --host 0.0.0.0) exposes it to the network; put it behind
your own auth/proxy if you do.
Programmatic use
import { startStdioServer, startHttpServer, createAgentKarmaMcpServer } from '@agentkarma/mcp';
await startStdioServer(); // connect over stdio
const http = await startHttpServer({ port: 8787 }); // returns the http.ServerClaude Desktop / Cursor config
{
"mcpServers": {
"agentkarma": {
"command": "npx",
"args": ["-y", "@agentkarma/mcp"]
}
}
}Related MCP server: agentforge-trust-mcp
Tools (read-only)
get_karma · get_celo_agent · search_agents · get_agent_history · get_feedback_summary · get_succession · get_bond · get_surety · check_trust
Every tool is read-only and needs no keys. AgentKarma is non-routing — it answers the trust question; it never signs, executes, or proxies a call.
Under the hood
This is a thin launcher over @agentkarma/sdk/mcp. To embed the server in your own process, or to mount the framework-agnostic tool catalog (@agentkarma/sdk/tools) on an existing MCP server, use the SDK directly.
License
MIT
Available Tools
9 toolscheck_trustCheck trust before executingARead-onlyIdempotent
Fetch an agent's Karma and evaluate a local trust policy against it — the "should I trust this agent before paying?" gate. Returns an explainable allow/deny decision plus the snapshot it read. Pure local evaluation: no routing, no signing.
| Name | Required | Description | Default |
|---|---|---|---|
| face | No | Face to score the decision on (default provider). | |
| chain | No | Chain for the lookup. Defaults to 'solana'. Pass for celo/arc/stellar wallets. | |
| wallet | Yes | On-chain agent wallet address (Solana base58, Stellar G-address, or EVM 0x address). | |
| min_score | No | Reject when the face score is below this. | |
| min_tx_count | No | Require at least this many indexed transactions. | |
| min_autonomy_score | No | Require autonomy score at or above this. | |
| require_receipt_backed | No | Require at least one Tier-1 receipt-backed signal. | |
| require_live_succession | No | Require a live (declared/live) succession plan. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint, openWorldHint, and idempotentHint, which describe the tool as safe, idempotent, and open world. The description adds context by stating 'Pure local evaluation: no routing, no signing' and explaining the return value ('an explainable allow/deny decision plus the snapshot it read'), providing transparency beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise—only two sentences—yet covers purpose, behavioral traits, and return value. It is front-loaded with the core purpose and uses no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, no output schema), the description explains what the tool returns and its local evaluation nature. It mentions key concepts (Karma, trust policy) and provides context for the gate decision, making it fairly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers all parameters with descriptions and enum constraints (100% coverage), so the description does not need to add much. The description ties the parameters to the use case ('before paying'), but does not elaborate on each parameter beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetch an agent's Karma and evaluate a local trust policy against it — the 'should I trust this agent before paying?' gate.' It specifies the verb (fetch/evaluate) and resource (agent's Karma/trust policy), and distinguishes it from siblings by emphasizing 'Pure local evaluation: no routing, no signing.'
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use the tool ('before paying'), but does not explicitly mention when not to use it or provide alternative tools. However, the context signals and sibling list help differentiate from other tools, giving implicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_historyGet agent payment historyARead-onlyIdempotent
Paginated x402 payment history for a Solana agent wallet, with each transaction's consumer feedback rating. Solana-only today.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size (1–200, clamped to 200). | |
| offset | No | Page offset. | |
| wallet | Yes | Solana agent wallet address (base58, 32–44 chars). This endpoint is Solana-only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnly, openWorld, idempotent. Description adds pagination behavior, inclusion of feedback ratings, and Solana-only constraint. This enriches the agent's understanding beyond the structural hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with the core purpose and key details (paginated, x402, Solana-only). No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a pagination tool, the description covers the key aspects: what data it returns (payment history with feedback ratings) and constraints (Solana-only). However, without an output schema, it could briefly describe the output structure (e.g., transaction fields) for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with full parameter descriptions. The tool description does not add new semantic meaning to the parameters beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it provides paginated payment history for Solana agent wallets with consumer feedback ratings. Distinguishes from sibling tools like check_trust or get_feedback_summary by focusing on payment transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description lacks explicit guidance on when to use or when to avoid this tool. It does specify it's Solana-only, which sets a boundary, but does not compare with alternatives or state prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bondGet bonding statusARead-onlyIdempotent
Return surety bonds taken out ON this agent (open vs resolved, total bonded USDC, demo flag). A bond lifts confidence/Tier-1 presence only — never the trust ceiling. Returns an empty block when the agent has no bonds.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain the wallet lives on (spans all chains; must be explicit). | |
| wallet | Yes | On-chain agent wallet address (Solana base58, Stellar G-address, or EVM 0x address). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint. The description adds valuable context: returns an empty block when there are no bonds, and clarifies that bonds never affect the trust ceiling, which goes beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding critical information. No fluff. The first sentence immediately states the purpose and outputs, followed by a constraint and a note on empty returns.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two well-documented parameters, good annotations, and no output schema, the description fully covers what the tool returns, its limitations, and edge cases (empty results). No missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for its two parameters (chain and wallet). The description adds no additional semantics or usage tips for these parameters, so it meets the baseline expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns surety bonds taken out on the agent, specifying details like open vs resolved, total bonded USDC, and demo flag. It also distinguishes itself from trust-related tools by noting that bonds only lift confidence/Tier-1 presence, not the trust ceiling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for checking bonding status but does not explicitly state when to use this tool versus alternatives like get_surety or check_trust. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_celo_agentGet Celo agent (ERC-8004)ARead-onlyIdempotent
Resolve a Celo ERC-8004 agent by numeric agentId: IdentityRegistry record (owner, agentURI, declared services) plus aggregate ReputationRegistry feedback.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_id | Yes | ERC-8004 agentId on Celo mainnet (positive integer). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. The description adds behavioral value by specifying the exact output (IdentityRegistry and ReputationRegistry records), which goes beyond annotations. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that presents the purpose, input, and output in a front-loaded manner. Every word is useful and there is no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple input (one parameter) and the rich annotations, the description fully covers what the tool does and returns. Even without an output schema, the description adequately describes the output structure. Complete for this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for the single parameter (agent_id). The description rephrases the parameter as 'numeric agentId' but adds no additional meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the tool resolves a Celo ERC-8004 agent by numeric agentId and lists the returned data (IdentityRegistry and ReputationRegistry records). This is a specific verb+resource combination that distinguishes it from sibling tools like get_agent_history or get_feedback_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: when you have a numeric agentId and need the full agent record including reputation feedback. It does not explicitly state when not to use or mention alternatives, but the context is clear from the sibling list and the description itself.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_feedback_summaryGet feedback summaryARead-onlyIdempotent
Aggregate delivered/failed counts and delivery rate for a Solana agent wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| wallet | Yes | Solana agent wallet address (base58, 32–44 chars). This endpoint is Solana-only. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=true, and idempotentHint=true. The description adds that it aggregates counts and delivery rate but does not disclose additional behavioral traits (e.g., no data freshness, potential for empty results). No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no filler, front-loaded with the action and resource. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description could specify the return format or structure. It is minimally complete for a simple tool but lacks detail on output shape or edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; the description essentially repeats the schema's parameter description (wallet address format, Solana-only). It adds no new semantic meaning beyond what is already in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'aggregate' and the resource 'delivered/failed counts and delivery rate' for a specific scope 'Solana agent wallet'. It distinguishes from sibling tools like check_trust or get_agent_history by focusing on feedback delivery metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Solana wallets via the parameter hint 'Solana-only', but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_karmaGet Karma (both faces)ARead-onlyIdempotent
Look up the full two-faced Karma snapshot for an agent wallet — provider score, consumer score, confidence badge, autonomy, identity. Use BEFORE paying an agent or accepting work from one.
| Name | Required | Description | Default |
|---|---|---|---|
| face | No | Karma face: 'provider' (will it deliver?), 'consumer' (will it pay cleanly?), or 'both' (default). | |
| chain | No | Chain for the lookup. Defaults to 'solana'. Pass for celo/arc/stellar wallets. | |
| wallet | Yes | On-chain agent wallet address (Solana base58, Stellar G-address, or EVM 0x address). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, indicating a safe, idempotent read operation. The description adds behavioral context by detailing the return contents (provider/consumer scores, confidence badge, autonomy, identity) and the default face parameter, which goes beyond annotations without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The first sentence front-loads the action and result, and the second provides usage guidance. Every word is necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return values (provider score, consumer score, confidence badge, autonomy, identity). The parameter count is low (3), all are documented, and the description covers essential context for a lookup tool with default behavior and use case.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is described. The description adds value by explaining the 'both faces' concept and the default behavior of the 'face' parameter, as well as mentioning return fields not in the schema. This enhances understanding beyond the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Look up' and resource 'full two-faced Karma snapshot' with specific return fields (provider score, consumer score, confidence badge, autonomy, identity). This distinguishes it from sibling tools like check_trust and get_agent_history which focus on different aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use BEFORE paying an agent or accepting work from one,' providing clear context. It does not mention when not to use or list alternatives, but the purpose is well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_successionGet succession plan (Dead Man's Switch)ARead-onlyIdempotent
Return the agent's declared succession plan plus AgentKarma's OBSERVED heartbeat liveness (derived status, heir count, deadline). A continuity/trust signal. AgentKarma never holds a key or executes the will (non-custody). Throws not-found when no plan is declared.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain the wallet lives on (spans all chains; must be explicit). | |
| wallet | Yes | On-chain agent wallet address (Solana base58, Stellar G-address, or EVM 0x address). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, idempotent, and openWorld, so the description adds value by clarifying non-custody ('never holds a key or executes the will') and the error behavior ('throws not-found when no plan is declared'). This goes beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each serving a purpose: return value description, classification, and clarifying behavioral notes. No fluff, but could be slightly tighter. Front-loaded with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple getter with no output schema, the description adequately explains the return structure (succession plan, liveness with fields) and error case. Schema covers input completely. No gaps, though no extra context about chain/wallet validation is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add further parameter meaning or usage constraints beyond what the schema already specifies. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the agent's declared succession plan plus observed heartbeat liveness, with specific fields (derived status, heir count, deadline). It positions itself as a continuity/trust signal, implicitly distinguishing from sibling tools like check_trust or get_karma. The verb 'Return' is specific.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for checking succession and liveness, but provides no explicit when-to-use or when-not-to-use guidance. No alternatives are mentioned. The phrase 'continuity/trust signal' gives context but does not replace explicit usage directives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_suretyGet Surety KarmaARead-onlyIdempotent
Return this wallet's ORTHOGONAL Surety Karma from underwriting OTHER agents' bonds (score, settled/success/in-flight counts). Never folded into Provider/Consumer karma. Returns null when the wallet has never underwritten.
| Name | Required | Description | Default |
|---|---|---|---|
| chain | Yes | Chain the wallet lives on (spans all chains; must be explicit). | |
| wallet | Yes | On-chain agent wallet address (Solana base58, Stellar G-address, or EVM 0x address). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, and idempotentHint as true. The description adds value by disclosing the null return case when the wallet has never underwritten, and emphasizes orthogonality from other karma types. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences front-load the core purpose, then add behavioral notes and edge cases. Every sentence earns its place; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read tool with 2 parameters and no output schema, the description fully covers return value structure (score, counts), null edge case, and differentiation from sibling tools. Annotations provide safety guarantees. Nothing missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both 'chain' and 'wallet' parameters. The description does not add meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verb 'Return' with clear resource 'this wallet's ORTHOGONAL Surety Karma from underwriting OTHER agents' bonds' and specifies output components (score, settled/success/in-flight counts). It distinguishes from sibling tools like 'get_karma' by stating 'Never folded into Provider/Consumer karma'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context on when to use (for surety karma) and states a special case (returns null when never underwritten). However, it does not explicitly mention when not to use or name alternative tools like 'check_trust' or 'get_karma' for related but different karma types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_agentsSearch agentsARead-onlyIdempotent
Find agents by a substring of their display name or wallet address (case-insensitive), ranked by score. Returns up to limit results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (1–50, clamped to 50). | |
| query | Yes | Name or wallet-address substring (≥3 chars). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, openWorldHint, and idempotentHint. The description adds behavioral context: case-insensitive search, ranking by score, and a limit on results. This goes beyond the annotations by detailing how the search operates and what results to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, both front-loaded with the core action. Every word adds information: the verb, the resource, the search criteria, the sorting, and the limit. No superfluous language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only 2 parameters, full annotation coverage, and no output schema, the description provides complete context. It explains what the tool does, how the search works, and what constraints apply (minLength 3, max limit 50). Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage, the baseline is 3. The description adds value by explaining that the query is a substring search (case-insensitive) and that results are ranked, which provides context beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Find') and states the resource ('agents') along with search criteria (substring of display name or wallet address, case-insensitive). It clearly distinguishes from siblings like get_celo_agent (which retrieves a specific agent) or get_agent_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly defines when to use this tool: when you need to find agents by a substring. While it doesn't state when not to use it or mention alternatives, the sibling tool names imply other retrieval scenarios (e.g., get_celo_agent for exact match). The guidance is clear enough for typical use.
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.
9 tool updates
v0.1.0- First observed
check_trust - First observed
get_agent_history - First observed
get_bond - First observed
get_celo_agent - First observed
get_feedback_summary - First observed
get_karma - First observed
get_succession - First observed
get_surety - First observed
search_agents
TDQS
Scored across 9 tools
Each tool targets a distinct aspect of agent trust and reputation, from karma snapshots to bond tracking to search. Descriptions clearly differentiate overlapping concepts like check_trust (evaluation) vs get_karma (raw data).
All tools follow a consistent verb_noun pattern with snake_case: check_trust, get_agent_history, get_bond, search_agents, etc. Verbs like get, check, search are used predictably.
Nine tools provide a well-scoped surface for a reputation and trust server. Each tool serves a clear purpose without redundancy or bloat.
The server covers core read operations on agent karma, trust evaluation, history, bonds, and surety. It lacks write operations (e.g., submitting feedback), but this is likely intentional for a read-only data service.
Maintenance
Related MCP Connectors
Public read-only MCP server for HODLXXI agent identity, trust, receipts, and verification.
Read-only Remote MCP for externally grounded AI agent trust receipts.
MEOK ABCI Bridge MCP — read-only Tendermint / Cosmos blockchain query for agents. Built-in registry
Read-only gateway for durable agent identity, consent, recognized work, and signed receipts.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for AgentFolio — the identity and reputation layer for AI agents. Query agent profiles, trust scores, verification status, and marketplace listings through 8 MCP tools.962 npm1MIT
- AlicenseAqualityDmaintenanceMCP server exposing AgentForge Trust Score audit tools. Query trust, evaluate policies, list trusted servers, recommend with filter.48 npm1MIT
- FlicenseAqualityDmaintenanceReputation and trust scoring service for AI agents, exposed as an MCP server. Evaluate counterparties, report interactions, issue portable trust certificates, and detect Sybil attacks.23-
- AlicenseAqualityBmaintenanceAn 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.8MIT