stellar-agent-search
Allows discovering, ranking, and vetting on-chain agents registered on the stellar-8004 protocol on Stellar mainnet, including tools for finding agents, getting profiles, and verifying reputation.
Click on "Install 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., "@stellar-agent-searchfind a trading bot with high reputation"
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.
stellar-agent-search
A read-only discovery layer on top of the stellar-8004 registry — the ERC-8004-style Identity/Reputation/Validation contracts on Stellar mainnet. It adds no contracts and forks nothing: it exposes the existing on-chain registry to MCP clients, keeps indexed reputation explicitly declared-vs-verified, and proves the full agent-finds-agent loop with recorded mainnet transactions.
npm · GitHub · Docs · Evidence package
npm | MCP Registry | Remote endpoint | Mainnet proof |
✅ | ✅ published & verified | ✅ x402 payment · feedback |

There are two official interfaces, not two copies of the stack. TypeScript applications, registration, and
signed writes use the canonical @trionlabs/stellar8004
SDK from trionlabs/stellar-8004; MCP clients and terminal discovery use this package, which exact-pins that
SDK internally. The upstream repo's restricted Supabase Studio /mcp is database-operator tooling behind
SSH/IP controls, not an agent-registry MCP and must never be exposed as this runtime. See
the integration boundary.
A read-only, keyless MCP server (and human CLI) that lets an AI agent — or you — discover, rank, and vet on-chain stellar-8004 agents on Stellar mainnet, then prepare an x402 (USDC pay-per-call) payment. One binary speaks the Model Context Protocol over stdio to Claude Code / Cursor / Windsurf / Cline / VS Code, and doubles as a plain-terminal tool. A separate Cloudflare Worker implementation exposes the same surface over stateless Streamable HTTP, but that remote endpoint is not live yet; use the local stdio transport until its deployment canary passes.
npx -y stellar-agent-search@0.1.0 find "a paid web scraper with a good reputation"Why this exists: declared data vs. what the chain read can prove
Off-chain agent directories (A2A cards, the MCP Registry, OASF, NANDA) list self-declared agents. That is exactly where the trust gap lives. A 2026 study of the ERC-8004 ecosystem (arXiv 2606.26028) found that only 3–15% of registrations have a live endpoint, and 59–91% of "reviewers" are Sybils.
stellar-8004 is the only non-EVM ERC-8004 implementation we are aware of running on mainnet (66 agents on
Stellar mainnet as of July 2026; get_registry_stats returns the current count). No published survey
enumerates non-EVM deployments — the study above restricts itself to Ethereum, BSC and Base, "the three chains
with the highest registration and feedback volume" — so read that as unrefuted, not as proven. This server
adds something a directory listing cannot give you: a bounded Reputation-contract reachability probe.
The current path calls get_clients_paginated once with a six-slot observation window. The contract exposes
no authoritative client count/cursor, and expired client-index entries create holes, so even an empty or short
page cannot prove that no later live client exists. Calling get_summary over that set would manufacture a
false match or mismatch; this release therefore does not call it and verifies no reputation fields. An
attempted, reachable probe returns unavailable with reason client-set-exhaustion-unprovable;
verifiedFields is empty and average, feedback count, and unique clients all remain unverified.
verified/partial/mismatch are reserved for a future authoritative aggregate. The full status set remains
verified | partial | mismatch | unavailable | skipped. Self-declared marketing text (name, description,
service labels, feedback tags) remains untrusted data, never instructions (see Security).
That fail-closed boundary — plus a versioned declared-evidence heuristic — is the product. Normalized
Explorer quality is multiplied by fixed evidence strength (0.4 × capped volume + 0.6 × effective breadth).
Effective unique clients cannot exceed feedback rows, and repeated rows per declared client are capped. These
are cost-of-manipulation proxies, not chain verification, proof of personhood, or Sybil resistance.
Related MCP server: nostr-read-mcp
What it exposes
All three MCP primitives, all read-only:
Tools
Tier | Tool | What it does |
0 · SOW |
| Natural-language discovery → ranked candidates |
| Rank an explicit id set or a query, full 3-axis declared-reputation breakdown + bounded chain reachability | |
| Deep profile: identity, capabilities, declared reputation + contract-probe limits, recent feedback, unverified A2A projection | |
| Self-declared x402/MPP endpoint candidates; liveness, ownership, conformance, and payment stay unverified | |
1 · complete-core |
| Paginated, filterable listing, ranked |
| Top agents in a bounded scan (client-side 3-axis rank + coverage) | |
| Any handle (id / stellar:…#id / owner G-address) → canonical identifiers | |
| Current owner API page (up to 20 agents) with explicit continuation coverage | |
| Recent on-chain reviews (sanitized, labeled) | |
| Fail-closed Reputation-contract reachability probe; no current fields are verified | |
| Derived, unverified A2A-shaped projection + x402 hint; not protocol-conformance proof | |
| Exact-count queries + capped sampled metrics, with definitions and coverage | |
| Per-registry indexer staleness |
Full per-tool reference (inputs, outputs, defaults): docs/tools.md.
Resources — stellar8004:// (pinnable context)
registry · leaderboard · health · agent/{id} · agent/{id}/card · agent/{id}/feedback ·
agent/{id}/reputation · owner/{address}. Each returns a dual JSON + rendered-markdown payload.
Prompts — slash workflows
/find-and-vet-agent (flagship) · /vet-agent · /compare-agents · /prepare-x402-call ·
/explore-registry. prepare-x402-call lays out the exact x402 flow and stops before signing — this
server holds no keys.
Quickstart
One-command MCP setup (Claude Code):
npx -y stellar-agent-search@0.1.0 setup --client claude --scope user --handshakeThis downloads the package, registers a version-pinned npx -y stellar-agent-search@0.1.0 mcp stdio launch through
Claude Code's own CLI, then performs a real MCP initialize + tools/list handshake. It is idempotent: rerun
with --check --handshake to verify without changing config, or use --dry-run to preview the registration.
Cursor and Codex examples, config paths, and scope limitations are in
docs/getting-started.md. Manual configs for other clients remain in
docs/integration.md.
Optionally install the skill first — the usage guide your agent reads before it calls anything:
npx skills add berkingurcan/stellar-agent-search --skill mcpTerminal (human CLI):
npx -y stellar-agent-search@0.1.0 find "web scraper" --x402 # discover
npx -y stellar-agent-search@0.1.0 profile 10 # full profile for agent 10
npx -y stellar-agent-search@0.1.0 rank "scraping agents" --json # rank + fail-closed contract-probe status, machine-readable
npx -y stellar-agent-search@0.1.0 services --x402 # declared paid-endpoint candidates
npx -y stellar-agent-search@0.1.0 doctor # self-check: env, explorer, RPC, bounded read path
npx -y stellar-agent-search@0.1.0 setup --client cursor --scope project --dry-run # preview client configNew here? Start with docs/getting-started.md.
Remote endpoint status
The intended hosted URL is https://mcp.stellar8004.com/mcp. The Worker, transport tests, routing, and
hardening are implemented, but the route has not been deployed: /mcp currently falls through to the
landing site and returns 404. Deployment remains deliberately blocked until the Cloudflare rate-limit
namespace is replaced from its sentinel value and a live canary proves that the original caller identity is
preserved through the Service Binding. Do not configure a remote MCP client against that URL yet.
The landing page and MCP runtime are separate Workers. The assets-only landing Worker owns the
mcp.stellar8004.com custom domain; exact /mcp and /healthz zone routes will send only those two paths to
the runtime Worker. The runtime reads the existing stellar8004-web API through a Cloudflare Service Binding.
It does not connect to Supabase, hold a service-role key, or create a second indexer. See
docs/architecture.md and
docs/stellar8004-integration.md.
Configuration
All configuration is via environment variables (canonical for MCP mode); CLI flags override them (precedence: flag → env → default).
Env var | Default | Purpose |
|
|
|
|
| Explorer HTTP API base. Indexes mainnet only |
|
| Soroban RPC for the bounded Reputation-contract reachability probe |
|
| Set |
|
| Fixed v1 compatibility assertion; any value other than |
Ranking uses the fixed, versioned stellar-agent-search-declared-evidence-v1 policy: indexed average normalized
against exactly 100, multiplied by 0.4 × capped volume + 0.6 × effective breadth. Both a changed
RANK_SCORE_MAX and legacy RANK_W_* variables are rejected so a deployment cannot silently redefine
published score semantics.
STELLAR_PRIVATE_KEY is intentionally ignored if present (and warned about on stderr) — this server is
keyless by construction.
testnetneeds its own explorer, and refuses to start without one. The default explorer indexes mainnet only, whileSTELLAR_NETWORKalso selects the Soroban contracts and RPC. That pairing would give you mainnet registry rows alongside testnet on-chain reads — two chains described as one — soSTELLAR_NETWORK=testnetfails at startup unlessEXPLORER_BASE_URLis set explicitly. No public testnet indexer exists today, so in practice testnet is for someone running their own; the dry-run gate for the x402 demo isDRY_RUN=1on mainnet, which spends nothing.
Security
Read-only and keyless. No signer, no write clients, no private keys anywhere under
src/. The only keyed actor in the repo is the standaloneexamples/x402-demo.ts, run under explicit human control.stdout is JSON-RPC only. Every log/diagnostic goes to stderr, so the protocol stream is never corrupted.
Trust boundary. Server-authored summary text (
content[].text) interpolates only typed/enum/numeric values. All agent-authored free text (names, descriptions, service labels, feedback tags) lives only in labeledselfDeclaredslots of the structured output, sanitized (control/zero-width/bidi stripped) and length-bounded — never treated as instructions.
Full threat model + disclosure policy: SECURITY.md and docs/architecture.md.
How it works
flowchart LR
A["MCP client<br/>Claude Code · Cursor · Windsurf …"] -- "stdio JSON-RPC" --> B["stellar-agent-search<br/>one Node binary · read-only · keyless"]
T["Terminal (human CLI)"] --> B
B -- "HTTP" --> C["ExplorerService<br/>stellar8004.com API · primary data"]
B -- "Soroban RPC" --> D["ReputationVerifier<br/>bounded reachability probe"]
C -.indexes.-> E[("stellar-8004 contracts<br/>Stellar mainnet")]
D --> ELocal MCP client (or terminal) → one Node binary → ExplorerService (stellar8004 HTTP API, primary
data) + ReputationVerifier (Soroban RPC, bounded reachability probe) → canonical stellar-8004 contracts on
mainnet. Indexed reputation remains explicitly Explorer-declared; the contract probe either reports its
limited reachability observation or degrades closed without manufacturing a comparison.
The not-yet-live hosted path adds only an edge adapter: remote client → stateless Cloudflare Worker →
existing stellar8004-web service → its canonical Supabase-backed index. The Worker never reads Supabase
directly and never owns indexer credentials. It still uses Soroban RPC for the same bounded reachability probe.
Architecture, ranking formula, cache boundaries, and the upstream discovery contract are documented in
docs/architecture.md.
Built on the split MCP v2 packages (@modelcontextprotocol/server and @modelcontextprotocol/client
2.0.0), Zod 4, @trionlabs/stellar8004, TypeScript ESM, Node ≥ 22. The local stdio handshake currently
negotiates protocol 2025-11-25; the remote handler targets the modern stateless 2026-07-28 protocol while
retaining a stateless legacy compatibility lane. That is an implementation target, not a live conformance
claim until the remote canary is recorded.
Contributing
Reviewing this against a grant or SOW? Start at docs/evidence.md — a deliverable-to-evidence map with verification steps, written to be checked without a technical background.
Known open work and release blockers are tracked in issues/, one file per issue.
Bug reports and PRs welcome. Read CONTRIBUTING.md first — it covers the project layout and the four invariants CI enforces (read-only/keyless, stdout-is-JSON-RPC-only, the trust boundary, and degrade-closed verification). Release history lives in CHANGELOG.md.
License
MIT — see LICENSE.
Available Tools
13 toolsfind_agentFind AgentARead-onlyIdempotent
Natural-language discovery of on-chain Stellar (stellar-8004) agents. Returns a ranked list with capability/reputation signals. Use rank_agent for per-axis breakdowns and get_agent_profile for full detail. Agent names/descriptions are self-declared (unverified) and live only in each row's labeled selfDeclared slot.
| Name | Required | Description | Default |
|---|---|---|---|
| mpp | No | When present, require MPP micropayment support. | |
| x402 | No | When present, require x402 (USDC pay-per-call) support. | |
| limit | No | ||
| query | Yes | Natural-language description, e.g. 'a paid web scraper with a good reputation'. | |
| trust | No | Require a trust model. | |
| sortBy | No | relevance | |
| verify | No | Probe the Reputation contract for the top results (slower; current probe verifies no reputation fields). | |
| minScore | No | Deprecated ambiguous input; rejected. Use minExplorerScore. | |
| hasServices | No | When present, require owner-declared service endpoint candidates. | |
| minExplorerScore | No | Minimum upstream v1 Explorer total_score in protocol units; not local rank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| agents | Yes | |
| coverage | Yes | |
| interpretedQuery | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so the tool's safety is clear. Description adds valuable behavioral context about the unverified nature of results and the natural-language ranking logic, which goes 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?
Two concise sentences: first states the core purpose and return type, second provides usage guidance and a crucial caveat. No wasted words, front-loaded with the most important information.
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?
Despite 10 parameters, the description is sufficient given high schema coverage (80%) and the presence of an output schema. It covers the tool's purpose, usage context, and a key trust caveat, making it complete for an agent to select and invoke correctly.
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 80%, so baseline is 3. Description adds no further detail on parameters beyond schema, but the schema itself already documents most parameters well. The description does flag the deprecated minScore parameter as rejected, which is helpful but minor.
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 explicitly states 'Natural-language discovery of on-chain Stellar agents' with a specific verb and resource. It differentiates from siblings rank_agent and get_agent_profile by naming them and clarifying their distinct roles.
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?
Provides explicit when-to-use context and alternatives: 'Use rank_agent for per-axis breakdowns and get_agent_profile for full detail.' Also warns that agent names/descriptions are self-declared and unverified, indicating caution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_cardGet Derived A2A ProjectionARead-onlyIdempotent
Unverified A2A-shaped projection from indexed Stellar 8004 metadata. It is not an agent-published AgentCard and proves neither A2A conformance nor endpoint ownership. Owner-authored metadata and service candidates are isolated under card.selfDeclared.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | Numeric agent id, numeric string, or a full stellar:{network}:{identity}#{id} handle. | |
| verify | No | Attempt the bounded Reputation-contract reachability probe; it does not verify reputation fields, A2A conformance, or endpoints. |
Output Schema
| Name | Required | Description |
|---|---|---|
| card | Yes | |
| note | Yes | |
| conformance | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds that the projection is unverified, not an official AgentCard, and that owner-authored data is under card.selfDeclared, exceeding annotation context 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?
Three sentences, all essential and front-loaded with the core purpose. No wasted words or redundant information.
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?
The output schema is present (hidden), so return values need not be detailed. The description sufficiently explains the nature of the result and its limitations for a tool with 2 parameters and no nested objects.
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 the schema already documents both parameters adequately. The description adds no parameter-specific meaning beyond the schema, meeting the baseline.
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 it retrieves an 'unverified A2A-shaped projection' from indexed metadata, distinguishing it from an official AgentCard. This separates it from siblings like get_agent_profile and verify_reputation.
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 warns that the projection is not agent-published and proves neither conformance nor endpoint ownership, implying when not to use it. However, it does not explicitly name alternative tools for verified info.
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 FeedbackARead-onlyIdempotent
Recent Explorer-indexed on-chain feedback for one agent (client-authored, untrusted → returned in a labeled selfDeclared slot, sanitized). Revoked entries are hidden unless includeRevoked is set.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter by feedback tag. | |
| page | No | ||
| agent | Yes | Numeric agent id, numeric string, or a full stellar handle. | |
| limit | No | ||
| includeRevoked | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| count | Yes | |
| agentId | Yes | |
| summary | Yes | |
| coverage | Yes | |
| feedback | Yes | |
| stellarId | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, openWorldHint=true, idempotentHint=true, and destructiveHint=false. The description adds valuable context beyond annotations by explaining the source (Explorer-indexed), trust model (client-authored, untrusted), sanitization, and the handling of revoked entries (hidden unless includeRevoked is set). No contradictions.
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 extremely concise: two sentences that convey the core purpose, data source, trust implications, and a key behavioral detail (revoked entries). Every word adds value; 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?
For a tool with 5 parameters (1 required) and an output schema, the description covers the essential aspects: what the tool returns, the nature of the data, and an important filter condition. It does not mention pagination defaults or sorting, but these are often self-evident or covered by the output schema. The description is reasonably 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?
Schema description coverage is only 40%, meaning several parameters (tag, page, limit, includeRevoked) lack descriptions in the schema. The tool description does not compensate by explaining these parameters or their usage. It only mentions the 'includeRevoked' behavior, leaving agents without sufficient guidance on how to correctly set 'tag', 'page', or 'limit'.
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 that the tool retrieves recent Explorer-indexed on-chain feedback for a single agent. It specifies that feedback is client-authored and untrusted, stored in a 'selfDeclared' slot, and sanitized. This distinguishes it from sibling tools like 'rank_agent' or 'get_agent_profile' which serve different purposes.
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 does not provide explicit guidance on when to use this tool versus alternatives like 'find_agent' or 'verify_reputation'. There is no indication of when not to use it or which scenarios it is best suited for, leaving the agent to infer usage from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_profileGet Agent ProfileARead-onlyIdempotent
Full profile for one agent: typed identity, capabilities, declared scores, a rank breakdown, bounded Reputation-contract reachability status, recent feedback, the canonical stellar:{network}:{identity}#{id} handle, and an explicitly unverified derived A2A-shaped projection. The current probe verifies no reputation fields. No A2A conformance or endpoint ownership is implied; self-declared text is confined to labeled selfDeclared slots.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | Numeric agent id, numeric string, or a full stellar:{network}:{identity}#{id} handle. | |
| verify | No | Attempt the bounded Reputation-contract probe (default on; current probe verifies no reputation fields). | |
| feedbackLimit | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| profile | Yes | |
| agentCard | Yes | |
| verification | Yes | |
| recentFeedback | Yes | |
| feedbackCoverage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations by noting that the current probe verifies no reputation fields, no A2A conformance or endpoint ownership is implied, and self-declared text is confined to labeled slots. This clarifies the limits of the data returned.
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 relatively concise but dense with information. It front-loads the list of included components and then clarifies limitations. Each sentence adds value, though it could be slightly more streamlined.
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 existence of an output schema, the description adequately covers the tool's overall behavior and the key components returned. It does not need to detail return values. However, the mention of 'rank breakdown' and 'Reputation-contract reachability status' could be more precise without relying solely on the schema.
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 67%. The description does not add significant new semantic information beyond the schema's parameter descriptions. The explanation of the verify parameter is mostly redundant with the schema description, and the agent parameter is already well-documented 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 states it returns the full profile for one agent, listing specific components (typed identity, capabilities, declared scores, rank breakdown, Reputation-contract reachability status, recent feedback, canonical handle, and A2A-shaped projection). This clearly differentiates from sibling tools like find_agent, rank_agent, or get_agent_card.
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 does not explicitly state when to use this tool versus alternatives. While it implies usage for obtaining a full agent profile, it lacks guidance on exclusions or specific contexts where other sibling tools would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agents_by_ownerGet Agents By OwnerARead-onlyIdempotent
List the owner endpoint's current page (up to 20 agents), ranked by the 3-axis engine. Coverage explicitly reports whether more owner rows exist. Self-declared text lives in each row's labeled selfDeclared slot.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| owner | Yes | Owner account (Stellar G-address). | |
| verify | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| owner | Yes | |
| agents | Yes | |
| coverage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds value by noting pagination coverage reporting and the 'selfDeclared' slot in output, which are not in 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 focused sentences with no wasted words. Front-loaded with the primary action, followed by needed details and output structure.
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 presence of an output schema and good annotations, the description covers pagination and key output details. Minor gaps include explanation of the 'verify' parameter and the '3-axis engine' ranking mechanism.
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 only 33% schema description coverage, the description compensates partially by mentioning limit (up to 20 agents) and owner ('owner endpoint'). However, the 'verify' parameter is unexplained, and details about the ranking engine are vague.
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 lists agents for a given owner, with pagination and ranking. It distinguishes from siblings like list_agents (generic) and find_agent (search). However, the phrase 'owner endpoint's current page' is slightly ambiguous.
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 need agents for a specific owner, but does not explicitly state when not to use or mention alternatives like list_agents. Usage context is implicit but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_registry_healthGet Registry HealthARead-onlyIdempotent
Per-registry indexer health: last indexed ledger and staleness for the identity, reputation, and validation indexers. Staleness weakens the freshness of Explorer-declared data; it does not make a bounded contract read exhaustive.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| status | Yes | |
| indexer | Yes | |
| network | Yes | |
| anyStale | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context by explaining the meaning of staleness and its implications, without contradicting 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?
The description is extremely concise: two sentences that immediately convey the tool's purpose and a key nuance about staleness. Every sentence adds value without redundancy.
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 parameters, strong annotations, and an existing output schema (not shown), the description is complete. It covers the returned data, the affected indexers, and a behavioral insight, leaving no gaps for a simple health check 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?
The input schema has no parameters, so schema coverage is 100%. The description does not need to add parameter information; it remains concise and assumes the schema is sufficient.
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 that the tool returns per-registry indexer health, including last indexed ledger and staleness for three specific indexers: identity, reputation, and validation. It uses precise terminology and distinguishes the tool's purpose from siblings like get_registry_stats.
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 explains what the tool does but does not provide explicit guidance on when to use it versus alternatives. There is no mention of prerequisites, exclusions, or comparative context with sibling tools.
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 StatsARead-onlyIdempotent
Explorer v1 registry counts plus sampled metrics, with explicit metric definitions, 5,000-agent sample cap, non-global distribution warning, and snapshot limitations.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| network | Yes | |
| coverage | Yes | |
| limitations | Yes | |
| totalAgents | Yes | |
| agentsWithMpp | Yes | |
| agentsWithX402 | Yes | |
| totalFeedbacks | Yes | |
| totalValidations | Yes | |
| metricDefinitions | Yes | |
| trustDistribution | Yes | |
| agentsWithServices | Yes | |
| totalUniqueClients | Yes | |
| averageFeedbackScore | Yes | |
| protocolDistribution | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable context: specific metric definitions, a 5,000-agent sample cap, non-global distribution warning, and snapshot limitations. This goes beyond the annotations to inform the agent of important constraints.
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 is concise yet packed with relevant information. It front-loads the core purpose and follows with specific constraints. It earns its place without being verbose.
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 no parameters and an output schema exists, the description does not need to detail return values. It covers key caveats like sample cap and distribution warning, making it sufficiently complete for a simple stats retrieval 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?
The tool has no parameters, so the description doesn't need to explain parameter usage. The baseline for zero parameters is 4, and the description appropriately focuses on the tool's output and constraints.
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 provides 'registry counts plus sampled metrics' and lists specific features like sample cap and warnings. It effectively communicates the purpose of retrieving registry stats, though it does not explicitly differentiate from sibling tools like get_registry_health.
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 mentions constraints (sample cap, non-global distribution warning) but does not provide explicit guidance on when to use this tool versus alternatives such as get_registry_health or leaderboard. Given the number of sibling tools, more context on use cases is needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
leaderboardLeaderboardARead-onlyIdempotent
Top-ranked agents in a bounded registry scan (or filter), by the 3-axis engine, with per-axis breakdown. On-chain verification of the top rows is optional. Coverage states whether the scan exhausted the filtered set; self-declared text lives in each row's labeled selfDeclared slot.
| Name | Required | Description | Default |
|---|---|---|---|
| mpp | No | When present, require indexed MPP support. | |
| x402 | No | ||
| limit | No | ||
| trust | No | ||
| verify | No | Probe the Reputation contract for the top results; current probe verifies no reputation fields. | |
| minScore | No | Deprecated ambiguous input; rejected. Use minExplorerScore. | |
| hasServices | No | ||
| minExplorerScore | No | Minimum upstream v1 Explorer total_score in protocol units; not local rank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| agents | Yes | |
| coverage | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint. The description adds extensive behavioral details: bounded scan/filter, per-axis breakdown, optional on-chain verification, coverage state, and self-declared text slots, going well 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 relatively short and front-loaded with the core purpose. However, it uses domain-specific jargon that may reduce clarity for some agents. Every sentence adds value, but could be more accessible.
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 output schema exists (not shown in input), the description covers key aspects: boundedness, 3-axis, breakdown, verification, coverage, self-declared. It does not mention return format or pagination, but those may be in output schema. Adequate for the complexity.
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 50%, and the description adds context for verify (optional verification) and trust (enum meaning) but does not explain mpp, x402, limit, hasServices, or minExplorerScore beyond schema. It partially compensates for missing schema descriptions but not fully.
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 it retrieves top-ranked agents via a bounded registry scan with per-axis breakdown, using a 3-axis engine. It distinguishes itself from siblings like find_agent or rank_agent by specifying leaderboard-specific features (bounded scan, breakdown, on-chain verification).
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?
No explicit guidance on when to use this tool versus alternatives such as rank_agent or list_agents. The description implies usage for leaderboard queries but does not provide context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_agentsList AgentsARead-onlyIdempotent
Paginated, filterable listing of registered agents, ranked by the 3-axis engine. Filter by x402/mpp/hasServices/trust/minExplorerScore. Self-declared text lives in each row's labeled selfDeclared slot.
| Name | Required | Description | Default |
|---|---|---|---|
| mpp | No | When present, require indexed MPP support. | |
| page | No | ||
| x402 | No | ||
| limit | No | ||
| trust | No | ||
| sortBy | No | score | |
| verify | No | Probe the Reputation contract for the top results; current probe verifies no reputation fields. | |
| minScore | No | Deprecated ambiguous input; rejected. Use minExplorerScore. | |
| hasServices | No | ||
| minExplorerScore | No | Minimum upstream v1 Explorer total_score in protocol units; not local rank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| count | Yes | |
| agents | Yes | |
| coverage | Yes | |
| pagination | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, open-world hints. The description adds specific behavioral details: pagination, ranking by 3-axis engine, and a labeled selfDeclared slot. 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?
Two sentences with no superfluous content. Front-loaded with key info: paginated, filterable, ranking. Every sentence adds value.
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 presence of an output schema (not shown), the description does not need to detail return values. It covers filtering, pagination, ranking, and a key field (selfDeclared). For a list tool with 10 params (0 required), this is nearly 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?
Schema description coverage is only 40%, and the description does not explain individual parameters beyond listing their names. It adds minimal parameter meaning beyond what the schema provides, but lists the filter keys as context.
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 it is a paginated, filterable listing of registered agents, ranked by a 3-axis engine. This explicitly defines the verb (list), resource (agents), and scope (filtered/paginated), and differentiates it from sibling tools like find_agent or rank_agent.
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 lists available filters but does not provide explicit guidance on when to use this tool versus alternatives like find_agent or resolve_agent. It implies usage for listing/filtering but lacks use-or-not-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_servicesList ServicesARead-onlyIdempotent
Catalog of self-declared service endpoint candidates, each with its owning agent's indexed owner-declared capability/trust signals and ranked score. Filter by x402/mpp/trust/minExplorerScore/search. No endpoint is probed for liveness, ownership, protocol conformance, or payment behavior. Service labels/endpoints are unverified and live in each row's labeled selfDeclared slot.
| Name | Required | Description | Default |
|---|---|---|---|
| mpp | No | When present, only MPP micropayment services. | |
| page | No | ||
| x402 | No | When present, only x402 (USDC pay-per-call) services. | |
| limit | No | ||
| trust | No | ||
| search | No | Free-text filter over agent name/description. | |
| minScore | No | Deprecated ambiguous input; rejected. Use minExplorerScore. | |
| minExplorerScore | No | Minimum upstream v1 Explorer total_score in protocol units; not local rank. |
Output Schema
| Name | Required | Description |
|---|---|---|
| page | Yes | |
| count | Yes | |
| coverage | Yes | |
| services | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, etc.), the description adds critical context: endpoints are not probed for liveness/conformance, and labels are unverified. 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?
Two sentences, front-loaded with key functionality and filter options, then limitations. No wasted words; every sentence adds value.
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 8 parameters and presence of output schema, description covers data nature and filtering well. Could add note on pagination but not required since schema covers it.
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 63%. Description adds meaning for filters like x402, mpp, trust, minExplorerScore, and notes minScore is deprecated. However, page and limit are left to schema, which may be insufficient for complete understanding.
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 it is a catalog of self-declared service endpoint candidates with filtering options. It distinguishes from siblings like 'list_agents' by focusing on services.
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 lists filter parameters but does not explicitly state when to use this tool versus alternatives. It implies use for unverified service discovery, lacking direct comparison with siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_agentRank AgentARead-onlyIdempotent
Rank an explicit agent set or a query's candidates using the deterministic declared-evidence policy: normalized indexed average × fixed evidence strength (0.4 capped volume + 0.6 breadth). Owner-declared capability fields add zero. On-chain checks are evidence metadata and never inflate rank. Every row carries a full per-axis breakdown and a declared-vs-verified verification block. Provide EITHER agentIds OR query.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| query | No | Natural-language query whose candidates are ranked. XOR with agentIds. | |
| sortBy | No | relevance | |
| verify | No | Attempt the bounded Reputation-contract probe (default on; current probe verifies no reputation fields). | |
| weights | No | Deprecated and rejected when supplied. The v1 policy fixes evidence weights at volume=0.4 and breadth=0.6. | |
| agentIds | No | Explicit agent ids to rank (maximum 50 on this transport). Provide EITHER agentIds OR query, not both. |
Output Schema
| Name | Required | Description |
|---|---|---|
| count | Yes | |
| agents | Yes | |
| coverage | No | |
| rankVersion | Yes | |
| evidenceWeights | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it as readOnly, idempotent, and non-destructive. The description adds valuable behavioral details: the deterministic policy, that on-chain checks are metadata-only and never inflate rank, and that output includes breakdown and verification blocks. 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?
The description is a single paragraph that packs significant information without wasted words. It could benefit from bullet points for clarity, but it remains concise and front-loaded with the core policy.
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 and the existence of an output schema, the description covers the key aspects: ranking formula, XOR requirement, deprecated parameter, and output structure. It lacks a brief note on pagination or sorting, but these are inferable from the schema.
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 67% with 4 of 6 parameters described. The description adds context like the XOR constraint and the deprecation of 'weights', but does not explain 'limit' or 'sortBy' beyond schema defaults. This is adequate but not exemplary.
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 explicitly states the tool ranks agents using a deterministic evidence policy, specifying the exact formula. It distinguishes from siblings like 'find_agent' by requiring XOR between agentIds and query, making its purpose clear and unique.
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?
It clearly states the XOR condition ('Provide EITHER agentIds OR query') and warns that 'weights' is deprecated and rejected. However, it does not explicitly describe when to prefer this over siblings like 'leaderboard' or 'verify_reputation', leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_agentResolve AgentARead-onlyIdempotent
Resolve any agent reference (id, numeric string, stellar handle, or owner G-address) to the canonical typed identifiers (numeric id + stellar + CAIP-2). Owner addresses expand the current owner API page (up to 20); coverage reports whether more rows may exist.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Agent id, numeric string, stellar:{network}:{identity}#{id} handle, or owner G-address. |
Output Schema
| Name | Required | Description |
|---|---|---|
| kind | Yes | |
| count | Yes | |
| owner | Yes | |
| agents | Yes | |
| network | Yes | |
| coverage | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint, idempotentHint), the description adds behavioral context: owner addresses expand an API page with a limit of 20, and coverage indicates if more rows exist. This discloses pagination behavior and result structure, adding value.
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 waste. Every word is informative, and key points are front-loaded. It is appropriately sized for the tool's simplicity.
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 single-parameter tool with high schema coverage and an output schema, the description is complete: it explains input types, behavior with owner addresses, and pagination. No additional details are 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?
The input schema has 100% description coverage and already lists all accepted reference formats. The description does not add new semantics beyond what is in the schema, so 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 resolves various agent references to canonical identifiers, specifying input types (id, numeric string, stellar handle, owner G-address). It is specific about verb and resource, but does not explicitly contrast with sibling tools, though the resolution function is distinct from listing or ranking tools.
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 no guidance on when to use this tool versus alternatives like find_agent or get_agents_by_owner. It implies usage for resolving references but does not set context, exclusions, or mention when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_reputationVerify ReputationBRead-onlyIdempotent
Fail-closed reputation observation for one agent. The current Reputation contract has no authoritative client-set count/cursor and expired index entries can create holes, so the server performs one bounded reachability read but does not call get_summary or claim a diff. Current attempted checks return unavailable with explicit scope; skipped means not attempted.
| Name | Required | Description | Default |
|---|---|---|---|
| agent | Yes | Numeric agent id, numeric string, or a full stellar handle. |
Output Schema
| Name | Required | Description |
|---|---|---|
| agentId | Yes | |
| verified | Yes | |
| stellarId | Yes | |
| verification | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and idempotentHint. The description adds significant context about the contract's limitations (holes, bounded reachability), the fact that checks return unavailable with explicit scope, and clarifies that it does not call get_summary. This goes beyond annotations without contradicting them.
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 relatively long and technical, explaining underlying contract mechanics. While it provides necessary context, it could be more concise for quick comprehension. The front-loaded content is clear, but the detail level might hinder readability.
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 complexity of the tool and the presence of an output schema (not shown but indicated), the description adequately explains the tool's behavior and limitations. However, it does not mention return value structure, relying on the output schema.
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 100% of the single parameter 'agent' with detailed types and descriptions. The description does not add extra parameter information, so a baseline score of 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 that the tool is for reputation observation of a single agent, using a fail-closed approach. It distinguishes from siblings by specifying that it does not call get_summary or claim a diff, but it could more explicitly differentiate from rank_agent and similar tools.
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 does not explicitly state when to use this tool versus alternatives like rank_agent or leaderboard. It implies a scenario where reputation verification is needed but lacks guidance on when not to use it or what prerequisites are required.
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. Dates show when Glama detected each change.
13 tool updates
v0.1.0- First observed
find_agent - First observed
get_agent_card - First observed
get_agent_feedback - First observed
get_agent_profile - First observed
get_agents_by_owner - First observed
get_registry_health - First observed
get_registry_stats - First observed
leaderboard - First observed
list_agents - First observed
list_services - First observed
rank_agent - First observed
resolve_agent - First observed
verify_reputation
TDQS
Each tool has a clear, distinct purpose covering search, ranking, profiles, listings, feedback, reputation, and registry health. A minor overlap exists between get_agent_profile and get_agent_card, but both descriptions explicitly differentiate their roles.
Almost all tools follow a consistent verb_noun pattern (e.g., find_agent, rank_agent, list_services). The exceptions are leaderboard (noun only) and get_agents_by_owner (uses 'by'), but these are minor deviations that do not impede understanding.
With 13 tools, the server covers all essential operations for an agent search and registry exploration server without being overwhelming. The count is well-scoped for the domain.
The tool set provides comprehensive coverage of the search/exploration domain: discovery, ranking, detailed profiles, service listings, feedback, reputation verification, and registry health. No obvious gaps are present for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read-only MCP server: verify credentials and browse escrows on the Stellar testnet contract.
Agent-native MCP server over the public saagarpatel.dev corpus. Read-only, stateless.
Capability registry for the agentic economy. Semantic search over verified MCP server listings.
Public read-only MCP server for HODLXXI agent identity, trust, receipts, and verification.
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.91341MIT
- AlicenseNot gradedqualityCmaintenanceA read-only MCP server for AI agents to access Nostr profiles, notes, search, and relay lists through user-chosen relays, without requiring an account or keys.MIT
- 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
- AlicenseAqualityBmaintenanceMCP server for Stellar that enables AI assistants to explain account holdings, diagnose transaction failures, and describe Soroban contracts in plain language, with optional payment proposal flow.3Apache 2.0
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/berkingurcan/stellar-agent-search'
If you have feedback or need assistance with the MCP directory API, please join our Discord server