Skip to main content
Glama

Agent Paywire library

Server Details

Read-only library, articles, and support data for Agent Paywire.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.4/5.0

Scored across 15 tools

Disambiguation3/5

Some tools overlap in purpose: search and search_library both query third-party library sources, and changes_since, latest_sources, and search(updated_since) all retrieve recent sources. Descriptions explicitly guide usage, reducing misselection, but the boundaries are not fully self-evident from names alone.

Naming Consistency4/5

The set is predominantly snake_case with get_* and list_* verb-noun pairs (10 tools), but several names break the pattern: changes_since, latest_sources, protocol_facts, and search. Still, the convention is readable and mostly consistent.

Tool Count4/5

15 tools cover multiple content types, search, sync, protocol facts, support, and trust. The count is at the upper end of well-scoped (3-15) and a few tools could potentially be merged, but each serves a distinct function.

Completeness5/5

The surface covers listing and retrieving every entity (articles, bots, datasets, sources), search, incremental sync, categories, protocol facts, support, and trust. No obvious lifecycle operation is missing for a read-only library API.

Available Tools

15 tools
changes_sinceList changes after a dateA
Read-onlyIdempotent
Inspect

List every record whose verified_at is later than cursor (exclusive) across library sources, articles, datasets, bots and support notes, with kind, id, title, url and verified_at. There is no limit or paging, so an old cursor can return the whole catalog (over 100 entries, about 43 KB); store the latest verified_at you saw and pass it next time. Non-library ids are prefixed (article:, dataset:, bot:, support:); remove the prefix before calling get_article, get_dataset, or get_bot. Library ids have no prefix and go to get_source. Use search with updated_since to filter library sources only, and latest_sources for a short newest-first list. A cursor that is not YYYY-MM-DD returns an isError result. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
cursorYesDate as YYYY-MM-DD, e.g. 2026-10-19. Records with verified_at strictly later are returned; today's date usually returns 0 rows. Other formats are rejected.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
cursorYes
entriesYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/non-destructive, so the description focuses on what they cannot express: there is no limit or paging, an old cursor can return the whole catalog (~100 entries, ~43 KB), and the caller should persist the newest verified_at as the next cursor. It also discloses that a malformed cursor yields an isError result and that the tool is free with no auth.

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

Conciseness5/5

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

One dense paragraph, but front-loaded with the core operation and then layered with operational caveats (no paging, size estimate, cursor chaining, id prefixes, alternatives, error mode). Every sentence carries actionable information and nothing is filler.

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

Completeness5/5

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

An output schema exists, so return-value explanation is unnecessary, and the description still covers the operational facts an agent needs: no pagination, id-prefix routing to sibling get_* tools, cursor chaining, and error behavior. Nothing needed to invoke this correctly is missing.

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

Parameters3/5

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

Schema coverage is 100% and the single cursor parameter is already fully documented in the schema, including the YYYY-MM-DD format and the 'strictly later' semantics. The description's cursor notes (exclusivity, invalid-format rejection) largely restate the schema, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb and resource ('List every record whose verified_at is later than cursor (exclusive)') plus the exact scope (library sources, articles, datasets, bots, support notes) and returned fields. It is unmistakably distinct from search, latest_sources, and the get_* siblings.

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

Usage Guidelines5/5

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

Explicitly routes the agent: 'Use search with updated_since to filter library sources only, and latest_sources for a short newest-first list.' It also tells the agent how to interpret returned ids (strip the article:/dataset:/bot:/support: prefix before calling the corresponding get_* tool, unprefixed ids go to get_source).

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

get_articleRead one articleA
Read-onlyIdempotent
Inspect

Return one Agent Paywire article as Markdown with YAML front matter, by slug. Get slugs from list_articles, or from changes_since after removing the article: prefix. Use get_source instead for third-party library sources, which are not articles. An unknown slug returns an isError result (No article with slug ...). Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
slugYesArticle slug exactly as in list_articles articles[].slug, e.g. machine-native-economy. Do not include the article: prefix that changes_since uses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
slugYes
markdownYes

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the description is free to add the traits that matter here: the exact output shape (Markdown + YAML front matter), the failure behavior (unknown slug yields an isError result containing 'No article with slug ...'), and the auth/cost model (free, no auth). That is meaningful disclosure beyond structured data.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core behavior and then proceeding to acquisition, disambiguation, and edge case. Each sentence carries distinct information with no restatement padding.

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

Completeness5/5

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

An output schema exists, so return values need not be enumerated, yet the description still states the serialization format. Combined with slug acquisition, the sibling disambiguation, the error case, and the no-auth note, everything needed to call this correctly on the first attempt is present.

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

Parameters3/5

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

Schema description coverage is 100% and there is a single parameter, so the schema already defines slug, its format example, and the 'no article: prefix' rule. The description restates the prefix caution but adds no syntax or format detail the schema lacks, so the baseline 3 applies.

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

Purpose5/5

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

States a specific verb (Return) and resource (one Agent Paywire article) plus the exact serialization format (Markdown with YAML front matter) and the keying mechanism (by slug). It also explicitly names what it is not: get_source is for third-party library sources, and list_articles/changes_since are the slug sources, so an agent can route correctly without opening sibling schemas.

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

Usage Guidelines5/5

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

Gives both when-to-use paths and their prerequisites: slugs come from list_articles[].slug or from changes_since after stripping the article: prefix. It also names the explicit alternative (get_source) and the condition that selects it (third-party library sources). Nothing about selection is left to inference.

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

