addrbookFor publishers
← The evidence ledger

Evidence row 2619651

Observed , by probe.mcp/1.

Kind
mcp.tools
About
endpoint 52d53890-53d1-4494-9aa8-44756e573d4e
Recorded
Previous row
#1758793
Body SHA-256
bb6fad54a31344682a92bf6ff4a932d1ff5221671bbf41114c2541e477e8c690
Leaf
0x9bd42eb0186bb27e15ea317750c4a795be400de1a82f4e2a0f14d33b4488fdc8

What was observed

{
  "count": 40,
  "tools": [
    {
      "description": "Reads a public RSS feed (or Apple/Spotify link) and lists its episodes with which are already on Podgist and the price to transcribe the rest. Free; no key needed; at most 10 a minute.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "url": {
            "format": "uri",
            "maxLength": 2000,
            "type": "string"
          }
        },
        "required": [
          "url"
        ],
        "type": "object"
      },
      "name": "analyze_feed"
    },
    {
      "description": "Starts a cited answer drawn only from what was said on podcasts, or from one episode when episode_id (the pid of a search result) is given. Returns a job_id; call get_answer with it until status is complete (usually under a minute). Needs an API key; billed per question (see list_services).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "episode_id": {
            "format": "uuid",
            "type": "string"
          },
          "question": {
            "maxLength": 500,
            "minLength": 3,
            "type": "string"
          }
        },
        "required": [
          "question"
        ],
        "type": "object"
      },
      "name": "ask_question"
    },
    {
      "description": "A link for a person to change the card, see invoices or cancel a card subscription. Needs the \"billing\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "billing_portal_link"
    },
    {
      "description": "Cancel the account's card-paid Professional plan at period end (provider \"stripe\", undo to keep it), or its PayPal subscription (provider \"paypal\"), exactly as the account page does. Prepaid terms bought with the balance never renew, so need no cancelling. Needs the \"billing\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "provider": {
            "enum": [
              "stripe",
              "paypal"
            ],
            "type": "string"
          },
          "undo": {
            "type": "boolean"
          }
        },
        "required": [
          "provider"
        ],
        "type": "object"
      },
      "name": "cancel_subscription"
    },
    {
      "description": "A checkout link for a person to pay this quote by card (when the balance or a cap stops order). The quote can then only be paid by that link; asking again returns the same link. Needs the \"billing\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "quote_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "quote_id"
        ],
        "type": "object"
      },
      "name": "checkout_quote"
    },
    {
      "description": "Remove a question from the Ask history (restore_ask puts it back). Needs the \"account\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "maxLength": 64,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "delete_ask"
    },
    {
      "description": "People podcasts talk to and talk about, by name: slug, one-line descriptor and appearance counts. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "query": {
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "find_people"
    },
    {
      "description": "Public podcasts whose name contains the text, most-transcribed first, with their slug (for the podcast filter of search_transcripts). Free; no key needed. At most 20 results.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "name": {
            "maxLength": 100,
            "minLength": 2,
            "type": "string"
          }
        },
        "required": [
          "name"
        ],
        "type": "object"
      },
      "name": "find_podcasts"
    },
    {
      "description": "Follow a person by slug (find_people), as the Follow button does. The free plan follows up to 3. Needs the \"account\" scope. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "person": {
            "maxLength": 60,
            "type": "string"
          }
        },
        "required": [
          "person"
        ],
        "type": "object"
      },
      "name": "follow_person"
    },
    {
      "description": "Follow a podcast (as the Follow button does). Needs the \"account\" scope. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "podcast"
        ],
        "type": "object"
      },
      "name": "follow_podcast"
    },
    {
      "description": "Plan, subscriptions, AI credits, follows, purchases and summary-email settings, as the account page shows them. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "get_account"
    },
    {
      "description": "The status and, once complete, the answer and its cited passages for a job from ask_question. Needs the API key that asked. Not billed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "maxLength": 64,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "get_answer"
    },
    {
      "description": "Podgist's own news posts. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "get_news"
    },
    {
      "description": "One order and each episode's status (waiting, transcribed, refunded). Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "order_id": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "order_id"
        ],
        "type": "object"
      },
      "name": "get_order"
    },
    {
      "description": "One person's page data: bio, photo credit, counts, trend and the months with episodes; with month (YYYY-MM) and page, that month's episodes and how each names them. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "month": {
            "pattern": "^[0-9]{4}-[0-9]{2}$",
            "type": "string"
          },
          "page": {
            "minimum": 1,
            "type": "integer"
          },
          "person": {
            "maxLength": 60,
            "type": "string"
          }
        },
        "required": [
          "person"
        ],
        "type": "object"
      },
      "name": "get_person"
    },
    {
      "description": "Description, links, how many episodes are transcribed, the latest episode, and the price to transcribe an episode or subscribe. Free; no key needed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "podcast"
        ],
        "type": "object"
      },
      "name": "get_podcast"
    },
    {
      "description": "This week's topics across podcasts, or one topic by slug. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "topic": {
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "get_topics"
    },
    {
      "description": "One episode's transcript, with speaker turns and timestamps, by podcast and episode id (the sid and pid of a search result). Only what the key's account may read. Needs an API key; billed per transcript (see list_services).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "episode_id": {
            "format": "uuid",
            "type": "string"
          },
          "podcast_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "podcast_id",
          "episode_id"
        ],
        "type": "object"
      },
      "name": "get_transcript"
    },
    {
      "description": "The key's account balance and monthly allowance, and its calls and cost per day over the last 30 days. Needs an API key. Not billed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "get_usage"
    },
    {
      "description": "This account's questions, newest first, site and API alike. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "before": {
            "maxLength": 64,
            "type": "string"
          },
          "q": {
            "maxLength": 200,
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "list_ask_history"
    },
    {
      "description": "The AI-question credit packs and their prices. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "list_credit_tiers"
    },
    {
      "description": "Episodes newest first, 25 a page: title, date, length, whether transcribed (with its link) and, if not, the price to transcribe it. Page 1 is free with no key; each later page needs a key and is billed at the catalog rate (list_services).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "page": {
            "maximum": 400,
            "minimum": 1,
            "type": "integer"
          },
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "transcribed_only": {
            "type": "boolean"
          }
        },
        "required": [
          "podcast"
        ],
        "type": "object"
      },
      "name": "list_episodes"
    },
    {
      "description": "The podcasts this account follows. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "list_follows"
    },
    {
      "description": "This account's orders paid from the API balance, newest first. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "before": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "list_orders"
    },
    {
      "description": "The people, names and keywords this account follows, with their latest episodes and alert settings. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "list_people_follows"
    },
    {
      "description": "Lists the tools, which need an API key, and the current price per call. Free; no key needed.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "list_services"
    },
    {
      "description": "Buys what a quote is for, charging its price to the account's prepaid API balance (never a card). At most $50 an order and $200 a day. Episodes that are never transcribed are refunded automatically. Needs the \"order\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "idempotency_key": {
            "description": "Any unique string; retrying with the same one never pays twice.",
            "maxLength": 200,
            "minLength": 8,
            "type": "string"
          },
          "quote_id": {
            "format": "uuid",
            "type": "string"
          }
        },
        "required": [
          "quote_id",
          "idempotency_key"
        ],
        "type": "object"
      },
      "name": "order"
    },
    {
      "description": "A quote for one credit pack (tier from list_credit_tiers).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "tier": {
            "minimum": 1,
            "type": "integer"
          }
        },
        "required": [
          "tier"
        ],
        "type": "object"
      },
      "name": "quote_credits"
    },
    {
      "description": "The price for this account to transcribe one episode (or, if transcribed, to read it), held 30 minutes. Needs a key with the \"order\" scope. Not billed; nothing is bought until order.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "episode": {
            "description": "An episode_id from list_episodes.",
            "format": "uuid",
            "type": "string"
          },
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "podcast",
          "episode"
        ],
        "type": "object"
      },
      "name": "quote_episode"
    },
    {
      "description": "The price to transcribe chosen episodes of a feed (episode ids from analyze_feed), with volume pricing. Needs a key with the \"order\" scope. Not billed until order.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "episode_ids": {
            "items": {
              "type": "string"
            },
            "maxItems": 500,
            "minItems": 1,
            "type": "array"
          },
          "feed_url": {
            "format": "uri",
            "maxLength": 2000,
            "type": "string"
          }
        },
        "required": [
          "feed_url",
          "episode_ids"
        ],
        "type": "object"
      },
      "name": "quote_index"
    },
    {
      "description": "A prepaid term of one month or year, paid from the balance, that never renews by itself: \"podcast\" (every transcript of one show), \"all\" (every transcript) or \"professional\" (all access plus the API).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "interval": {
            "enum": [
              "month",
              "year"
            ],
            "type": "string"
          },
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "product": {
            "enum": [
              "podcast",
              "all",
              "professional"
            ],
            "type": "string"
          }
        },
        "required": [
          "product",
          "interval"
        ],
        "type": "object"
      },
      "name": "quote_subscription"
    },
    {
      "description": "Email the account's address a password-reset code, as \"Forgot password\" does; the person sets the new password. Needs the \"account\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "request_password_reset"
    },
    {
      "description": "Put a deleted question back in the Ask history. Needs the \"account\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "maxLength": 64,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "restore_ask"
    },
    {
      "description": "Revoke the API key making this call, for good. Other keys are managed only by the person.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {},
        "required": [],
        "type": "object"
      },
      "name": "revoke_this_key"
    },
    {
      "description": "Full-text search across transcripts: matching episodes with snippets, newest relevance first, 20 a page. Optional podcast slug and date range (YYYY-MM-DD). Needs an API key; billed per search (see list_services).",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "date_from": {
            "format": "date",
            "type": "string"
          },
          "date_to": {
            "format": "date",
            "type": "string"
          },
          "page": {
            "maximum": 50,
            "minimum": 1,
            "type": "integer"
          },
          "podcast": {
            "description": "A slug from find_podcasts.",
            "type": "string"
          },
          "query": {
            "maxLength": 500,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "query"
        ],
        "type": "object"
      },
      "name": "search_transcripts"
    },
    {
      "description": "Turn the summary email on or off, set daily or weekly and the weekly day, or include one followed podcast (podcast + enabled). Needs the \"account\" scope. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "enabled": {
            "type": "boolean"
          },
          "frequency": {
            "enum": [
              "daily",
              "weekly"
            ],
            "type": "string"
          },
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          },
          "points": {
            "minimum": 1,
            "type": "integer"
          },
          "start": {
            "type": "string"
          }
        },
        "required": [],
        "type": "object"
      },
      "name": "set_email_settings"
    },
    {
      "description": "The public link to one of this account's answered questions.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "job_id": {
            "maxLength": 64,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "job_id"
        ],
        "type": "object"
      },
      "name": "share_ask"
    },
    {
      "description": "A checkout link for a person to add funds to the API balance by card; nothing is charged by the agent. The amount must be within the top-up limits list_services gives (orders.topup_min / topup_max). Needs the \"billing\" scope.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "amount": {
            "minimum": 1,
            "type": "number"
          },
          "idempotency_key": {
            "description": "Any unique string; retrying with the same one never pays twice.",
            "maxLength": 200,
            "minLength": 8,
            "type": "string"
          }
        },
        "required": [
          "amount",
          "idempotency_key"
        ],
        "type": "object"
      },
      "name": "start_topup"
    },
    {
      "description": "Stop following a person. Needs the \"account\" scope. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "person": {
            "maxLength": 60,
            "type": "string"
          }
        },
        "required": [
          "person"
        ],
        "type": "object"
      },
      "name": "unfollow_person"
    },
    {
      "description": "Stop following a podcast. Needs the \"account\" scope. Free.",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "podcast": {
            "description": "A slug or podcast_id from find_podcasts.",
            "maxLength": 200,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "podcast"
        ],
        "type": "object"
      },
      "name": "unfollow_podcast"
    }
  ]
}

