Koskamo

Agent Paywire MCP

Provides 21 tools for AI agents to interact with the Agent Paywire library, including reading articles, bots, datasets, and reviews, as well as submitting reviews and creating alerts for machine-to-machine payments and stablecoin data.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Agent Paywire MCP logo, by Agent PaywireVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-01Operated by Agent Paywire
MCP endpoint (Streamable HTTP)
https://mcp.agentpaywire.com/mcp
Vendor documentation

What you can do with it

  • Retrieve articles and bot information from the library
  • Submit reviews for paid services
  • Check payment endpoints and verification status
  • List datasets and protocol facts

Source and maintenance

Vendor evidenceRegistry 1.1.0

Protocol and capabilities

Server
com.agentpaywire/library 1.1.0
MCP protocol
2025-06-18
Tools
21 advertised
Resources
9 advertised
Resource templates
1 advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {
    "listChanged": true
  },
  "resources": {
    "listChanged": true
  }
}

Tools

21 advertised

search_sources — Search library sources
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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, status, 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, status, 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 status outside the enum is invalid input. 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.

search_sources input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "tag": {
      "type": "string",
      "description": "One tag, exact match, e.g. l402. Combined with the other filters (AND)."
    },
    "type": {
      "enum": [
        "announcement",
        "directory",
        "docs",
        "regulatory",
        "repo",
        "report",
        "research-paper",
        "spec"
      ],
      "type": "string",
      "description": "Source type from the enum, e.g. spec. Combined with the other filters (AND)."
    },
    "limit": {
      "type": "integer",
      "maximum": 50,
      "minimum": 1,
      "description": "Maximum rows, 1-50, default 10. Values above 50 are rejected. There is no offset; narrow the filters to see other matches."
    },
    "query": {
      "type": "string",
      "description": "Space-separated words; every word must match (AND), case-insensitive substring of id, title, summary, publisher, type, authors, or tags. Example: lightning l402. Omit or use an empty string to skip the text filter."
    },
    "status": {
      "enum": [
        "proposal",
        "individual_draft",
        "working_group_draft",
        "standard",
        "spec_released",
        "product_docs",
        "news",
        "research",
        "unknown"
      ],
      "type": "string",
      "description": "Exact library status: proposal, individual_draft, working_group_draft, standard, spec_released, product_docs, news, research, or unknown. Combined with the other filters (AND)."
    },
    "category": {
      "enum": [
        "bitcoin-lightning",
        "payments",
        "agent-protocols",
        "robotics-autonomy",
        "iot",
        "datasets-benchmarks",
        "safety-security",
        "regulation"
      ],
      "type": "string",
      "description": "Category id from list_categories, e.g. bitcoin-lightning. Combined with the other filters (AND). Omit for every category."
    },
    "featured": {
      "type": "boolean",
      "description": "true returns only featured sources. Omit or false to include all."
    },
    "updated_since": {
      "type": "string",
      "description": "YYYY-MM-DD calendar date. Keeps 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."
    }
  },
  "additionalProperties": false
}
search_sources output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "sources"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "title",
          "publisher",
          "authors",
          "date_published",
          "url",
          "type",
          "category",
          "summary",
          "tags",
          "verified_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "type": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "enum": [
              "proposal",
              "individual_draft",
              "working_group_draft",
              "standard",
              "spec_released",
              "product_docs",
              "news",
              "research",
              "unknown"
            ],
            "type": "string",
            "default": "unknown"
          },
          "authors": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "summary": {
            "type": "string"
          },
          "category": {
            "type": "string"
          },
          "featured": {
            "type": "boolean"
          },
          "publisher": {
            "type": "string"
          },
          "verified_at": {
            "type": "string"
          },
          "date_published": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": false
}
search_sources annotations
{
  "title": "Search library sources",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_source — Get one library source
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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, status, 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.

get_source input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Required. Source id exactly as in search_sources sources[].id, e.g. lightning-labs-l402-for-agents. Case and hyphens must match. Library changelog ids have no prefix. A missing id is invalid input. An unknown id returns isError text No source with id <id>."
    }
  },
  "additionalProperties": false
}
get_source output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "title",
    "publisher",
    "authors",
    "date_published",
    "url",
    "type",
    "category",
    "summary",
    "tags",
    "verified_at"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "type": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "status": {
      "enum": [
        "proposal",
        "individual_draft",
        "working_group_draft",
        "standard",
        "spec_released",
        "product_docs",
        "news",
        "research",
        "unknown"
      ],
      "type": "string",
      "default": "unknown"
    },
    "authors": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "summary": {
      "type": "string"
    },
    "category": {
      "type": "string"
    },
    "featured": {
      "type": "boolean"
    },
    "publisher": {
      "type": "string"
    },
    "verified_at": {
      "type": "string"
    },
    "date_published": {
      "type": [
        "string",
        "null"
      ]
    }
  },
  "additionalProperties": true
}
get_source annotations
{
  "title": "Get one library source",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_categories — List library categories
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_categories input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_categories output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "categories"
  ],
  "properties": {
    "categories": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "label",
          "featured",
          "count"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "count": {
            "type": "number"
          },
          "label": {
            "type": "string"
          },
          "featured": {
            "type": "boolean"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": false
}
list_categories annotations
{
  "title": "List library categories",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_articles — List published articles
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_articles input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_articles output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "articles"
  ],
  "properties": {
    "articles": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "slug",
          "title",
          "summary",
          "date",
          "status",
          "tags",
          "url",
          "md_url"
        ],
        "properties": {
          "url": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "slug": {
            "type": "string"
          },
          "tags": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "title": {
            "type": "string"
          },
          "md_url": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    }
  },
  "additionalProperties": false
}
list_articles annotations
{
  "title": "List published articles",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_article — Read one article
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_article input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "slug"
  ],
  "properties": {
    "slug": {
      "type": "string",
      "description": "Required. Article slug exactly as in list_articles articles[].slug, e.g. machine-native-economy. Lowercase words separated by hyphens. Do not include the article: prefix that list_changes uses. A missing slug is invalid input. An unknown slug returns isError text No article with slug <slug>."
    }
  },
  "additionalProperties": false
}
get_article output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "slug",
    "markdown"
  ],
  "properties": {
    "slug": {
      "type": "string"
    },
    "markdown": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
get_article annotations
{
  "title": "Read one article",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_changes — List changes after a date
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 returns library source cards only, for an inclusive verified_at window, with protocol, category, and new-or-updated filters, as JSON or Markdown. Each client gets 5 unpaid calls per rolling 24 hours. A response in that allowance is HTTP 200 with X-Trial-Remaining and does not spend a credit. After that, the unpaid call is HTTP 402 via x402 or L402. A valid paid call spends one credit and does not use the allowance. Free, no auth.

list_changes input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "cursor": {
      "type": "string",
      "description": "Optional YYYY-MM-DD, e.g. 2026-10-19. Records with verified_at strictly later are returned. Omit it to use UTC today minus 30 days. A value that is not YYYY-MM-DD is rejected."
    }
  },
  "additionalProperties": false
}
list_changes output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "cursor",
    "count",
    "entries"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "cursor": {
      "type": "string"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "title",
          "verified_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "verified_at": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": false
}
list_changes annotations
{
  "title": "List changes after a date",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_protocol_facts — Get checked protocol facts
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 ten protocols, 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, mcp. The mcp object has release_cadence and next_release_target from SEP-3398. 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.

get_protocol_facts input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "enum": [
        "l402",
        "bolt12",
        "bip21",
        "nwc",
        "x402",
        "mpp",
        "ap2",
        "acp",
        "ucp",
        "mcp"
      ],
      "type": "string",
      "description": "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."
    }
  },
  "additionalProperties": false
}
get_protocol_facts output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "id": {
      "type": "string"
    },
    "protocols": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id"
        ],
        "properties": {
          "id": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
get_protocol_facts annotations
{
  "title": "Get checked protocol facts",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_sdk_security — Read the SDK security registry
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Return /api/sdk-security.json. Output is the SDK security document: schema_version, generated_at, disclaimer, description, count, and entries. count equals entries.length. Each entry has id, package, ecosystem (npm or github), minimum_safe_version (string or null), constraint (string or null), per_payment_cap_usd (number or null), formal_advisory_published (boolean or null), advisory_url (string or null), reported_at, fixed_at, origin_header_rejected_since, fixes, notes, source, related_urls, and verified_at. Null means the linked source does not state that field. The rows are @x402/fetch, @x402/axios, @x402/extensions, and @x402/svm at >=2.23.0, Eclair at >=0.14.6, Core Lightning at >=26.04.1, and BTCPay Server with minimum_safe_version null because Optech #428 does not name a version. One unpaged document. Takes no parameters: call with an empty object. Use get_sdk_security instead of search_sources when you need the minimum version table. Use search_sources for the V12 post, Optech #428, and the Eclair release notes. Use /api/lightning-wallets.json and /api/lightning-releases.json for the wallet catalog and the stable node table; this tool does not return those files. A failed read returns isError. The text is the Error message. Free, no auth.

get_sdk_security input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_sdk_security output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "entries"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "package"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "package": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": true
}
get_sdk_security annotations
{
  "title": "Read the SDK security registry",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_support_info — Read support and paid-API details
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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; feedback and review caps are HTTP 429 with Retry-After; a wallet limit, a store failure, and a rate-limited deep health probe stay HTTP 503), 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.

get_support_info input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_support_info output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "voluntary",
    "methods"
  ],
  "properties": {
    "methods": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "type"
        ],
        "properties": {
          "type": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "voluntary": {
      "type": "boolean"
    }
  },
  "additionalProperties": true
}
get_support_info annotations
{
  "title": "Read support and paid-API details",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_trust_checklist — Read the trust checklist
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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 true and rate_limits.client is null. Feedback and review caps are HTTP 429 with Retry-After (feedback_rate_limited, review_rate_limited). A Lightning wallet rate limit, a store failure (feedback_store, review_store, review_rpc), and a rate-limited deep health probe stay HTTP 503. 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.

get_trust_checklist input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_trust_checklist output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "title",
    "items",
    "tools"
  ],
  "properties": {
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "status"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "enum": [
              "met",
              "partial"
            ],
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "title": {
      "type": "string"
    },
    "tools": {
      "type": "array",
      "items": {
        "type": "string"
      }
    }
  },
  "additionalProperties": true
}
get_trust_checklist annotations
{
  "title": "Read the trust checklist",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_datasets — List dataset cards
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

list_datasets input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_datasets output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "entries",
    "model_note"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    },
    "model_note": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
