Skip to main content
Glama

Add reading

add_reading

Add an item to the caller's reading / learning list. Provide a 'title'; optional 'kind' (book/article/course/video), 'url', 'status' (to_read/reading/done) and 'notes'. Additive and low-risk. CONFIRMATION: this tool runs immediately when the caller asks for it — it writes only their own record, and they can undo it from this same surface, so the request is taken as the instruction. You get an ordinary result, not a plan_token. Everything destructive, outbound or financial still proposes and waits.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "title": "<title>"
    },
    "name": "add_reading"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlNo
kindNo
notesNo
titleYes
statusNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4/5.0
Behavior5/5

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

Beyond the annotations (readOnly=false, destructive=false, openWorld=false), the description discloses that only the caller's own record is written, that the action is undoable from the same surface, and that the response is an ordinary result rather than a plan_token. It also states the confirmation policy boundary — destructive, outbound or financial tools propose and wait while this one executes immediately — which is exactly the kind of context an agent cannot infer from the annotations.

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?

Front-loaded with purpose and parameters, then a clearly labeled CONFIRMATION block. The confirmation paragraph is longer than strictly necessary but each clause (undoable, no plan_token, contrast with destructive tools) carries distinct information.

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?

With no output schema, the description usefully characterizes the return as "an ordinary result, not a plan_token." It is complete for a low-risk additive write, with only minor gaps around duplicate handling and what the result object contains.

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 description coverage is 0%, so the description must carry the load, and it names all five parameters including the allowed values for 'kind' and 'status'. It does not add format or constraint detail (title/url length caps, what 'notes' is for in practice), and the enum values merely restate the schema.

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?

The description opens with a specific verb+resource: "Add an item to the caller's reading / learning list," and enumerates the fields involved. This clearly separates it from delete_reading, update_reading and list_reading by action, though it never names those siblings explicitly.

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?

Usage is implied by "add an item" and reinforced by "Additive and low-risk," plus a note that the request is taken as the instruction. There is no explicit guidance on when to use update_reading instead, or what to do about an item already on the list (dedup), so the when-not case is left to inference.

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.

Resources