opedd-mcp 0.12.12 → 0.12.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -78,7 +78,7 @@ Prefer zero-install? The same 20 tools are served hosted at **`https://mcp.opedd
78
78
  }
79
79
  ```
80
80
 
81
- Key routing: `opedd_sk_*` (legacy `opedd_pub_*`) → publisher tools · `opedd_buyer_*` → content retrieval · `ent_*` → bulk feeds · buyer-portal JWT → audit/compliance/EU-AI-Act tools. Your key is forwarded per request and never stored by the gateway.
81
+ Key routing: `opedd_sk_*` (legacy `opedd_pub_*`) → publisher tools · `opedd_buyer_*` → content retrieval · `ent_*` → bulk feeds · buyer-portal JWT → audit/compliance tools. Your key is forwarded per request and never stored by the gateway.
82
82
 
83
83
  ## What it does
84
84
 
@@ -234,7 +234,7 @@ Once configured, you can ask your AI assistant:
234
234
 
235
235
  ### Phase 12 Wave 1 + 3 surfaces (v0.3.0)
236
236
 
237
- > "What does publisher 8268c353-ffa3-4db3-bbb2-90ddbbb43e41 license? Pull the RSL manifest." — uses `rsl_get`
237
+ > "What does Geopolitical Dispatch license? Pull the RSL manifest." — uses `publisher_directory` to find it, then `rsl_get`
238
238
 
239
239
  > "Get me a CDSM Article 4(3) signed receipt for that publisher's reservation state — set `jsonld: true`." — uses `rsl_get` with content negotiation
240
240
 
@@ -250,6 +250,8 @@ The assistant will call the appropriate Opedd tools and show you the results.
250
250
 
251
251
  ## Payment
252
252
 
253
+ **No account? An agent can pay for one answer on the spot.** `POST https://api.opedd.com/agent-answer` with the same body as `search_passages` (`{"query": "..."}`). The response is HTTP 402 with the price (each article the answer uses, at its publication's own price), the licence and the buyer terms. Pay by card through the [Machine Payments Protocol](https://mpp.dev) (a Stripe shared payment token, at least 0.50 USD; the rest stays as credit on a search key returned with the answer) and retry. Machine-readable: [api.opedd.com/openapi.json](https://api.opedd.com/openapi.json).
254
+
253
255
  Pay-per-answer search is billed to the card on your buyer account (opedd.com/buyer/billing); licence orders are paid through Stripe. Single-article purchases (Human republication, `purchase_license`) were retired on 2026-10-26.
254
256
 
255
257
  ## Development
@@ -269,11 +271,11 @@ npm run build # compiles to dist/
269
271
  | **What you get** | Licensed content + license key + public-record proof — all in one API call | Scraped web content, no rights |
270
272
  | **Content delivery** | Full article text via API (JSON) — bulk on flat-fee licenses, per-call (metered) on filtered licenses; real-time feed via webhooks | Scraped snippets or full-page dumps |
271
273
  | **Content quality** | Curated publisher content (niche B2B newsletters, expert analysis) | Whatever's on the open web |
272
- | **Rights** | Verifiable license key per article, publisher-authorized | No rights clearance |
274
+ | **Rights** | Verifiable licence for every use, publisher-authorized | No rights clearance |
273
275
  | **Proof** | Public record (Tempo) — independently verifiable | None |
274
276
  | **Compliance** | Signed attestation + full provenance chain | No provenance |
275
- | **Pricing** | Publisher sets their own price per article | Platform decides |
276
- | **Delivery modes** | Per-article API, bulk feed (JSON firehose), buyer webhooks (push) | Query-response only |
277
+ | **Pricing** | Publisher sets their own prices | Platform decides |
278
+ | **Delivery modes** | Article API, bulk feed (JSON firehose), buyer webhooks (push) | Query-response only |
277
279
  | **Protocol** | REST + MCP native | REST only |
278
280
 
279
281
  Opedd is the **licensed content delivery layer** for AI — not just a licensing wrapper. Publishers upload content, you retrieve it via API with a license attached. One integration gives your pipeline both the content and the legal right to use it.
package/dist/index.js CHANGED
@@ -386,7 +386,7 @@ function buildTools(has) {
386
386
  if (has.buyerToken) {
387
387
  TOOLS.push({
388
388
  name: "search_passages",
389
- description: "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.",
389
+ description: "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).",
390
390
  inputSchema: {
391
391
  type: "object",
392
392
  required: ["query"],
@@ -911,7 +911,9 @@ export async function dispatchTool(name, args, creds = ENV_CREDS) {
911
911
  return err("This needs an Opedd buyer key. Sign up at https://opedd.com/buyer/signup (about two minutes): " +
912
912
  "new accounts start with up to 3 free answers, then each article an answer uses is billed at its publication's own price. " +
913
913
  "Then pass the key as Authorization: Bearer <key> (hosted server https://mcp.opedd.com/mcp) or " +
914
- "OPEDD_BUYER_TOKEN (local). To see what Opedd covers first, use search_content or publisher_directory (free, no key).");
914
+ "OPEDD_BUYER_TOKEN (local). Or, without an account, pay for this one answer by card: POST https://api.opedd.com/agent-answer " +
915
+ "with {\"query\": \"...\"}; it answers HTTP 402 with the price and the licence, through the Machine Payments Protocol " +
916
+ "(at least 0.50 USD; the rest stays as credit). To see what Opedd covers first, use search_content or publisher_directory (free, no key).");
915
917
  }
916
918
  const envelope = (await opeddFetch(creds, "/search", {
917
919
  method: "POST",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opedd-mcp",
3
- "version": "0.12.12",
3
+ "version": "0.12.14",
4
4
  "description": "Content licensing for the AI era. Licensed, rights-cleared content for AI agents, with a verifiable license key for every article. The MCP alternative to unlicensed scraping for RAG and AI search.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,7 +32,6 @@
32
32
  "licensed-content",
33
33
  "rag",
34
34
  "ai-agents",
35
- "eu-ai-act",
36
35
  "copyright",
37
36
  "rights-management",
38
37
  "content",