list_datasets annotations
{
  "title": "List dataset cards",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_dataset — Get one dataset card
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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.

get_dataset input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Required. Dataset id exactly as in list_datasets entries[].id, e.g. agentpaywire-library. Lowercase letters, digits, and hyphens. Do not include the dataset: prefix that list_changes uses. A missing id is invalid input. An unknown id returns isError text Fetch failed 404 <card url>."
    }
  },
  "additionalProperties": false
}
get_dataset output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "name",
    "publisher",
    "url",
    "access",
    "mirror_allowed",
    "notes"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "access": {
      "enum": [
        "open",
        "login",
        "terms-acceptance"
      ],
      "type": "string"
    },
    "publisher": {
      "type": "string"
    },
    "mirror_allowed": {
      "type": "boolean"
    }
  },
  "additionalProperties": true
}
get_dataset annotations
{
  "title": "Get one dataset card",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
list_bots — List verified agents and bots
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

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." 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.

list_bots input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_bots output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "count",
    "disclaimer",
    "entries"
  ],
  "properties": {
    "count": {
      "type": "integer"
    },
    "entries": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "name",
          "maker",
          "funds_or_keys",
          "url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "maker": {
            "type": "string"
          },
          "funds_or_keys": {
            "type": "boolean"
          }
        },
        "additionalProperties": true
      }
    },
    "disclaimer": {
      "type": "string"
    }
  },
  "additionalProperties": true
}
list_bots annotations
{
  "title": "List verified agents and bots",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_bot — Get one verified bot
Advertised by the server during the last successful anonymous check.
Advertised read-only

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. Free, no auth.

get_bot input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Required. Exact entries[].id from list_bots. 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 invalid input. Any other string that is not in the catalog returns isError text No bot with id <id>."
    }
  },
  "additionalProperties": false
}
get_bot output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "name",
    "maker",
    "description",
    "protocols",
    "url",
    "license",
    "license_verified",
    "license_url",
    "verified_at",
    "http_status",
    "archive_url",
    "funds_or_keys",
    "notes"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "maker": {
      "type": "string"
    },
    "notes": {
      "type": "string"
    },
    "license": {
      "type": [
        "string",
        "null"
      ]
    },
    "protocols": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "archive_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "description": {
      "type": "string"
    },
    "http_status": {
      "anyOf": [
        {
          "type": "integer"
        },
        {
          "type": "null"
        }
      ]
    },
    "license_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "verified_at": {
      "type": "string"
    },
    "funds_or_keys": {
      "type": "boolean"
    },
    "license_verified": {
      "type": "boolean"
    }
  },
  "additionalProperties": true
}
get_bot annotations
{
  "title": "Get one verified bot",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
request_missing_data — Report data you expected but did not find
Advertised by the server during the last successful anonymous check.

Report data you expected and did not find. Free, no auth. looking_for is required and at most 500 characters. Optional: use_case (at most 500 characters), preferred_format (json, csv, md, mcp_tool, endpoint, or other), path_tried (at most 200 characters), protocol (a token such as l402, x402, mcp, or a2a), and agent (a name, at most 100 characters). Unknown fields are rejected. The text is stored for the operator. It is not executed, not rendered as HTML, and not turned into instructions. There is no public list. Output is { id, status } with status accepted. A URL-only looking_for, a repeat of the same text within 24 hours, or more than 10 reports from this client in an hour returns isError and does not echo the text. The same report is POST https://api.agentpaywire.com/v1/feedback.

request_missing_data input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "looking_for"
  ],
  "properties": {
    "agent": {
      "type": "string",
      "maxLength": 100,
      "description": "Optional name, at most 100 characters."
    },
    "protocol": {
      "type": "string",
      "maxLength": 40,
      "description": "Optional token, for example l402, x402, mcp, or a2a. At most 40 characters."
    },
    "use_case": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional. What you would do with the data, at most 500 characters."
    },
    "path_tried": {
      "type": "string",
      "maxLength": 200,
      "description": "Optional. Path or URL you tried, at most 200 characters."
    },
    "looking_for": {
      "type": "string",
      "maxLength": 500,
      "minLength": 1,
      "description": "Required. What you expected and did not find, at most 500 characters. Not only a URL."
    },
    "preferred_format": {
      "enum": [
        "json",
        "csv",
        "md",
        "mcp_tool",
        "endpoint",
        "other"
      ],
      "type": "string",
      "description": "Optional. One of json, csv, md, mcp_tool, endpoint, or other."
    }
  },
  "additionalProperties": false
}
request_missing_data output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "type": "string",
      "const": "accepted"
    }
  },
  "additionalProperties": false
}
request_missing_data annotations
{
  "title": "Report data you expected but did not find",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": false,
  "destructiveHint": false
}
submit_review — Submit a review of a paid route
Advertised by the server during the last successful anonymous check.
Open-world