get_botGet one verified botA
Read-onlyIdempotent
Inspect

Return one verified public agent or bot by id: name, maker, description, protocols, url, license, license_verified, license_url, verified_at, http_status, archive_url, funds_or_keys and notes. funds_or_keys is true when the software can access a wallet or keys. Take the id from list_bots entries[].id, or from changes_since after removing the bot: prefix. An unknown id returns an isError result (No bot with id ...). Use list_bots to browse every entry. Listed, not endorsed, not investment advice. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesBot id exactly as in list_bots entries[].id, e.g. lnget. Do not include the bot: prefix that changes_since uses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
nameYes
makerYes
notesYes
licenseYes
protocolsYes
archive_urlYes
descriptionYes
http_statusYes
license_urlYes
verified_atYes
funds_or_keysYes
license_verifiedYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare the tool as read-only, idempotent, non-destructive, and closed-world. The description adds useful behavioral context beyond annotations: an unknown id returns an isError result with a specific message, and the endpoint is free with no auth required.

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

Conciseness4/5

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

The description is front-loaded with the core action and remains a single readable paragraph. Some return-field enumeration is redundant because an output schema exists, but the extra sentences still carry useful semantics such as funds_or_keys meaning and no-auth access.

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

Completeness5/5

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

For a simple one-parameter lookup tool with full schema coverage, rich annotations, and an output schema, the description covers what is needed: id source, error behavior, auth status, and key field semantics. Nothing critical for correct invocation is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is a 3. The description goes beyond the schema by explaining how to obtain the id from list_bots or changes_since and by reminding the caller not to include the bot: prefix, which reduces invocation errors.

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

Purpose5/5

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

The description states a specific verb and resource: return one verified public agent or bot by id. It clearly distinguishes this lookup from browsing with list_bots, and the returned fields are enumerated, so an agent can identify the tool without opening the schema.

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

Usage Guidelines5/5

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

It explicitly explains where the required id comes from: list_bots entries[].id or changes_since after removing the bot: prefix. It also names list_bots as the tool for browsing every entry, giving a clear alternative when the agent does not already have an id.

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

get_datasetGet one dataset cardA
Read-onlyIdempotent
Inspect

Return one training or eval dataset card by id: name, publisher, url, access (open, login, or terms-acceptance), mirror_allowed and notes. A card is metadata only; this does not download dataset files, so follow url for the data. Take the id from list_datasets entries, or from changes_since after removing the dataset: prefix. An unknown id returns an isError result (the card file is 404). Use list_datasets to browse or compare cards, and search_library with category datasets-benchmarks for papers about datasets. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesDataset id exactly as in list_datasets entries[].id, e.g. agentpaywire-library. Do not include the dataset: prefix that changes_since uses.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
nameYes
notesYes
accessYes
publisherYes
mirror_allowedYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already cover read-only/idempotent/open-world, but the description adds value beyond them: metadata-only (no file download), unknown id yields an isError/404, and no auth is required. These are behavioral facts an agent cannot infer from the annotations alone.

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

Conciseness4/5

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

Front-loaded with purpose and scope, then constraints and alternatives; every sentence carries information. It is dense and runs several sentences, but none are filler or restatements of the name.

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

Completeness5/5

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

An output schema exists so return structure needn't be explained, yet the description still names the returned fields and the error path. With one required parameter and full annotation coverage, nothing needed to invoke this correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and the schema already documents the id parameter, including the 'dataset:' prefix caveat. The description adds the id's provenance (list_datasets entries[].id or changes_since with prefix removed), which is genuine added meaning beyond the schema's format note.

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

Purpose5/5

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

States a specific verb and resource ('Return one training or eval dataset card by id') and enumerates the card's fields. It also immediately clarifies scope ('metadata only; this does not download dataset files'), which distinguishes it from any data-fetching sibling.

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

Usage Guidelines5/5

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

Explicitly routes the agent: take the id from list_datasets entries or from changes_since after stripping the 'dataset:' prefix, and names list_datasets for browsing/comparison and search_library for dataset-related papers. This is exactly the when-to-use-this-vs-alternatives guidance the dimension asks for.

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

get_sourceGet one library sourceA
Read-onlyIdempotent
Inspect

Fetch one third-party library source card by id: title, publisher, authors, date_published, url, type, category, summary, tags, verified_at and featured. Ids are the sources[].id values from search, search_library or latest_sources, or changes_since entries of kind library (no prefix). Use search or search_library when you have no id, and get_article for Agent Paywire's own articles. An unknown id returns an isError result (No source with id ...). Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSource id exactly as returned in sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idYes
urlYes
tagsYes
typeYes
titleYes
authorsYes
summaryYes
categoryYes
featuredNo
publisherYes
verified_atYes
date_publishedYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, yet the description adds material context beyond them: an unknown id returns an isError result with the message shape, and the call is free with no auth required. That is exactly the extra behavioral disclosure the description should carry.

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

Conciseness4/5

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

Front-loaded with the core action and no filler sentences; the field enumeration and error/auth notes all earn their place. The middle sentence is a fairly long multi-clause run, but it stays readable and purposeful.

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

Completeness5/5

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

With a rich output schema handling return values and annotations covering the safety profile, the description covers the remaining agent needs: id sourcing, alternatives, error semantics, and auth/cost. Nothing required to invoke it correctly is missing.

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

Parameters4/5

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

