Opedd — Licensed Content for AI
Server Details
Licensed, rights-cleared content for AI agents - verifiable license keys + EU AI Act attestation.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.3/5 across 17 of 17 tools scored.
Each tool has a clearly distinct purpose, with descriptions that explicitly differentiate similar-sounding tools (e.g., browse_registry vs publisher_directory; list_feed vs stream_feed_ndjson). No two tools serve the same function.
Naming is mostly verb_noun (browse_registry, get_content) but includes some noun-first or cryptic names (article_53_attestation, rsl_get). The lack of a unified pattern reduces consistency.
17 tools is well-suited to the scope of a licensing content platform, covering discovery, purchase, access, compliance, and publisher management without being overwhelming.
The tool surface covers the full lifecycle: discover, purchase, access, verify, and generate compliance artifacts. Missing operations (e.g., revoke license) are likely out of scope.
Available Tools
17 toolsarticle_53_attestationAInspect
Issue a signed JWT attesting to EU AI Act Article 53 compliance for a specific license via GET /eu-ai-act/article-53-attestation (Phase 12 Wave 1 W1.4). 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 AI labs hand to legal/procurement for EU AI Act Article 53(1)(d) transparency-obligation evidence. Per INVARIANTS.md W1.6: this attests to EU AI Act Article 53 ONLY (buyer-side GPAI-model-provider transparency obligation). It does NOT discharge a publisher's CDSM Article 4(3) reservation obligation — that lives on the rsl_get tool (jsonld=true variant). Never conflate. Optional content_id scopes the attestation to one article; default is license-wide. Window cap: 365 days. Requires OPEDD_BUYER_JWT.
| Name | Required | Description | Default |
|---|---|---|---|
| content_id | No | Optional UUID of a specific article to scope the attestation. Default: license-wide. | |
| license_id | Yes | UUID of the enterprise_license OR legacy individual license to attest. Buyer must own it. | |
| window_end | No | ISO 8601 upper bound. Default: now. Window may not exceed 365 days (hard cap). | |
| window_start | No | ISO 8601 lower bound of the attestation window. Default: now - 90 days. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are provided, the description carries the full burden. It discloses that the tool returns a JWT, its contents, verification method, window cap, and scoping behavior. It lacks mention of error handling or rate limits but is detailed enough for safe use.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with the main action first, followed by details and usage notes. It is informative without being overly verbose. Minor noise like 'Phase 12 Wave 1 W1.4' could be trimmed, but overall each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite having no output schema and no annotations, the description covers the tool's purpose, usage guidelines, behavioral traits, parameter semantics, and even provides a clear distinction from siblings. It is fully sufficient for an AI agent to correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds extra context beyond the schema: for license_id it clarifies buyer ownership, for content_id it notes default behavior, and for window_end it reiterates the hard cap. It also adds an auth requirement not in schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (issue a signed JWT), the resource (license), and the specific context (EU AI Act Article 53 compliance). It also explicitly distinguishes from the sibling tool rsl_get, which handles a different regulation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use this tool (for Article 53 attestation), when not to use it (does not discharge CDSM obligations), and names the alternative (rsl_get with jsonld=true). It also mentions the required auth token (OPEDD_BUYER_JWT).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
browse_registryAInspect
Browse the public Opedd license registry. Returns recently issued licenses and licensable content. Filter by publisher_id to explore all content from a specific publisher. Filter by article_id to see all licenses issued for a specific article.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of results to return (default: 10, max: 50) | |
| article_id | No | Filter results to a specific article (UUID) | |
| publisher_id | No | Filter results to a specific publisher (UUID) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully convey behavior. It mentions the tool returns data but does not disclose whether authentication is needed (though 'public' implies open access), rate limits, pagination behavior, or any side effects. The description is adequate but lacks some transparency details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, each adding specific value. The first sentence states the main purpose, the next two explain filter usage. No fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the tool's purpose and filter usage. Since there is no output schema, it would be helpful to briefly describe the return format or fields, but for a simple browsing tool with three optional parameters, the description is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the description adds contextual meaning: it explains the purpose of filtering by publisher_id ('explore all content from a specific publisher') and article_id ('see all licenses issued for a specific article'), going beyond the schema's generic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'browse', the resource 'public Opedd license registry', and what it returns ('recently issued licenses and licensable content'). It distinguishes itself from siblings like purchase_license or get_content by focusing on browsing the registry.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides specific use cases for filters: 'Filter by publisher_id to explore all content from a specific publisher. Filter by article_id to see all licenses issued for a specific article.' This gives clear guidance on when to use each filter, though it does not explicitly mention when not to use the tool or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
detect_platformAInspect
Detect the content platform behind a URL via POST /detect-platform (Phase 12 Wave 3 W3.1). Public no-auth lookup. Given a URL, identifies what platform powers it (Substack / Beehiiv / Ghost / Medium / Brevo / custom) and returns the suggested onboarding workflow. Hostname-detectable platforms (Substack subdomain, Beehiiv suffix, etc.) resolve in milliseconds; custom domains may take ~few seconds while the detector probes well-known platform endpoints in parallel. Returns: {platform, confidence, archive_method, forward_method, required_credentials, instructions}. The archive_method + forward_method fields are the two onboarding-workflow inputs Opedd's setup wizard reads (one for historical content backfill, one for new-content forward stream). instructions is human-readable operator copy explaining the inferred path.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | Publisher URL to inspect (any well-formed URL works; hostname-match short-circuits the probe path). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and excels: discloses POST endpoint, public access, no auth requirement, performance characteristics, return structure including all fields and their meanings (archive_method, forward_method, instructions). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds value: endpoint, auth, purpose, timing, return fields, field explanations. Information is front-loaded (purpose first) and no fluff. Well-structured for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, but the description fully compensates by listing all return fields and their significance (archive_method, forward_method for onboarding workflow). Also covers timing and endpoint details. Complete for a detection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the 'url' parameter. The tool description adds no new semantic information about the parameter beyond what the schema provides, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly specifies the action (detect) and resource (content platform behind a URL). Distinguishes from all siblings as no other tool performs platform detection. Uses specific verb-resource combination with explicit domain.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States public no-auth lookup and provides timing behavior (milliseconds for hostname-detectable, seconds for custom domains). While it doesn't explicitly list when not to use, the context signals show no similar siblings, so guidance is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_audit_eventsAInspect
Browse per-event audit rows for the authenticated buyer via GET /buyer-audit (Phase 9.x). Each row carries license_terms + Tempo on-chain attestation (merkle_root + inclusion_proof when blockchain_status='confirmed'). Optional filter by event_type ('content_access', 'bulk_content_access', 'compliance_report_generated'). Window cap 30 days (vs 90-day cap on get_compliance_dossier). Attestation inclusion proof is included on every row by default — no separate flag needed (M6.4 consolidation per founder ratification: tools 4 + 6 merged into one cleaner mental model). Requires OPEDD_BUYER_JWT (Supabase session JWT from the buyer portal).
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | ISO 8601 timestamp upper bound (inclusive) | |
| from | No | ISO 8601 timestamp lower bound (inclusive) | |
| limit | No | Max events per response (default: 50, max: 200) | |
| cursor | No | Opaque cursor for pagination | |
| event_type | No | Optional event-class filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that each row includes license_terms and Tempo on-chain attestation (with merkle_root and inclusion_proof when confirmed), that inclusion proof is always included, and that it requires OPEDD_BUYER_JWT. This provides good behavioral insight, though rate limits or error behavior are omitted.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph with 4-5 sentences, dense but well-organized. It front-loads the main purpose and includes behavioral notes. It is concise without being overly brief, though a bulleted structure could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters, no output schema, and no annotations, the description covers purpose, usage comparison, behavioral details, and auth requirement. Pagination details (cursor, limit) are in the schema but not elaborated in description, which is acceptable. Overall, it provides sufficient context for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds the 30-day window cap constraint (not in schema) and clarifies the event_type filter with enumerated values. This additional context adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool browses per-event audit rows via a specific endpoint, identifies the resource and action, and distinguishes it from get_compliance_dossier by noting the 30-day window cap vs 90-day cap, effectively differentiating from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly compares to get_compliance_dossier with window caps, providing guidance on when to use this tool. It also mentions optional event_type filtering. However, it does not explicitly state when not to use it or list prerequisites beyond auth.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_buyer_accountAInspect
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that API keys are only returned as masked prefixes, never plaintext. Specifies required authentication (OPEDD_BUYER_JWT) and HTTP method. With no annotations provided, the description fully covers behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose, but includes detailed use case enumeration that could be slightly streamlined. Every sentence earns its place, but overall length is slightly more than necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description provides comprehensive context: fields returned, authentication, endpoint, use cases, and limitations. Fully covers the tool's functionality for an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With zero parameters (schema coverage 100%), the description adds context about the tool's purpose and return data, but parameter semantics are inherently not needed. Baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Fetch the authenticated buyer's account profile + masked API key list' with the specific endpoint. It clearly identifies the resource (buyer account) and distinguishes from sibling tools like get_compliance_dossier or get_audit_events.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides concrete use cases (post-signup verification, dashboard, audit prep) and explicitly states when not to use it (for full license details, consult buyer portal) and alternative sources.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_compliance_dossierAInspect
Generate a procurement-defense compliance dossier via GET /buyer-compliance-report (Phase 11 M4). Per-row dossier shape: 25+ fields including 17 RAG-essential article fields + full license_terms + on_chain_attestation block. Bulk envelopes fan out into per-article rows by iterating metadata.article_ids[]. Self-audit invariant: every successful call writes one license_events row with event_type='compliance_report_generated' BEFORE returning. Window cap: 90 days per call (vs 30-day cap on get_audit_events). For annual audits, paginate via _meta.next_cursor across 4 quarterly windows. Compliance framework anchors (boolean flags) map to EU AI Act Article 53, CDSM Article 4(3), on-chain attestation, TDM reservation. Requires OPEDD_BUYER_JWT.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | ISO 8601 timestamp upper bound (inclusive). Window cap 90 days. | |
| from | Yes | ISO 8601 timestamp lower bound (inclusive) | |
| cursor | No | Opaque cursor for pagination |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description discloses side effects (writes a license_events row), self-audit invariant, and window cap. Lacks details on potential performance impact or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence adds critical information: endpoint, dossier shape, bulk behavior, audit invariant, window comparison, pagination, compliance anchors, auth. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description details dossier fields (25+ fields, 17 RAG-essential articles), behavior (bulk envelopes, attestation block), and compliance mapping. Covers auth and pagination comprehensively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. Description adds value by specifying window cap on 'to' parameter (90 days) and explaining pagination via 'cursor', beyond schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a compliance dossier via a specific endpoint, distinguishes from siblings like get_audit_events by noting different window caps (90 vs 30 days).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use case (annual audits, pagination across 4 quarterly windows) and auth requirement (OPEDD_BUYER_JWT). Mentions alternative tool's cap but does not fully specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_contentAInspect
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 per-article licenses (token scoped to that article) and archive licenses (token covers all publisher content). The publisher must have content delivery enabled and must have pushed content for the article. Phase 11 M2 RAG-extended shape: response includes 7 RAG-essential metadata fields — author, language, word_count, content_hash, image_urls, canonical_url, 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.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | Yes | The Opedd article UUID to retrieve content for | |
| buyer_token | No | Buyer API token (opedd_buyer_live_* or opedd_buyer_test_*). Falls back to OPEDD_BUYER_TOKEN env var. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description thoroughly discloses behavioral traits: token fallback, publisher prerequisites, response shape (7 RAG fields), and interpretation of NULL values. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is comprehensive but each sentence contributes essential information. Front-loaded with main purpose. Slightly long but justified given tool complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers all necessary aspects for a complex tool: authentication, prerequisites, response details, and edge cases (historical NULLs). No output schema, but description adequately explains return structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds valuable context about token prefixes and fallback behavior, enhancing parameter understanding beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the action (retrieve), resource (full body of licensed article), and specific conditions (buyer API token). Distinguishes this tool from siblings by focusing on licensed content retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides detailed usage context: token types, environment variable, publisher requirements, and license types. Lacks explicit alternatives or when-not-to-use, but the description gives strong guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_feedAInspect
List articles from a buyer's licensed catalog via GET /enterprise-license (Phase 10 + 11). 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. Requires OPEDD_ACCESS_KEY (ent_* enterprise access key). For larger bulk corpus pulls, use stream_feed_ndjson (up to 1000 articles per call vs 200 here).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max articles per response (default: 50, max: 200) | |
| since | No | ISO 8601 timestamp — return only articles with published_at > since | |
| cursor | No | Opaque cursor from prior response's _meta.next_cursor |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the return format (JSON, paginated), the delta-feed behavior, the maximum limit (200), and the auth requirement. It implicitly indicates read-only via 'List', but lacks explicit idempotency or side-effect statements. Minor gap for a read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Five sentences, all essential. Front-loaded with purpose and endpoint. No redundancy or fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main usage (delta polling, pagination), alternative tool, and auth requirement. No output schema, so response structure is slightly vague but adequate. Could mention response fields, but not critical for this simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds meaningful usage context: explains `since` for delta-feed polling and `cursor` for pagination, which goes beyond the schema descriptions. Does not repeat limit details, but adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists articles from a buyer's licensed catalog via a specific API endpoint (GET /enterprise-license, Phase 10+11). It identifies the resource, verb, and scope, distinguishing itself from siblings like stream_feed_ndjson.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly explains when to use: for delta-feed polling with `since` and pagination with `cursor`. Also provides a counter-example: for larger bulk pulls, use stream_feed_ndjson (up to 1000 vs 200). Mentions required authentication key (OPEDD_ACCESS_KEY).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_publisher_contentAInspect
List all licensable articles for the authenticated publisher (requires OPEDD_PUB_BEARER, or legacy OPEDD_API_KEY). Returns articles with titles, descriptions, pricing, and sales statistics. Use article IDs from this list to purchase licenses via purchase_license.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by license type availability | |
| limit | No | Number of results (default: 20, max: 100) | |
| offset | No | Pagination offset (default: 0) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses authentication requirements and return content (titles, descriptions, pricing, sales statistics). It does not detail pagination behavior beyond parameters, but overall provides good transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences: the first covers purpose and authentication, the second links to a related tool. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given three optional parameters and no output schema, the description covers authentication, return details, and usage flow. It could elaborate on pagination, but the schema handles limit/offset parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with each parameter having a description. The tool description adds context for the 'type' parameter (filter by license type availability) but does not significantly enhance the schema-provided meaning for limit and offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all licensable articles for the authenticated publisher', providing a specific verb, resource, and scope. It differentiates from sibling tools like get_content or browse_registry by focusing on publisher-specific licensable articles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates when to use the tool (to list articles before purchasing licenses) and mentions required authentication tokens. It implicitly distinguishes from purchase_license, but lacks explicit when-not-to-use or alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_contentAInspect
Look up a piece of content on the Opedd registry by URL. Returns the article title, publisher, available license types, and pricing (human republication price and AI training/inference price). Always call this first to check if content is licensable and what it costs.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The canonical URL of the article or content to look up |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. Discloses return fields (title, publisher, license types, pricing) and positions the operation as a read-only lookup. Misses potential details like authentication or error handling, but adequately communicates behavior for a simple lookup.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the primary action and return data, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of a lookup tool with full schema coverage, the description sufficiently covers purpose, usage, and return data. Missing details like expected URL format or error responses, but adequate for agent decision-making.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one well-documented parameter (url). Description adds no additional meaning beyond 'by URL,' so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it looks up content by URL and returns licensing/pricing info. Implicitly distinguishes from siblings like get_content by positioning as a preliminary check, but doesn't explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs 'Always call this first to check if content is licensable and what it costs,' providing clear when-to-use guidance and decision context for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
publisher_directoryAInspect
Browse the public Opedd publisher catalog via GET /publisher-directory. Returns paginated publishers with article counts, pricing (per-article + annual + monthly-forward-feed), plan, and sample articles (RAG-extended metadata). The primary discovery surface for AI labs to find Opedd-licensable publishers — distinct from browse_registry (which lists issued LICENSES, not publishers). Filter by category (case-insensitive substring), min_articles, or verified status. Public no-auth — useful pre-purchase scoping before buyers commit to enterprise-license POST.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Page size cap. | |
| offset | No | Pagination offset. | |
| category | No | Case-insensitive substring filter on publisher category (e.g. 'finance', 'AI'). | |
| verified | No | 'true' to show only verified publishers (default), 'false' for unverified. | |
| min_articles | No | Filter to publishers with at least this many licensable articles. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description effectively communicates that the tool is a read-only GET request without side effects, returns paginated results, and has no authentication. It could mention rate limits or idempotency, but the current detail is strong for a safe operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core action and return data, then adds usage context and filter info. It is relatively concise, though could be slightly tightened. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description adequately lists return fields (article counts, pricing, plan, sample articles) and explains the tool's role in the workflow. It covers the necessary context for an AI agent to decide when to use this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents each parameter. The description restates filter capabilities (category substring, min_articles, verified) but adds no new semantic meaning beyond what the schema provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool browses the public Opedd publisher catalog via GET, specifies return data (publishers, pricing, sample articles), and explicitly distinguishes it from sibling browse_registry. The description conveys a specific verb and resource.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says it's the 'primary discovery surface for AI labs to find Opedd-licensable publishers' and 'useful pre-purchase scoping before buyers commit to enterprise-license POST'. It contrasts with browse_registry (licenses vs. publishers) and notes the tool requires no authentication.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_enterprise_licenseAInspect
Purchase a bulk enterprise license covering multiple publishers (Phase 10). Returns a Stripe client_secret for payment completion + the enterprise_license_id. After payment, an ent_* access key is emailed to buyer_email. Scopes: 'custom' (pass-through publisher_ids), 'platform_wide' (auto-resolve all opted-in publishers), 'filtered' (Phase 10 filter_rules). License tiers: 'rag' (= ai_retrieval), 'training' (= ai_training, flat-fee not metered), 'inference' (= ai_retrieval), 'full_ai' (writes both retrieval + training records).
| Name | Required | Description | Default |
|---|---|---|---|
| scope | No | Coverage scope (default: custom) | |
| buyer_org | Yes | Buyer organization name (for billing + audit ledger) | |
| buyer_email | Yes | Email to deliver the access key after payment | |
| billing_type | No | Billing cadence (default: annual) | |
| filter_rules | No | Required when scope='filtered'. See Phase 10 docs for shape: excluded_publisher_ids / direct_license_carveouts / categories / max_price_per_event. | |
| license_tier | No | License tier (default: rag) | |
| publisher_ids | Yes | Array of publisher UUIDs. Required for scope='custom'; ignored for platform_wide/filtered (resolved server-side). | |
| duration_months | No | License duration in months (default: 12) | |
| buyer_webhook_url | No | Optional HMAC-signed webhook for content.published events on covered publishers |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses return values (client_secret and enterprise_license_id), the email delivery of the access key, and explains how scopes and tiers affect behavior. It does not cover auth requirements or rate limits, but for a purchase tool this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is several sentences long but each adds value. It front-loads the main purpose and return values. However, some details like tier mappings could be more succinct, and the reference to Phase 10 docs adds some verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 params, nested objects, multiple scopes/tiers), the description covers the major aspects: return values, scope behavior, tier definitions, and key delivery. It references Phase 10 docs for filter_rules shape. Missing details like error handling or idempotency, but overall sufficient for a purchase tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are described in the schema. The description adds meaning beyond the schema by explaining scope behaviors (e.g., publisher_ids ignored for platform_wide/filtered) and tier mappings (e.g., 'rag' = ai_retrieval). This enriches the parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Purchase a bulk enterprise license covering multiple publishers (Phase 10).' It distinguishes from siblings like purchase_license by specifying 'enterprise' and 'bulk'. The verb 'purchase' and resource 'enterprise license' are explicit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains scopes and tiers, giving context for when different options apply, but does not explicitly state when to use this tool versus alternative methods (e.g., purchase_license). No when-not-to-use or exclusion guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
purchase_licenseAInspect
Purchase a content license from the Opedd protocol using a Stripe payment method. Returns a license key (format: OP-XXXX-XXXX) and a certificate URL. The buyer receives a Handshake Email with their license key. Set OPEDD_BUYER_EMAIL and OPEDD_PAYMENT_METHOD_ID env vars to avoid passing them on every call. License types: 'human' = republication rights, 'ai' = training dataset rights, 'ai_inference' = inference/RAG rights.
| Name | Required | Description | Default |
|---|---|---|---|
| article_id | No | Opedd article UUID (use this OR article_url) | |
| buyer_name | No | Full name of the buyer (for the license record and certificate) | |
| article_url | No | URL of the article to license (use this OR article_id) | |
| buyer_email | No | Email address for the license. Falls back to OPEDD_BUYER_EMAIL env var. | |
| intended_use | No | Intended use of the licensed content | |
| license_type | Yes | human = republication/editorial rights, ai = training dataset rights, ai_inference = inference/RAG rights | |
| payment_method_id | No | Stripe payment method ID (pm_...). Falls back to OPEDD_PAYMENT_METHOD_ID env var. | |
| buyer_organization | No | Organization or company name (for enterprise/editorial licenses) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose all behavioral traits. It mentions the purchase action, Stripe payment, email delivery, and returns a license key. However, it doesn't disclose whether the purchase is reversible, any rate limits, or what happens on payment failure. The mutating nature is implied but not explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core purpose and then adds relevant details. It is reasonably concise without fluff, though could be slightly better structured with bullet points for readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description covers purpose, return format, and env vars. It lacks details on error responses, confirmation steps, and broader workflow context. Returns are only minimally described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining the env var fallback for buyer_email and payment_method_id, and elaborates on license_type enums. Other parameter descriptions in the schema are already adequate, so the description provides marginal extra context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool purchases a content license via Stripe, specifies return values (license key format, certificate URL), and explains three license types. It distinguishes from the sibling 'purchase_enterprise_license' by being for individual licenses, though not explicitly stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on setting environment variables to reduce parameter passing, and explains license type meanings. However, it does not explicitly differentiate when to use this tool vs the enterprise sibling, or state prerequisites like having a Stripe payment method set up.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
push_contentAInspect
Push your published articles to Opedd so they can be licensed to AI buyers (requires OPEDD_PUB_BEARER — your opedd_pub_ publisher key). Send 1–100 articles per call; batch larger back-catalogues into multiple calls. Each article needs title, url, and html_body — everything else is optional (published_at defaults to now). This is the supply-side companion to list_publisher_content: use it to onboard your archive or push new content with no code, straight from your AI assistant.
| Name | Required | Description | Default |
|---|---|---|---|
| articles | Yes | 1–100 articles to push in this call. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses the required bearer token, batch size limits (1-100), and default behavior for published_at. However, it omits what the response looks like, error handling, or whether the operation is idempotent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three concise sentences, each serving a distinct purpose: purpose/auth, constraints/requirements, and sibling distinction. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity and lack of output schema, the description covers auth, batching, required fields, and sibling relationship. Missing response details, but overall adequately complete for an AI agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. The description adds meaning by restating required fields (title, url, html_body), noting that published_at defaults to now, and advising to batch large backlogs—value beyond the schema's per-field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool pushes published articles to Opedd for AI buyer licensing, using specific verbs ('Push') and resource ('articles'). It distinguishes itself from sibling 'list_publisher_content' by noting it is the supply-side companion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: use to onboard archives or push new content, batch larger back-catalogues into multiple calls, and mentions the required auth token. It does not explicitly state when not to use, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rsl_getAInspect
Fetch a publisher's RSL Standard manifest via GET /rsl-manifest (Phase 12 Wave 1 W1.1). 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 4 canonical license types (ai_retrieval, ai_training, human_per_article, human_full_archive) the publisher has opted into, 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. Per INVARIANTS.md W1.6: this is the PUBLISHER-side CDSM Article 4(3) declaration surface. It is NOT an EU AI Act Article 53 attestation (which is buyer-side, JWT-auth, via article_53_attestation tool).
| Name | Required | Description | Default |
|---|---|---|---|
| jsonld | No | 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 | Yes | UUID of the publisher whose RSL manifest to fetch. Publisher must be verified. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses that the tool is a GET endpoint, requires no authentication, returns specific license types and TDM reservation posture, and explains the jsonld option with signed receipt for regulatory verification. It references invariants and wave info, but does not mention rate limits or error responses.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is relatively long but well-structured with clear front-loading of purpose. Every sentence adds value, covering purpose, usage, return data, and alternative tool. Minor redundancy in explaining jsonld options could be slightly tightened, but overall effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (regulatory context, two output shapes, multiple license types), the description covers purpose, use case, authentication, return values, and alternative tools. It lacks explicit error conditions or edge cases, but the description is comprehensive enough for an AI agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with both parameters documented. The description enriches the meaning: it explains that jsonld requests a JSON-LD shape with HMAC-SHA256 receipt and that publisher_id must be a verified publisher UUID. This adds context beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a publisher's RSL Standard manifest, identifies it as a public no-auth endpoint, and lists the returned data types. It explicitly contrasts with the sibling tool article_53_attestation, which is buyer-side and JWT-auth, providing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains when to use this tool (discovery before buyer account signup) and explicitly states when not to use it (not for EU AI Act Article 53 attestation). It names the alternative tool (article_53_attestation), providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
stream_feed_ndjsonAInspect
Bulk-export a buyer's licensed catalog via GET /enterprise-license?format=ndjson (Phase 11 M3). Returns up to 1000 articles per call (collected from line-delimited JSON wire format). Each article emits one usage_records row (analytics-only sentinel 'bulk-export::' — not metered-billable per the revenue-model bifurcation invariant). 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. Requires OPEDD_ACCESS_KEY (ent_*).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max articles per response (default: 200, max: 1000) | |
| since | No | ISO 8601 timestamp — return only articles with published_at > since | |
| cursor | No | Opaque cursor from prior response's _meta.next_cursor |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, description reveals key behaviors: 1000-article cap, non-metered-billable sentinel, backend 5000 support. Could mention side effects like usage_records emission, but already strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Information-dense and front-loaded. Each sentence adds value. Slightly lengthy but appropriate for complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers essential aspects: endpoint, format, limits, usage patterns, and behavioral invariants. No output schema, but description gives sufficient context. Minor omission of error handling.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all params (100% coverage). Description adds context: 'since' for delta-feed, 'cursor' for pagination, 'limit' default/max reiterated. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes bulk-exporting a buyer's licensed catalog via a specific endpoint and format. Clear verb+resource but does not explicitly differentiate from sibling tools like list_feed or get_content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (bulk export, delta-feed with since, pagination with cursor) and when not to (real bulk-ingest should use Python SDK). Provides clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
verify_licenseAInspect
Verify the authenticity of an Opedd license key. Returns license details including: article title, publisher, license type, issue date, amount paid, buyer info, and blockchain proof status. Use this to confirm a license is valid before using licensed content.
| Name | Required | Description | Default |
|---|---|---|---|
| license_key | Yes | The license key to verify (format: OP-XXXX-XXXX) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behaviors. It indicates the tool returns license details and is safe (non-destructive). However, it does not mention authentication requirements, rate limits, error conditions (e.g., invalid key), or whether it makes external API calls. The described behavior is adequate but not fully transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states the core action, second lists return fields and gives usage context. No extraneous information. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has one parameter and no output schema. The description explains what it does, when to use it, and lists expected return fields (partially compensating for missing output schema). It doesn't cover error handling or edge cases, but for a simple verification tool, this is largely sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter 'license_key' already has a description including the format. The tool's description does not add new semantics for this parameter beyond what the schema provides. Thus baseline score 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'verify' and identifies the resource as 'Opedd license key'. It also lists specific return fields, giving a precise sense of scope. However, it does not explicitly differentiate from sibling tools like 'purchase_license' or 'get_buyer_account', though the verb implies a different action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use this to confirm a license is valid before using licensed content.' This provides clear context. It does not mention when not to use it or alternatives, so a 4 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!