What the leaf hashes

{"body":"bb6fad54a31344682a92bf6ff4a932d1ff5221671bbf41114c2541e477e8c690","id":2619651,"kind":"mcp.tools","method":"probe.mcp/1","observed_us":1793728204094095,"prev":1758793,"subject":"52d53890-53d1-4494-9aa8-44756e573d4e","subject_kind":"endpoint"}

Proof

Fold these into the leaf in order, hashing each sorted pair with keccak256, to reach the root of (425475 rows).

  1. 0x9bd3b9e9744dc1fe7dc64b0d669fcb74b5da3fc7cbb500cc37e890e7d429f79c
  2. 0xa9a5d74edbeb30640021e301777eb967ff04ccded0f4dbc7fe634efb2c74c98b
  3. 0x620a8f15bee11bdba0fed9dde98ac44139b640f000ef049a3e10929eb9bb77e7
  4. 0xd365b567af7bdb03adbd13259addc88a1b2ce954b62d9941a24c35daaea1168b
  5. 0xe3f36d640021465e06673d585f3ee23294bae381b877165aea213c532206a4e0
  6. 0x42c21843384d48b3ab910a86e2a485aefeb7b803fab033e10ac88d43f7dd64a5
  7. 0x05ed8df45902a1933c59d1cfc74725ba5215b5d7fc3ff238bb43b9f4384ec0ea
  8. 0x496d123fb73100ec4900df4099c1705db2ad9b389be59c2690329b20481dd88b
  9. 0x1e46c14e38ab7dcf08840e7f2ac1a82427e05e02e416625f67d1ab3e063ad0f1
  10. 0xb4254cc687988226ec51905ac56ea5b67ca1defe1160be84fb3fef015dd322c1
  11. 0xc779d2d43791dfe247af69d56e581e39a1af350c71f1cf4836e024692f5576ba
  12. 0x5135f96b23ea1e5b4458c92c404705e6b4f464bcfb58f2d4484f6776cf797208
  13. 0xa213237248bc217986c237aa7f834054c4c09d2887d4a5c8ab351dd9ccee40bd
  14. 0x7657cb1e96189305f3276517cf3716f7cacdef06e4b876b60d2c0bd8b60fda96
  15. 0xbdd3407977f70b26d0af6e874d984fe982a78bf95057b70049009db10e525ebc
  16. 0x77587d79b39ec04901214373cabf0c9651bc2cf065dc080615a260064314c4a5
  17. 0x271a5f715272513f57457682f93389885577f2664b5ae5dcea924ad10a098eb5
  18. 0x717b5d7cbc24826c5b1f7b7433bf30b76e9ba1370476af4e1b494a5211897cc3
  19. 0xe35032d4b064b015fe60638756eeb0bc24e7c7943586468d33349341ee0ed3d6
Day root
0xb646ffa569e24bf8336b0a15a9d98d0a2f1239f58e10c2b18a9d22e43343566a
Chained
0x35e926359fd19031c6b5e08fb3b44f2524386a57c8fdd353336c185603f53d43
Published
On Arc Testnet, block 70601990: 0xa5f9dadba13cde129126b950e64b815e6833cb8ff53b75026c9dbe769c3768c7

How to check it · This row as JSON