Opedd — Licensed Content for AI
What this MCP does
Discovers, licenses, retrieves, and verifies rights-cleared content for human publication, AI training, and AI retrieval, with audit and compliance artifacts.
Tools
Input schema
{'type': 'object', 'required': ['license_id'], 'properties': {'content_id': {'type': 'string', 'description': 'Optional UUID of a specific article to scope the attestation. Default: license-wide.'}, 'license_id': {'type': 'string', 'description': 'UUID of the enterprise_license OR legacy individual license to attest. Buyer must own it.'}, 'window_end': {'type': 'string', 'description': 'ISO 8601 upper bound. Default: now. Window may not exceed 365 days (hard cap).'}, 'window_start': {'type': 'string', 'description': 'ISO 8601 lower bound of the attestation window. Default: now - 90 days.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Number of results to return (default: 10, max: 50)'}, 'article_id': {'type': 'string', 'description': 'Filter results to a specific article (UUID)'}, 'publisher_id': {'type': 'string', 'description': 'Filter results to a specific publisher (UUID)'}}}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'Publisher URL to inspect (any well-formed URL works; hostname-match short-circuits the probe path).'}}}
Input schema
{'type': 'object', 'properties': {'to': {'type': 'string', 'description': 'ISO 8601 timestamp upper bound (inclusive)'}, 'from': {'type': 'string', 'description': 'ISO 8601 timestamp lower bound (inclusive)'}, 'limit': {'type': 'number', 'description': 'Max events per response (default: 50, max: 200)'}, 'cursor': {'type': 'string', 'description': 'Opaque cursor for pagination'}, 'event_type': {'enum': ['content_access', 'bulk_content_access', 'compliance_report_generated'], 'type': 'string', 'description': 'Optional event-class filter'}}}
Input schema
{'type': 'object', 'properties': {}}
Input schema
{'type': 'object', 'required': ['from', 'to'], 'properties': {'to': {'type': 'string', 'description': 'ISO 8601 timestamp upper bound (inclusive). Window cap 90 days.'}, 'from': {'type': 'string', 'description': 'ISO 8601 timestamp lower bound (inclusive)'}, 'cursor': {'type': 'string', 'description': 'Opaque cursor for pagination'}}}
Input schema
{'type': 'object', 'required': ['article_id'], 'properties': {'article_id': {'type': 'string', 'description': 'The Opedd article UUID to retrieve content for'}, 'buyer_token': {'type': 'string', 'description': 'Buyer API token (opedd_buyer_live_* or opedd_buyer_test_*). Falls back to OPEDD_BUYER_TOKEN env var.'}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max articles per response (default: 50, max: 200)'}, 'since': {'type': 'string', 'description': 'ISO 8601 timestamp — return only articles with published_at > since'}, 'cursor': {'type': 'string', 'description': "Opaque cursor from the prior response's data.pagination.next_cursor"}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Orders per page (default 20, max 100)'}, 'cursor': {'type': 'string', 'description': "Opaque cursor from the prior response's pagination.next_cursor"}, 'order_id': {'type': 'string', 'description': 'Read one order (UUID) including Schedule documents'}}}
Input schema
{'type': 'object', 'properties': {'id': {'type': 'string', 'description': 'With include_body=true: fetch exactly one of your articles by id (full body, no truncation).'}, 'type': {'enum': ['human', 'ai'], 'type': 'string', 'description': 'Filter by license type availability (ignored when include_body is true)'}, 'limit': {'type': 'number', 'description': 'Number of results (default: 20, max: 100; max 20 when include_body is true)'}, 'cursor': {'type': 'string', 'description': 'Opaque next_cursor from a previous include_body=true call.'}, 'offset': {'type': 'number', 'description': 'Pagination offset (default: 0; ignored when include_body is true — use cursor)'}, 'include_body': {'type': 'boolean', 'description': "Return each article's stored body (what buyers receive). Default false."}}}
Input schema
{'type': 'object', 'required': ['url'], 'properties': {'url': {'type': 'string', 'description': 'The canonical URL of the article or content to look up'}}}
Input schema
{'type': 'object', 'required': ['licence', 'billing_mode', 'publisher_ids', 'terms_accepted'], 'properties': {'licence': {'enum': ['enterprise', 'archive', 'training', 'display'], 'type': 'string', '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'}, 'quantity': {'type': 'number', 'description': 'display only: number of end clients (1-500)'}, 'billing_mode': {'enum': ['monthly', 'metered', 'one_time'], 'type': 'string', 'description': 'enterprise: monthly | metered; archive: one_time; training: one_time; display: monthly'}, 'publisher_ids': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Publisher UUIDs (1-500; at most 18 for metered)'}, 'terms_accepted': {'type': 'boolean', '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.'}, 'include_archive': {'type': 'boolean', '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`."}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Page size cap.'}, 'offset': {'type': 'number', 'description': 'Pagination offset.'}, 'category': {'type': 'string', 'description': "Case-insensitive substring filter on publisher category (e.g. 'finance', 'AI')."}, 'verified': {'type': 'string', 'description': "'true' to show only verified publishers (default), 'false' for unverified."}, 'min_articles': {'type': 'number', 'description': 'Filter to publishers with at least this many licensable articles.'}}}
Input schema
{'type': 'object', 'required': ['license_type', 'terms_accepted'], 'properties': {'article_id': {'type': 'string', 'description': 'Opedd article UUID (use this OR article_url)'}, 'buyer_name': {'type': 'string', 'description': 'Full name of the buyer (for the license record and certificate)'}, 'article_url': {'type': 'string', 'description': 'URL of the article to license (use this OR article_id)'}, 'buyer_email': {'type': 'string', 'description': 'Email address for the license. Falls back to OPEDD_BUYER_EMAIL env var.'}, 'intended_use': {'enum': ['personal', 'editorial', 'commercial', 'ai_training', 'corporate'], 'type': 'string', 'description': 'Intended use of the licensed content'}, 'license_type': {'enum': ['human'], 'type': 'string', 'description': 'human = Human republication (editorial republication of one article)'}, 'terms_accepted': {'type': 'boolean', 'description': 'REQUIRED. Set true only after the buyer (your principal) has accepted the Opedd licence terms at opedd.com/terms. The acceptance timestamp is recorded with the licence; purchases without genuine acceptance are rejected.'}, 'payment_method_id': {'type': 'string', 'description': 'Stripe payment method ID (pm_...). Falls back to OPEDD_PAYMENT_METHOD_ID env var.'}, 'buyer_organization': {'type': 'string', 'description': 'Organization or company name (for enterprise/editorial licenses)'}}}
Input schema
{'type': 'object', 'required': ['articles'], 'properties': {'articles': {'type': 'array', 'items': {'type': 'object', 'required': ['title', 'url', 'html_body'], 'properties': {'url': {'type': 'string', 'description': "The article's canonical web address (required)."}, 'tags': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 20 tags.'}, 'title': {'type': 'string', 'description': 'Article title (required, ≤500 chars).'}, 'author': {'type': 'string', 'description': 'Author name (≤200 chars).'}, 'is_paid': {'type': 'boolean', 'description': 'Whether the article is behind a paywall.'}, 'audience': {'enum': ['everyone', 'only_free', 'only_paid'], 'type': 'string', 'description': 'Intended audience.'}, 'category': {'type': 'string', 'description': 'Content category.'}, 'language': {'type': 'string', 'description': 'Language code, e.g. "en".'}, 'html_body': {'type': 'string', 'description': 'Full article content, HTML or plain text (required, ≤200,000 chars).'}, 'image_urls': {'type': 'array', 'items': {'type': 'string'}, 'description': 'Up to 10 body-image URLs.'}, 'description': {'type': 'string', 'description': 'Short summary (≤500 chars).'}, 'published_at': {'type': 'string', 'description': 'ISO-8601 datetime (e.g. 2026-01-15T09:30:00Z). Defaults to now if omitted.'}, 'canonical_url': {'type': 'string', 'description': 'Canonical URL if different from url.'}, 'thumbnail_url': {'type': 'string', 'description': 'https cover-image URL for the catalog.'}}}, 'maxItems': 100, 'minItems': 1, 'description': '1–100 articles to push in this call.'}}}
Input schema
{'type': 'object', 'required': ['publisher_id'], 'properties': {'jsonld': {'type': 'boolean', '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.'}, 'publisher_id': {'type': 'string', 'description': 'UUID of the publisher whose RSL manifest to fetch. Publisher must be verified.'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'limit': {'type': 'number', 'description': 'Max results (default 20, max 50).'}, 'query': {'type': 'string', 'description': 'Search words (max 200 characters).'}, 'publisher': {'type': 'string', 'description': 'Optional publisher slug to search within.'}}}
Input schema
{'type': 'object', 'required': ['query'], 'properties': {'query': {'type': 'string', 'description': 'The question, in plain words (3–1000 characters).'}, 'buyer_token': {'type': 'string', 'description': "Buyer API key with the 'search' scope. Falls back to OPEDD_BUYER_TOKEN."}}}
Input schema
{'type': 'object', 'properties': {'limit': {'type': 'number', 'description': 'Max articles per response (default: 200, max: 1000)'}, 'since': {'type': 'string', 'description': 'ISO 8601 timestamp — return only articles with published_at > since'}, 'cursor': {'type': 'string', 'description': "Opaque cursor from the prior result's meta.next_cursor"}}}
Input schema
{'type': 'object', 'required': ['license_key'], 'properties': {'license_key': {'type': 'string', 'description': 'The license key to verify (format: OP-XXXX-XXXX)'}}}
Recent tool changes
Similar MCP servers
Content Sweep
Supports copyright investigations, evidence capture, monitoring, rights delegation, and preparation of authorized takedown action…
Content Provenance
Anchors and verifies content-creation provenance records with blockchain records and evidence-oriented metadata.
FilmRightsProof
Searches and traces public copyright records and source-supported rights relationships for film, television, and related creative…
c2paintake-mcp
Verifies C2PA content provenance during intake and records reviewer-ready evidence.
c2padisclosure-mcp
Supports C2PA disclosure-policy checks and produces audit evidence for content provenance.
catalog-provenance
Supports discovery and verification of AgentiScript concepts and approved assets, including authenticity and licensing informatio…
Andreax
Offers pay-per-call AI services for inference, agent and workflow design, OCR and transcription, code generation and review, clas…
Social Fetch
Retrieves public content and metadata from social networks, music services, Facebook Marketplace, events, profiles, posts, commen…