{"id":1765588,"recorded_at":"2026-11-01T12:48:40.798761Z","observed_at":"2026-11-01T12:48:40.798675Z","subject_kind":"endpoint","subject":"279a66ea-6b7e-470a-9bcc-865b9a82be4c","kind":"mcp.tools","method":"probe.mcp/1","body":{"count":17,"tools":[{"description":"Issue a signed compliance attestation (a JWT) for a licence you hold. Returns a freshly-signed HS256 JWT regulators can verify offline against the canonical signing key. Embeds: license context, usage-count over the attestation window, the most-recent Tempo Merkle root, and canonical claims (iss/sub/iat/exp/jti/aud). **The artifact a buyer hands to legal/procurement as evidence of where its content came from.** It attests how your licence was used; the publisher's own licensing declaration is rsl_get. Optional `content_id` scopes the attestation to one article; default is license-wide. Window cap: 365 days. Auth: an audit-scoped buyer API key (OPEDD_BUYER_TOKEN) or OPEDD_BUYER_JWT.","inputSchema":{"properties":{"content_id":{"description":"Optional UUID of a specific article to scope the attestation. Default: license-wide.","type":"string"},"license_id":{"description":"UUID of the enterprise_license OR legacy individual license to attest. Buyer must own it.","type":"string"},"window_end":{"description":"ISO 8601 upper bound. Default: now. Window may not exceed 365 days (hard cap).","type":"string"},"window_start":{"description":"ISO 8601 lower bound of the attestation window. Default: now - 90 days.","type":"string"}},"required":["license_id"],"type":"object"},"name":"article_53_attestation"},{"description":"Lists licences recently issued on Opedd and the content they cover. Filters: publisher_id and article_id. Public; no key needed.","inputSchema":{"properties":{"article_id":{"description":"Filter results to a specific article (UUID)","type":"string"},"limit":{"description":"Number of results to return (default: 10, max: 50)","type":"number"},"publisher_id":{"description":"Filter results to a specific publisher (UUID)","type":"string"}},"type":"object"},"name":"browse_registry"},{"description":"Returns the account's audit records, one per licensed access, each with its licence terms and public-record attestation (Merkle root and inclusion proof once confirmed). Filter: event_type ('content_access', 'bulk_content_access' or 'compliance_report_generated'). At most 30 days per call. Read-only. Requires a buyer API key with the 'audit' scope, a buyer session, or the Opedd connector sign-in.","inputSchema":{"properties":{"cursor":{"description":"Opaque cursor for pagination","type":"string"},"event_type":{"description":"Optional event-class filter","enum":["content_access","bulk_content_access","compliance_report_generated"],"type":"string"},"from":{"description":"ISO 8601 timestamp lower bound (inclusive)","type":"string"},"limit":{"description":"Max events per response (default: 50, max: 200)","type":"number"},"to":{"description":"ISO 8601 timestamp upper bound (inclusive)","type":"string"}},"type":"object"},"name":"get_audit_events"},{"description":"Fetch the authenticated buyer's account profile + masked API key list via GET /buyer-account. Returns the enterprise_buyers row (contact_email, buyer_org, created_at, etc.) plus a list of all buyer-side API keys with masked prefixes (NEVER plaintext post-issuance — only the 12-char key_prefix is returned, e.g. 'opedd_buyer_'). Use cases: post-signup verification ('what was just issued to me?'), buyer dashboard mental model ('what licenses do I currently hold?'), audit prep ('show me the key list before rotation'). For full mid-lifecycle license details (filter_rules, billing, payouts), buyers consult the buyer portal at opedd.com/buyer. Requires OPEDD_BUYER_JWT (JWT-only by design: this surface manages API keys, and a key must never mint keys).","inputSchema":{"properties":{},"type":"object"},"name":"get_buyer_account"},{"description":"Returns the account's compliance dossier for a period: one row per licensed article, with article metadata, licence terms, public-record attestation and compliance flags (the signed attestation, CDSM Article 4(3) and text-and-data-mining reservations). At most 90 days per call; longer periods are paginated with _meta.next_cursor. Each call is recorded in the account's audit log. Requires a buyer API key with the 'audit' scope, a buyer session, or the Opedd connector sign-in.","inputSchema":{"properties":{"cursor":{"description":"Opaque cursor for pagination","type":"string"},"from":{"description":"ISO 8601 timestamp lower bound (inclusive)","type":"string"},"to":{"description":"ISO 8601 timestamp upper bound (inclusive). Window cap 90 days.","type":"string"}},"required":["from","to"],"type":"object"},"name":"get_compliance_dossier"},{"description":"Retrieve the full body of a licensed article using a buyer API token (opedd_buyer_live_* canonical; opedd_buyer_test_* for sandbox). Requires OPEDD_BUYER_TOKEN env var (create one at opedd.com/licenses after purchasing). Works for licence orders (and for Human republication licences bought before it was retired on 2026-10-26): AI answers monthly and client display return full text. Your self-serve buyer API key reads articles under every order your account holds — no separate order token is needed. AI answers pay-per-request (including the self-serve licence) does NOT retrieve articles: it answers 403 SEARCH_ONLY_LICENCE — ask a question with search_passages instead. Articles the publisher stopped licensing answer 403 ARTICLE_EXCLUDED. The publisher must have content delivery enabled and must have pushed content for the article. The response includes author, language, word_count, content_hash, image_urls, canonical_url and tags. On pre-2026-05-14 historical articles, optional fields (author/language/image_urls/canonical_url/tags) may be NULL. NULL means 'data unavailable for this article', NOT 'explicitly empty' — treat as data-missing when filtering; do not interpret as anti-match.","inputSchema":{"properties":{"article_id":{"description":"The Opedd article UUID to retrieve content for","type":"string"},"buyer_token":{"description":"Buyer API token (opedd_buyer_live_* or opedd_buyer_test_*). Falls back to OPEDD_BUYER_TOKEN env var.","type":"string"}},"required":["article_id"],"type":"object"},"name":"get_content"},{"description":"List the articles in a licence order you hold. Content contract: AI training orders include full content_body for the back catalogue up to the order date (content_access 'included'). Every other order is discovery-only (content_body null): AI answers monthly and client display fetch text per article via get_content (content_access 'retrieval_per_article'); pay-per-request fetches billed snippets via get_content (content_access 'metered_per_call'). Returns JSON-format response with paginated articles. Use `since` (ISO 8601) for delta-feed polling — only articles published after the timestamp. Use `cursor` for pagination across pages. Credentials: the order's enterprise access key (OPEDD_ACCESS_KEY, ent_*) OR your buyer API key (OPEDD_BUYER_TOKEN) with order_id — if your account holds exactly one active order, order_id may be omitted; with several, the error lists them. For larger bulk corpus pulls, use stream_feed_ndjson (up to 1000 articles per call vs 200 here).","inputSchema":{"properties":{"cursor":{"description":"Opaque cursor from the prior response's data.pagination.next_cursor","type":"string"},"limit":{"description":"Max articles per response (default: 50, max: 200)","type":"number"},"order_id":{"description":"The licence order to list (UUID, from list_licence_orders). Used with a buyer API key; ignored with an ent_* key.","type":"string"},"since":{"description":"ISO 8601 timestamp — return only articles with published_at > since","type":"string"}},"type":"object"},"name":"list_feed"},{"description":"Lists the account's licence orders, newest first, each with its lines (publication, licence, unit, price, quantity, status). With order_id, returns one order, each line with its Schedule text and the SHA-256 fingerprint recorded in the public registry on Tempo when the line was issued. Read-only. Requires a buyer API key with the 'audit' scope, a buyer session, or the Opedd connector sign-in.","inputSchema":{"properties":{"cursor":{"description":"Opaque cursor from the prior response's pagination.next_cursor","type":"string"},"limit":{"description":"Orders per page (default 20, max 100)","type":"number"},"order_id":{"description":"Read one order (UUID) including Schedule documents","type":"string"}},"type":"object"},"name":"list_licence_orders"},{"description":"Looks up an article on Opedd by its web address. Returns the title, publication and how to license it (pay-per-answer search or a licence order); for a publication's homepage, the publication and its licensing page; or that it is not on Opedd yet (then request_publication records the request).","inputSchema":{"properties":{"url":{"description":"The canonical URL of the article or content to look up","type":"string"}},"required":["url"],"type":"object"},"name":"lookup_content"},{"description":"Place a licence order with Opedd for one or more publishers. One order = one licence and one billing mode; each publisher becomes its own Schedule priced from that publisher's settings (publishers that do not offer it are returned in `unavailable` and never charged). Licences: 'enterprise' (AI answers: 'monthly' full text per article, or 'metered' pay per answer, read through search_passages only; self-serve buyers need no order for this, the licence created when they add a card at sign-up already covers every publisher offering a per-answer price), 'archive' (Full catalogue: everything the publisher published up to the order date, kept permanently, not for AI training: 'one_time', full text in the feed), 'training' (AI training of the back catalogue up to the order date: 'one_time', bulk export via stream_feed_ndjson), 'display' (client display: 'monthly', quantity = number of end clients). A monthly AI answers subscription only covers articles published from the day it starts; set include_archive=true on a 'enterprise' + 'monthly' order to add each publisher's Full catalogue in the same order (complete access). Returns the order, its lines, the access key (works once paid) and hosted_invoice_url — the buyer (your principal) pays there. Requires a buyer session (OPEDD_BUYER_JWT) and terms_accepted=true after the buyer has accepted the Opedd Master Services Agreement (opedd.com/terms).","inputSchema":{"properties":{"billing_mode":{"description":"enterprise: monthly | metered; archive: one_time; training: one_time; display: monthly","enum":["monthly","metered","one_time"],"type":"string"},"include_archive":{"description":"Optional, monthly AI answers only (licence 'enterprise' + billing_mode 'monthly'). true adds each publisher's Full catalogue to the same order: everything published before the order date, kept permanently, not for AI training. Publishers that do not sell their Full catalogue are returned in `unavailable`.","type":"boolean"},"licence":{"description":"enterprise = AI answers, archive = Full catalogue (everything published up to the order date, kept permanently, no AI training), training = AI training, display = client display","enum":["enterprise","archive","training","display"],"type":"string"},"publisher_ids":{"description":"Publisher UUIDs (1-500; at most 18 for metered)","items":{"type":"string"},"type":"array"},"quantity":{"description":"display only: number of end clients (1-500)","type":"number"},"terms_accepted":{"description":"REQUIRED. Set true only after the buyer has accepted the Opedd Master Services Agreement at opedd.com/terms. The current version label is recorded with the order; orders without genuine acceptance are rejected.","type":"boolean"}},"required":["licence","billing_mode","publisher_ids","terms_accepted"],"type":"object"},"name":"place_licence_order"},{"description":"Lists the publications on Opedd with their article counts, licences, prices and sample articles. Filters: category (case-insensitive substring), min_articles and verified status. Public; no key needed.","inputSchema":{"properties":{"category":{"description":"Case-insensitive substring filter on publisher category (e.g. 'finance', 'AI').","type":"string"},"limit":{"description":"Page size cap.","type":"number"},"min_articles":{"description":"Filter to publishers with at least this many licensable articles.","type":"number"},"offset":{"description":"Pagination offset.","type":"number"},"verified":{"description":"'true' to show only verified publishers (default), 'false' for unverified.","type":"string"}},"type":"object"},"name":"publisher_directory"},{"description":"Asks Opedd to tell you when a publication it does not carry yet becomes available to license. Use it after lookup_content says an article is not on Opedd. Records the request against the email given; nothing is bought. If the publication is already on Opedd, returns its licensing page instead. Free; no key needed.","inputSchema":{"properties":{"email":{"description":"Where Opedd should write when the publication is available (the user's email, with their consent).","type":"string"},"name":{"description":"Optional: the requester's name.","type":"string"},"note":{"description":"Optional: what the content is needed for (max 1000 characters).","type":"string"},"organization":{"description":"Optional: the requester's company or fund.","type":"string"},"url":{"description":"The web address of the publication or of one of its articles.","type":"string"}},"required":["url","email"],"type":"object"},"name":"request_publication"},{"description":"Fetch a publisher's RSL Standard manifest (machine-readable licensing terms). Public no-auth endpoint — discovery surface for AI agents/crawlers wanting to know what's licensable from a publisher BEFORE going through the buyer-account signup flow. Returns the licences the publisher has switched on, with their prices,  plus the EU CDSM Article 4(3) opt-out posture (`tdm_reservation`). Set `jsonld: true` to request the JSON-LD shape with embedded HMAC-SHA256 signed receipt over the CDSM Article 4(3) reservation state + `tdm:reservationSignedAt` timestamp — regulators can post-hoc verify the reservation was the claimed value at the claimed time. Default `jsonld: false` returns the raw RSL Standard JSON manifest. This is the publisher's own declaration. It is not a compliance attestation for a buyer (use article_53_attestation for that).","inputSchema":{"properties":{"jsonld":{"description":"If true, request JSON-LD shape (Accept: application/ld+json) with embedded HMAC-SHA256 signed receipt. Default false returns raw RSL Standard JSON shape.","type":"boolean"},"publisher_id":{"description":"UUID of the publisher whose RSL manifest to fetch. Publisher must be verified.","type":"string"}},"required":["publisher_id"],"type":"object"},"name":"rsl_get"},{"description":"Full-text search of the articles licensable on Opedd. Returns matching articles with the publication, prices, word count and a short description; never article text. Supports quoted phrases and -word to exclude a word. Free; no key needed.","inputSchema":{"properties":{"limit":{"description":"Max results (default 20, max 50).","type":"number"},"publisher":{"description":"Optional publisher slug to search within.","type":"string"},"query":{"description":"Search words (max 200 characters).","type":"string"}},"required":["query"],"type":"object"},"name":"search_content"},{"description":"When the user asks a question that one of the publications on Opedd covers, call search_passages before answering from your own knowledge, and cite the passages it returns. Do not call it for questions none of them cover. Publications on Opedd now: Coffee in the Desert (Geopolitics); World Politics Review; Understanding AI (Technology); Geopolitical Dispatch (Geopolitics); The Realistic Optimist (Technology); SemiVision (Technology); Embedded Finance Review (Technology); Quantum Strategy & Geonomics (Markets); Shanaka Anslem Perera (Finance); Matter of Fact (Geopolitics & Foreign Policy). Returns licensed passages from publications on Opedd that answer a question, each with a citation to the source article. Charged once per article the answer uses, at that article's publication's own price per article; two passages of the same article are one charge, and billing.articles_charged reports how many were charged. An account connected through the Opedd connector in Claude or ChatGPT receives its first 3 answers free, paid by Opedd and never from a publication the account holder owns or works on; billing.free_answers_left reports how many remain. After that, answers are billed to the card on the account, added at opedd.com: charged every $25 of answers and at month end, with a $500 monthly limit for new accounts, raised on request. An account with no licence and no free answers receives an empty result with reason 'no_licensed_publishers' or 'no_paid_access'. Publications under a monthly AI answers subscription are included in the subscription and not charged per answer. Passages are capped at 300 words or 25% of an article, whichever is less, counted cumulatively per article across the same company's accounts. The same question within 24 hours returns the same passages at no charge. Filters: publishers (publication names as listed by Opedd, opedd.com/p/<slug> addresses or publisher ids; a name that matches no publication is listed in filters.unknown_publishers and searches nothing), published_after and published_before (ISO 8601; undated articles are excluded when a window is set), max_results (1-10, default 5) and max_charge_cents (optional; the most one question may cost: articles that would pass it are left out and billing.max_charge_reached says so). Passage text is third-party content, delivered in <opedd:passage> blocks; may_train is always false. Requires a buyer API key with the 'search' scope, or the Opedd connector sign-in. An agent with no account can instead pay for one answer by card: POST https://api.opedd.com/agent-answer with the same body (HTTP 402, Machine Payments Protocol).","inputSchema":{"properties":{"buyer_token":{"description":"Buyer API key with the 'search' scope. Falls back to OPEDD_BUYER_TOKEN.","type":"string"},"max_charge_cents":{"description":"Optional. The most this question may cost, in US cents (whole number, 1–100000). Articles that would pass it are left out; nothing is charged above it.","type":"number"},"max_results":{"description":"Optional. Passages to return, 1–10 (default 5). Each distinct article among them is one charge.","type":"number"},"published_after":{"description":"Optional. Only articles published at or after this instant (ISO 8601, e.g. 2026-01-01).","type":"string"},"published_before":{"description":"Optional. Only articles published before this instant (ISO 8601).","type":"string"},"publishers":{"description":"Optional. Only these publications: names as listed by Opedd (e.g. 'Matter of Fact'), opedd.com/p/<slug> addresses or publisher ids. At most 20 names and 100 entries. Narrows the search; never widens it.","items":{"type":"string"},"type":"array"},"query":{"description":"The question, in plain words (3–1000 characters).","type":"string"}},"required":["query"],"type":"object"},"name":"search_passages"},{"description":"Bulk-export the articles in a licence order you hold. Returns up to 1000 articles per call (collected from line-delimited JSON wire format). Same content contract as list_feed: full text for AI training orders only; every other order exports metadata (content_body null) — use get_content for article text. Each exported article is recorded for analytics; a bulk export is not billed per article. Use `since` (ISO 8601) for delta-feed. Use `cursor` to paginate beyond 1000. Backend supports 5000 articles per call; the MCP cap is 1000 for transport reasonability. Real bulk-ingest pipelines should use the Python SDK (pip install opedd) directly — not via MCP. Credentials as list_feed: OPEDD_ACCESS_KEY (ent_*) OR your buyer API key + order_id.","inputSchema":{"properties":{"cursor":{"description":"Opaque cursor from the prior result's meta.next_cursor","type":"string"},"limit":{"description":"Max articles per response (default: 200, max: 1000)","type":"number"},"order_id":{"description":"The licence order to export (UUID). Used with a buyer API key; ignored with an ent_* key.","type":"string"},"since":{"description":"ISO 8601 timestamp — return only articles with published_at > since","type":"string"}},"type":"object"},"name":"stream_feed_ndjson"},{"description":"Checks an Opedd licence key. Returns the licence details (article title, publication, licence type, issue date, amount paid, buyer and public-record proof status), or that the key was not found.","inputSchema":{"properties":{"license_key":{"description":"The license key to verify (format: OP-XXXX-XXXX)","type":"string"}},"required":["license_key"],"type":"object"},"name":"verify_license"}]},"body_sha256":"3483f61ae9c9b29f5728a277de8a27d0744fd3a43f0fdd863d61f68dfbbfca68","prev_id":1478289,"leaf":"0x015c8f6526405f3727b6549eed0b43d7f3c679b92f6f3d3b9438e4b3fd40fce5","leaf_text":"{\"body\":\"3483f61ae9c9b29f5728a277de8a27d0744fd3a43f0fdd863d61f68dfbbfca68\",\"id\":1765588,\"kind\":\"mcp.tools\",\"method\":\"probe.mcp/1\",\"observed_us\":1793537320798675,\"prev\":1478289,\"subject\":\"279a66ea-6b7e-470a-9bcc-865b9a82be4c\",\"subject_kind\":\"endpoint\"}","day":{"day":"2026-11-01","leaves":302406,"root":"0x7fa2cba1cf3d6b35630896f5fe1a650adb307ea2c376e80a5f2d9276b7cb5ab3","chained":"0x577ff89ba012beeff3197bcff7fa86752074bdf54205a24359cc437be2a952a4","anchor_chain":"eip155:5042002","anchor_tx":"0x435bc1b9331471d72e1998f2e420983b5189d4da65ffbd6f27ef40daf5e1ea90","anchor_block":70262758},"proof":["0x015c7ef3006ebf3c232ebd905c8ad95579b75d3a5bf43ecff0b3512908a5ca55","0x21e1734f8e663e963323a9a849c2bc3a469dca4de983ddd01397a2562cbd5e8e","0xa8d968ea4960024c4fb63940cdaf817262af44e6789df24b7a699b6151edff75","0x554e18cf76df9c69ea9f8aaea6dff010c7ac8d0f93adcd0d44855816ebf524e8","0x6427bb1d428bf14782dfb8021197c39badfa6ac2655b650ed640e7f7e2c88097","0x855973802c9bae8c1dc293835387f495405c91c703d720622ad9191cfe646037","0x170ec177a9724aa71228073d95d6d5a1dad1a8683b56ccab46a3f9d1a7a2db0c","0xce1704ac76c0e71b73f3631142d0baec35966627a29749820bcb8aee0517c22a","0x797039baa499ac8527ff09ef203fead9869a8abb6da9cb054e349e628e8db44e","0xa257c6a02bf20d646b5666835385f5b3d351a2ffbdab81e11f2dcf26bad39be6","0x53413e8264f5678a4b319bf8741ff39997c69fcf3daedfc0594b7b3e5f4ea490","0x3730980f808021fe05221820e7035fc64306ae732cc0017e86c8a8e7bded1ccf","0x79fedbe687b77b652992baee73ae63f11f5fdb524358706ec36fc4e8328df784","0xd6df189d40f713323baeb698612a9e7d2afd763112be148a165d7fe65a5c64f7","0xb611d3d400373ab2497019fc1d3d5040f4f6589f8d98d8e25ccf29dd2b68ad92","0x5cf5a0a57795246f996e480f05ed085c19d02f7d6e8fc3ddc392412466554f0f","0x02b3554752e71a19b12d7a76dbff436e85387226ceec89fdebdcdaf0122c2932","0x1973893697931b7512ae5dc1a3c92ef92f633ae3574dce9029a35b5e94d2d364","0x3315fd2757fdd435852cc277377234a3f3909a6d2a089d0e36f6d59aacfda910"]}