Schema coverage is 100% and the id parameter is already well documented there, so the baseline is 3. The description goes further by explaining the provenance of the id value and noting that the prefix is absent for changes_since entries, which adds meaning beyond the schema.

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

Purpose5/5

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

Specific verb+resource ('Fetch one third-party library source card by id') plus an explicit enumeration of the returned fields. It also distinguishes itself from siblings by naming search, search_library, and get_article as different tools for different situations.

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

Usage Guidelines5/5

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

States exactly where a valid id comes from (sources[].id from search, search_library, latest_sources, or changes_since library entries) and when to use alternatives instead ('Use search or search_library when you have no id, and get_article for Agent Paywire's own articles'). Routing is fully explicit.

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

get_support_infoRead support and paid-API detailsA
Read-onlyIdempotent
Inspect

Return the voluntary support descriptor: donation methods (Bitcoin on-chain, Lightning BOLT12, USDC on EVM networks and Solana) with addresses, suggested sat amounts, and the paid_api block (L402 over Lightning, 100 sats for 100 credits, valid 30 days). Calling it never sends money or creates an invoice, and the data stays free whether or not anyone pays. Use it when a user wants to tip or asks how to pay for the API; use get_trust_checklist for error codes, rate-limit policy and stable URLs. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
methodsYes
voluntaryYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already establish readOnly/idempotent/non-destructive, but the description adds genuinely new behavioral facts: calling it never sends money or creates an invoice, and the data remains free regardless of payment. The 'Free, no auth' note also answers the auth requirement, which no annotation states.

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

Conciseness4/5

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

Front-loads the return payload, then adds behavioral caveats and the sibling routing hint in three dense sentences with no filler. It is slightly long because the enumerations of payment rails and the L402 pricing could be tightened, but every sentence carries actionable information.

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

Completeness5/5

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

An output schema exists, so the description is not obligated to detail return values, yet it characterizes the payload anyway. Combined with the auth/side-effect statement and sibling routing, an agent has everything needed to select and invoke it correctly.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline of 4 applies. The description correctly frames the call as argument-free ('Calling it never sends money'), and there is nothing further the schema cannot already convey.

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

Purpose5/5

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

States a specific verb and resource ('Return the voluntary support descriptor') and enumerates exactly what the payload contains: donation methods, networks, addresses, sat amounts, and the paid_api/L402 block. It also explicitly distinguishes itself from the sibling get_trust_checklist, so an agent can route correctly without opening either schema.

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

Usage Guidelines5/5

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

Gives an explicit trigger ('when a user wants to tip or asks how to pay for the API') and names the alternative for the adjacent need ('use get_trust_checklist for error codes, rate-limit policy and stable URLs'). When-to-use and when-to-use-something-else are both covered.

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

get_trust_checklistRead the trust checklistA
Read-onlyIdempotent
Inspect

Return the agent trust checklist for agentpaywire.com: commitments on stable URLs, errors and limits, and naming, each with status met or partial and evidence URLs, plus the paid API's error codes, rate-limit policy, credit terms and the list of MCP tools. Use it to judge whether the site and its paid API are dependable or to look up an error code; use get_support_info for donation addresses and payment methods, and protocol_facts for third-party protocols. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
itemsYes
titleYes
toolsYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), and the description adds context the annotations lack: 'Free, no auth.' It does not describe return format or freshness, but with an output schema present that burden is lifted.

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

Conciseness4/5

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

Front-loaded with the resource and its contents, then the usage and alternatives. It is a dense single sentence with several comma-separated lists, which is slightly heavy, but every clause (content scope, use cases, alternatives, auth/cost) earns its place.

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

Completeness5/5

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

For a zero-parameter read tool with an output schema, the description supplies everything an agent needs: what it returns, when to call it, which siblings to prefer instead, and that it is free and unauthenticated. Return-value detail is correctly delegated to the output schema.

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

Parameters4/5

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

The tool takes zero parameters, so the schema has nothing to explain; the baseline for a no-param tool applies. The description adds no parameter claims that could mislead.

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

Purpose5/5

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

States a specific verb ('Return') and resource (the agent trust checklist), then enumerates its contents: commitments on stable URLs, errors/limits, naming, status met/partial with evidence URLs, plus paid-API error codes, rate-limit policy, credit terms and the MCP tool list. This is specific enough that an agent can distinguish it from every sibling without opening a schema.

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

Usage Guidelines5/5

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

Explicitly states the two use cases ('judge whether the site and its paid API are dependable' or 'look up an error code') and names alternatives with the conditions that select them: get_support_info for donation addresses and payment methods, protocol_facts for third-party protocols. Nothing is left to inference.

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

latest_sourcesList newest library sourcesA
Read-onlyIdempotent
Inspect

Return the newest third-party library sources, sorted by date_published descending, with undated sources last. category keeps one category (ids from list_categories) before limit is applied; limit caps rows at 1-50 (default 10). There is no offset or cursor, and count is the rows returned, not the library total. Use changes_since to sync everything changed after a date, including articles, datasets and bots; use search or search_library for text, tag or type filters. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows to return, 1-50, default 10. Values above 50 are rejected, and there is no offset to page further.
categoryNoOptional category id from list_categories, e.g. bitcoin-lightning. Filters before the limit is applied; omit for all categories.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
sourcesYes

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/destructive/openWorld, so the bar is lower, yet the description still adds non-obvious operational traits: no offset or cursor, count is rows returned rather than library total, and no auth/free access. Sort ordering and undated-last behavior are also disclosed. It stops short of rate limits or error behavior, so not a full 5.

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