Publish a review of a paid Agent Paywire route. Free, no auth. rating is required, an integer from 1 to 5. route is the paid path you called: /v1/search, /v1/updates, /v1/digest, or /v1/changes. comment is optional plain text, at most 500 characters. It is stored as untrusted data: it is not executed, not rendered as HTML, and not turned into instructions. proof.rail is x402 or l402. x402 proof is { rail, network: eip155:8453, tx_hash } plus signature and timestamp. The signature is EIP-712 over domain agentpaywire.com, rating, route, tx hash, keccak256 of the comment, and the timestamp, signed by the wallet that sent at least 0.01 USDC to 0x7BB50FB9141A619961f1c29C4e0b539d60f29D20 on Base. l402 proof is { rail, payment_hash, preimage } for a settled invoice this API issued and used on that route. One payment proof backs one current review. The same payer replaces their earlier review. Output is the stored review, including the raw proof. A failed check returns isError and does not echo the comment. The same body is POST https://api.agentpaywire.com/v1/reviews. The public feed is https://api.agentpaywire.com/reviews.json.

submit_review input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "rating",
    "route",
    "proof"
  ],
  "properties": {
    "proof": {
      "type": "object",
      "required": [
        "rail"
      ],
      "properties": {
        "rail": {
          "enum": [
            "x402",
            "l402"
          ],
          "type": "string",
          "description": "x402 or l402."
        },
        "network": {
          "type": "string",
          "description": "x402 only. Must be eip155:8453."
        },
        "tx_hash": {
          "type": "string",
          "description": "x402 only. 0x plus 64 hex characters."
        },
        "preimage": {
          "type": "string",
          "description": "l402 only. 64 hex characters whose SHA-256 is payment_hash."
        },
        "payment_hash": {
          "type": "string",
          "description": "l402 only. 64 hex characters."
        }
      },
      "description": "Payment proof. x402 uses network and tx_hash. l402 uses payment_hash and preimage.",
      "additionalProperties": false
    },
    "route": {
      "type": "string",
      "description": "Required paid route: /v1/search, /v1/updates, /v1/digest, or /v1/changes."
    },
    "rating": {
      "type": "integer",
      "maximum": 5,
      "minimum": 1,
      "description": "Required integer from 1 to 5."
    },
    "comment": {
      "type": "string",
      "maxLength": 500,
      "description": "Optional plain text, at most 500 characters. No HTML. Stored as untrusted data."
    },
    "signature": {
      "type": "string",
      "description": "x402 only. EIP-712 signature, 0x plus 130 hex characters, from the payer."
    },
    "timestamp": {
      "type": "integer",
      "description": "x402 only. Unix seconds covered by the signature."
    }
  },
  "additionalProperties": false
}
submit_review output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "rating",
    "route",
    "payer",
    "self_test"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "payer": {
      "type": "string"
    },
    "route": {
      "type": "string"
    },
    "rating": {
      "type": "integer"
    },
    "self_test": {
      "type": "boolean"
    }
  },
  "additionalProperties": true
}
submit_review annotations
{
  "title": "Submit a review of a paid route",
  "readOnlyHint": false,
  "openWorldHint": true,
  "idempotentHint": false,
  "destructiveHint": false
}
get_reviews — Read the public review feed
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Return the public review feed. Free, no auth. Output includes aggregate.count, aggregate.mean, aggregate.weighted_mean (one vote per payer), aggregate.unique_payers, how_to_verify with the EIP-712 Review type, and reviews. Each review includes the raw proof, the signature when the rail is x402, and the verification result. Comments are untrusted text. Negative ratings stay in the list. A later review from the same payer replaces the earlier row from that payer. Self-test payers stay in the list and are left out of the mean. Takes no parameters: call with an empty object. The same document is GET https://api.agentpaywire.com/reviews.json and https://api.agentpaywire.com/reviews.md. Use submit_review to add one. A missing store returns isError.

