Skip to main content
Glama

Freshrss Ingest Items

freshrss_ingest_items

Ingest FreshRSS feed items into an epistemic-graph as Document nodes via the GReader API, supporting count/order filters and best-effort engine delivery.

Instructions

Natively ingest FreshRSS feed items into epistemic-graph as :Document nodes.

Fetches a stream via the GReader API and pushes the items (title + body + source_uri + originating feed) into the knowledge graph via the fast engine client. Best-effort: returns {"ingested": None} when no engine is reachable. CONCEPT:AU-KG.ingest.enterprise-source-extractor.

Input Schema

NameRequiredDescriptionDefault
params_jsonNoJSON string of stream_contents params (stream_id, count, order, newer_than, continuation).{}

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv2.3.0

TDQS

A3.6/5.0
Behavior4/5

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

With no annotations at all, the description carries the full burden and does disclose key traits: it is a write that creates :Document nodes, it pushes items through the 'fast engine client', and it is best-effort, returning {"ingested": None} rather than erroring when no engine is reachable — a genuinely useful failure-mode disclosure. It still omits permission/auth requirements and idempotency behavior on re-ingestion.

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

Conciseness3/5

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

The core content is front-loaded and efficient in three sentences. The trailing 'CONCEPT:AU-KG.ingest.enterprise-source-extractor' is internal jargon that adds no selection or invocation value and dilutes an otherwise tight description.

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

Completeness4/5

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

An output schema exists, so return shape need not be explained, and the description still usefully pins down the no-engine case. For a single-parameter best-effort ingest tool it is nearly complete; the missing pieces are what permissions the write requires and what happens to duplicate items.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter exists and schema description coverage is 100%, so the schema already documents params_json and its stream_contents keys. The description adds context (stream is fetched via the GReader API) but no parameter-level meaning beyond the schema, so baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: ingesting FreshRSS feed items into epistemic-graph as :Document nodes, via the GReader API and fast engine client. It is clearly distinct from read-oriented siblings like freshrss_stream_contents, though it never explicitly names the alternative it is not (e.g. freshrss_ingest_subscriptions), so it stops short of full sibling differentiation.

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

Usage Guidelines3/5

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

Implied usage is reasonably clear: this is the tool that moves stream items into the knowledge graph, whereas freshrss_stream_contents merely reads them. However, there is no explicit when-to-use or when-not statement, no prerequisites (does the stream need to exist first?), and no named alternative, so an agent must infer the routing.

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