Conciseness4/5

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

A single dense paragraph with purpose and sort order front-loaded, then parameters, then pagination caveats, then routing to alternatives. Nearly every clause earns its place, though the middle sentences are tightly packed and could be split for scanability.

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

Completeness5/5

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

An output schema exists so return values need no explanation, and the description still covers the essentials an agent needs: defaults and bounds, filter-before-limit interaction, absence of paging, count semantics, auth requirements, and which sibling to pick instead. Nothing material is missing for a two-parameter read tool.

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

Parameters3/5

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

Schema coverage is 100%, so the schema already documents limit (1-50, default 10) and category (enum ids from list_categories, filter applied before limit). The description largely restates those facts ('category keeps one category before limit is applied; limit caps rows at 1-50'), adding only mild emphasis on the singular-category semantics. Baseline 3 applies when the schema does the heavy lifting.

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

Purpose5/5

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

States a specific verb and resource ('Return the newest third-party library sources') plus the ordering ('sorted by date_published descending, with undated sources last'). It also distinguishes itself from siblings by explicitly naming changes_since, search and search_library as the tools for different needs.

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

Usage Guidelines5/5

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

Gives explicit routing: use changes_since to sync everything changed after a date, use search/search_library for text, tag or type filters, and this tool for the newest sources. The condition that selects each alternative is spelled out, leaving nothing to inference.

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

list_articlesList published articlesA
Read-onlyIdempotent
Inspect

List all of Agent Paywire's own published articles with slug, title, summary, date, status, tags and URLs, in one unpaged response. Use get_article with a slug to read the full Markdown. For third-party papers, specs and reports, use search_library or latest_sources: articles are not library sources and do not appear there. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
articlesYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so safety is covered. The description adds genuinely new behavior: a single unpaged response and no auth requirement. It stops short of describing result ordering or size limits, but with annotations carrying the safety profile this is a strong addition.

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

Conciseness5/5

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

Three tight sentences, front-loaded with the core action before the field list and the alternative routing. No sentence is redundant and the exclusion is stated once, economically.

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

Completeness5/5

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

An output schema exists, so return values need not be re-explained, and the description still hints at the payload shape. For a zero-param, read-only list tool the agent has everything needed to select and call it correctly.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing to document and the schema is empty. Baseline for a parameterless tool is 4; the description correctly spends no effort on nonexistent inputs.

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

Purpose5/5

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

States a specific verb and resource (list published articles) and enumerates the returned fields (slug, title, summary, date, status, tags, URLs). It explicitly separates itself from get_article, search_library and latest_sources, so an agent can distinguish it from siblings without opening any schema.

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

Usage Guidelines5/5

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

Gives explicit when-to-use (enumerate all articles), when-to-use-an-alternative (get_article with a slug for full Markdown), and a hard exclusion with routing (third-party papers go to search_library or latest_sources, articles never appear there). Nothing is left to inference.

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

list_botsList verified agents and botsA
Read-onlyIdempotent
Inspect

List every verified public agent or bot that pays, gets paid, or connects a wallet, with maker, protocols, license status, url, verified_at and funds_or_keys (true when the software can access a wallet or keys). Inclusion needs a public repo or demo, a known maker, and a push in the 12 months before verification. Use this to find or vet such software; use search_library for papers and docs about agents, and protocol_facts for how a payment protocol works. Use get_bot with an entries[].id value for one record. changes_since lists recent edits as kind bot; remove the bot: prefix before calling get_bot. Listed, not endorsed, not investment advice. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
entriesYes
disclaimerYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare the safe-read profile (readOnly, idempotent, non-destructive, openWorld), so the description's added value is the inclusion policy (public repo or demo, known maker, push within 12 months), the 'Free, no auth' access note, and the 'listed, not endorsed, not investment advice' caveat. It does not mention rate limits or result-set size, but the output schema covers the return shape.

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

Conciseness4/5

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

The core purpose and inclusion rule are front-loaded, and every sentence does work (fields, criteria, sibling routing, disclaimer). It is dense and slightly over-packed for one paragraph, with the disclaimer and changes_since aside appended after the routing guidance, but nothing is truly redundant.

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

Completeness5/5

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

With zero parameters, a 100%-covered schema, an existing output schema, and rich read-only annotations, the description supplies everything else an agent needs: what qualifies for listing, what each record contains, which sibling to use instead, and how to fetch one record. Nothing material is missing.

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

Parameters4/5

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

The tool takes no input parameters, so there is nothing for the description to clarify and the baseline is 4. The description instead documents the shape of each returned entry (maker, protocols, license status, url, verified_at, funds_or_keys), which aids interpretation even though the output schema exists.

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

Purpose5/5

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

States a precise verb+resource (list verified public agents/bots) and immediately scopes what 'verified' means by naming the returned fields and the inclusion criteria. It is clearly distinguishable from every sibling (search_library, protocol_facts, get_bot) without opening a schema.

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

Usage Guidelines5/5

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

Explicitly says when to use it ('find or vet such software') and names the alternatives with their selecting conditions: search_library for papers/docs about agents, protocol_facts for how a payment protocol works, get_bot with an entries[].id for a single record. Even the changes_since/bot: prefix handoff is documented.

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

list_categoriesList library categoriesA
Read-onlyIdempotent
Inspect

