Unlike generic search APIs, Opedd returns content with a verifiable license key โ with the rights cleared and a record you can show your legal team.
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 20 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 tools. Your key is forwarded per request and never stored by the gateway.
What it does
Exposes up to 20 tools to any AI assistant (some are conditional on env vars):
Every tool carries a title and MCP annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) so an assistant can tell which tools only read and which spend money or write (v0.12.0).
Always available โ discovery + onboarding + rights signaling
Requires OPEDD_BUYER_TOKEN (opedd_buyer_live_*) โ one key covers search, articles and the feed (v0.12.0)
Feed tools โ OPEDD_BUYER_TOKEN + order_id, or an order's OPEDD_ACCESS_KEY (ent_*)
Requires OPEDD_BUYER_JWT (Supabase JWT) โ buyer account + audit + compliance + attestation surfaces
Requires OPEDD_PUB_BEARER (opedd_sk_; legacy opedd_pub_ still works) โ publisher-side
Compliance artifacts (publisher-side vs buyer-side โ 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 signed compliance attestation (HS256 JWT scoped to one license).get_compliance_dossier(from, to)โ comprehensive procurement-defense dossier covering BOTH sides (publisher CDSM reservation honored + buyer attestation 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:
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_TOKEN": "opedd_buyer_live_..."
}
}
}
}
Cursor / Windsurf setup
Add to your MCP settings:
{
"opedd": {
"command": "npx opedd-mcp",
"env": {
"OPEDD_BUYER_TOKEN": "opedd_buyer_live_..."
}
}
}
Example usage
Once configured, you can ask your AI assistant:
"Look up the licensing options for this article: https://theinformation.com/articles/..."
"What do Opedd's publications say about EU chip subsidies? Cite the passages." โ uses
search_passages
"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." โ usesrsl_getwith content negotiation
"Generate a signed compliance attestation for our license
11111111-...covering the last 90 days. I need the artifact for our procurement audit committee." โ usesarticle_53_attestation(requiresOPEDD_BUYER_JWT)
"This publisher just signed up:
https://noahpinion.substack.com. Which onboarding workflow should we use?" โ usesdetect_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(requiresOPEDD_BUYER_JWT)
The assistant will call the appropriate Opedd tools and show you the results.
Payment
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 (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.
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.
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
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
- Opedd for AI Agents โ full documentation, code examples, endpoint reference
- API Docs โ OpenAPI spec with agent endpoints
- Verify a licence โ check any licence key in the public record
License
MIT