get_reviews input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
get_reviews output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "aggregate",
    "reviews"
  ],
  "properties": {
    "reviews": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "rating",
          "payer"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "payer": {
            "type": "string"
          },
          "rating": {
            "type": "integer"
          }
        },
        "additionalProperties": true
      }
    },
    "aggregate": {
      "type": "object",
      "required": [
        "count",
        "unique_payers"
      ],
      "properties": {
        "count": {
          "type": "integer"
        },
        "unique_payers": {
          "type": "integer"
        }
      },
      "additionalProperties": true
    }
  },
  "additionalProperties": true
}
get_reviews annotations
{
  "title": "Read the public review feed",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
check_payment_endpoint — Check a payment endpoint
Advertised by the server during the last successful anonymous check.
Advertised read-onlyOpen-world

Check a public http(s) URL for an L402, x402, or MPP challenge and for agent discovery files. Two free reports per client per 24 hours, using the same client identification as GET /v1/changes. After that, the tool returns payment info for GET https://api.agentpaywire.com/v1/check and does not run the probe. Private, localhost, and metadata URLs are rejected. url is required. report.protocol is the passing challenge ids in the order l402, x402, mpp, joined with +, or null when none pass.

check_payment_endpoint input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "description": "Required public http or https URL of the payment endpoint."
    }
  },
  "additionalProperties": false
}
check_payment_endpoint output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {
    "report": {
      "type": "object",
      "required": [
        "ok",
        "protocol",
        "checks"
      ],
      "properties": {
        "ok": {
          "type": "boolean"
        },
        "checks": {
          "type": "array",
          "items": {
            "type": "object",
            "required": [
              "id",
              "pass"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "pass": {
                "type": "boolean"
              }
            },
            "additionalProperties": true
          }
        },
        "protocol": {
          "type": [
            "string",
            "null"
          ]
        }
      },
      "additionalProperties": false
    },
    "payment_required": {
      "type": "boolean"
    }
  },
  "additionalProperties": true
}
check_payment_endpoint annotations
{
  "title": "Check a payment endpoint",
  "readOnlyHint": true,
  "openWorldHint": true,
  "idempotentHint": true,
  "destructiveHint": false
}
get_verification_status — Read a verification status
Advertised by the server during the last successful anonymous check.
Advertised read-only