List the eight library categories with id, label, featured flag, source count and links to each category's JSON, Markdown and HTML pages; Bitcoin and Lightning is first. Use it to get a valid category id before filtering search, search_library or latest_sources, or to see how many sources each topic holds. It does not list the sources themselves: use latest_sources with category for that. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
categoriesYes

TDQS

A4.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds non-annotation context: it is free, requires no auth, is a fixed set of eight items, and has a deterministic first entry. It does not discuss rate limits or pagination, but this is a small static read.

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

Conciseness5/5

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

Front-loaded with what is returned, then usage, then the sibling handoff, then the cost/auth note. Every clause carries information (returned fields, ordering, when-to-use, what it is not); no filler.

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

Completeness5/5

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

For a parameterless read tool with an output schema, the description covers everything an agent needs: contents, ordering, valid id retrieval, the alternative for listing sources, and the no-auth/free status.

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

Parameters4/5

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

Zero parameters, so per the rubric the baseline is 4. There is nothing for the description to disambiguate, and it correctly signals the tool takes no arguments.

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

Purpose5/5

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

States a specific verb and resource ('List the eight library categories') and enumerates the exact returned fields plus ordering ('Bitcoin and Lightning is first'). An agent can distinguish it from list_articles, list_bots, list_datasets and latest_sources at a glance.

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

Usage Guidelines5/5

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

Explicitly states when to use it ('to get a valid category id before filtering search, search_library or latest_sources, or to see how many sources each topic holds') and names the exclusion plus alternative ('It does not list the sources themselves: use latest_sources with category for that').

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

list_datasetsList dataset cardsA
Read-onlyIdempotent
Inspect

List every training and evaluation dataset card in the catalog (payments, Lightning, fraud, agent tool use) in one unpaged response; Agent Paywire's own library dataset is first. Each entry has id, name and url; count is the number of cards. Cards are metadata: nothing is downloaded. Use get_dataset with an entry id for access terms and mirror rights; use search_library with category datasets-benchmarks for papers and benchmark sources instead of datasets. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
entriesYes
model_noteYes

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), but the description adds real behavioral context: the response is unpaged, the library dataset is always first, cards are metadata only ('nothing is downloaded'), and the call is free with no auth. That is meaningful disclosure beyond the structured hints, though it doesn't discuss size limits or result caps.

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

Conciseness4/5

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

Front-loaded with the core action and scope, and every clause carries information (unpaged, ordering, metadata-only, alternatives, auth). The first sentence is long and multi-clause, which slightly reduces scannability, but there is no filler.

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

Completeness5/5

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

An output schema exists, so return-value detail is not required. Given a zero-parameter read tool, the description covers scope, ordering, side-effect profile, alternative tools, and auth cost — nothing an agent needs to invoke it correctly is missing.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to clarify about inputs. The mention of id/name/url and count describes the response shape rather than parameters, which is harmless but not parameter semantics.

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

Purpose5/5

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

States a specific verb and resource ('List every ... dataset card in the catalog'), names the domains covered, and explicitly distinguishes itself from get_dataset and search_library. An agent can separate it from all siblings without opening a schema.

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

Usage Guidelines5/5

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

Gives explicit routing rules: use get_dataset with an entry id for access terms, and use search_library with category datasets-benchmarks for papers/benchmark sources rather than datasets. Both the alternative and the condition that selects it are named.

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

protocol_factsGet checked protocol factsA
Read-onlyIdempotent
Inspect

Return source-cited facts for agent payment protocols: spec URL, HTTP status codes and headers, payment rail, networks, facilitators, client libraries, pay flow and an example. Every fact carries its source URL and verified_at; null means the cited page does not state it. Omit id for all nine protocols in a protocols array (about 23 KB); pass id for that one protocol's object only. Use this for how a protocol works; use search_library to find papers or docs about it, and get_support_info for this site's own paid L402 API. An id outside the enum is rejected as invalid input. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoLowercase protocol id from the enum, e.g. l402. Set it to get one protocol object (smaller response); omit it to get every protocol in a protocols array.

Output Schema

ParametersJSON Schema
NameRequiredDescription
idNo
protocolsNo

TDQS

A4.8/5.0
Behavior5/5

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

Annotations cover the safety profile (readOnly, idempotent, openWorld, non-destructive), and the description adds real behavioral context beyond them: null means the cited page does not state the fact, every fact carries source URL and verified_at, the all-protocols response is about 23 KB, out-of-enum ids are rejected as invalid input, and no auth is required.

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

Conciseness4/5

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

Front-loaded with purpose and tightly packed; the field enumeration is long but tells the agent what is inside without opening the output schema. Every sentence carries information, though the field list and the schema overlap slightly.

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

Completeness5/5

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

Given a single optional enum parameter, an output schema, and full annotation coverage, the description still supplies the null semantics, response size, auth status, and sibling routing an agent needs. Nothing material is missing.

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

Parameters4/5

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

Schema coverage is 100%, so the omit-vs-set semantics of id are already documented; the description largely mirrors that. It does add the quantified response size (~23 KB for nine protocols) and the invalid-enum rejection behavior, which the schema does not state.

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

Purpose5/5

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

Opens with a specific verb and resource ('Return source-cited facts for agent payment protocols') and enumerates exactly what a fact contains. It is immediately distinguishable from siblings like search_library and get_support_info, which the description itself names.

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

Usage Guidelines5/5

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

Explicit routing is given: use this for how a protocol works, search_library to find papers or docs about it, get_support_info for the site's own paid L402 API. It also states the two calling modes (omit id for all nine, pass id for one) so the agent knows when to pick which.

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

