Skip to main content
Glama

Opedd — Licensed Content for AI

List a licence order's articles

list_feed
Read-onlyIdempotent

List the articles in a licence order you hold. Content contract: AI training orders include full content_body for the back catalogue up to the order date (content_access 'included'). Every other order is discovery-only (content_body null): AI answers monthly and client display fetch text per article via get_content (content_access 'retrieval_per_article'); pay-per-request fetches billed snippets via get_content (content_access 'metered_per_call'). 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. Credentials: the order's enterprise access key (OPEDD_ACCESS_KEY, ent_*) OR your buyer API key (OPEDD_BUYER_TOKEN) with order_id — if your account holds exactly one active order, order_id may be omitted; with several, the error lists them. stream_feed_ndjson returns up to 1000 articles per call (200 here).

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_feed"
  }
}

Input Schema

NameRequiredDescriptionDefault
limitNoMax articles per response (default: 50, max: 200)
sinceNoISO 8601 timestamp — return only articles with published_at > since
cursorNoOpaque cursor from the prior response's data.pagination.next_cursor
order_idNoThe licence order to list (UUID, from list_licence_orders). Used with a buyer API key; ignored with an ent_* key.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / order_id
      Added value: +{
      +  "description": "The licence order to list (UUID, from list_licence_orders). Used with a buyer API key; ignored with an ent_* key.",
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • changedInput schema / properties / cursor / description
      Previous value: -"Opaque cursor from prior response's _meta.next_cursor"New value: +"Opaque cursor from the prior response's data.pagination.next_cursor"
  3. First observed

TDQS

A4.8/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, but the description goes well beyond them: it explains the content contract (full content_body for AI training orders up to the order date, null elsewhere with content_access retrieval_per_article or metered_per_call) and the multi-order error behavior. This is exactly the mutation/access context an agent needs before calling.

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

Conciseness4/5

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

The purpose is front-loaded in one short sentence, followed by a structured contract block; no filler or repetition. It runs long, but the length is carrying genuine domain rules rather than padding, so only minor trimming is possible.

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?

No output schema exists, yet the description specifies paginated JSON, page-size caps, both credential modes, and the per-order content entitlement model. Nothing an agent needs to invoke it correctly on a four-parameter read tool is missing.

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 the baseline is 3, and the description adds real meaning on top: `since` is framed as delta-feed polling with published_at > semantics, and `order_id` gains the rule that it may be omitted for single-order accounts and that ambiguity produces an error listing orders. That is value beyond the schema text.

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 opening sentence names a specific verb and resource with scope ("List the articles in a licence order you hold"), and later contrasts itself with stream_feed_ndjson on page size (200 here vs 1000 there) and with get_content for text retrieval. An agent can place this tool among its siblings without opening a schema.

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?

It states when to use `since` (delta-feed polling), when to use `cursor` (pagination), which credential path applies (ent_* key vs buyer token, with order_id optional only for single-order accounts), and explicitly routes bulk extraction to stream_feed_ndjson. Conditions and alternatives are named rather than implied.

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.