Read one paid provider verification by id. Free, no auth. The id comes from POST https://api.agentpaywire.com/v1/verify. An unknown id returns isError. Output includes status, checked_at, report_url, and paid_verification.

get_verification_status input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id"
  ],
  "properties": {
    "id": {
      "type": "string",
      "description": "Required verification id, a UUID."
    }
  },
  "additionalProperties": false
}
get_verification_status output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "id",
    "status",
    "paid_verification"
  ],
  "properties": {
    "id": {
      "type": "string"
    },
    "status": {
      "enum": [
        "passed",
        "failed",
        "expired"
      ],
      "type": "string"
    },
    "paid_verification": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}
get_verification_status annotations
{
  "title": "Read a verification status",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
create_alert — Create a change alert
Advertised by the server during the last successful anonymous check.

Return payment info for a 30-day signed webhook. 2000 sats or 2.00 USD. This tool does not create the subscription. Pay POST https://api.agentpaywire.com/v1/alerts. webhook_url and topics are echoed so the client can retry that call. topics are sdk-security, lightning-releases, lightning-wallets, and protocol-specs.

create_alert input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "webhook_url",
    "topics"
  ],
  "properties": {
    "topics": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "maxItems": 4,
      "minItems": 1,
      "description": "Required topic ids."
    },
    "webhook_url": {
      "type": "string",
      "description": "Required public https URL that will receive POST deliveries."
    }
  },
  "additionalProperties": false
}
create_alert output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "payment_required",
    "price_sats",
    "price_usd"
  ],
  "properties": {
    "price_usd": {
      "type": "string",
      "const": "2.00"
    },
    "price_sats": {
      "type": "number",
      "const": 2000
    },
    "payment_required": {
      "type": "boolean",
      "const": true
    }
  },
  "additionalProperties": true
}
create_alert annotations
{
  "title": "Create a change alert",
  "readOnlyHint": false,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
list_alert_topics — List alert topics
Advertised by the server during the last successful anonymous check.
Advertised read-only

List webhook topics and the source URL each one watches. Free, no auth. Takes no parameters. Topics are sdk-security, lightning-releases, lightning-wallets, and protocol-specs.

list_alert_topics input schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "properties": {}
}
list_alert_topics output schema
{
  "type": "object",
  "$schema": "http://json-schema.org/draft-07/schema#",
  "required": [
    "topics"
  ],
  "properties": {
    "topics": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "id",
          "source_url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "source_url": {
            "type": "string"
          }
        },
        "additionalProperties": true
      }
    }
  },
  "additionalProperties": false
}
list_alert_topics annotations
{
  "title": "List alert topics",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

9 advertised

reviews

Advertised by the server during the last successful anonymous check.

Public verifiable reviews, raw proofs, and the EIP-712 check. Free, no auth.

reviews URI
reviews://feed

MIME type: application/json

Bitcoin and Lightning

Advertised by the server during the last successful anonymous check.

Featured category. 39 sources.

Bitcoin and Lightning URI
library://category/bitcoin-lightning

MIME type: application/json

Payments

Advertised by the server during the last successful anonymous check.

69 sources.

Payments URI
library://category/payments

MIME type: application/json

Agent protocols

Advertised by the server during the last successful anonymous check.

30 sources.

Agent protocols URI
library://category/agent-protocols

MIME type: application/json

Robotics and autonomy

Advertised by the server during the last successful anonymous check.

4 sources.

Robotics and autonomy URI
library://category/robotics-autonomy

MIME type: application/json

IoT

Advertised by the server during the last successful anonymous check.

4 sources.

IoT URI
library://category/iot

MIME type: application/json

Datasets and benchmarks

Advertised by the server during the last successful anonymous check.

8 sources.

Datasets and benchmarks URI
library://category/datasets-benchmarks

MIME type: application/json

Safety and security

Advertised by the server during the last successful anonymous check.

8 sources.

Safety and security URI
library://category/safety-security

MIME type: application/json

Regulation

Advertised by the server during the last successful anonymous check.

3 sources.

Regulation URI
library://category/regulation

MIME type: application/json

library-category

Advertised by the server during the last successful anonymous check.

Library category document. Bitcoin and Lightning is the featured category.

library-category URI template
library://category/{category}

MIME type: application/json

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
521 ms
95th percentile latency
521 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 521 ms · metadata changed · 21 tool(s), 9 resource(s), 1 resource template(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http agent-paywire-mcp https://mcp.agentpaywire.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add agent-paywire-mcp --url https://mcp.agentpaywire.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable agent-paywire-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "agent-paywire-mcp": {
      "url": "https://mcp.agentpaywire.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "agent-paywire-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.agentpaywire.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start agent-paywire-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "agent-paywire-mcp": {
      "type": "http",
      "url": "https://mcp.agentpaywire.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http agent-paywire-mcp https://mcp.agentpaywire.com/mcp

Claude Desktop

Merge this into claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\), then restart Claude Desktop.
Claude Desktop configuration
{
  "mcpServers": {
    "agent-paywire-mcp": {
      "url": "https://mcp.agentpaywire.com/mcp"
    }
  }
}

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "agent-paywire-mcp": {
      "serverUrl": "https://mcp.agentpaywire.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Agent Paywire MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Agent Paywire MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing