opedd-mcp

MCP serverAI & models

This integration gives your AI access to licensed, rights-cleared content it can use in its work. Every piece comes with a verifiable license key and an EU AI Act attestation, so you can confirm what your AI is allowed to use. That keeps your AI's content use documented and easy to check.

Use opedd-mcp in Claude, ChatGPT or Ahel Desktop

Free. Sign in, add opedd-mcp and connect your AI. About a minute.

Also: Claude Code · Cursor · Codex

Then ask your AI: use the lookup content tool from opedd-mcp

Details

Available today. Use it from your connected AI after setup.

After adding it, ask your AI to use licensed content on a task and have it show you the license key and attestation behind what it used. More detail is available in the opedd repository on GitHub.

opedd-mcpStart free

What your AI can do with it

  • Access licensed, rights-cleared content
  • Verify the license key for any content it uses
  • Provide an EU AI Act attestation for content use
  • Pull in licensed content while working on tasks

Install opedd-mcp

The server’s own address, for the clients that take one directly. Or connect Ahel once and every client you use reads it from one address, with the account kept on Ahel rather than in each client’s config.

  • Claude Code

    claude mcp add --transport http --scope user opedd-mcp 'https://mcp.opedd.com/mcp'

    Run it once in your project, then open /mcp to approve any sign-in the server asks for.

  • Claude Desktop

    https://mcp.opedd.com/mcp

    Add a custom connector in Settings, paste this address, and approve the sign-in.

  • Cursor

    cursor://anysphere.cursor-deeplink/mcp/install?name=opedd-mcp&config=eyJ1cmwiOiJodHRwczovL21jcC5vcGVkZC5jb20vbWNwIn0=

    Open the link and Cursor adds the server at that address.

  • ChatGPT

    https://mcp.opedd.com/mcp

    In Settings, enable Developer mode, create an MCP app, and paste this address. Your plan and workspace must allow custom apps.

  • Codex

    codex mcp add opedd-mcp --url 'https://mcp.opedd.com/mcp'

    Run it once, then sign in with codex mcp login opedd-mcp if the server asks for an account.

From the project's README

As published by opedd/opedd-mcp in README.md.

Lets AI assistants (Claude Desktop, Cursor, Windsurf, or any MCP-compatible host) discover, purchase, and verify content licenses autonomously — mid-conversation, without opening a browser. Every license is registered on-chain (Tempo blockchain) with cryptographic proof.

Unlike generic search APIs, Opedd returns content with a verifiable license key — defensible under the EU AI Act and any copyright jurisdiction.

Quick start

npx opedd-mcp

Then add it to your MCP host (see Claude Desktop / Cursor / Windsurf setup below). Discovery + verification tools work with no configuration; purchasing and content retrieval use optional API keys from opedd.com.

Hosted endpoint — no install (mcp.opedd.com)

Prefer zero-install? The same 19 tools are served hosted at https://mcp.opedd.com/mcp (Streamable HTTP). Auth is an Authorization: Bearer header with any Opedd key — public discovery tools need no auth at all.

Claude Messages API (production agents):

{
  "mcp_servers": [{
    "type": "url",
    "url": "https://mcp.opedd.com/mcp",
    "name": "opedd",
    "authorization_token": "opedd_buyer_live_..."
  }]
}

OpenAI Responses API:

{
  "tools": [{
    "type": "mcp",
    "server_label": "opedd",
    "server_url": "https://mcp.opedd.com/mcp",
    "authorization": "opedd_buyer_live_..."
  }]
}

claude.ai / Claude Desktop custom connector (all plans): Settings → Connectors → Add custom connector → URL https://mcp.opedd.com/mcp; add a Authorization: Bearer <your key> request header for the credentialed tools.

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "opedd": {
      "url": "https://mcp.opedd.com/mcp",
      "headers": { "Authorization": "Bearer ${env:OPEDD_KEY}" }
    }
  }
}

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.

What it does

Exposes up to 19 tools to any AI assistant (some are conditional on env vars):

Always available — discovery + per-article purchase + onboarding + rights signaling

ToolDescription
search_contentFree discovery. Full-text search across everything licensable (v0.8.0) — ranked matches with publisher, prices, word count and a description snippet; quotes for phrases, -word to exclude. Returns no article text — use search_passages to actually read
search_passagesPaid. Ask a question, get licensed passages that answer it, with citations. Searches only publishers you hold a per-question licence for; charges once per publisher per question at that publisher's own price. Capped at 300 words or 25% of the article, counted cumulatively. Needs a buyer key with the search scope. Re-asking within 24h is free
lookup_contentLook up an article by URL — returns title, publisher, pricing
purchase_licenseBuy a Human republication licence for one article via Stripe — returns OP-XXXX-XXXX key. Requires terms_accepted: true (genuine buyer assent to opedd.com/terms; recorded with the licence)
verify_licenseVerify a license key — returns validity, article, publisher, blockchain proof
browse_registryBrowse the public Opedd registry — lists issued LICENSES (use publisher_directory to browse publishers themselves)
publisher_directoryBrowse the public Opedd publisher catalog — paginated publishers with article counts + pricing + sample articles (primary buyer-discovery surface for AI labs)
place_licence_orderPlace a licence order for one or more publishers: AI answers (monthly full text, or metered pay-per-request snippets ≤300 words / 25%), Full catalogue (archive, one_time: everything published up to the order date, kept permanently, no AI training), AI training (one_time, back catalogue), client display (monthly × end clients). Optional include_archive: true on a monthly AI answers order adds each publisher's Full catalogue for complete access. Each publisher is its own Schedule at its own price; returns the order, lines, unavailable publishers and hosted_invoice_url. Needs OPEDD_BUYER_JWT and terms_accepted: true
rsl_getFetch a publisher's RSL Standard manifest — public discovery surface; jsonld: true returns CDSM Article 4(3) signed receipt (Phase 12 W1.1)
detect_platformDetect the content platform behind a URL — returns suggested onboarding workflow for Substack / Beehiiv / Ghost / Medium / Brevo / custom (Phase 12 W3.1)

Requires OPEDD_BUYER_TOKEN (opedd_buyer_live_*)

ToolDescription
get_contentRetrieve a licensed article — full text for AI answers monthly and client display orders, a snippet (≤300 words / 25%) for pay-per-request; includes 7 RAG metadata fields (author, language, word_count, content_hash, image_urls, canonical_url, tags)

Requires OPEDD_ACCESS_KEY (ent_*) — buyer-side feed surfaces

ToolDescription
list_feedList articles from a buyer's licensed catalog with since delta-feed support. AI training orders carry full content_body (back catalogue up to the order date, content_access: "included"); every other order is discovery-only (content_body: null, content_access: "retrieval_per_article" or "metered_per_call") — fetch text via get_content
stream_feed_ndjsonBulk-export up to 1000 articles per call via NDJSON wire format. Same content contract as list_feed — full text for AI training orders only

Requires OPEDD_BUYER_JWT (Supabase JWT) — buyer account + audit + compliance + EU AI Act surfaces

ToolDescription
get_buyer_accountFetch buyer profile + masked API key list — buyer-dashboard mental model
list_licence_ordersThe buyer's licence orders and lines; with order_id, each line's Schedule document and its SHA-256 (the fingerprint recorded on Tempo). Also works with an audit-scoped OPEDD_BUYER_TOKEN
get_audit_eventsPer-event audit ledger with Tempo on-chain attestation inclusion proofs inline (Phase 9.x + 10 M5)
get_compliance_dossierProcurement-defense compliance dossier mapping retrievals to license terms (Phase 11 M4)
article_53_attestationSigned JWT attesting EU AI Act Article 53(1)(d) compliance for a license — the artifact AI labs hand to legal/procurement (Phase 12 W1.4)

Requires OPEDD_PUB_BEARER (opedd_sk_; legacy opedd_pub_ still works) — publisher-side

ToolDescription
list_publisher_contentList your own articles with pricing and stats
push_contentPush your articles to Opedd so AI buyers can license them — 1–100 per call (title/url/html_body required, everything else optional). Onboard your back-catalogue or new posts with no code, straight from your AI assistant.

Regulatory framing (CDSM Article 4 vs EU AI Act Article 53 — never conflated)

Per Opedd's platform invariants (W1.6 amendment):

  • rsl_get(publisher_id, jsonld=true) → publisher-side CDSM Article 4(3) opt-out declaration (signed JSON-LD receipt over the reservation state).
  • article_53_attestation(license_id) → buyer-side EU AI Act Article 53 attestation (signed HS256 JWT scoped to one license).
  • get_compliance_dossier(from, to) → comprehensive procurement-defense dossier covering BOTH frameworks (publisher CDSM reservation honored + buyer Article 53 evidence chain).

These serve different audit-defensibility modes and never share wire format. Tool descriptions cite the W1.6 invariant inline.

Install

npm install -g opedd-mcp

Or run directly with npx:

npx opedd-mcp

Configuration

Set environment variables to pre-configure the server:

VariableRequiredDescription
OPEDD_BUYER_EMAILRecommendedYour email — used as default for all purchases
OPEDD_PAYMENT_METHOD_IDRecommendedStripe pm_... ID — used for autonomous per-article purchasing
OPEDD_BUYER_TOKENOptionalBuyer API token (opedd_buyer_live_* canonical; opedd_buyer_test_* for sandbox) — enables get_content
OPEDD_ACCESS_KEYOptionalEnterprise access key (ent_*) — enables list_feed + stream_feed_ndjson
OPEDD_BUYER_JWTOptionalSupabase session JWT from the buyer portal — enables place_licence_order + list_licence_orders + get_buyer_account + get_audit_events + get_compliance_dossier + article_53_attestation
OPEDD_PUB_BEAREROptionalPublisher API key (opedd_sk_<32-hex>, canonical since 2026-08-27; older opedd_pub_<32-hex> keys keep working) — from the Opedd dashboard, Settings → Developers. Enables list_publisher_content (+ include_body) and push_content.
OPEDD_API_KEYDeprecatedLegacy Publisher API key (op_...) — fallback during the transition window; will stop working when opedd-backend Phase C deploys. Migrate to OPEDD_PUB_BEARER.
OPEDD_API_URLOptionalOverride the API base URL (default: Opedd production)
OPEDD_MCP_TELEMETRYOptionalSet to 0 to disable anonymous usage telemetry (see below)

