byte-protocol
Server Details
PayPerByte — per-byte data for AI agents: x402 USDC on Base, EIP-712-attested. No token.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- 0rkz/byte-mcp-server
- GitHub Stars
- 1
- Server Listing
- BYTE Protocol
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 15 of 15 tools scored.
All tools target distinct operations (e.g., buying data vs. subscribing vs. publishing). Even related tools like get_publisher and search_publishers have clear differences: one retrieves a specific publisher's details, the other searches by topic. No two tools have overlapping purposes.
Most tools follow a consistent byte_verb_noun pattern (e.g., byte_buy_data, byte_list_feeds). However, byte_subscription_health breaks the pattern (noun_noun) and byte_list_my_subscriptions includes 'my', which is slightly inconsistent.
15 tools cover the full data feed lifecycle: registration, publishing, subscribing, buying, checking status, searching, and verification. The count is well-scoped for the protocol's complexity—neither too few nor excessive.
The set covers all major operations: register, publish, subscribe, unsubscribe, buy single packets, query facts, check balances, verify payloads, and monitor subscription health. No obvious gaps—a user can manage their entire PayPerByte experience without missing functionality.
Available Tools
15 toolsbyte_buy_dataAInspect
Buy a single data packet from any PayPerByte feed via the x402 payment gateway. No subscription, no allowance, no prior on-chain setup — pay-per-call USDC settlement. The MCP server signs an EIP-3009 transferWithAuthorization on behalf of the wallet whose PRIVATE_KEY is configured, the x402 facilitator submits the tx, and the data comes back inline with the on-chain settlement tx hash. Use byte_subscribe instead if you want a continuous stream of broadcasts from a publisher. The catalog of available feed slugs lives at https://x402.payperbyte.io/feeds (free GET). Requires PRIVATE_KEY env var on the MCP server and USDC on the configured wallet. NOTE: paid feeds settle REAL USDC on Base mainnet (eip155:8453) — the exact price is quoted in the 402 challenge (flagship address-reputation: $0.05/verdict). Use a dedicated wallet holding only what you intend to spend.
| Name | Required | Description | Default |
|---|---|---|---|
| feed | Yes | Feed slug — one of: weather, earthquakes, space-weather, news-feed, code-pulse, runtime-eol, threat-intel, btc-metrics, pkg-facts, cve-facts, wiki-facts, merchant-trust, crypto-top100, defi-yields, byte-status. (For fact-oracle Q&A use byte_query_fact instead — it uses a different request-response flow.) |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | Decoded feed payload returned by the publisher |
| feed | No | Echoed feed slug |
| paid | No | True if an x402 payment was made (false on free/cached feeds) |
| error | No | Error message if the buy failed |
| payer | No | Wallet that signed the EIP-3009 authorization |
| price | No | USDC paid for this packet (e.g. '$0.001000'); omitted on free feeds |
| detail | No | Additional error detail, if any |
| status | No | HTTP status of the (post-payment) gateway response |
| txHash | No | x402 settlement transaction hash |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the exact process: the MCP server signs an EIP-3009 transferWithAuthorization, the x402 facilitator submits the tx, and data returns with the settlement tx hash. It warns that it settles REAL USDC on Base mainnet and recommends using a dedicated wallet. This goes beyond annotations by explaining the financial mechanism and risks.
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 detailed but every sentence adds necessary information. It is front-loaded with the core action and then provides contextual details. Minor redundancy could be tightened, but overall it is well-structured for a complex financial tool.
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 involves real money transactions on a blockchain, the description covers all critical aspects: what it does, how it works, prerequisites, security recommendations, alternative tools, and where to find feed catalog. The presence of an output schema is not needed because the description already describes the return (inline data with tx hash).
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 only parameter 'feed' is thoroughly documented in the schema with a list of valid slugs. The description adds context: it directs to the catalog for more feeds, and clarifies that for fact-oracle Q&A one should use 'byte_query_fact'. This adds semantic value beyond the schema enumeration.
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 buys a single data packet from a PayPerByte feed, using the specific verb 'buy' and resource 'data packet'. It distinguishes itself from the sibling tool 'byte_subscribe' by specifying that this is for one-off purchases, while the sibling is for continuous streams.
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 provides usage context: 'No subscription, no allowance, no prior on-chain setup' and directs to 'Use byte_subscribe instead if you want a continuous stream'. It also mentions the catalog URL for available feeds and prerequisites like the PRIVATE_KEY env var and USDC balance, offering clear when-to-use and alternative guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_check_subscriptionARead-onlyIdempotentInspect
Check if an address is subscribed to a specific publisher on PayPerByte.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher Ethereum address (0x...) | |
| subscriber | Yes | Subscriber Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscribed | Yes | True if the subscriber has an active subscription to the publisher |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, etc. The description adds no extra behavioral context beyond restating the purpose, so it doesn't enhance transparency beyond the structured fields.
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 wasted words, perfectly concise for a simple check tool.
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 simplicity, rich annotations, and presence of an output schema, the description is complete enough—it clearly conveys the core function without needing more detail.
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% and parameter descriptions are clear. The description adds no further meaning 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?
The description clearly states the verb 'Check' and the resource 'subscription between an address and a publisher', and it distinguishes from sibling tools like byte_subscribe and byte_unsubscribe.
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 when to use (to check a specific subscription), but lacks explicit guidance on when not to use or alternatives, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_get_network_statsARead-onlyIdempotentInspect
Get PayPerByte network-wide statistics: total publishers, messages streamed, and total subscriber fees settled in USDC.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| messages | No | Total messages streamed all-time |
| publishers | No | Active publisher count network-wide |
| totalSubscriberFeesUsdc | No | Total subscriber fees settled (USDC, decimal string) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, covering risk and idempotency. The description adds the specific data returned (publishers, messages, fees), which goes beyond annotations but doesn't address potential behavioral traits like caching or latency.
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, front-loaded with the verb and resource, no wasted words. Perfectly concise for a zero-parameter tool.
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 is present (so return values need not be explained), the description is complete. It names three specific metrics, and the annotations cover safety and idempotency.
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 zero parameters and 100% schema coverage, the description needs no param details. Baseline for 0 params is 4, and the description correctly omits anything redundant.
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 network-wide statistics including total publishers, messages streamed, and subscriber fees. It distinguishes itself from sibling tools like byte_register_publisher or byte_buy_data by focusing on aggregate metrics rather than individual actions.
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?
While no explicit when/when-not guidance is given, the tool's name and description make its purpose obvious. For a simple read-only stats tool with no parameters, the context is clear, though a brief note on when to prefer it over alternatives would elevate it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_get_publisherARead-onlyIdempotentInspect
Get on-chain info for a specific PayPerByte publisher: status, subscriber and message counts, USDC revenue, and the registered schema (size bounds, cadence, price-per-KB).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Publisher Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| schema | No | Registered schema (topic, sizes, cadence, price) |
| status | No | On-chain publisher status |
| address | Yes | Publisher Ethereum address |
| messages | No | Total messages published |
| lastActive | No | Unix timestamp of last on-chain activity |
| revenueUsdc | No | Total USDC revenue (decimal string) |
| subscribers | No | Active subscriber count |
| registeredAt | No | Unix timestamp of publisher registration |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, covering safety. Description adds behavioral context by listing the specific data returned (status, counts, revenue, schema), 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?
Single sentence, no wasted words. Purpose is front-loaded. Efficiently conveys the tool's function and output fields.
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-only tool with one parameter and an existing output schema, the description is sufficient. It lists the key return elements and the tool's purpose. No missing context.
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% and already describes the 'address' parameter. Description adds no additional meaning beyond implying the address identifies the publisher. 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?
Description clearly states 'Get on-chain info for a specific PayPerByte publisher' and lists specific fields (status, counts, revenue, schema). This distinguishes it from siblings like 'byte_search_publishers' which is for finding publishers.
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 implies use when needing info on a specific publisher, but does not explicitly contrast with alternative tools like 'byte_search_publishers' or mention when not to use. No when-to-use guidance provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_get_token_balancesARead-onlyIdempotentInspect
Get USDC and ETH balances for an address on Arbitrum Sepolia (the on-chain testnet layer — MockUSDC settles subscriptions and fact-oracle queries there). Does NOT show the Base-mainnet USDC balance that byte_buy_data spends.
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes | Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| eth | No | ETH balance (wei) |
| usdc | No | USDC balance (atomic, 6 decimals) |
| address | No | Echoed address |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, openWorldHint, idempotentHint, destructiveHint. Description adds network-specific context (Arbitrum Sepolia) and clarifies scope (only that testnet), which is valuable behavioral info. 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 concise sentences: first states purpose and network, second clarifies exclusion. No wasted words, information is front-loaded.
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?
Output schema exists, so return values are likely documented. Description clearly states what balances are retrieved (USDC and ETH on Arbitrum Sepolia) and network context. It does not mention pagination or rate limits, but for a simple balance check it is complete for selection and invocation.
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?
Input schema covers the single parameter 'address' with description. Schema description coverage is 100%, so the description does not need to add parameter details. Baseline 3 is appropriate as the description adds no extra parameter semantics.
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 states specific verb 'Get', resource 'USDC and ETH balances for an address', and network 'Arbitrum Sepolia'. It distinguishes itself by noting it does NOT show Base-mainnet USDC balance, which differentiates from sibling tool byte_buy_data.
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 provides context on when to use (for Arbitrum Sepolia testnet balances) and explicitly states what it does not do (Base-mainnet USDC). It contrasts with byte_buy_data, offering a clear alternative, but lacks explicit 'when not to use' for other scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_list_feedsARead-onlyIdempotentInspect
List all active data feeds in the PayPerByte catalog with topics, price-per-KB, and frequency.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| feeds | No | Catalog of active feeds |
Tool Definition Quality
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 that the output includes topics, price-per-KB, and frequency, but does not provide additional behavioral context beyond what annotations convey.
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, clear sentence with no unnecessary words. It is front-loaded with the core action and resource.
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 zero parameters and the presence of an output schema, the description is sufficient for a simple list tool. It could mention ordering or pagination, but that is not essential.
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?
No parameters exist, and schema coverage is 100%. The description does not need to explain parameters. Baseline score for zero parameters 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 lists all active data feeds and specifies the included attributes (topics, price-per-KB, frequency). This distinguishes it from sibling tools like byte_buy_data or byte_publish_data.
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. However, the context of listing feeds is implied, and sibling tool names suggest differentiation. A more explicit statement would improve clarity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_list_my_subscriptionsARead-onlyIdempotentInspect
List every active subscription for a given wallet address. Each entry has the publisher address, topic, status, when you subscribed, messages received in 7/30 days, USDC spent in 7/30 days, and the timestamp of the last message received. Use this to see what you're currently paying for and decide whether to unsubscribe.
| Name | Required | Description | Default |
|---|---|---|---|
| indexerUrl | No | Optional indexer URL override (default: INDEXER_URL/BYTE_INDEXER_URL env or https://feeds.payperbyte.io) | |
| subscriber | Yes | Wallet address to list subscriptions for |
Output Schema
| Name | Required | Description |
|---|---|---|
| subscriptions | No | Active subscriptions for the given wallet |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds output field details beyond annotations (publisher, topic, status, etc). Annotations already confirm read-only, idempotent, non-destructive nature. No side effects mentioned but not needed given 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, no fluff. Front-loads purpose and output fields, then adds usage guidance. Efficient and well-structured.
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 that output schema exists and description lists the key fields, the tool is fully specified. No missing information for a read-only list operation.
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%. Description does not add meaning beyond schema; it only restates the purpose of the subscriber and indexerUrl parameters. 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?
Description clearly states it lists active subscriptions for a wallet, with specific output fields. Distinguishes from sibling tools like byte_subscribe and byte_unsubscribe.
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?
Explicitly advises using it to review subscriptions and decide whether to unsubscribe. Provides clear context but lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_publish_dataADestructiveInspect
Publish data to a subscriber via the PayPerByte DataStream contract. Hashes the payload, records size on-chain, and settles the fee in USDC. Requires PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | Data payload to publish (will be hashed on-chain) | |
| maxFee | Yes | Maximum fee in USDC willing to pay for this publish (e.g. 0.05) | |
| subscriber | Yes | Subscriber Ethereum address (0x...) |
Output Schema
| Name | Required | Description |
|---|---|---|
| txHash | No | Publish transaction hash |
| success | No | True if publish landed on-chain |
| payloadHash | No | keccak256 of the payload as recorded on-chain |
| payloadSize | No | Payload size recorded on-chain (bytes) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and mutable behavior. The description adds specific behavioral details: hashing the payload, recording size on-chain, settling fees in USDC, and requiring PRIVATE_KEY. This goes beyond what annotations provide, giving a clear picture of side effects and prerequisites.
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 three sentences with no unnecessary words. It is front-loaded with the main purpose and efficiently conveys key actions and requirements.
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 description covers the core functionality, on-chain effects, and auth requirement. With an output schema present, it does not need to explain return values. It could include minor details like address format, but overall it is sufficiently complete for a three-parameter 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%, so baseline is 3. The description does not add significant meaning beyond the schema's parameter descriptions; it only mentions the payload being hashed and fee in USDC, which is already implied.
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 'publish', the resource 'data to a subscriber via the PayPerByte DataStream contract', and specific actions like hashing, recording size, and settling fees. It distinguishes from siblings by focusing on publishing data, which is not covered by other tools like byte_subscribe or byte_buy_data.
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 that the tool requires a PRIVATE_KEY, implying that it is for on-chain interaction, but does not explicitly state when to use it over alternatives or when not to use it. Context is clear but no exclusions or comparisons are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_query_factAInspect
Query a PayPerByte fact-oracle publisher for a verified factual answer with citations. Posts the question to a registered fact-oracle publisher (topic='fact-oracle'), waits for the on-chain BroadcastStreamed response, and returns the answer plus structured citation URLs. Use for grounding LLM outputs in real-time verified information.
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | The factual question to ask (e.g. 'What was last night's Lakers vs Warriors score?'). Should be specific and verifiable. | |
| topic_filter | No | Optional topic filter (e.g. 'fact-oracle' default; future: 'sports', 'finance'). | |
| max_byte_cost | No | Max response payload bytes you're willing to pay for (defaults to 2000, ≈$1 at $0.0005/byte). Publisher refuses if can't fit answer. | |
| min_publisher_pqs | No | Minimum PQS to consider (BPS scale, 0-10000). 9000 = Elite-only, 7500 = Premium+. | |
| subscriber_address | Yes | Your wallet address. You MUST be subscribed to the chosen publisher (with sufficient USDC escrow) or the publisher's on-chain broadcast will be skipped. | |
| max_response_latency_ms | No | Max time to wait for the publisher's broadcast (default 30000 ms). Local-LLM publishers (Ollama + Searxng + 3-sample NLI gate) take ~30-60s; Anthropic + passthrough takes ~10-20s. Hard ceiling 180s. |
Output Schema
| Name | Required | Description |
|---|---|---|
| error | No | Error message if the query failed (no eligible publisher, broadcast timeout, etc.) |
| answer | No | Publisher's grounded answer to the question |
| citations | No | URLs/sources cited by the publisher in support of the answer |
| confidence | No | Publisher-reported confidence (0-1) |
| elapsed_ms | No | End-to-end time to obtain the answer (ms) |
| request_id | No | Request id binding the query to this answer |
| payload_hash | No | keccak256 of the response payload |
| publisher_pqs | No | Publisher quality score (PQS) at fulfillment |
| publisher_address | No | Publisher address that fulfilled the query |
| response_size_bytes | No | Size of the response payload (bytes) |
| publisher_tx_or_status | No | Delivery status or settlement reference |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description comprehensively details behavioral traits: it posts a question to a registered publisher, waits for an on-chain BroadcastStreamed response, and returns structured citations. It explains cost and latency implications via parameters like max_byte_cost and max_response_latency_ms. No contradiction with annotations (readOnlyHint=false, openWorldHint=true).
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 three sentences long, front-loaded with the core purpose. Each sentence adds meaningful information without redundancy. It is well-organized and easy to parse.
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 (6 parameters, annotations, output schema), the description covers all essential aspects: purpose, usage, behavior, and parameter details. It is sufficiently complete for an AI agent to understand and invoke the tool 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?
With 100% schema coverage, the baseline is 3. The description adds value by providing examples and contextual defaults (e.g., 'max_byte_cost defaults to 2000, ≈$1 at $0.0005/byte'), which goes beyond the schema's basic 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 action ('query'), the resource ('PayPerByte fact-oracle publisher'), and the output ('verified factual answer with citations'). It distinguishes itself from sibling tools like byte_buy_data or byte_publish_data by specifying its unique role in grounding LLM outputs with real-time verified information.
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 explicit guidance on when to use the tool ('for grounding LLM outputs in real-time verified information'), implying a clear use case. It does not explicitly mention alternatives or when not to use it, but the context and sibling list offer sufficient differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_register_publisherADestructiveInspect
Register as a data publisher on PayPerByte. Registers a schema and the publisher on-chain. Requires PRIVATE_KEY. PayPerByte v1 publishers are first-party and unstaked — leave stake at '0'; a non-zero USDC stake is approved to DataRegistry first if you choose to post one.
| Name | Required | Description | Default |
|---|---|---|---|
| stake | Yes | USDC reputation stake to post, as a decimal string. Default '0' — PayPerByte v1 publishers are unstaked. | |
| topic | Yes | Data feed topic (e.g. 'eth-price', 'weather-nyc', 'gas-tracker') | |
| maxSize | Yes | Maximum payload size in bytes per message | |
| frequency | Yes | Expected publishing frequency in seconds | |
| pricePerKB | Yes | Price per kilobyte in USDC (e.g. 0.003) | |
| expectedSize | Yes | Expected payload size in bytes per message |
Output Schema
| Name | Required | Description |
|---|---|---|
| topic | No | Registered feed topic |
| txHash | No | Publisher-registration transaction hash |
| success | No | True if registration landed on-chain |
| publisher | No | Registered publisher address (the signer) |
| stakeUsdc | No | USDC stake posted (decimal string; '0' for v1 first-party) |
| schemaTxHash | No | Schema-registration transaction hash |
| approveTxHash | No | USDC stake approval tx hash, if a non-zero stake was posted |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructiveHint=true, but the description adds valuable behavioral context: it requires a PRIVATE_KEY, explains the stake default and approval process, and clarifies that PayPerByte v1 publishers are first-party and unstaked. This goes beyond the annotations' binary safety flags.
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 three sentences, front-loading the core action. It is compact and avoids redundancy, though the last sentence about stake is somewhat dense and could be split for clarity. Still, it earns its space.
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 an output schema present, the description does not need to detail return values. It covers prerequisites, parameter behavior, and the on-chain nature. However, it omits error handling, confirmation, or next steps after registration. Still, it is nearly complete for this tool's 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 100% with detailed parameter descriptions. The tool description reiterates the stake parameter's behavior but does not add significant new meaning beyond the schema. 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 the tool's purpose: 'Register as a data publisher on PayPerByte. Registers a schema and the publisher on-chain.' It uses specific verbs ('register') and resource ('data publisher', 'schema', 'publisher on-chain'), and the distinct name distinguishes it from sibling tools focused on buying data, subscribing, etc.
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 (registering as a publisher) and mentions a prerequisite ('Requires PRIVATE_KEY'), but it does not explicitly state when to use this tool versus alternatives or what conditions exclude its use. No guidance on 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.
byte_search_publishersARead-onlyIdempotentInspect
Search PayPerByte publishers by topic and sort order. Returns publisher addresses, topics, subscriber counts, message counts, and price-per-KB.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (default 20) | |
| query | No | Topic keyword to search (e.g. 'weather', 'crypto', 'cve') | |
| sortBy | No | Sort field: 'subscribers', 'revenue', 'messages' |
Output Schema
| Name | Required | Description |
|---|---|---|
| publishers | No | Matching publishers, sorted by the requested field |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds that it returns specific fields (addresses, topics, etc.), providing useful context 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 short sentences, front-loaded with the action and resource. No redundant words; every part 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 3 optional params fully documented, good annotations, and an output schema (though not shown), the description is complete. It covers the what, how, and what is returned.
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% (all parameters described). Description does not add new meaning beyond the schema's parameter descriptions; it only restates that search is by topic and sort order.
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?
Clear verb 'Search' with specific resource 'PayPerByte publishers' and criteria 'by topic and sort order'. Distinguishes from siblings like byte_get_publisher (single) and byte_list_feeds (list all).
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 clearly indicates when to use: search by topic and sort order. No explicit when-not or alternatives, but the context is clear enough for an agent to infer appropriateness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_subscribeAInspect
Subscribe to a PayPerByte publisher's data feed. By default also sets USDC allowance to DataStreamLib to type(uint256).max so the subscription doesn't silently lose payments when allowance depletes (the contract's allowance-skip path emits DataStreamed with amount=0 on transferFrom failure rather than reverting). Pass skipAllowance: true to opt out and set a finite cap manually. Requires PRIVATE_KEY.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher Ethereum address (0x...) to subscribe to | |
| skipAllowance | No | If true, don't bundle the USDC approve(max) call. Default false. Auto-approve is also skipped when the wallet already has ≥ $1000 USDC of allowance to DataStreamLib. |
Output Schema
| Name | Required | Description |
|---|---|---|
| txHash | No | Subscribe transaction hash |
| success | No | True if subscribe landed on-chain |
| publisher | No | Publisher subscribed to |
| allowanceTxHash | No | USDC approve(max) transaction hash, if bundled |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Fully discloses the default USDC allowance setting behavior and the failure path (emits DataStreamed with amount=0 on transferFrom failure). Explains the skipAllowance option and the auto-skip condition. No contradiction with annotations (readOnlyHint=false, destructiveHint=false).
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 front-loaded with the core purpose and provides necessary details without excessive fluff. It is slightly lengthy due to technical explanation, but each sentence adds value. Could be slightly more concise.
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 low parameter count (2) and complete schema coverage, the description fully explains the tool's behavior, including edge cases (allowance depletion, skipAllowance). The presence of an output schema (not shown but provided in context) means return values need not be described. Entirely complete for this tool's 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 100% with clear descriptions for both parameters. The description adds meaning by explaining the skipAllowance default and the logic behind auto-approval. Also mentions the PRIVATE_KEY requirement, which is not in the schema. Adds value beyond 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 explicitly states 'Subscribe to a PayPerByte publisher's data feed,' clearly identifying the action (subscribe) and resource (publisher's data feed). It distinguishes from siblings like byte_unsubscribe and byte_check_subscription.
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 clear guidance on when to use the tool (subscribing to a publisher) and when to use the skipAllowance parameter. Also explains the default allowance behavior and the PRIVATE_KEY requirement. However, it does not explicitly compare to alternative tools like byte_check_subscription for checking status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_subscription_healthARead-onlyIdempotentInspect
Get the content-drift signal for a publisher. Compares their last 7 days of publishing activity (cadence, message count) against their 23-day baseline (days 8-30). Returns 'stable' (steady publishing), 'moderate' (20-50% cadence shift or 24-48h silence), 'significant' (>50% shift or >48h silence), or 'unknown' (new publisher, insufficient baseline). Use this to detect when a publisher you subscribe to has pivoted content or gone dormant.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher address to check | |
| indexerUrl | No | Optional indexer URL override |
Output Schema
| Name | Required | Description |
|---|---|---|
| signal | No | Content-drift bucket for the publisher |
| publisher | No | Publisher address checked |
| messages7d | No | Messages in the last 7 days |
| messages30d | No | Messages in the last 30 days |
| messages_7d | No | Messages in the last 7 days (indexer key) |
| messages_30d | No | Messages in the last 30 days (indexer key) |
| silence_hours | No | Hours since the last message (null if never) |
| volume_ratio_bps | No | 7d/baseline volume ratio (bps) |
| cadence_drift_bps | No | Cadence drift vs 23-day baseline (bps) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, establishing safety and idempotency. The description adds substantial behavioral detail: it explains the algorithm (comparing last 7 days against a 23-day baseline), the possible return values ('stable', 'moderate', 'significant', 'unknown'), and the conditions for each. This fully compensates for any missing annotation detail and provides valuable context 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 concise and well-structured, with the primary purpose stated first. It consists of three sentences that efficiently convey the tool's function, algorithm, and recommended usage. No extraneous information is included, and every sentence contributes to understanding.
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 annotations (readOnly, idempotent, non-destructive) and output schema (present but not needed for completeness), the description is remarkably complete. It covers the tool's purpose, the algorithm, the possible output values, and the context for use. It does not miss any critical behavioral information, making it fully adequate for an AI agent to select and invoke the tool 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 coverage is 100%, meaning both parameters (publisher, indexerUrl) are described in the input schema. The description does not add new semantic information about the parameters beyond what the schema provides. The schema descriptions are already clear, so the description adds no additional value for parameter understanding. 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 the tool's purpose: 'Get the content-drift signal for a publisher.' It specifies the verb (Get), the resource (content-drift signal), and the context (publisher). This is distinct from sibling tools like byte_check_subscription, which likely checks subscription status, making it easy to differentiate.
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 advises when to use the tool: 'Use this to detect when a publisher you subscribe to has pivoted content or gone dormant.' This provides clear context for usage. It does not explicitly mention when not to use it or list alternatives, but the guidance is sufficient for an AI agent to understand its applicability.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_unsubscribeAInspect
Unsubscribe from a publisher's data feed. Takes effect next block: no more billing, no more data flow. Reversible — you can resubscribe later via byte_subscribe. Use this when a publisher has pivoted content (check with byte_subscription_health first) or when you simply don't want the feed anymore. Requires PRIVATE_KEY for the connected wallet.
| Name | Required | Description | Default |
|---|---|---|---|
| publisher | Yes | Publisher address to unsubscribe from |
Output Schema
| Name | Required | Description |
|---|---|---|
| status | No | Receipt status ('success' | 'reverted') |
| txHash | No | Unsubscribe transaction hash |
| publisher | No | Publisher unsubscribed from |
| subscriber | No | Subscriber address (the signer) |
| blockNumber | No | Block number the tx landed in |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the mutation effect, timing ('next block'), and reversibility. Notes PRIVATE_KEY requirement. Annotations (destructiveHint=false, idempotentHint=false) do not contradict. Could mention prerequisites like existing subscription.
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: definition, effect+reversibility, usage guidance. No wasted words, front-loaded with core action.
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 unsubscription tool with output schema, description covers key aspects. Could mention error conditions or prerequisites (e.g., must be subscribed) but implied by context.
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?
Only one parameter (publisher) with full schema coverage (pattern and description). Description adds no extra semantic meaning beyond schema. 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?
Clearly states 'Unsubscribe from a publisher's data feed' and explains the effect (next block, no billing/data flow). Distinguishes from siblings like byte_subscribe and byte_subscription_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?
Explicitly tells when to use (publisher pivoted content or simply don't want feed) and mentions checking byte_subscription_health first. Also notes reversibility via byte_subscribe. Does not explicitly state when not to use, but context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
byte_verify_payloadARead-onlyIdempotentInspect
Verify-before-act: confirm a data payload an agent is about to act on actually matches what the publisher cryptographically attested to on-chain. Recomputes keccak256 of the received bytes and compares it to the on-chain EIP-712 PayloadAttestation hash. ALWAYS call this on BYTE-sourced data before acting on it; if verified=false the bytes were tampered/corrupted in transit and MUST NOT be used. Anchor the check with EITHER expectedHash (an on-chain payloadHash you already hold, e.g. from byte_query_fact / byte_buy_data) OR txHash (the settlement tx — also recovers the attestation signer and confirms it is the named publisher). Read-only; no wallet or payment required.
| Name | Required | Description | Default |
|---|---|---|---|
| data | Yes | The exact payload bytes the agent received and is about to act on — the raw delivered string, or a 0x-prefixed hex byte string. | |
| txHash | No | Settlement tx hash whose on-chain BroadcastStreamed attestation to verify against. When provided, also recovers the EIP-712 signer and confirms it is the attesting publisher. | |
| hashMode | No | How to hash structured payloads: 'raw' (keccak of the utf8 string, default — matches byte_publish_data) or 'canonical' (keccak of key-sorted, whitespace-free JSON). | |
| expectedHash | No | On-chain payloadHash to verify against (0x + 64 hex), e.g. the payloadHash returned by byte_query_fact or byte_buy_data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| reason | Yes | Human-readable verdict an agent can surface when it acts or refuses |
| signer | No | Recovered EIP-712 attestation signer (txHash mode) |
| source | No | Which anchor was used: 'txHash' or 'expectedHash' |
| txHash | No | Settlement tx hash verified against (txHash mode) |
| verified | Yes | True only if the recomputed hash matches the on-chain attested hash AND (when a signer was recovered) the signer is the publisher. If false: do NOT act on the data. |
| hashMatch | Yes | Whether the recomputed hash equals the on-chain hash |
| blockNumber | No | Block number of the settlement tx (txHash mode) |
| onChainHash | Yes | The on-chain attested payloadHash compared against |
| signerMatch | No | Whether the recovered signer is the attesting publisher |
| recomputedHash | Yes | keccak256 of the received bytes |
| attestingPublisher | No | Publisher named in the on-chain event (txHash mode) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds value by explaining the verification mechanism (recomputing keccak256 and comparing to on-chain hash) and the recovery of the attestation signer when txHash is used. It discloses that if verified=false the data is tampered. 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 paragraph that front-loads the core purpose. Every sentence contributes necessary information (purpose, method, mandatory usage, failure consequence, anchoring options). It is slightly dense but not verbose. No redundant or filler content.
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 tool has an output schema, so return values are assumed to be documented there. The description covers the verification process, the two anchoring methods, and the critical failure implication. Given that this is a verification tool with clear inputs and outputs, the description is sufficiently complete for an agent to understand when and how to use 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 100%, providing baseline descriptions for all parameters. The description adds context beyond the schema by explaining how the parameters are used in the verification flow (e.g., 'data' as the exact payload to verify, 'txHash' to also recover signer, and the difference between 'raw' and 'canonical' hashing modes). This helps the agent choose between expectedHash and txHash.
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 starts with a clear verb-resource pair: 'Verify-before-act: confirm a data payload ... actually matches what the publisher cryptographically attested to on-chain.' It specifies the resource (BYTE-sourced data payload) and the action (cryptographic verification). This distinguishes it from siblings like byte_query_fact (query) and byte_buy_data (purchase), as it is a safety check to be used before acting on data.
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 states when to use the tool: 'ALWAYS call this on BYTE-sourced data before acting on it.' It also explains the consequence of verification failure ('bytes were tampered/corrupted in transit and MUST NOT be used') and provides two anchoring methods (expectedHash or txHash). While it does not mention when not to use it, the use case is clear and imperative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Your Connectors
Sign in to create a connector for this server.