Skip to main content
Glama

Opedd — Licensed Content for AI

stream_feed_ndjson

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). Same per-scope content contract as list_feed: METERED (filtered-scope) keys export metadata only (content_body null, content_access 'metered_per_call') — use get_content for article text. 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_*).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
limitNoMax articles per response (default: 200, max: 1000)
sinceNoISO 8601 timestamp — return only articles with published_at > since
cursorNoOpaque cursor from the prior result's meta.next_cursor

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description fully discloses critical behavior: MCP cap of 1000 vs backend 5000, line-delimited JSON wire format, the non-billable sentinel 'bulk-export:<request_id>:<article_id>', the revenue-model bifurcation invariant, and required OPEDD_ACCESS_KEY. This goes far beyond a typical tool description.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is dense but every sentence carries essential information, front-loaded with the primary purpose. It covers purpose, limits, comparison to siblings, usage patterns, exclusions, billing nuances, and auth in a compact, well-structured block. No fluff or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no annotations and no output schema, this description is remarkably complete. It addresses behavior, constraints, alternatives, billing impact, and prerequisites, enabling an agent to select and invoke the tool correctly even without additional metadata.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 operational context beyond the schema: `since` is explicitly tied to delta-feed, `cursor` to paginating beyond 1000, and `limit`'s cap is explained by the MCP-vs-backend transport reasonability. This gives the agent deeper practical understanding of how to use the parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: 'Bulk-export a buyer's licensed catalog via GET /enterprise-license?format=ndjson'. It uses a specific verb and resource, and distinguishes itself from siblings by referencing list_feed's contract and directing article-text retrieval to get_content, and real bulk-ingest to the Python SDK.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit guidance is provided: use `since` for delta-feed, `cursor` for pagination beyond 1000, and a direct exclusion — 'Real bulk-ingest pipelines should use the Python SDK ... not via MCP'. It also clarifies when not to use this tool (for article text → use get_content).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools have distinct purposes, but list_feed and stream_feed_ndjson both list licensed articles (with different formats), and browse_registry vs publisher_directory could confuse agents about scope. Overall, the set is mostly clear.

Naming Consistency4/5

Names follow a verb_noun pattern with underscores (e.g., get_content, purchase_license). A few outliers like rsl_get and article_53_attestation break the pattern slightly, but the majority are consistent.

Tool Count4/5

17 tools cover buyer, publisher, and discovery workflows. While slightly above the typical 3-15 range, the complexity of the licensing platform justifies the count. No tool seems redundant.

Completeness4/5

The tool set covers discovery, purchase, content retrieval, compliance, and attestation comprehensively. Minor gaps like missing license management or key rotation are acceptable given the domain scope.