Skip to content

Agent Paywire library

by agentpaywire.com · remote · no sign-in to list tools · v1.0.0 · published by com.agentpaywire

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

Changes · 1

13 tools: 1 change things and 12 only read.

Scanned Oct 21, 2026

1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http library https://mcp.agentpaywire.com/mcp

Findings

Matches of fixed checks, with the text they matched.

1 warn
  • The server marks "list_changes" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "list_changes" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

13 tools

Changes things 1Claude Code: ask
  • list_changesSync records whose verified_at is later than cursor (exclusive) across library sources, articles, datasets, bots, and support notes.1 finding

    Why it is in this group

    • The name "list_changes" says "list": a word for reading.
    • The description's first verb is "sync": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "list_changes" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":true}; The name "list_changes" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Sync records whose verified_at is later than cursor (exclusive) across library sources, articles, datasets, bots, and support notes. Output is { cursor, count, entries }. cursor is the YYYY-MM-DD that was applied. count is the number of rows in that window. Each entry has kind (article, library, support, dataset, or bot), id, title, url, and verified_at. Some rows also include md_url, category, date_published, or note. Omit cursor to apply an exclusive cursor of UTC today minus 30 days; the response cursor is that date. Pass a YYYY-MM-DD cursor to sync from a stored date. There is no text filter, no limit, and no offset, so an old cursor can return the whole catalog (over 100 entries, about 43 KB). A cursor that is not YYYY-MM-DD returns isError with text cursor must be YYYY-MM-DD. A failed read returns isError whose text is the Error message. This free list is the raw changelog: it is not grouped by protocol and it is not Markdown, and it does not return source cards. Use search_sources instead when you want to browse or filter the library, including newest-first and updated_since (limit 1-50, no offset). Use list_categories, list_articles, list_datasets, list_bots, or get_support_info instead when you want the current full document rather than changelog rows. Use get_trust_checklist instead for the trust checklist. For one record, strip article: before get_article, dataset: before get_dataset, and bot: before get_bot. Library ids have no prefix; use get_source. Support rows have no per-id getter; use get_support_info or get_trust_checklist. Paid GET https://api.agentpaywire.com/v1/changes spends one credit and returns library source cards only, for an inclusive verified_at window, with protocol, category, and new-or-updated filters, as JSON or Markdown. Free, no auth.

    Annotations the server declares

    • title: List changes after a date
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
Only reads 12Claude Code: allow
  • get_articleReturn one of this site's own articles.No findings

    Why it is in this group

    • The name "get_article" says "get": a word for reading.
    Description, as the server wrote it
    Return one of this site's own articles. Output is { slug, markdown }. markdown is the article file with YAML front matter, and the same text is the tool content. Parameter slug is required and must match articles[].slug from list_articles. Example: machine-native-economy. Do not include the article: prefix that list_changes uses. A missing slug is rejected as invalid input. An unknown slug returns isError with text No article with slug <slug>. A failed read returns isError whose text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Article fetch failed. when the failure is not an Error. Use list_articles instead when you do not have a slug. Use get_source instead for a third-party library source. Use search_sources instead to find papers and docs. Free, no auth.

    Annotations the server declares

    • title: Read one article
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_botReturn one entry from the bot catalog by exact id.No findings

    Why it is in this group

    • The name "get_bot" says "get": a word for reading.
    Description, as the server wrote it
    Return one entry from the bot catalog by exact id. Output is that entry alone, not wrapped in entries or count: id, name, maker, description, protocols (strings), url, license (string or null), license_verified, license_url (string or null), verified_at (YYYY-MM-DD), http_status (integer or null), archive_url (string or null), funds_or_keys, and notes. funds_or_keys is true when the software can access a wallet or keys. Parameter id is required. It must equal list_bots entries[].id. Catalog ids are lowercase letters, digits, and hyphens. Example: lnget. Do not include the bot: prefix that list_changes uses; strip it first. A missing id is rejected as invalid input. An unknown id returns isError with text No bot with id <id>. A failed read of /bots.json returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Bot lookup failed. when the failure is not an Error. Use get_bot instead of list_bots when you already have one id. Use list_bots instead when you need the catalog, the count, the disclaimer, or the inclusion rule, or when you do not know the id. Use search_sources instead for papers and docs about agents. Listed, not endorsed. Not investment advice. Free, no auth.

    Annotations the server declares

    • title: Get one verified bot
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: false
  • get_datasetReturn one dataset card from /datasets/<id>/card.json.No findings

    Why it is in this group

    • The name "get_dataset" says "get": a word for reading.
    Description, as the server wrote it
    Return one dataset card from /datasets/<id>/card.json. Output is one object: id, name, publisher, url, license (string or null), license_verified, license_url (string or null), approx_size, size_bytes (integer or null), format, access (open, login, or terms-acceptance), relevance, mirror_allowed, verified_at, http_status (integer or null), archive_url (string or null), data_period (string or null), sample_url (string or null), and notes. A card is metadata only and does not download dataset files; follow url for the data. Parameter id is required and must match list_datasets entries[].id. Example: agentpaywire-library. Do not include the dataset: prefix that list_changes uses. A missing id is rejected as invalid input. An unknown id returns isError with text Fetch failed 404 <card url>. A failed read for another status uses that same Fetch failed <status> <url> text. Use list_datasets instead when you need the catalog or do not know the id. Use search_sources with category datasets-benchmarks instead for papers about datasets. Free, no auth.

    Annotations the server declares

    • title: Get one dataset card
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_protocol_factsReturn 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.No findings

    Why it is in this group

    • The name "get_protocol_facts" says "get": a word for reading.
    Description, as the server wrote it
    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 and the output is the protocol-facts document whose protocols array has all nine protocols (about 23 KB), unpaged. Pass id and the output is that one protocol object. There is no offset. Parameter id is optional and must be one of l402, bolt12, bip21, nwc, x402, mpp, ap2, acp, ucp. Example: l402. An id outside the enum is rejected as invalid input. An enum id missing from the file returns isError with text No protocol with id <id>. A failed read returns isError whose text is the Error message. Use get_protocol_facts instead of search_sources when you need cited protocol facts rather than papers or docs. Use search_sources instead for those papers and docs. Use get_support_info instead for this site's donation addresses and paid API price. Use get_trust_checklist instead for this site's error codes and rate limits. Free, no auth.

    Annotations the server declares

    • title: Get checked protocol facts
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_sourceFetch one third-party library source card by id.No findings

    Why it is in this group

    • The name "get_source" says "get": a word for reading.
    Description, as the server wrote it
    Fetch one third-party library source card by id. Output is one object: id, title, publisher, authors, date_published (YYYY-MM-DD or null), url, type, category, summary, tags, verified_at, and featured only when it is true. Parameter id is required and must match sources[].id from search_sources, or a list_changes entry of kind library (those ids have no prefix). Example: lightning-labs-l402-for-agents. A missing id is rejected as invalid input. An unknown id returns isError with text No source with id <id>. A failed library read returns isError whose text is the Error message. Use search_sources instead when you have no id or need a filtered list (limit 1-50, no offset). Use list_categories instead when you need the category list. Use get_article instead for this site's own articles. Use list_changes instead for changelog rows. Free, no auth.

    Annotations the server declares

    • title: Get one library source
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_support_infoReturn the whole voluntary support document from /support.json.No findings

    Why it is in this group

    • The name "get_support_info" says "get": a word for reading.
    Description, as the server wrote it
    Return the whole voluntary support document from /support.json. Output fields: voluntary (true), purpose, data_is_free (true), access_conditional_on_payment (false), methods, suggested_amounts_sats, suggested_amounts_optional (true), note, updated (YYYY-MM-DD), warning, usdc_contracts_source, and paid_api while the paid API is live. methods[].type is bitcoin-onchain (P2WPKH native-segwit mainnet address, bip21_uri, qr_svg, qr_text), lightning-bolt12 (offer, uri, bip21_uri, qr_svg, qr_text), evm-stablecoin (asset USDC; network Base, Ethereum, or Arbitrum One; chain_id, address, token_contract, eip681_uri; Base is primary and has the QR fields), or solana-stablecoin (asset USDC, network Solana, address, mint, uri, qr_svg, qr_text). suggested_amounts_sats is an array of optional satoshi tip amounts, not a price. paid_api has live, paid, protocol L402, payment Lightning, url, price_sats 100, credits 100, ttl_days 30, and note. One document, unpaged. Takes no parameters: call with an empty object. Calling it never sends money and never creates an invoice. Use get_support_info instead of get_trust_checklist when you need a donation address, a payment URI, a QR link, suggested sat amounts, or the paid_api price block. Use get_trust_checklist instead when you need error codes, the rate-limit policy (no client limit and no HTTP 429; a wallet limit is HTTP 503 with Retry-After), stable URLs, or met/partial checklist status. Use get_protocol_facts instead when you need how a third-party payment protocol works. A failed read returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Support lookup failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: Read support and paid-API details
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • get_trust_checklistReturn the whole /trust.json agent trust checklist for agentpaywire.com.No findings

    Why it is in this group

    • The name "get_trust_checklist" says "get": a word for reading.
    Description, as the server wrote it
    Return the whole /trust.json agent trust checklist for agentpaywire.com. Output includes title, description, free_data, items, count (items.length), tools, errors, wallet_error_codes, rate_limits, credits, urls, error_body, usage, and authorization. Each item has id, title, status (met or partial), statement, and evidence URLs. tools lists the advertised MCP tool names. rate_limits.http_429 is false and rate_limits.client is null; a wallet limit is HTTP 503 with Retry-After. credits repeats price_sats, credits, and ttl_days. One unpaged document. Takes no parameters: call with an empty object. Use get_trust_checklist instead of get_support_info when you need error codes, the rate-limit policy, stable URLs, credit terms, or met/partial status. Use get_support_info instead when you need donation addresses, payment URIs, QR links, or the paid_api price block. Use get_protocol_facts instead for third-party protocol facts. A failed read returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Trust checklist failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: Read the trust checklist
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • list_articlesList all of this site's own published articles in one unpaged response.No findings

    Why it is in this group

    • The name "list_articles" says "list": a word for reading.
    Description, as the server wrote it
    List all of this site's own published articles in one unpaged response. Output is { articles: [{ slug, title, summary, date, status, tags, url, md_url }] }. There is no limit or offset. Takes no parameters: call with an empty object. Use get_article instead when you have a slug and need the Markdown. Use search_sources instead for third-party papers, specs, and reports. Use list_changes instead for recent edits (article rows prefix the id with article:). A failed read returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Article list failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: List published articles
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • list_botsReturn the whole /bots.json catalog of public agents and bots that pay, get paid, or connect a wallet.No findings

    Why it is in this group

    • The name "list_bots" says "list": a word for reading.
    Description, as the server wrote it
    Return the whole /bots.json catalog of public agents and bots that pay, get paid, or connect a wallet. Output is { schema_version, generated_at, language, title, description, disclaimer, inclusion, schema, html_url, markdown_url, count, entries }. count equals entries.length. disclaimer is "Listed, not endorsed. Not investment advice." The inclusion field states the rule: a public repository or demo, a known maker, a push in the 12 months before verification, and a license taken from a LICENSE file or marked unconfirmed. Each entries[] item is the same object get_bot returns: id, name, maker, description, protocols, url, license (string or null), license_verified, license_url (string or null), verified_at (YYYY-MM-DD), http_status (integer or null), archive_url (string or null), funds_or_keys, and notes. funds_or_keys is true when the software can access a wallet or keys. One unpaged response: no limit, no offset, and no text filter. Takes no parameters: call with an empty object. Use list_bots instead of get_bot when you need every entry, the count, the disclaimer, or the inclusion rule. Use get_bot instead when you already have one id and want that single object; an unknown id is an error on get_bot, not an empty list here. Use search_sources instead for papers and docs about agents. Use get_protocol_facts instead for how a payment protocol works. list_changes rows of kind bot prefix the id with bot:; strip that prefix before get_bot. A failed read returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Bot list failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: List verified agents and bots
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • list_categoriesReturn the closed list of eight library categories and nothing else.No findings

    Why it is in this group

    • The name "list_categories" says "list": a word for reading.
    Description, as the server wrote it
    Return the closed list of eight library categories and nothing else. Output is { categories: [{ id, label, featured, count, json_url, markdown_url, html_url }] }. id is the category id, for example bitcoin-lightning. label is the display name. featured is true only for Bitcoin and Lightning, which is first. count is how many library sources are in that category. json_url, markdown_url, and html_url are absolute links to that category JSON, Markdown, and HTML. There is no source array and no top-level count. Takes no parameters: call with an empty object. The list is unpaged and always the full set; there is no limit or offset. Use list_categories instead of search_sources when you need category ids, labels, or counts. Use search_sources instead when you need the source cards in a category (pass category, for example bitcoin-lightning; limit 1-50, no offset). Use get_source instead when you already have a source id. A failed read of the library file returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Category list failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: List library categories
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • list_datasetsList every training and evaluation dataset card in one unpaged response.No findings

    Why it is in this group

    • The name "list_datasets" says "list": a word for reading.
    Description, as the server wrote it
    List every training and evaluation dataset card in one unpaged response. Output is the /datasets/index.json document: count, model_note, policy, and entries, plus the index title, description, and links. count is the number of cards. Each entries[] item is a full card: id, name, publisher, url, license (string or null), license_verified, license_url, approx_size, size_bytes (integer or null), format, access (open, login, or terms-acceptance), relevance, mirror_allowed, verified_at, http_status, archive_url, data_period, sample_url, and notes. This site's own library dataset is first. Cards are metadata: nothing is downloaded. There is no limit or offset. Takes no parameters: call with an empty object. Use get_dataset instead when you have an id and want that one card from /datasets/<id>/card.json. Use search_sources with category datasets-benchmarks instead for papers and benchmark sources, which are not these cards. Use list_changes instead for recent dataset edits (those ids use a dataset: prefix). A failed read returns isError. The text is the Error message (Fetch failed <status> <url> when the HTTP status is not OK), or Dataset list failed. when the failure is not an Error. Free, no auth.

    Annotations the server declares

    • title: List dataset cards
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true
  • search_sourcesFind third-party library source cards.No findings

    Why it is in this group

    • The name "search_sources" says "search": a word for reading.
    Description, as the server wrote it
    Find third-party library source cards. This is the only library lookup: text, exact filters, and newest-first browsing. Output is { count, sources }. Each source has id, title, publisher, authors, date_published (YYYY-MM-DD or null), url, type, category, summary, tags, verified_at, and featured only when it is true. count is the rows returned, not the catalog size. query words must all match as case-insensitive substrings of id, title, summary, publisher, type, authors, or tags. category, tag, type, featured, and updated_since are AND filters. Omit query to list the newest sources, optionally in one category. Results are newest date_published first, undated last. limit is 1-50 (default 10) with no offset. No matches returns count 0 and sources []. A non-calendar updated_since, or an unknown category, returns an isError result. A failed library read returns isError whose text is the Error message. Use get_source instead when you already have a source id. Use list_categories instead when you need category ids, labels, and counts rather than source cards. Use list_changes instead when you need the unpaged cross-catalog changelog rather than source cards. Use get_protocol_facts instead when you need cited facts for a payment protocol. Use list_articles instead for this site's own articles. Free, no auth.

    Annotations the server declares

    • title: Search library sources
    • readOnlyHint: true
    • idempotentHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http library https://mcp.agentpaywire.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__library__search_sources",
      "mcp__library__get_source",
      "mcp__library__list_categories",
      "mcp__library__list_articles",
      "mcp__library__get_article",
      "mcp__library__get_protocol_facts",
      "mcp__library__get_support_info",
      "mcp__library__get_trust_checklist",
      "mcp__library__list_datasets",
      "mcp__library__get_dataset",
      "mcp__library__list_bots",
      "mcp__library__get_bot"
    ],
    "ask": [
      "mcp__library__list_changes"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as library. Review it before you use it.