search_librarySearch library textA
Read-onlyIdempotent
Inspect

Search third-party library sources for every word in query: each word must appear, case-insensitively and as a substring, in id, title, summary, publisher, authors or tags. Use this for multi-word or author lookups. Use search for a single phrase with exact tag, type or updated_since filters, and get_source when you already have an id. Results are newest date_published first, undated last; limit caps rows at 1-50 with no offset, and count is the rows returned. No matches gives count 0, not an error. Free, no auth.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum rows, 1-50, default 10. Values above 50 are rejected; there is no offset, so narrow the query to see other matches.
queryYesSpace-separated words; every word must match (AND), case-insensitive substring. Example: lightning l402. An empty string matches everything.
categoryNoOptional category id from list_categories, e.g. bitcoin-lightning. Combined with query (AND).
featured_onlyNotrue returns only featured sources. Omit or false to include all.

Output Schema

ParametersJSON Schema
NameRequiredDescription
countYes
sourcesYes

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive, but the description goes well beyond them: result ordering (newest date_published first, undated last), the lack of offset, that count equals rows returned, that zero matches returns count 0 rather than an error, and that access is free with no auth. These are exactly the runtime traits an agent needs and cannot get from annotations.

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

Conciseness4/5

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

Front-loads the tool's purpose and then layers alternatives, ordering, caps, edge cases and auth into a compact block with no filler. It is dense and somewhat run-on across clauses, but every sentence carries distinct operational information.

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

Completeness5/5

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

An output schema exists so return-value shape need not be described, and the description still covers ordering, limit behaviour, count semantics, the zero-match case and auth requirements. Nothing an agent needs to invoke this correctly is missing.

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

Parameters4/5

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

Schema description coverage is 100%, so the baseline is 3, but the description adds matching semantics that the schema does not fully convey — which fields the substring match applies to, and that all terms are ANDed together. It also reinforces the limit/no-offset interaction, which is decision-relevant for narrowing a query rather than a restatement of the schema.

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

Purpose5/5

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

States a specific verb (search) and resource (third-party library sources) and precisely defines the matching semantics (every word must appear, case-insensitive substring across id, title, summary, publisher, authors, tags). It explicitly distinguishes itself from the sibling search tool and get_source, so an agent can route without opening either schema.

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

Usage Guidelines5/5

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

Explicitly names the conditions: use this for multi-word or author lookups, use search for a single phrase with exact tag/type/updated_since filters, and use get_source when the id is already known. When-to-use, when-not-to-use and alternatives are all present.

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