Getting a Stripe payment method ID: Save a card in your Stripe account and retrieve the pm_... ID via the Stripe API.

Anonymous usage telemetry

To understand how AI assistants use this server, opedd-mcp sends anonymous telemetry for each tool call: only the tool name, its duration, whether it succeeded, and the server version — plus a random per-process id. It never sends tool parameters, responses, your email, API keys, tokens, content, or your IP. Data goes to Opedd's PostHog (EU region).

To opt out, set either environment variable before starting the server:

OPEDD_MCP_TELEMETRY=0
# or the cross-tool standard:
DO_NOT_TRACK=1

When opted out, no telemetry client is created and nothing is sent.

Claude Desktop setup

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "opedd": {
      "command": "npx",
      "args": ["opedd-mcp"],
      "env": {
        "OPEDD_BUYER_EMAIL": "you@yourcompany.com",
        "OPEDD_PAYMENT_METHOD_ID": "pm_..."
      }
    }
  }
}

Cursor / Windsurf setup

Add to your MCP settings:

{
  "opedd": {
    "command": "npx opedd-mcp",
    "env": {
      "OPEDD_BUYER_EMAIL": "you@yourcompany.com",
      "OPEDD_PAYMENT_METHOD_ID": "pm_..."
    }
  }
}

Example usage

Once configured, you can ask your AI assistant:

"Look up the licensing options for this article: https://theinformation.com/articles/..."

"Purchase a human republication license for that article on my behalf."

"Verify license key OP-XXXX-XXXX and tell me what it covers."

"Browse the latest licenses from The Information publisher."

Phase 12 Wave 1 + 3 surfaces (v0.3.0)

"What does publisher 8268c353-ffa3-4db3-bbb2-90ddbbb43e41 license? Pull the RSL manifest." — uses rsl_get

"Get me a CDSM Article 4(3) signed receipt for that publisher's reservation state — set jsonld: true." — uses rsl_get with content negotiation

"Generate an EU AI Act Article 53 attestation JWT for our license 11111111-... covering the last 90 days. I need the artifact for our procurement audit committee." — uses article_53_attestation (requires OPEDD_BUYER_JWT)

"This publisher just signed up: https://noahpinion.substack.com. Which onboarding workflow should we use?" — uses detect_platform

"Browse the finance category in the Opedd catalog — show me publishers with at least 50 articles." — uses publisher_directory

"What's in my buyer account? Show me my active API keys." — uses get_buyer_account (requires OPEDD_BUYER_JWT)

The assistant will call the appropriate Opedd tools, show you the results, and—if you've pre-configured a payment method—can complete a purchase autonomously.

Payment methods

Purchases use Stripe by default (via pm_... payment method IDs). USDC on Tempo is also supported by the Opedd API — pass payment: { method: 'usdc', tx_hash: '0x...' } directly to agent-purchase if building a custom integration.

Development

git clone https://github.com/Opedd/opedd-mcp
cd opedd-mcp
npm install
npm run dev   # runs with tsx (no build step)
npm run build # compiles to dist/

How Opedd compares to search APIs

OpeddGeneric search APIs
What you getLicensed content + license key + on-chain proof — all in one API callScraped web content, no rights
Content deliveryFull article text via API (JSON) — bulk on flat-fee licenses, per-call (metered) on filtered licenses; real-time feed via webhooksScraped snippets or full-page dumps
Content qualityCurated publisher content (niche B2B newsletters, expert analysis)Whatever's on the open web
RightsVerifiable license key per article, publisher-authorizedNo rights clearance
ProofOn-chain (Tempo blockchain) — independently verifiableNone
EU AI ActCompliant — full training data provenance chainNo provenance
PricingPublisher sets their own price per articlePlatform decides
Delivery modesPer-article API, bulk feed (JSON firehose), buyer webhooks (push)Query-response only
ProtocolREST + MCP nativeREST only

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.

Learn more

License

MIT

Tools it offers (20)

What this server listed when Ahel dialed its public endpoint in Oct 2026, with no key and no account of yours. The names are the server’s own.

  • lookup_content
  • search_content
  • purchase_license
  • verify_license
  • browse_registry
  • publisher_directory
  • detect_platform
  • rsl_get
  • place_licence_order
  • search_passages
  • get_content
  • list_feed
  • stream_feed_ndjson
  • list_licence_orders
  • get_audit_events
  • get_buyer_account
  • article_53_attestation
  • get_compliance_dossier
  • list_publisher_content
  • push_content

Signals

GitHub stars
1
Last commit
Sep 2026
Weekly downloads
103
Weekly_downloads
272 weekly_downloads
Advanced
Delivery
opedd-mcp MCP server → your Ahel connector (mcp.ahel.ai) → your AI.
Item type
mcp-server
Key
com-opedd-opedd-mcp
Source
github.com/opedd/opedd-mcp
Hosted endpoint
https://mcp.opedd.com/mcp