Tool Schema Changelog

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

  1. 9 tool updates
    • Changedchanges_since1 field changed
      • changedInput schema / properties / cursor / description
        Previous value: -"YYYY-MM-DD. Example: 2026-10-19. Records with a later verified_at are returned."New value: +"Date as YYYY-MM-DD, e.g. 2026-10-19. Records with verified_at strictly later are returned; today's date usually returns 0 rows. Other formats are rejected."
    • Changedget_article1 field changed
      • changedInput schema / properties / slug / description
        Previous value: -"Article slug. Example: machine-native-economy."New value: +"Article slug exactly as in list_articles articles[].slug, e.g. machine-native-economy. Do not include the article: prefix that changes_since uses."
    • Addedget_bot
    • Changedget_dataset1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Dataset id. Example: agentpaywire-library."New value: +"Dataset id exactly as in list_datasets entries[].id, e.g. agentpaywire-library. Do not include the dataset: prefix that changes_since uses."
    • Changedget_source1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Source id. Example: lightning-labs-l402-for-agents."New value: +"Source id exactly as returned in sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match."
    • Changedlatest_sources2 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Category id. Example: bitcoin-lightning."New value: +"Optional category id from list_categories, e.g. bitcoin-lightning. Filters before the limit is applied; omit for all categories."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum rows, from 1 to 50. Example: 10. Default 10."New value: +"Maximum rows to return, 1-50, default 10. Values above 50 are rejected, and there is no offset to page further."
    • Changedprotocol_facts1 field changed
      • changedInput schema / properties / id / description
        Previous value: -"Protocol id. Example: l402. Omit for every protocol."New value: +"Lowercase protocol id from the enum, e.g. l402. Set it to get one protocol object (smaller response); omit it to get every protocol in a protocols array."
    • Changedsearch7 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Category id. Example: bitcoin-lightning."New value: +"Category id from list_categories, e.g. bitcoin-lightning."
      • changedInput schema / properties / featured / description
        Previous value: -"true keeps featured records. Example: true. Omit to include the rest."New value: +"true returns only featured sources. Omit to include all."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum rows, from 1 to 50. Example: 10. Default 10."New value: +"Maximum rows, 1-50, default 10. Values above 50 are rejected; there is no offset."
      • changedInput schema / properties / q / description
        Previous value: -"One substring of id, title, summary, or publisher. Example: L402."New value: +"One substring, matched case-insensitively against id, title, summary or publisher (not authors or tags). Example: L402. Spaces are part of the substring."
      • changedInput schema / properties / tag / description
        Previous value: -"Exact tag. Example: l402."New value: +"One tag, exact match, e.g. l402."
      • changedInput schema / properties / type / description
        Previous value: -"Library type. Example: spec."New value: +"Source type from the enum, e.g. spec."
      • changedInput schema / properties / updated_since / description
        Previous value: -"YYYY-MM-DD exclusive lower bound on verified_at. Example: 2026-10-01."New value: +"YYYY-MM-DD calendar date; returns sources whose verified_at is later than this date (exclusive). A value that is not that form returns an isError result. Example: 2026-10-01."
    • Changedsearch_library4 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Category id. Example: bitcoin-lightning."New value: +"Optional category id from list_categories, e.g. bitcoin-lightning. Combined with query (AND)."
      • changedInput schema / properties / featured_only / description
        Previous value: -"true keeps sources marked featured. Example: true. Omit to include the rest."New value: +"true returns only featured sources. Omit or false to include all."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum rows, from 1 to 50. Example: 10. Default 10."New value: +"Maximum rows, 1-50, default 10. Values above 50 are rejected; there is no offset, so narrow the query to see other matches."
      • changedInput schema / properties / query / description
        Previous value: -"Words that must all match. Example: lightning l402."New value: +"Space-separated words; every word must match (AND), case-insensitive substring. Example: lightning l402. An empty string matches everything."
  2. 14 tool updates
    • Changedchanges_since2 fields changed
      • changedInput schema / properties / cursor / description
        Previous value: -"YYYY-MM-DD. Records with a later verified_at are returned."New value: +"YYYY-MM-DD. Example: 2026-10-19. Records with a later verified_at are returned."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "cursor": {
        +      "type": "string"
        +    },
        +    "entries": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "verified_at": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "kind",
        +          "title",
        +          "verified_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "cursor",
        +    "count",
        +    "entries"
        +  ],
        +  "type": "object"
        +}
    • Changedget_article2 fields changed
      • changedInput schema / properties / slug / description
        Previous value: -"Article slug, for example machine-native-economy."New value: +"Article slug. Example: machine-native-economy."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "markdown": {
        +      "type": "string"
        +    },
        +    "slug": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "slug",
        +    "markdown"
        +  ],
        +  "type": "object"
        +}
    • Changedget_dataset2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Dataset id, for example agentpaywire-library or elliptic."New value: +"Dataset id. Example: agentpaywire-library."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "access": {
        +      "enum": [
        +        "open",
        +        "login",
        +        "terms-acceptance"
        +      ],
        +      "type": "string"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "mirror_allowed": {
        +      "type": "boolean"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "notes": {
        +      "type": "string"
        +    },
        +    "publisher": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "name",
        +    "publisher",
        +    "url",
        +    "access",
        +    "mirror_allowed",
        +    "notes"
        +  ],
        +  "type": "object"
        +}
    • Changedget_source2 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Source id, for example lightning-labs-l402-for-agents."New value: +"Source id. Example: lightning-labs-l402-for-agents."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "authors": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "category": {
        +      "type": "string"
        +    },
        +    "date_published": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "featured": {
        +      "type": "boolean"
        +    },
        +    "id": {
        +      "type": "string"
        +    },
        +    "publisher": {
        +      "type": "string"
        +    },
        +    "summary": {
        +      "type": "string"
        +    },
        +    "tags": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "title": {
        +      "type": "string"
        +    },
        +    "type": {
        +      "type": "string"
        +    },
        +    "url": {
        +      "type": "string"
        +    },
        +    "verified_at": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "id",
        +    "title",
        +    "publisher",
        +    "authors",
        +    "date_published",
        +    "url",
        +    "type",
        +    "category",
        +    "summary",
        +    "tags",
        +    "verified_at"
        +  ],
        +  "type": "object"
        +}
    • Changedget_support_info1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "methods": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "type": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "type"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "voluntary": {
        +      "type": "boolean"
        +    }
        +  },
        +  "required": [
        +    "voluntary",
        +    "methods"
        +  ],
        +  "type": "object"
        +}
    • Changedget_trust_checklist1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "items": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "met",
        +              "partial"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "title": {
        +      "type": "string"
        +    },
        +    "tools": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "title",
        +    "items",
        +    "tools"
        +  ],
        +  "type": "object"
        +}
    • Changedlatest_sources6 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Optional category id."New value: +"Category id. Example: bitcoin-lightning."
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "bitcoin-lightning",
        +  "payments",
        +  "agent-protocols",
        +  "robotics-autonomy",
        +  "iot",
        +  "datasets-benchmarks",
        +  "safety-security",
        +  "regulation"
        +]
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results, 1 to 50. Default 10."New value: +"Maximum rows, from 1 to 50. Example: 10. Default 10."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "sources": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "authors": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "date_published": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "featured": {
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "publisher": {
        +            "type": "string"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          },
        +          "verified_at": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "publisher",
        +          "authors",
        +          "date_published",
        +          "url",
        +          "type",
        +          "category",
        +          "summary",
        +          "tags",
        +          "verified_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "sources"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_articles1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "articles": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "date": {
        +            "type": "string"
        +          },
        +          "md_url": {
        +            "type": "string"
        +          },
        +          "slug": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "type": "string"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "slug",
        +          "title",
        +          "summary",
        +          "date",
        +          "status",
        +          "tags",
        +          "url",
        +          "md_url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "articles"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_bots1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "disclaimer": {
        +      "type": "string"
        +    },
        +    "entries": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "funds_or_keys": {
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "maker": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "maker",
        +          "funds_or_keys",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "disclaimer",
        +    "entries"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_categories1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "categories": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "count": {
        +            "type": "number"
        +          },
        +          "featured": {
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "label",
        +          "featured",
        +          "count"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "categories"
        +  ],
        +  "type": "object"
        +}
    • Changedlist_datasets1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "entries": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "name",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "model_note": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "entries",
        +    "model_note"
        +  ],
        +  "type": "object"
        +}
    • Changedprotocol_facts3 fields changed
      • changedInput schema / properties / id / description
        Previous value: -"Protocol id, for example l402 or x402."New value: +"Protocol id. Example: l402. Omit for every protocol."
      • addedInput schema / properties / id / enum
        Added value: +[
        +  "l402",
        +  "bolt12",
        +  "bip21",
        +  "nwc",
        +  "x402",
        +  "mpp",
        +  "ap2",
        +  "acp",
        +  "ucp"
        +]
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": true,
        +  "properties": {
        +    "id": {
        +      "type": "string"
        +    },
        +    "protocols": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "id": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "type": "object"
        +}
    • Changedsearch12 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Exact category id."New value: +"Category id. Example: bitcoin-lightning."
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "bitcoin-lightning",
        +  "payments",
        +  "agent-protocols",
        +  "robotics-autonomy",
        +  "iot",
        +  "datasets-benchmarks",
        +  "safety-security",
        +  "regulation"
        +]
      • changedInput schema / properties / featured / description
        Previous value: -"When true, keep featured records."New value: +"true keeps featured records. Example: true. Omit to include the rest."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results, 1 to 50. Default 10."New value: +"Maximum rows, from 1 to 50. Example: 10. Default 10."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / q / description
        Previous value: -"Substring matched against id, title, summary, and publisher."New value: +"One substring of id, title, summary, or publisher. Example: L402."
      • changedInput schema / properties / tag / description
        Previous value: -"Exact tag."New value: +"Exact tag. Example: l402."
      • changedInput schema / properties / type / description
        Previous value: -"Exact library type."New value: +"Library type. Example: spec."
      • addedInput schema / properties / type / enum
        Added value: +[
        +  "announcement",
        +  "directory",
        +  "docs",
        +  "regulatory",
        +  "repo",
        +  "report",
        +  "research-paper",
        +  "spec"
        +]
      • changedInput schema / properties / updated_since / description
        Previous value: -"YYYY-MM-DD. Exclusive lower bound on verified_at."New value: +"YYYY-MM-DD exclusive lower bound on verified_at. Example: 2026-10-01."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "sources": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "authors": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "date_published": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "featured": {
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "publisher": {
        +            "type": "string"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          },
        +          "verified_at": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "publisher",
        +          "authors",
        +          "date_published",
        +          "url",
        +          "type",
        +          "category",
        +          "summary",
        +          "tags",
        +          "verified_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "sources"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_library8 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Category id, for example bitcoin-lightning."New value: +"Category id. Example: bitcoin-lightning."
      • addedInput schema / properties / category / enum
        Added value: +[
        +  "bitcoin-lightning",
        +  "payments",
        +  "agent-protocols",
        +  "robotics-autonomy",
        +  "iot",
        +  "datasets-benchmarks",
        +  "safety-security",
        +  "regulation"
        +]
      • changedInput schema / properties / featured_only / description
        Previous value: -"When true, keep sources marked featured."New value: +"true keeps sources marked featured. Example: true. Omit to include the rest."
      • changedInput schema / properties / limit / description
        Previous value: -"Maximum results, 1 to 50. Default 10."New value: +"Maximum rows, from 1 to 50. Example: 10. Default 10."
      • addedInput schema / properties / limit / maximum
        Added value: +50
      • addedInput schema / properties / limit / minimum
        Added value: +1
      • changedInput schema / properties / query / description
        Previous value: -"Words to match. An empty query returns the filtered list."New value: +"Words that must all match. Example: lightning l402."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "$schema": "http://json-schema.org/draft-07/schema#",
        +  "additionalProperties": false,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "sources": {
        +      "items": {
        +        "additionalProperties": true,
        +        "properties": {
        +          "authors": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "category": {
        +            "type": "string"
        +          },
        +          "date_published": {
        +            "type": [
        +              "string",
        +              "null"
        +            ]
        +          },
        +          "featured": {
        +            "type": "boolean"
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "publisher": {
        +            "type": "string"
        +          },
        +          "summary": {
        +            "type": "string"
        +          },
        +          "tags": {
        +            "items": {
        +              "type": "string"
        +            },
        +            "type": "array"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "type": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          },
        +          "verified_at": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "title",
        +          "publisher",
        +          "authors",
        +          "date_published",
        +          "url",
        +          "type",
        +          "category",
        +          "summary",
        +          "tags",
        +          "verified_at"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "count",
        +    "sources"
        +  ],
        +  "type": "object"
        +}
  3. 4 tool updates
    • Addedget_dataset
    • Addedget_trust_checklist
    • Addedlist_bots
    • Addedlist_datasets
  4. 10 tool updates
    • First observedchanges_since
    • First observedget_article
    • First observedget_source
    • First observedget_support_info
    • First observedlatest_sources
    • First observedlist_articles
    • First observedlist_categories
    • First observedprotocol_facts
    • First observedsearch
    • First observedsearch_library

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides read-only access to verified setup guides, install commands and auth details for official MCP servers, plugin/eval/benchmark/protocol references, and vendor pricing so coding agents can answer agent-stack setup and configuration questions.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Read-only remote tools let agents search a curated directory of skills, harnesses, MCP servers, tools, protocols and APIs, then fetch full entries plus long-form guides, comparisons, stacks and downloadable Agent Skills. Needs no install, API key or authentication over Streamable HTTP.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources