Skip to main content
Glama

ContextForge MCP — Persistent Memory for Claude, Cursor & Copilot

npm version License: MIT Node.js Glama MCP

Give Claude Code, Cursor, and GitHub Copilot persistent memory across sessions via the Model Context Protocol (MCP). Stop re-explaining your project every time.

ContextForge MCP is an open-source MCP server that connects your AI coding assistants to long-term, searchable memory. Decisions, architecture notes, debugging context, and project knowledge stay available across every session — across every tool that supports MCP.

  • 🧠 Persistent memory — your AI remembers everything across sessions, days, and weeks

  • 🔍 Semantic search — find knowledge by meaning, not keywords

  • 🔗 One memory, every tool — Claude Code, Cursor, Copilot, Claude Desktop, Windsurf

  • 🐙 Git integration — sync commits and PRs automatically

  • Task tracking — issues, assignments, and project status

  • 👥 Team collaboration — share projects and memory with your team

  • 🆓 Free tier — get started without a credit card

NOTE

Works automatically, no config needed (v0.5.1+). On connect, the server sends startup instructions to your AI client. Clients that honor them (Claude Desktop, Claude Code) load your project memory at the start of every session and save new decisions proactively — without you editing any settings. Running init (Step 4) is now a reinforcement, not a requirement, and still helps on clients that don't yet honor server instructions (e.g. Cursor).


Quick Start

1. Install

No install step needed — the setup below runs the server via npx -y contextforge-mcp, which fetches it on demand and keeps it up to date.

Prefer a global install for slightly faster cold starts? npm install -g contextforge-mcp is optional; if you do it, you can drop the npx -y prefix from the commands below.

2. Get your API key

  1. Go to contextforge.dev

  2. Sign up (free tier available)

  3. Settings → API Keys → Generate API Key

  4. Copy your key (starts with cf_)

3. Connect to your AI tool

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "contextforge": {
      "command": "npx",
      "args": ["-y", "contextforge-mcp"],
      "env": {
        "CONTEXTFORGE_API_KEY": "your-api-key-here"
      }
    }
  }
}

Restart Claude Desktop.

Claude Code (CLI)

claude mcp add contextforge -s user \
  -e CONTEXTFORGE_API_KEY=your-api-key-here \
  -- npx -y contextforge-mcp

Restart Claude Code and run /mcp to verify it's connected.

Cursor

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "contextforge": {
      "command": "npx",
      "args": ["-y", "contextforge-mcp"],
      "env": {
        "CONTEXTFORGE_API_KEY": "your-api-key-here"
      }
    }
  }
}

GitHub Copilot (VS Code)

Add to your Copilot MCP config:

{
  "servers": {
    "contextforge": {
      "command": "npx",
      "args": ["-y", "contextforge-mcp"],
      "env": {
        "CONTEXTFORGE_API_KEY": "your-api-key-here"
      }
    }
  }
}

With v0.5.1+ the server auto-loads memory on supporting clients (see the note at the top), so this step is optional but recommended: it reinforces the behavior, covers clients that don't honor server instructions, and fully overrides the built-in file-based memory.

Set up your project so your AI editor always prefers ContextForge memory:

npx contextforge-mcp init

By default, init auto-detects which editor your project uses and writes three rule sections:

  • Memory rules — route memory questions to ContextForge instead of the built-in file memory

  • Session Presence rules — make parallel sessions check for each other at conversation start and before big changes

  • Startup Context rules — load a short project summary (overview, open tasks, live sessions) from ContextForge at the start of every conversation

Files written:

  • CLAUDE.md for Claude Code (signals: existing CLAUDE.md or .claude/ directory)

  • .cursorrules for Cursor (signals: existing .cursorrules or .cursor/ directory)

If no editor is detected, both files are generated.

On clients that honor server instructions (Claude Desktop, Claude Code), ContextForge is used automatically even without this step. On other clients — or to guarantee the built-in file-based auto-memory never wins — run init: it writes explicit rules that always route memory to ContextForge.

Override with --editor

Flag

Behavior

--editor=claude

Generate only CLAUDE.md

--editor=cursor

Generate only .cursorrules

--editor=all

Generate both, skip detection

Re-running init is idempotent per section — sections you already have are left untouched; missing ones are appended. Upgrading from an older version? Just re-run npx contextforge-mcp init: it adds the new Startup Context section without touching the rest of your file.

Check your version

npx contextforge-mcp --version   # also: -v, version

Prints the installed version (e.g. contextforge-mcp 0.5.2).

Already using ContextForge? (existing users)

Nothing to reconfigure. Update to the latest and restart your AI client:

npm update -g contextforge-mcp   # only if you installed globally; npx users get it on next launch

You do not need to re-run init — the auto-load behavior ships with the server and applies on your next connection.


Related MCP server: mcp-server-claude

Available Tools

ContextForge provides tools for Knowledge Management, GitHub Integration, Issue Tracking, and Collaboration.

Knowledge Management

Tool

Description

memory_ingest

Save knowledge to memory

memory_query

Search your knowledge semantically

memory_list_items

List all stored items

memory_delete

Remove specific items

memory_ingest_batch

Save multiple items at once

memory_delete_batch

Delete items by filter

Spaces & Projects

Tool

Description

memory_list_spaces

List your spaces

memory_create_space

Create a new space

memory_delete_space

Delete a space

memory_move_space

Move space to project

memory_list_projects

List your projects

memory_create_project

Create a new project

memory_delete_project

Delete a project

memory_link_project

Link directory to project

memory_unlink_project

Unlink directory

memory_current_project

Show linked project

GitHub Integration

Tool

Description

memory_git_connect

Connect a GitHub repo

memory_git_list

List connected repos

memory_git_activate

Activate/deactivate webhook

memory_git_sync

Import existing history

memory_git_commits

List synced commits

memory_git_prs

List synced PRs

memory_git_disconnect

Disconnect a repo

Issue Tracking

Tool

Description

issues_list

List your issues

issues_create

Create a new issue

issues_start

Mark as in progress

issues_resolve

Mark as resolved

issues_resolve_by_name

Resolve by title

issues_assign

Assign to collaborator

issues_what_next

Get recommendation

Collaboration

Tool

Description

project_share

Share project by email

collaborators_list

List collaborators

Snapshots & Export

Tool

Description

memory_snapshot_create

Create a backup

memory_snapshot_list

List all snapshots

memory_snapshot_restore

Restore from backup

memory_snapshot_delete

Delete a snapshot

memory_export

Export to JSON/MD/CSV

memory_import

Import from file

Utility

Tool

Description

memory_stats

View usage statistics

memory_relate

Link two items

memory_help

Show help


Session Presence (multi-session coordination)

Running several Claude Code sessions in parallel (worktrees, agent teams)? Each MCP process automatically registers itself as a live session and heartbeats while it runs. On a clean exit the session is removed at once (a detached helper delivers the goodbye even while the host process is being killed); if the process dies hard, the session expires ~10 minutes after its last heartbeat. Three tools let the agent coordinate:

Tool

What it does

session_update

Declare what this session is working on ("working on the auth module")

session_list

See other live sessions in the same project and their focus before touching shared areas (pass all_projects: true for the whole org)

session_end

Explicitly end this session's presence (also automatic on exit)

By default session_list is scoped to the current project — where work actually collides. In a multi-project organization, pass all_projects: true to see every session, or project: "<name-or-id>" to scope elsewhere.

Recommended pattern for your CLAUDE.md: call session_list when a conversation starts; call session_update when starting or switching tasks.


Natural Language Examples

You don't need to memorize commands — just talk naturally to your AI:

# Knowledge
"Save this: we use PostgreSQL for the main database"
"What database do we use?"
"List my spaces"

# GitHub
"Connect my repo github.com/myuser/myproject"
"What commits did I make today?"
"Show PRs merged this week"

# Issues
"Create an issue: Update the login page design"
"What's pending?"
"What should I work on next?"
"Mark the login issue as done"

Environment Variables

Variable

Required

Description

CONTEXTFORGE_API_KEY

Yes

Your API key from the dashboard

CONTEXTFORGE_API_URL

No

API endpoint (defaults to production)

CONTEXTFORGE_DEFAULT_SPACE

No

Default space for operations


How it works

ContextForge MCP is a thin client that translates Model Context Protocol tool calls into authenticated HTTP requests against the ContextForge API. Your knowledge is stored, indexed (semantic embeddings), and retrieved on the server side — the MCP client itself is stateless.

This means:

  • No infra to manage — no local databases, no embeddings to run, no vector stores to maintain

  • Works everywhere your AI works — same memory across Claude Code, Cursor, Copilot, etc.

  • Team collaboration — shared projects sync in real time


Dashboard

Manage your memory visually at contextforge.dev:

  • View and organize your knowledge

  • Search and filter memories

  • Manage API keys and billing

  • Track issues and collaborate

  • Export and backup data


Development

# Clone and install
git clone https://github.com/alfredoizdev/contextforge-mcp.git
cd contextforge-mcp
npm install

# Build
npm run build

# Run tests
npm test

# Watch mode
npm run dev

Contributing

Issues and pull requests are welcome at github.com/alfredoizdev/contextforge-mcp.


Support


License

MIT © Alfredo Izquierdo

Available Tools

67 tools
collaborators_listA
Read-onlyIdempotent

List collaborators on a shared project. Shows who has access and what tasks are assigned to them.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoProject UUID to list collaborators for (optional if project_name is provided)
project_nameNoProject name to list collaborators for (optional if project_id is provided)

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the tool is safe. The description adds value by specifying that the tool shows 'who has access and what tasks are assigned to them', providing behavioral detail beyond the annotations. No contradiction.

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 two sentences, front-loaded with the main action, and contains no fluff. Every word earns its place, making it highly efficient.

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 simple list tool with well-documented parameters and no output schema, the description is complete. It covers the purpose, the scope (shared project), and the information shown (access and tasks). Sibling context confirms this is a distinct, specific tool.

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?

Schema coverage is 100% with thorough descriptions for both parameters (project_id, project_name). The description does not add any additional semantic information about the parameters, such as when to prefer one over the other, so it meets the baseline of 3.

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 verb 'List' and the resource 'collaborators on a shared project', and adds 'Shows who has access and what tasks are assigned to them', which distinguishes it from sibling tools like memory_list_projects (lists projects) and tasks_list (lists tasks). The purpose is specific and unambiguous.

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?

The description implies the tool should be used to see collaborators and their assigned tasks, but it does not explicitly state when to use it versus alternatives (e.g., memory_list_projects, tasks_list). No exclusions or explicit guidance are provided, relying on context and sibling tool names.

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

memory_check_freshnessA
Read-onlyIdempotent

Check whether memories linked to git-tracked code (via related_paths on memory_ingest) are stale because the underlying code changed since they were saved. Compares each candidate's saved commit SHA against the current HEAD with a local git diff — no data leaves your machine for the diff itself. Returns up to 3 memories whose related files changed, so you can review and refresh them. Call this periodically or when you suspect saved context might be out of date.

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoSpace UUID (uses default if not specified)

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already indicate readOnly and idempotent behavior. The description adds specific behavioral details: it uses a local git diff, no data leaves the machine, and returns up to 3 stale memories. This context enhances understanding beyond annotations.

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?

Three concise sentences: first states purpose, second explains mechanism and privacy, third gives usage advice. No unnecessary words.

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?

Given no output schema, the description covers purpose, mechanism, privacy, return value (up to 3 items), and usage frequency. The single optional parameter is well-documented in the schema. No gaps identified.

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?

With only one optional parameter (space_id) and 100% schema coverage, the description does not add meaning beyond the schema's description. Baseline 3 is appropriate.

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 checks if memories linked to git-tracked code are stale by comparing commit SHAs, using a specific verb ('check') and resource ('freshness of memories'). It distinguishes from siblings like memory_ingest and memory_query by its unique caching context.

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

Usage Guidelines4/5

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

The description advises calling 'periodically or when you suspect saved context might be out of date,' providing clear usage context. It does not explicitly list when not to use or alternatives, but the guidance is sufficient for general use.

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

memory_confirmA
Idempotent

Confirm that a memory flagged by memory_check_freshness is still accurate, even though its related code changed. Updates the memory's confirmed timestamp so it won't be flagged again until the code changes further.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the memory item to confirm as still accurate

TDQS

A4.4/5.0
Behavior5/5

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

The description adds meaningful behavioral context beyond annotations: it updates the confirmed timestamp and suppresses re-flagging until the code changes further. This explains the effect and side-effect, while idempotentHint already indicated safe repetition. No contradiction.

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?

Two sentences with no wordiness. The first sentence states the core action and condition; the second explains the effect. Every sentence serves a purpose.

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?

For a simple one-parameter tool with no output schema, the description adequately explains purpose, effect, and relation to memory_check_freshness. It could mention error handling (e.g., if the id is not flagged) for completeness, but overall it is sufficient.

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?

The single parameter 'id' is fully described in the schema (UUID of the memory item). The tool description does not add further meaning about the parameter, but the baseline is 3 due to high schema coverage. The description references the context of flagging, which indirectly clarifies what kind of id is accepted.

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 identifies the tool's purpose: confirming a memory flagged by memory_check_freshness as still accurate. It specifies the resource ('memory flagged by memory_check_freshness') and the verb ('confirm'), and distinguishes from related tools like memory_correct and memory_forget by referencing the flagging mechanism.

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

Usage Guidelines4/5

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

The description implies usage when memory_check_freshness has flagged a memory and the agent believes it is still accurate. It does not explicitly state when not to use it or alternatives, but the context is sufficient for an AI agent familiar with the memory ecosystem to make appropriate decisions.

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

memory_correctA

Update a memory flagged by memory_check_freshness with corrected content after its related code changed. Replaces the stored content and refreshes the git context (current commit SHA) so future freshness checks compare against the new baseline.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the memory item to correct
contentYesThe corrected, up-to-date content
related_pathsNoFiles/dirs this memory is about (e.g. ["src/api.ts"]). Refreshes staleness tracking for future checks.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations show it's a mutation (readOnlyHint false, destructiveHint false, idempotentHint false). The description adds that it refreshes git context for future freshness checks, aligning with annotations and extending transparency.

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?

Two sentences, front-loaded with action and context, no wasted words. Essential information is efficiently presented.

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 3 params and no output schema, the description covers the tool's purpose, preconditions, and effect. It references the related freshness check, but could mention error cases or prerequisites for completeness.

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?

Schema description coverage is 100%, so the baseline is 3. The description doesn't add new parameter details beyond what's in the schema, but it contextualizes them within the tool's purpose.

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 it updates a memory flagged by memory_check_freshness, replacing content and refreshing git context. This distinguishes it from siblings like memory_confirm or memory_forget.

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

Usage Guidelines4/5

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

The description specifies when to use: after code changes cause a freshness flag. It implies not for fresh memories or direct edits, but doesn't explicitly list alternatives or when not to use.

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

memory_create_projectB

Create a new project to organize related spaces

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the project
descriptionNoOptional description

TDQS

B3.3/5.0
Behavior2/5

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

Annotations indicate a non-destructive mutation, but the description adds no behavioral details such as name uniqueness, workspace scope, or side effects. With annotations present but minimal, the description should provide more context.

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?

Single sentence, 7 words, no redundancy. Every word earns its place, making it highly efficient.

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

Completeness3/5

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

For a simple create tool with no output schema, the description is adequate but lacks completeness regarding constraints (e.g., unique names) or relationship to other tools (e.g., linking spaces). Minimal but not insufficient.

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?

Schema coverage is 100%, with both parameters well-documented in the schema. The description adds no extra semantics beyond what the schema already provides, meeting the baseline but not exceeding it.

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 'Create a new project to organize related spaces' is specific with a clear verb ('Create'), resource ('project'), and context ('organize related spaces'), effectively distinguishing it from sibling tools like memory_create_space or memory_list_projects.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., when to create vs. link a project, or prerequisites like workspace context). The description lacks context for proper selection among many sibling tools.

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

memory_create_spaceC

Create a new memory space (workspace) for organizing knowledge

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName of the space
project_idNoProject UUID to create space in (optional)
descriptionNoOptional description
project_nameNoProject name to create space in (optional)

TDQS

C2.9/5.0
Behavior2/5

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

Annotations show a mutation (readOnlyHint=false) but description adds no behavioral details beyond 'Create'. No disclosure of side effects, auth needs, or consequences of optional parameters.

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?

Single concise sentence that front-loads the action. No wasted words.

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

Completeness2/5

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

Description is minimal; lacks return value information and does not explain parameter interaction or relationship to projects. Incomplete for a tool with 4 parameters and no output schema.

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?

Schema coverage is 100% with clear descriptions for all 4 parameters. Description adds no additional semantic value beyond 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?

Description clearly states 'Create a new memory space (workspace) for organizing knowledge', with specific verb and resource. It distinguishes from list/delete/move siblings, but could better differentiate from memory_create_project.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like memory_create_project. Does not mention prerequisites or context for usage.

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

memory_current_projectA
Read-onlyIdempotent

Check the linked project at the start of every new conversation in a directory. Call this FIRST (alongside memory_query) before answering questions about the user's project, code, or work — it tells you which ContextForge project and spaces are scoped to the current working directory. If linked: false, surface that to the user and suggest memory_link_project. Pair this with memory_query as your two startup-context calls — they are the cheapest possible way to avoid hallucinating about the user's project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true. Description adds behavioral context: it checks the linked project, returns scoping info, and suggests actions, going beyond what annotations provide.

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 bold directive, each sentence adds value, but slightly verbose. Could be trimmed slightly without losing clarity.

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?

For a parameterless tool with good annotations, description sufficiently explains purpose, usage, and return concept. Missing explicit return format but acceptable given simplicity.

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?

No parameters; baseline is 4. Description explains what the tool returns conceptually (project and spaces scoped), adding value beyond the schema.

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?

Description clearly states the tool checks the linked project for the current directory, specifies it tells which ContextForge project and spaces are scoped, and distinguishes it from siblings like memory_query and memory_link_project.

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?

Explicitly instructs to call this FIRST alongside memory_query before answering project questions, and suggests memory_link_project if linked is false. Provides clear when-to-use and alternative.

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

memory_deleteA
DestructiveIdempotent

Delete a knowledge item from memory by ID or title

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoItem UUID to delete (optional if title is provided)
titleNoItem title to search and delete (optional if id is provided)
cascadeNoAlso delete related relationships (default: false)
space_idNoSpace UUID to narrow down title search (optional)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true and idempotentHint=true, covering the key behavioral traits. Description adds minimal context beyond 'delete', so it does not significantly augment annotations.

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?

Single sentence of 10 words, perfectly front-loaded with action and resource. No fluff or repetition.

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

Completeness3/5

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

Functional for simple delete operations, but lacks explanation of cascade behavior or space_id usage context. With annotations and clear schema, it meets minimum viability but could add more value.

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?

Schema description coverage is 100%, so the schema already documents all parameters. Description only adds high-level 'by ID or title', which provides no extra meaning beyond schema definitions.

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?

Description clearly specifies verb 'delete' and resource 'knowledge item from memory', and mentions key disambiguation 'by ID or title'. This distinguishes it from sibling tools like memory_delete_batch, memory_delete_project, etc.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like memory_delete_batch, memory_delete_project, or memory_delete_space. The description only states deletion method, not selection criteria.

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

memory_delete_batchA
DestructiveIdempotent

Delete multiple items from memory based on filters. Use dry_run=true first to preview what will be deleted.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoFilters to select items to delete
dry_runNoIf true, only preview what would be deleted without actually deleting (default: true for safety)
space_idNoSpace UUID (optional, deletes from all spaces if not specified)

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already show destructiveHint=true. Description adds value by suggesting dry run to preview, highlighting the irreversible nature. 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.

Conciseness5/5

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

Two sentences, no fluff, front-loaded with action and filter context.

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?

No output schema, but description covers inputs and safety. Lacks details on response or confirmation after deletion, but adequate for batch delete.

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%, baseline 3. Description adds guidance on dry_run usage beyond schema, improving semantics.

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?

Clear verb+resource: 'Delete multiple items from memory based on filters.' Differentiates from sibling 'memory_delete' by indicating batch operation.

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

Usage Guidelines4/5

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

Explicitly recommends dry_run=true first to preview deletions. No explicit mention of when to use vs alternatives like single delete, but the guidance is strong.

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

memory_delete_projectA
DestructiveIdempotent

Delete a project and all its spaces permanently. This will delete all spaces and their items within the project. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYesProject name or UUID to delete

TDQS

A4.3/5.0
Behavior4/5

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

Annotations show destructiveHint=true and idempotentHint=true; description adds context of permanent deletion and deletion of all sub-items. 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.

Conciseness5/5

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

Two sentences, front-loaded key action, no redundancy. Every sentence adds value.

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?

Single-parameter tool with clear effect and warning; no output schema needed. Description fully covers what an agent needs to know.

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?

Schema covers 'project' parameter fully (100% coverage). Description does not add new parameter-level details, so baseline 3 is appropriate.

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?

Clear verb+resource: 'Delete a project and all its spaces permanently.' Distinct from siblings like memory_delete_space and memory_delete.

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

Usage Guidelines4/5

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

Describes cascading deletion and irreversibility; implies when to use (whole project) vs not (single space/item). Could be more explicit about alternatives.

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

memory_delete_spaceA
DestructiveIdempotent

Delete a space and all its items permanently. This action cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYesSpace name or UUID to delete

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already provide destructiveHint=true, but the description adds explicit 'permanently' and 'cannot be undone', reinforcing irreversible behavior. No contradictions with annotations.

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?

Two concise sentences with no redundant information. Every word adds value.

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 simple delete operation with a single parameter and no output schema, the description fully covers what the tool does and its consequences. Implies recursive deletion of 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?

Schema coverage is 100%, and the description does not add meaning beyond the schema's description of 'space' as a name or UUID. Baseline score is appropriate.

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 action (delete), the resource (a space and all its items), and the permanence. It distinguishes from siblings like memory_delete (item-level) and memory_delete_project (project-level).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like memory_delete_batch or memory_delete_project. The permanence warning is implied but lacks explicit when-not-to-use or prerequisite context.

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

memory_exportB
Read-onlyIdempotent

Export all items from a space to JSON, Markdown, or CSV format

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNoExport format (default: json)
space_idYesSpace UUID to export

TDQS

B3.2/5.0
Behavior2/5

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

Description does not add behavioral context beyond annotations. Annotations already indicate readonly, idempotent, nondestructive. No mention of output behavior, size limits, or side effects.

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?

Single sentence, no fluff, front-loaded with verb and resource. Efficient.

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

Completeness2/5

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

No output schema and description does not explain return format or behavior (e.g., file output vs console). Lacks details on execution model or limitations.

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?

Schema covers both parameters with descriptions. Description does not add new meaning beyond what schema provides, so baseline 3.

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?

Clearly states verb (export), resource (all items from a space), and output formats (JSON, Markdown, CSV). Distinct from sibling tools like memory_import.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, or when not to use it. No mention of prerequisites or context.

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

memory_forgetA
DestructiveIdempotent

Delete a memory flagged by memory_check_freshness that is no longer relevant or accurate. Use this instead of memory_delete when acting directly on a freshness check result.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesUUID of the memory item to forget (delete)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already indicate destructive and idempotent behavior. Description adds context that the tool targets 'no longer relevant or accurate' memories sourced from freshness checks, which is helpful beyond annotations.

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?

Two concise sentences with no wasted words. Front-loaded with the core action and resource, then immediately follows with usage guidance.

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 single-parameter destructive tool with good annotations, the description fully covers purpose, usage context, and relationship to alternatives. No gaps in what an agent needs to know.

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 'id' with full schema description. Description does not add extra meaning beyond the schema, meeting the baseline for 100% schema coverage.

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?

Description clearly specifies the action ('Delete') and the specific resource ('memory flagged by memory_check_freshness'). Explicitly distinguishes from sibling tool memory_delete, which is a nearby alternative.

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?

Description explicitly states when to use this tool ('when acting directly on a freshness check result') and directs to use memory_delete otherwise, providing clear guidance.

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

memory_get_itemA
Read-onlyIdempotent

Get the full content of a knowledge item by its ID. Use this when memory_query returns truncated previews and you need the complete content.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe UUID of the knowledge item to retrieve

TDQS

A4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint and destructiveness. Description adds no new behavioral traits beyond confirming it retrieves full content. Adequate but not rich.

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?

Two crisp sentences, first states purpose, second gives usage guidance. No fluff.

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?

Simple tool with clear purpose and one parameter. Description covers purpose and usage context adequately. Could mention return format but not necessary given simplicity.

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?

Schema already documents the single parameter fully. Description does not supplement with extra context or constraints.

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?

Description uses specific verb 'Get' and resource 'full content of a knowledge item', and explicitly distinguishes from memory_query, a sibling tool.

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

Usage Guidelines4/5

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

Description explicitly states when to use (when memory_query returns truncated previews) and implies when not to (when previews are sufficient). No alternative named besides memory_query.

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

memory_git_activateA
Idempotent

Activate or deactivate a connected repository webhook after setup

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepository name in owner/repo format (optional if repository_id is provided)
activeNoSet to true to activate, false to deactivate (default: true)
repository_idNoRepository UUID (optional if repo is provided)

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare the tool as idempotent and non-destructive, which aligns with toggling a webhook. The description adds the context that it operates on a webhook after setup, but does not disclose additional behaviors like authentication requirements or error scenarios.

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 a single sentence that is concise and to the point, with no unnecessary words or repetition. It effectively conveys the tool's purpose with minimal fluff.

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?

Given the tool's simplicity (toggle a webhook), the description is largely complete. It lacks context about prerequisites (e.g., repository must be connected) and what happens if the webhook isn't set up, but the annotations provide safety cues. Overall, it's sufficient for an agent to understand the core action.

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?

All three parameters are fully described in the input schema (100% coverage). The description does not add any extra semantic meaning beyond what is already in the schema, so it meets the baseline of 3.

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 it activates or deactivates a connected repository webhook after setup. It specifies the verb (activate/deactivate) and resource (webhook), and it distinguishes itself from sibling tools like memory_git_connect (which handles initial setup) and memory_git_disconnect.

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?

The description implies usage after setup, but does not explicitly specify when to use this tool versus alternatives like memory_git_connect or memory_git_disconnect. No exclusions or prerequisites are mentioned, leaving some ambiguity.

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

memory_git_commitsA
Read-onlyIdempotent

List commits stored in memory from connected repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoFilter by repository name in owner/repo format (optional)
limitNoMaximum number of commits to return (1-100, default: 50)
offsetNoNumber of items to skip for pagination (default: 0)
space_idNoFilter by space UUID (optional)
repository_idNoFilter by repository UUID (optional)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint, idempotentHint, false destructiveHint. The description adds that commits are 'stored in memory', implying cached data not live fetch. 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.

Conciseness5/5

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

Single clear sentence with no extraneous information. Efficiently communicates purpose.

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?

For a simple list tool with good annotations, the description is sufficient. It explains the source (memory) but could mention default limit/pagination. Output schema absent, but not critical.

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?

Schema coverage is 100%, so baseline is 3. The description does not add parameter-specific details beyond what the schema provides.

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 it lists commits from connected repositories stored in memory. It distinguishes from sibling tools like memory_git_list (repos) and memory_git_prs (PRs).

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like memory_git_sync or memory_git_prs. The description does not provide context for selection among siblings.

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

memory_git_connectA
Idempotent

Connect a GitHub repository to automatically sync commits and PRs to memory

ParametersJSON Schema
NameRequiredDescriptionDefault
repo_urlYesGitHub repository URL or owner/repo format (e.g., "owner/repo" or "https://github.com/owner/repo")
space_idYesSpace UUID where git knowledge will be stored

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare idempotentHint=true, indicating safe re-runs. The description adds that it sets up automatic syncing of commits and PRs, but lacks details on authentication, permission requirements, or behavior if a connection already exists. Beyond annotations, the additional behavioral context is minimal.

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?

Single sentence of 13 words, directly stating the tool's function with no filler. Front-loaded with action and purpose. Highly efficient.

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

Completeness3/5

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

The description covers the basic functionality but omits details like return value (no output schema), error scenarios, or idempotency (though annotations cover it). For a simple setup tool with two required parameters, the description is minimally adequate but leaves gaps for an agent needing full context.

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?

Input schema documents both parameters with descriptions (100% coverage). The tool description adds no further information about the parameters, such as validation rules, format examples, or relationship between them. Baseline score of 3 is appropriate given full schema coverage.

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 verb 'connect', the resource 'GitHub repository', and the purpose 'to automatically sync commits and PRs to memory'. It distinctly separates this tool from siblings like memory_git_disconnect, memory_git_sync, and memory_git_list by focusing on the initial connection setup.

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?

The description implies when to use this tool (to set up automatic syncing) but provides no explicit guidance on prerequisites, alternative tools, or when not to use it. For example, it does not mention that memory_git_activate might be needed first or that memory_git_sync is for manual syncs.

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

memory_git_disconnectA
Idempotent

Disconnect a GitHub repository and stop syncing

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepository name in owner/repo format (optional if repository_id is provided)
repository_idNoRepository UUID (optional if repo is provided)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations indicate idempotentHint=true and destructiveHint=false. The description adds that the tool stops syncing, which aligns with idempotency. However, it does not disclose further behavioral traits such as whether the connection is fully removed or if it requires additional confirmation, beyond what annotations provide.

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 description is a single, clear sentence with no wasted words. It is appropriately front-loaded and efficient, though it could be slightly expanded for additional context without harming conciseness.

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?

For a simple disconnection action with no output schema, the description covers the core functionality. It does not explain return values, but that is acceptable given the tool's simplicity. The schema covers parameter selection, so the description is nearly complete.

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?

The input schema already provides full descriptions for both parameters (repo and repository_id) with 100% coverage. The description adds no additional meaning or constraints, so the baseline score of 3 applies.

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 action ('Disconnect') and the resource ('GitHub repository'), with an additional clause 'stop syncing' that clarifies the effect. Among siblings like memory_git_connect and memory_git_list, this distinguishes itself as the disconnection tool.

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?

The usage is implied (disconnect when you want to stop syncing), but no explicit guidance is given on when to use versus alternatives like memory_git_deactivate or memory_git_delete. No when-not or prerequisite conditions are mentioned.

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

memory_git_listA
Read-onlyIdempotent

List all connected GitHub repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoFilter by space UUID (optional)

TDQS

A3.9/5.0
Behavior3/5

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

The description does not add behavioral context beyond what annotations already provide (readOnlyHint, idempotentHint, destructiveHint). Since annotations fully cover the safety profile, the description's lack of additional detail is acceptable; it neither contradicts nor enhances transparency.

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 a single sentence of only 6 words, effectively communicating the tool's action and scope with zero wasted verbiage. It is appropriately front-loaded and highly efficient.

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?

Given the tool's low complexity (one optional parameter, no output schema), the description provides sufficient information for an AI agent to correctly select and invoke the tool. No additional detail is required to understand the tool's function.

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?

The single optional parameter 'space_id' is fully described in the input schema ('Filter by space UUID (optional)'), and the tool description adds no further semantic information beyond what the schema already provides. With 100% schema coverage, the description is neither necessary nor deficient.

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 'List all connected GitHub repositories' uses a specific verb ('List') and clearly identifies the resource ('connected GitHub repositories'), making the tool's purpose immediately clear. It effectively distinguishes this tool from other siblings like memory_git_activate or memory_list_items.

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?

The description implicitly conveys that this tool is for listing connected GitHub repositories, but it offers no explicit guidance on when to use it versus alternatives (e.g., memory_list_items for other entities) or when not to use it. Usage context is implied but not elaborated.

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

memory_git_prsA
Read-onlyIdempotent

List pull requests stored in memory from connected repositories

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoFilter by repository name in owner/repo format (optional)
limitNoMaximum number of PRs to return (1-100, default: 50)
offsetNoNumber of items to skip for pagination (default: 0)
space_idNoFilter by space UUID (optional)
repository_idNoFilter by repository UUID (optional)

TDQS

A4/5.0
Behavior4/5

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

The description adds context beyond annotations by indicating data is 'stored in memory' (cached) rather than live. Annotations already declare readOnlyHint and idempotentHint, so the description reinforces safe behavior. However, it does not elaborate on data freshness or pagination behavior.

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 a single sentence that is front-loaded with the verb and objects. Every word earns its place, with no redundancy or unnecessary detail.

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?

For a simple read-only list tool with good annotations, the description is mostly complete. It could mention the number of PRs returned, but limit parameter covers that. Missing output schema is compensated by list nature.

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?

Schema coverage is 100%, and each parameter has a description in the schema. The tool description does not add extra meaning or examples beyond what the schema already provides, so it meets the baseline but does not exceed it.

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 lists pull requests stored in memory from connected repositories. It uses a specific verb ('List') and resource ('pull requests'), and distinguishes itself from sibling tools like memory_git_commits by focusing on PRs.

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?

The description implies usage when needing cached PR data, but does not provide explicit guidance on when to use this tool vs alternatives like memory_git_commits or direct Git operations. No exclusions or context about prerequisites are mentioned.

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

memory_git_syncA
Idempotent

Sync existing commits and PRs from a connected GitHub repository into memory

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNoRepository name in owner/repo format (optional if repository_id is provided)
limitNoMaximum number of items to sync (1-100, default: 30)
sync_typeNoWhat to sync: commits, prs, or all (default: all)
repository_idNoRepository UUID (optional if repo is provided)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already provide idempotentHint=true and destructiveHint=false, indicating safe repeated calls. The description adds that it syncs from a 'connected' repository, hinting at a prerequisite, but does not elaborate on behavior if disconnected or other edge cases.

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 a single, concise sentence that front-loads the key verb and object. Every word is meaningful; no unnecessary details.

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

Completeness3/5

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

The description covers the main action but lacks details on defaults, behavior when both repo identifiers are omitted, or return format. Given the tool has 4 optional parameters and no output schema, more context would be beneficial.

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?

Schema description coverage is 100%, with each parameter already described. The tool description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.

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?

Description clearly states the tool syncs commits and PRs from a GitHub repository into memory, using specific verbs and resources. It distinguishes from sibling tools like memory_git_commits and memory_git_prs which likely handle individual types.

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?

The description implies when to use this tool (syncing both commits and PRs) but does not explicitly compare with siblings or provide conditions for use. No usage guidelines beyond the basic action.

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

memory_helpA
Read-onlyIdempotent

Show help and usage instructions for ContextForge memory commands

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds no extra behavioral context. It does not contradict annotations. With annotations covering safety, a score of 3 is appropriate.

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?

Single sentence, zero waste. Front-loaded with key action and scope. Perfectly concise.

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?

For a zero-parameter help tool, the description is sufficient. It could optionally mention output format, but not necessary. Annotations cover safety. Minor gap: no mention of interactivity.

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?

No parameters exist (0 params), so schema coverage is 100%. According to guidelines, baseline is 4. Description adds no parameter info but none is needed.

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?

Description clearly states it shows help and usage instructions for memory commands. Verb 'show' and resource 'help' are specific. Given sibling tools are all memory commands, this distinguishes itself as the help command.

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

Usage Guidelines4/5

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

The purpose is clear: use when you need help with memory commands. No explicit when-not-to-use or alternatives, but the context is obvious from the name and sibling list. Adequate for a zero-parameter help tool.

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

memory_importA

Import items from JSON, Markdown, Notion, or Obsidian format into a space

ParametersJSON Schema
NameRequiredDescriptionDefault
dataNoThe data to import (format-specific structure)
itemsNoDirect array of items to import (alternative to data)
formatNoImport format (auto-detected if not specified)
space_idYesSpace UUID to import into

TDQS

A3.8/5.0
Behavior3/5

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

The description adds no behavioral context beyond what annotations provide (readOnlyHint=false, destructiveHint=false). It does not disclose side effects, auth requirements, or whether data is additive or replaces existing items. No contradiction with annotations.

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 a single short sentence that conveys the core purpose without any wasted words. It is front-loaded and easy to parse.

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?

Given the tool has 4 parameters with nested objects and no output schema, the description covers the main intent and supported formats. However, it does not explain the distinction between 'data' and 'items' parameters or the auto-detection of format, which could be useful.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond matching parameter names to formats. It could clarify the relationship between 'data' and 'items' but does not.

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 imports items from specific formats (JSON, Markdown, Notion, Obsidian) into a space, using a specific verb and resource. This distinguishes it from sibling tools like memory_export and memory_ingest.

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?

The description implies usage for importing items but does not explicitly state when to use this tool versus alternatives like memory_ingest or memory_ingest_batch. No prerequisites or exclusions are mentioned.

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

memory_ingestA

Save important context to persistent memory — be proactive. Call this WHENEVER you learn information that would be valuable in a future conversation: project decisions ('we chose Postgres because X'), architectural choices, user preferences, debugging insights, recurring patterns, deadlines, stakeholder context, or any 'remember this' / 'save this' / 'note that' style request from the user. Heuristic: if you would be sad to lose this fact when the conversation ends, ingest it. Better to over-save than to under-save — the memory_query semantic search will surface what's relevant later. Always pass meaningful title and tags so the item is discoverable. Set deduplicate:false to save even if identical content already exists.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoOptional tags for categorization
titleNoOptional title for the content
contentYesThe content to store in memory
categoryNoOptional category
space_idNoSpace UUID (uses default if not specified)
source_uriNoOptional source URI (file path, URL, etc.)
deduplicateNoSkip saving if identical content already exists (default: true). Set to false to force a copy even when a duplicate is detected.
source_typeNoType of source (default: manual)
related_pathsNoFiles/dirs this memory is about (e.g. ["src/api.ts"]). Enables staleness detection when that code changes.

TDQS

A4.5/5.0
Behavior4/5

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

Annotations indicate readOnlyHint:false, consistent with a write operation. The description explains the deduplication behavior and mentions that query will surface saved items later. It does not contradict annotations. However, it could mention any side effects or limitations (e.g., storage limits), but it's sufficient for the annotations provided.

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 description is well-structured, starting with the core purpose and a bold directive, then expanding with examples and parameter advice. Each sentence contributes value. Minor reduction possible, but it's not overly verbose given the complexity.

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?

No output schema exists, but the description doesn't need to explain return values. It covers what to save, when, and how to tag/handle duplicates. It doesn't explain error states or confirmation messages, but for a memory ingestion tool, the description is sufficiently complete to guide an AI agent.

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 parameters are documented. The description adds value by advising to always pass meaningful title and tags, and explaining the deduplicate parameter's usage. This goes beyond the schema's basic descriptions. Other parameters are not elaborated, but the key ones are enhanced.

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 purpose: saving important context to persistent memory. It lists specific examples (project decisions, user preferences, etc.) and provides a heuristic for when to use it. It effectively distinguishes from sibling tools like memory_query (search) and memory_get_item (retrieve) by focusing on ingestion.

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?

Excellent guidelines: explicitly says to call whenever learning valuable information, gives concrete examples, and provides a heuristic ('if you would be sad to lose this fact'). It also advises on parameters (title, tags, deduplicate) and encourages over-saving. The guidance is actionable and clear.

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

memory_ingest_batchA

Add multiple items to memory in a single operation. More efficient than multiple single ingests.

ParametersJSON Schema
NameRequiredDescriptionDefault
itemsYesArray of items to ingest (max 100)
space_idNoSpace UUID (uses default if not specified)

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already indicate a write operation (readOnlyHint=false), and the description confirms it. However, it does not disclose error behavior, atomicity, or authentication needs beyond what annotations cover.

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 two short, front-loaded sentences with no wasted words, perfectly sized for the tool's purpose.

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

Completeness3/5

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

Given no output schema, the description does not explain return values. It lacks details on batching limits (only in schema) and error handling, making it adequate but not comprehensive.

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?

All parameters have schema descriptions, so baseline is 3. The description adds no extra meaning beyond 'multiple items' and 'single operation', which is already implied by the tool's name.

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 verb 'Add' and the resource 'items to memory', differentiating it from the single-ingest variant by highlighting batch efficiency.

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

Usage Guidelines4/5

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

The description provides a clear when-to-use context (multiple items, more efficient than single), but does not explicitly mention when not to use or alternative tools beyond the implied single ingest.

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

memory_list_itemsA
Read-onlyIdempotent

List all items stored in memory. Shows titles, previews, tags, and creation dates.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-100, default: 50)
offsetNoNumber of items to skip (for pagination, default: 0)
space_idNoSpace UUID (optional, lists all spaces if not specified)

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds value by specifying the fields shown (titles, previews, tags, creation dates). However, it does not disclose pagination behavior or the default scope (all spaces unless space_id is specified as per schema).

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?

Two concise sentences with no redundancy: first states purpose, second states output fields. Every word is necessary.

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

Completeness3/5

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

The description lists output fields but omits details like pagination limits or default ordering. Given no output schema, it is adequate but not fully comprehensive for a list tool.

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?

Schema coverage is 100% with descriptions for all three parameters. The description does not add additional meaning beyond the schema, aligning with the baseline of 3.

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 'List all items stored in memory' with a specific verb and resource, and distinguishes itself from sibling tools like memory_list_projects by focusing on generic 'items' rather than projects or spaces.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like memory_get_item or memory_query. It lacks any comparative context or usage scenarios.

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

memory_list_projectsA
Read-onlyIdempotent

List all projects. Projects contain multiple spaces for organizing knowledge by project.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds minor structural context about projects containing spaces but no additional behavioral traits beyond what annotations provide.

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 extremely concise with two short sentences that front-load the action and resource, with no wasted words.

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 simple list tool with no parameters, no output schema, and comprehensive annotations, the description provides enough context (purpose and organizational structure) to be complete.

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?

The tool has no parameters, so the schema already fully covers them. Baseline for 0 params is 4; the description does not need to add parameter info.

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 verb 'List' and resource 'projects', and adds context about projects containing spaces, which helps distinguish from sibling tools like memory_list_spaces.

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?

The description implies usage for listing projects but does not explicitly state when to use this tool over alternatives or provide exclusion criteria. No guidance on when not to use it.

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

memory_list_relationshipsA
Read-onlyIdempotent

List all relationships for a knowledge item, showing both incoming and outgoing connections with related item details

ParametersJSON Schema
NameRequiredDescriptionDefault
item_idYesUUID of the knowledge item to list relationships for

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds that the tool shows both incoming and outgoing connections and includes 'related item details', which provides behavioral context beyond the structured fields. 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.

Conciseness5/5

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

The description is a single sentence of 14 words, concise and to the point. Every word adds value, with no redundancy or filler.

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?

For a simple list tool with one parameter and no output schema, the description is sufficient. It explains what relationships are listed and that details are included. It could slightly elaborate on what 'related item details' entails, but it is not critical.

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?

Schema description coverage is 100% (item_id is well-described as 'UUID of the knowledge item to list relationships for'). The description does not add extra meaning beyond the schema, so the baseline of 3 is appropriate.

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 action ('list'), the resource ('relationships for a knowledge item'), and the scope ('both incoming and outgoing connections with related item details'). It effectively differentiates from sibling tools like memory_relate and memory_list_items.

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?

The description does not provide explicit guidance on when to use this tool versus alternatives. While the purpose is clear, there is no mention of use cases, limitations, or exclusions. The context of being a read-only list tool is implicit.

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

memory_list_spacesA
Read-onlyIdempotent

List knowledge spaces (workspaces). By default shows only knowledge spaces. Use space_type "git" for GitHub repos, or "all" to see everything.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoFilter by project UUID (optional)
space_typeNoFilter by space type: "regular" for knowledge spaces (default), "git" for GitHub repository spaces, "all" for both
project_nameNoFilter by project name (optional)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint and idempotentHint, confirming safe read operations. The description adds value by explaining default behavior and filtering, but does not detail edge cases or response format. 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.

Conciseness5/5

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

Two concise sentences with no wasted words. Essential information is front-loaded and easy to parse.

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?

The tool is a simple list operation with safe annotations. No output schema exists, but the description covers purpose, default behavior, and filtering. Could mention return format, but not critical given typical list tool expectations.

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?

Schema description coverage is 100%, so each parameter is already documented. The description reinforces the space_type parameter's meaning and default, which provides marginal added value beyond the schema. Baseline of 3 is appropriate.

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 lists knowledge spaces (workspaces) and explains the default behavior and filtering options. It distinguishes from sibling tools like memory_list_projects or memory_list_items by specifying the resource type.

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

Usage Guidelines4/5

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

Provides explicit guidance on default filtering and how to use the space_type parameter to list different types of spaces. Does not explicitly state when not to use or compare to alternatives, but the context is clear enough for an AI agent.

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

memory_move_spaceB
Idempotent

Move a space to a different project

ParametersJSON Schema
NameRequiredDescriptionDefault
spaceYesSpace name or UUID to move
target_projectYesTarget project name or UUID

TDQS

B3.2/5.0
Behavior2/5

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

Annotations indicate this is a mutating operation (readOnlyHint=false) and idempotent (idempotentHint=true). The description adds no additional behavioral context, such as effects on relationships, reversibility, or permission requirements, beyond 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?

The description is a single sentence with no wasted words. However, it is somewhat under-specified, and a slightly more detailed but still concise description could improve clarity.

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

Completeness3/5

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

The tool is simple with two parameters and no output schema. The description is minimal and could be more complete by mentioning that the target project must exist or specifying what happens to the space's contents. It meets minimum viability but has gaps.

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?

Schema description coverage is 100%, so the schema already documents both parameters. The description does not add meaning beyond what the schema provides, such as specifying that the target project must exist or explaining the format of space and target_project. Baseline score of 3 is appropriate.

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 action and resource: 'Move a space to a different project.' It is specific and distinguishable from sibling tools like memory_create_space, memory_delete_space, and memory_list_spaces.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives, no prerequisites mentioned, and no exclusions provided. The description merely states the purpose without context for when it's appropriate.

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

memory_queryA
Read-onlyIdempotent

Search persistent memory BEFORE answering any project-specific question. You MUST call this tool: (a) at the start of any conversation that touches the user's codebase, work, or decisions, BEFORE generating any response; (b) whenever the user references prior context ('did we', 'we decided', 'remember', 'what did I save', 'last time'); (c) before making architectural or design recommendations — the user's prior decisions live here. Returns semantically relevant stored content. Skipping this when relevant context exists makes you appear to have amnesia and is the #1 reason users abandon persistent memory — always check first, even if you think you remember.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of results (1-50, default: 10)
queryYesThe search query
filtersNoOptional filters
space_idNoSpace UUID (uses default if not specified)
min_scoreNoMinimum similarity score (0-1, default: 0.3)
project_idNoFilter to spaces within this project (auto-set from linked project if not specified)
include_relationshipsNoInclude related items (default: false)

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true and idempotentHint=true. Description adds that it returns semantically relevant content and must be called even if the AI thinks it remembers, which goes beyond 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.

Conciseness3/5

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

The description is verbose with imperative instructions and repeated emphasis on the consequences of skipping. While informative, it could be more concise and front-loaded.

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?

The description thoroughly covers the tool's role and usage context despite the lack of an output schema. It compensates for the missing return value documentation by stressing the importance of the tool.

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?

Schema description coverage is 100%, so the baseline is 3. The description does not add extra meaning beyond the schema's parameter descriptions, focusing instead on usage context.

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 explicitly states 'Search persistent memory' and instructs when to use it before answering project-specific questions, clearly distinguishing it from siblings like memory_get_item or memory_list_items.

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?

Provides explicit conditions: at conversation start, when prior context is referenced, before architectural decisions. Includes warnings about consequences of skipping, fulfilling the 'when-not' and 'alternatives' implicitly by omission.

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

memory_relateA

Create a relationship between two knowledge items

ParametersJSON Schema
NameRequiredDescriptionDefault
weightNoRelationship weight (0-1, default: 0.5)
source_idYesSource item UUID
target_idYesTarget item UUID
bidirectionalNoCreate relationship in both directions (default: false)
relationship_typeYesType of relationship

TDQS

A3.5/5.0
Behavior3/5

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

Annotations indicate it is mutating, not idempotent, and not destructive. The description adds no additional context about behavior (e.g., overwriting, conflicts, limits), but it does not contradict annotations.

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?

Single sentence that is direct and without unnecessary words. Perfectly sized for a simple tool.

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

Completeness3/5

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

The description covers the basic purpose but lacks details about behavior (e.g., what happens if relationship exists, return value, directionality implications). For a simple mutation tool, it is sufficient but not comprehensive.

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?

Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond restating the tool's purpose.

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 action (create) and resource (relationship) and specifies it's between two knowledge items. It is distinct from sibling tools like memory_list_relationships or memory_delete.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, no prerequisites, and no mention of when not to use it. The description only states the basic function.

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

memory_snapshot_createA

Create a snapshot (backup) of the current memory state

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesName for the snapshot (e.g., "Before refactoring")
space_idYesSpace UUID to snapshot
descriptionNoOptional description of why this snapshot was created

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false. Description adds 'backup' implying safe save, but does not disclose if overwriting occurs, performance impact, or any locking. No contradiction with annotations.

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?

Single sentence clearly stating action and resource, front-loaded with 'Create a snapshot'. No wasted words.

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

Completeness3/5

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

Given no output schema and 3 well-described params, the description conveys core purpose. However, for a create tool, it could mention if snapshots are incremental, if they affect current state, or prerequisites (like space existence). Minimal but adequate.

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?

Schema coverage is 100% with descriptions for all 3 parameters. The tool description adds no extra meaning; the example in name description is helpful but already in schema. Baseline 3.

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?

Description uses specific verb 'create' and resource 'snapshot (backup) of the current memory state'. It clearly distinguishes from sibling snapshot tools like list, delete, restore.

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?

Implies usage for backing up memory, but no explicit when/when-not guidance or mention of alternatives like memory_export. Sibling tools like memory_export suggest export options, but no comparison is made.

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

memory_snapshot_deleteA
DestructiveIdempotent

Delete a snapshot

ParametersJSON Schema
NameRequiredDescriptionDefault
snapshot_idYesSnapshot UUID to delete

TDQS

A3.6/5.0
Behavior3/5

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

Annotations declaratively provide destructiveHint=true and idempotentHint=true. The description 'Delete a snapshot' aligns with annotations but adds no extra behavioral context (e.g., irreversibility). Since annotations already cover safety, score is adequate but not elevated.

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?

Single sentence with no wasted words. Front-loaded and efficient.

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?

For a single-parameter, no-output-schema tool with good annotations, the description is mostly complete. However, it could mention that the operation is permanent or that snapshots are isolated resources, but given the simplicity, it's adequate.

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?

Schema covers 100% of parameters with a clear description for snapshot_id. The tool description adds no additional meaning beyond what the schema already provides, so baseline score applies.

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?

Description clearly states the action ('Delete') and resource ('a snapshot'). It distinguishes from sibling tools like memory_snapshot_create, memory_snapshot_list, and memory_snapshot_restore.

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

Usage Guidelines2/5

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

No context on when to use this tool versus alternatives. No mention of prerequisites, consequences, or when not to use. The one-sentence description offers no guidance.

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

memory_snapshot_listA
Read-onlyIdempotent

List all available snapshots

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoFilter by space UUID (optional)

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true and destructiveHint=false. Description adds 'all available snapshots' but no additional behavioral context like permissions or response format.

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?

Extremely concise at 4 words, no wasted content, front-loaded with the action.

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

Completeness3/5

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

With only one optional parameter and no output schema, the minimal description is adequate but doesn't explain what a snapshot is or what information is returned, leaving room for improvement.

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?

Schema description coverage is 100% for the single parameter 'space_id', which is described in the schema as 'Filter by space UUID (optional)'. Description adds no further semantics.

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?

Description clearly states the verb 'list' and the resource 'all available snapshots', distinguishing it from siblings like memory_snapshot_create and memory_snapshot_restore.

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?

No explicit when-to-use or when-not-to-use guidance is provided. The optional space_id parameter implies filtering but no alternatives are mentioned.

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

memory_snapshot_restoreB
Destructive

Restore memory to a previous snapshot state

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNomerge: add missing items, replace: delete current and restore all (default: merge)
snapshot_idYesSnapshot UUID to restore

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already indicate destructiveHint: true, but the description does not elaborate on what is destroyed (e.g., overwriting current memory). It adds no behavioral context beyond the annotation.

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 description is a single concise sentence with no fluff. However, it is slightly under-informative, which prevents a 5.

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

Completeness2/5

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

Given the destructive operation with mode options and no output schema, the description lacks details on the effect (merge vs. replace) and prerequisites. It is not fully complete for an agent to understand the impact.

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?

Schema description coverage is 100%, so the description does not add meaning beyond the schema. Baseline 3 is appropriate as the parameters are well-documented in the schema.

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 action 'restore' and the target 'memory to a previous snapshot state'. It effectively distinguishes from sibling tools like memory_snapshot_create, memory_snapshot_list, and memory_snapshot_delete.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention prerequisites or the destructive nature (though hinted in annotations). The merge vs. replace mode is only explained in the parameter schema, not in the description.

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

memory_statsB
Read-onlyIdempotent

Get statistics about memory usage

ParametersJSON Schema
NameRequiredDescriptionDefault
space_idNoSpace UUID (optional, shows all if not specified)

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, making the tool's safety profile clear. The description adds no additional behavioral context (e.g., authentication needs, rate limits), so it meets the baseline given 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.

Conciseness5/5

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

The description is a single concise sentence that directly states the tool's purpose with no wasted words. It is appropriately front-loaded and clearly communicates the core functionality.

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

Completeness3/5

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

Given the tool has one optional parameter and no output schema, the description adequately states the general purpose. However, it could be improved by mentioning what kind of statistics are returned (e.g., total items, memory size) for better completeness.

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?

The schema covers 100% of parameters with descriptions, so the description does not need to add param info. It adds no extra meaning beyond the schema, so the baseline score of 3 is appropriate.

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 'Get statistics about memory usage' clearly identifies a specific verb and resource, effectively communicating the tool's function. It distinguishes itself from sibling tools like memory_list_items or memory_query, which have different purposes. However, it lacks specificity about what statistics are provided, preventing a perfect score.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives, nor does it mention any conditions or prerequisites. Sibling tools exist for various memory operations, but no hints are given for selection.

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

project_shareA
Idempotent

Share a project with a collaborator by email. Creates an invitation and returns the invite URL. An email notification may also be sent.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYesEmail address of the person to invite
messageNoOptional personal message to include in the invitation
project_idNoProject UUID to share (optional if project_name is provided or a project is linked)
project_nameNoProject name to share (optional if project_id is provided)

TDQS

A3.8/5.0
Behavior4/5

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

Annotations provide idempotentHint=true and destructiveHint=false. The description adds that it creates an invitation, returns the URL, and may send an email notification, which are useful side effects beyond the schema. 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.

Conciseness5/5

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

Three concise sentences with no wasted words. Each sentence adds distinct value: action, outcome (invitation and URL), and side effect (email notification).

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?

The description explains the action and outcomes adequately for a tool with 4 params (1 required) and no output schema. It could mention that exactly one of project_id or project_name should be provided, but the schema indicates both are optional, so it's not critical.

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?

Schema coverage is 100% with detailed parameter descriptions. The description adds no new semantic meaning beyond stating the purpose. Baseline 3 is appropriate.

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 verb 'share', resource 'project', method 'by email', and outcomes including creating an invitation and returning a URL. It distinguishes from siblings like collaborators_list which lists collaborators, not invites.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives (e.g., collaborators_list for listing). The description implies usage for inviting via email but does not provide when-not-to-use or compare with sibling tools.

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

routines_createA

Create a new Routine. Schedules a Skill to run on a cron expression. Pass either schedule_preset (hourly/daily/weekly/monthly) OR a custom cron_expression. timezone defaults to UTC.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
skill_idYes
timezoneNoIANA TZ name, e.g. America/New_York. Default UTC.
project_idYes
input_paramsNoVariables substituted into the Skill body at each run
cron_expressionNoRequired if schedule_preset=custom. Standard 5-field cron.
schedule_presetNo

TDQS

A4.4/5.0
Behavior4/5

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

Description discloses that timezone defaults to UTC and creation is non-destructive. No contradiction with annotations (readOnlyHint=false, destructiveHint=false). Side effects like permission checks are not mentioned but acceptable.

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?

Two sentences: first on purpose, second on usage. No waste, front-loaded, easy to parse.

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?

Fully explains scheduling parameters and timezone. Omits details about required params (name, skill_id, project_id) but those are evident from schema. No output schema, but return type likely an ID.

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?

With 43% schema description coverage, the description adds value by clarifying mutual exclusivity of schedule_preset and cron_expression, and reinforcing timezone defaults. Partially compensates for schema gaps.

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?

Description states 'Create a new Routine. Schedules a Skill to run on a cron expression.' This is a specific verb-resource pair, clearly distinguishing it from sibling tools like routines_list or routines_delete.

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

Usage Guidelines4/5

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

Explicitly instructs to use either schedule_preset or cron_expression, clarifying the two scheduling options. No when-not-to-use guidance, but adequate for a creation tool.

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

routines_deleteA
DestructiveIdempotent

Permanently delete a Routine. Execution history rows are retained.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already indicate destructive and non-read-only behavior. The description adds the important detail that execution history rows are retained, which is beyond what annotations provide. No contradictions with annotations.

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 two concise sentences, front-loaded with the core action. No extraneous information. Every sentence adds value.

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?

For a simple deletion tool with one parameter and annotations covering destruction, the description is largely complete. It mentions the key behavioral nuance of history retention. Minor gap: no mention of whether the routine must exist or what happens on missing ID.

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

Parameters2/5

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

With 0% schema description coverage, the parameter 'id' is not described in the text. The description does not add meaning beyond the schema, leaving the agent to infer that 'id' is the routine identifier from context.

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 it permanently deletes a routine, distinguishing it from sibling tools like routines_create, routines_get, routines_update, and routines_toggle. The verb 'delete' and resource 'Routine' are specific and unambiguous.

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?

The description implies usage for permanently deleting a routine but provides no explicit when-to-use or when-not-to-use guidance compared to alternatives like routines_toggle for disabling. No prerequisites or exclusions are mentioned.

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

routines_getA
Read-onlyIdempotent

Get a single Routine by ID, including its cron expression, input_params, and last/next run.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesRoutine UUID

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds value by specifying the returned fields (cron, input_params, last/next run), which is useful behavioral context beyond 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.

Conciseness5/5

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

Single sentence of 16 words, front-loaded with key information, no redundancy or extraneous content.

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?

Given the tool's simplicity (single required parameter, no nested objects, no output schema), the description covers the essential information: what it does and what it returns. No gaps.

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?

Schema coverage is 100% with a single parameter 'id' described as 'Routine UUID'. The description does not add new parameter details but indirectly clarifies output. Baseline 3 is appropriate.

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 action (Get), the resource (a single Routine by ID), and specifies key fields returned (cron expression, input_params, last/next run), distinguishing it from sibling tools like routines_list or routines_create.

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?

While it implicitly guides usage for retrieving a specific routine's details, it lacks explicit guidance on when to use versus alternatives or when not to use. No exclusions or conditions are mentioned.

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

routines_listA
Read-onlyIdempotent

List all Routines in a project. Returns routines with their schedule, last/next run, and enabled flag.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID

TDQS

A4/5.0
Behavior4/5

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

Description adds behavioral context beyond annotations: it specifies that the tool returns schedule, last/next run, and enabled flag. No contradictions with annotations (readOnly, idempotent, non-destructive).

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?

Two sentences, front-loaded with action and return info. No filler or unnecessary words.

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?

Given low complexity (1 parameter, no output schema, no nested objects), the description adequately covers the purpose and return fields. Could optionally mention ordering or pagination, but not required for this simple list.

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?

Schema description coverage is 100% with 'Project UUID' for the only parameter. Description does not add further parameter semantics beyond what schema already provides.

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?

Description clearly states it lists all routines in a project and specifies the returned fields (schedule, last/next run, enabled flag). This distinguishes it from siblings like routines_get (single routine) or routines_create.

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?

The description implies use when a list of routines is needed for a project, but does not explicitly state when not to use it or provide alternative tools from siblings (e.g., routines_get for a specific routine).

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

routines_run_nowA

Fire a Routine immediately, ahead of its schedule. Creates a skill_executions row with trigger_type=scheduled and routine_id set, just like the cron tick would.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

A4.1/5.0
Behavior4/5

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

The description reveals that the tool creates a row in skill_executions, which is a behavioral side-effect beyond the annotations. Annotations only indicate readOnlyHint=false and destructiveHint=false, so the description adds meaningful context about the mutation.

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 two concise sentences, front-loaded with the main action and including a technical detail. Every word adds value without redundancy.

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?

Given the tool's simplicity (one parameter, no output schema), the description is nearly complete. It could mention that 'id' is the routine ID, but this is implied by the tool name and sibling tools.

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

Parameters2/5

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

The input schema has one required parameter 'id' with no description. The description does not explain the parameter, leaving the agent to infer from the tool name and context. With 0% schema coverage, the description should compensate but fails to do so.

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 purpose: firing a routine immediately, ahead of schedule. It distinguishes itself from other routine-related tools by specifying the action and the effect (creating a skill_executions row like a cron tick).

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

Usage Guidelines4/5

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

The description implies when to use (to trigger a routine ahead of schedule) but does not explicitly state when not to use or provide alternatives. However, the context of sibling tools makes the usage clear.

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

routines_toggleA
Idempotent

Enable or disable a Routine without deleting it. Pass enabled=false to pause.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
enabledYes

TDQS

A4.2/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=false and destructiveHint=false, and the description adds that toggling is not deletion. However, no additional behavioral details beyond the annotations and schema.

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?

Two concise sentences, no wasted words, key information front-loaded.

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?

Covers the core action and parameter usage; could potentially mention that the routine must exist, but overall adequate given low complexity.

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?

With 0% schema description coverage, the description explains the 'enabled' parameter's meaning ('pass enabled=false to pause'), adding value beyond the raw schema.

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?

Clearly states the tool enables or disables a Routine without deleting it, distinguishing it from siblings like routines_delete.

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

Usage Guidelines4/5

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

Provides context for when to use (enable/disable) and hints about using enabled=false to pause, but no explicit when-not-to-use or alternatives.

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

routines_updateB
Idempotent

Update an existing Routine (name, schedule, timezone, input_params).

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
nameNo
timezoneNo
input_paramsNo
cron_expressionNo
schedule_presetNo

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and non-destructive. The description adds that specific fields can be updated but does not disclose any side effects, auth requirements, or rate limits. Minimal additional value beyond 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?

Description is a single sentence, front-loaded with the action. However, it omits important parameter details and could be more structured, but remains concise.

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

Completeness2/5

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

No output schema, 6 parameters with nested objects, and the description fails to explain return values, required fields, or clarify ambiguous parameters. With sibling tools focusing on routines, more details are needed for correct invocation.

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

Parameters2/5

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

Schema coverage is 0%, yet description mentions only 4 of 6 parameters, omitting required 'id' and the enum 'schedule_preset'. The description uses 'schedule' ambiguously, not mapping to 'cron_expression' or 'schedule_preset'. Fails to compensate for schema gaps.

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 explicitly states the verb 'Update' and the resource 'Routine', and lists updatable fields (name, schedule, timezone, input_params). It clearly distinguishes from sibling tools like routines_create or routines_delete.

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?

The description implies usage through the word 'update' but provides no explicit guidance on when to use vs alternatives, no when-not-to-use, and no prerequisites.

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

session_endA

End THIS session's live presence explicitly (it also ends automatically when the process exits or after the heartbeat TTL).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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

No annotations are provided, so description carries full burden. It discloses that the session also ends automatically on process exit or heartbeat TTL. But it does not mention required permissions, side effects (e.g., token invalidation), or whether the action is reversible. More behavioral context would be helpful.

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 a single, concise sentence that front-loads the main action and adds relevant automatic termination context. No unnecessary words.

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?

For a tool with no parameters, no output schema, and no annotations, the description covers the essential behavior and automation. However, it does not mention what the response looks like (e.g., success confirmation), but this is a minor gap given the tool's simplicity.

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?

No parameters exist; the input schema is empty. The description adds no parameter details, which is acceptable. Baseline score of 4 applies for zero-parameter tools.

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?

Clearly states the verb 'End' and the resource 'session's live presence'. Specifies that it affects 'THIS session', distinguishing it from session listing or update tools. Also mentions automatic termination scenarios, making the scope precise.

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

Usage Guidelines4/5

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

Provides clear context that the end can be explicit or automatic. Implies when to use (explicit ending) vs. when to rely on automatic mechanisms. However, no explicit 'when not to use' or comparison with sibling tools like session_list.

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

session_listA

List OTHER live Claude Code sessions working on the same project right now, and what each is focused on. By default it is scoped to THIS session's project (the one linked in the current directory) — that's where work actually collides. If the current directory isn't linked to a project, it falls back to the whole organization. Use it at conversation start and before big changes to avoid stepping on parallel sessions. Pass a specific project to scope elsewhere, or all_projects: true to see every session across the organization. Sessions expire automatically ~10 minutes after their last heartbeat.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoScope to a specific project id or name instead of the current one
all_projectsNoList sessions across the whole organization instead of just the current project. Ignored when `project` is also provided.
include_staleNoAlso include sessions whose heartbeat is older than the 10-minute TTL

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries full burden and discloses key behaviors: sessions expire ~10 min after last heartbeat, default scoping to the current project, fallback to organization if no project linked, and parameter interactions. 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.

Conciseness4/5

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

The description is a moderate-length paragraph with key information front-loaded. Each sentence adds value, and there is no redundant or repetitive content. Could be slightly more concise, but overall efficient.

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?

Given no output schema, the description provides sufficient context about behavior and parameter effects. It mentions that the tool shows 'what each is focused on,' hinting at output structure. For a listing tool, it covers the major aspects needed for correct invocation.

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% with individual parameter descriptions. The description adds extra semantics, such as explaining that `all_projects` is ignored when `project` is provided, which goes beyond the schema. It also clarifies default behavior for scoping.

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 starts with a specific verb and resource: "List OTHER live Claude Code sessions working on the same project right now, and what each is focused on." It clearly distinguishes from sibling tools like session_end and session_update, and no other tool lists live sessions.

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

Usage Guidelines4/5

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 it at conversation start and before big changes to avoid stepping on parallel sessions." It also explains default scoping and fallback behavior. However, it does not explicitly mention when not to use it or contrast with alternatives.

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

session_updateA

Declare or update what THIS Claude Code session is currently working on (live presence). Call it when you start or switch tasks so parallel sessions can avoid stepping on your work. Example focus: 'working on the auth module'.

ParametersJSON Schema
NameRequiredDescriptionDefault
focusYesShort human-readable description of the current work
labelNoOptional session name (defaults to the working directory name)

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It describes the action (declare/update) and the rationale (coordination), but does not disclose behavioral details such as overwrite semantics, persistence, or required permissions.

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 extremely concise: two sentences and an example. It is front-loaded with the verb and resource, and every sentence serves a purpose. No wasted words.

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?

Given the tool's simplicity (2 parameters, no nested objects, no output schema), the description is adequate. It covers the essential use case and context for parallel sessions, though it could mention that multiple calls overwrite the previous focus.

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?

Schema coverage is 100%, so the description adds little extra. It provides an example for 'focus' and notes the default for 'label', but these are already implied by the schema descriptions. No deeper semantic insight beyond the schema.

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 purpose: 'Declare or update what THIS Claude Code session is currently working on (live presence).' It uses specific verbs ('declare or update') and identifies the resource ('session'), distinguishing it from sibling tools like session_list or session_end.

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

Usage Guidelines4/5

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

The description explicitly tells when to use: 'Call it when you start or switch tasks so parallel sessions can avoid stepping on your work.' It provides context for usage but does not explicitly mention when not to use or name alternatives.

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

skills_createA

Create a new Skill in a project. The 'body' is a markdown prompt template that may use {{variable}} placeholders for input_params at run time.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYesMarkdown prompt template with optional {{var}} placeholders
nameYes
modelYese.g., claude-sonnet-4-6
project_idYes
descriptionNo
input_schemaNoOptional JSON Schema for input_params
llm_providerNoDefault 'anthropic'
save_to_space_idNoOptional: save outputs as knowledge_items in this space

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already indicate this is a read/write operation (readOnlyHint=false). Description adds that body is a prompt template with placeholders, but this is largely redundant with the schema. No additional behavioral traits disclosed beyond annotations.

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?

Single sentence that is concise and front-loaded with the main action. No unnecessary words or redundancy.

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

Completeness3/5

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

Lacks description of return values or side effects, and does not cover details like parameter requirements or behavior when optional fields like save_to_space_id are used. For a creation tool with 8 parameters and no output schema, more context would be helpful.

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?

Description adds slight value by clarifying that the body uses {{variable}} placeholders for input_params at runtime, which is more explicit than the schema's description. However, many parameters (name, project_id) remain undefined, and overall schema coverage is 63%.

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?

Description clearly states 'Create a new Skill in a project' with specific verb and resource. It also explains the nature of the body field as a markdown template, distinguishing it from sibling tools like skills_update or skills_get.

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives. Does not mention scenarios like creating a new skill vs updating, nor any prerequisites or context for invocation.

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

skills_deleteC
DestructiveIdempotent

Delete a Skill.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare destructiveHint=true and idempotentHint=true. The description adds no behavioral context beyond the annotations, such as whether the deletion is reversible or cascading.

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 description is extremely concise at 4 words, which is efficient but omits necessary context. It is not structured to front-load key information beyond the basic action.

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

Completeness2/5

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

For a simple delete tool with one parameter and no output schema, the description is minimally adequate but fails to explain the parameter's meaning or any side effects, leaving gaps for an AI agent.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the description provides no explanation for the sole parameter 'id'. The agent cannot determine what identifier should be used (e.g., skill ID, name, or something else).

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 'Delete a Skill.' clearly states the action and resource, directly matching the tool name. However, it does not differentiate from sibling tools like skills_update or skills_create, which could be confusing in context.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives. For example, there is no mention that this permanently removes a skill, nor any comparison to skills_update or skills_list.

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

skills_getA
Read-onlyIdempotent

Get a single Skill by ID with full body.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesSkill UUID

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the description adds only 'with full body' about the response. This provides marginal value beyond 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.

Conciseness5/5

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

The description is a single, short sentence that is front-loaded and clear. Every word serves a purpose with no redundancy.

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?

For a simple get-by-ID tool with annotations and full schema coverage, the description is nearly complete. The mention of 'full body' implies the return value, though explicitly noting it returns a single skill object would improve completeness.

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?

The schema already describes the 'id' parameter as 'Skill UUID' with 100% coverage. The description adds no additional meaning beyond what the schema provides, meeting the baseline for full schema coverage.

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 action ('Get') and resource ('a single Skill by ID'), and 'full body' indicates the response includes the complete skill object. It distinguishes from sibling tools like skills_list and skills_create.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives, nor any prerequisites or exclusions. The description does not mention when not to use it or provide context for selection.

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

skills_listA
Read-onlyIdempotent

List all Skills in a project. Returns skills with their name, description, model, and prompt body.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesProject UUID

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, covering safety. Description adds return field details but doesn't elaborate on behavior beyond that (e.g., pagination, authorization).

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?

Two concise sentences with no fluff, front-loaded with the primary action and followed by return value details. Every sentence adds value.

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?

For a simple list tool with one parameter and annotations covering safety, the description is nearly complete. It specifies return fields, but could optionally mention lack of pagination or filtering.

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?

Schema coverage is 100% with a clear description for project_id. Description does not add further meaning to the parameter, meeting the baseline for high coverage.

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?

Description clearly states 'List all Skills in a project' with a specific verb and resource, and lists the returned fields, distinguishing it from siblings like skills_get or skills_create.

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?

No explicit when-to-use or when-not-to-use guidance is provided. Usage is implied (list all skills), but no mention of alternatives like skills_get for single skill retrieval.

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

skills_runB

Execute a Skill on the configured LLM, optionally storing the output as a knowledge_item, and returns the result. Available to all project members.

ParametersJSON Schema
NameRequiredDescriptionDefault
skill_idYes
input_paramsNoVariables substituted into the skill body

TDQS

B3/5.0
Behavior3/5

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

Annotations provide readOnlyHint=false (indicating mutation) and destructiveHint=false (suggesting no destruction). The description adds that execution is on 'the configured LLM' and optionally stores output as a knowledge_item. However, it does not disclose details like potential side effects, rate limits, or what happens on failure.

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 two short sentences that convey the essential purpose without extra words. It is front-loaded and efficient, earning every sentence.

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

Completeness2/5

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

Given no output schema, the description only says 'returns the result' without specifying format or content. It lacks information on error handling, timeouts, or prerequisites. For a tool with moderate complexity, this is insufficient.

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

Parameters2/5

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

Schema description coverage is 50% (only input_params has a description). The description mentions 'optionally storing the output' but does not clarify any parameter for that option. It adds no semantic value beyond the schema, particularly for skill_id, which lacks a description.

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 clearly states the action ('Execute a Skill') and resource, mentions the optional storage as knowledge_item, and indicates availability to all project members. However, it does not explicitly distinguish from sibling tools like routines_run_now, leaving some ambiguity.

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

Usage Guidelines2/5

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

The description only notes that the tool is 'Available to all project members,' but provides no guidance on when to use it versus other tools (e.g., routines_run_now) or when not to use it. There are no prerequisites or context for selecting this tool.

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

skills_updateC
Idempotent

Update an existing Skill.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYes
bodyNo
nameNo
modelNo
descriptionNo
input_schemaNo
llm_providerNo
save_to_space_idNo

TDQS

C2.6/5.0
Behavior2/5

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

Annotations confirm idempotence and non-destructiveness, but the description adds no behavioral context beyond 'Update'. It does not disclose what happens on partial updates, error handling, or side effects.

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 description is a single concise sentence that states the core purpose. However, it lacks structure and could be expanded to include parameter hints or usage notes without becoming verbose.

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

Completeness1/5

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

Given the complexity (8 params, nested objects, enums) and lack of output schema, the description is severely incomplete. It does not explain return values, update behavior, or parameter semantics.

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

Parameters1/5

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

Schema description coverage is 0% and the description provides no explanation for any of the 8 parameters (id, body, name, model, description, input_schema, llm_provider, save_to_space_id). The description fails to compensate for the lack of schema descriptions.

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 explicitly states the verb 'Update' and the resource 'Skill', which clearly distinguishes it from sibling tools like skills_create (create) and skills_delete (delete). The purpose is unambiguous.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives. It does not mention prerequisites (e.g., needing the skill ID) or scenarios where update is appropriate over create/delete/run.

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

tasks_add_commentA

Add a comment to a task. Accepts any task identifier: UUID, short_id, or task title. The response includes the task dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesComment text to add
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate this is not read-only and not destructive. The description adds that the response includes a task dashboard URL and instructs the agent to show it to the user, which is useful behavioral context beyond annotations.

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 two sentences with no extraneous words. The first sentence states the purpose, and the second provides a clear behavioral instruction. Perfectly concise and front-loaded.

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 appropriately explains the key return value (dashboard URL) and how to handle it. The tool is simple with two well-documented parameters. Could mention that the task must exist, but overall complete.

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?

Schema coverage is 100%, and the description largely repeats the schema's explanation for the 'identifier' parameter. It does not add new semantic meaning beyond what is already in the input schema.

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 'Add a comment to a task' and specifies that it accepts any task identifier (UUID, short_id, or title). This is specific to the tool and distinguishes it from siblings like tasks_list_comments or tasks_create.

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?

The description provides a guideline to 'always show' the dashboard URL from the response, but does not explicitly state when to use this tool versus alternatives or any exclusions. The context is implied but not detailed.

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

tasks_assignA
Idempotent

Assign a task to a collaborator by their email address. Accepts any task identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name
assignee_emailYesEmail of the collaborator to assign the task to

TDQS

A4.2/5.0
Behavior4/5

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

The description discloses that the response includes a dashboard URL and instructs the agent to show it to the user, which adds behavioral context beyond the annotations. Annotations already indicate idempotentHint=true and destructiveHint=false, consistent with the 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?

Two concise sentences with no extraneous information. The first sentence defines the action and target, the second provides a critical output instruction. Every word earns its place.

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?

The description covers the main purpose and highlights the dashboard URL response. Given no output schema, it provides enough context for the agent to understand the tool's effect and output. Could mention potential errors but overall sufficient for a simple assignment operation.

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?

The description adds value by explaining that 'identifier' can be a UUID, short_id, or title, and that 'assignee_email' is the collaborator's email. This elaborates on the schema descriptions (which already exist), but the clarification of identifier formats is helpful.

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 assigns a task to a collaborator by email, specifying the action and target. It distinguishes itself from sibling task tools like tasks_create or tasks_delete because it focuses on assignment, and it notes that it accepts multiple identifier types.

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?

The description implies the tool is used for assigning tasks but provides no explicit guidance on when to use it versus alternatives like tasks_resolve or tasks_start. No exclusions or conditions are mentioned, leaving the agent to infer usage context.

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

tasks_createA

Create a new task in a project. Optionally assign it to a collaborator by their email. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoTags for categorization (optional)
titleYesTitle of the task
due_dateNoDue date in ISO format (optional)
priorityNoPriority level (default: medium)
space_idNoSpace UUID to link this task to (optional)
project_idNoProject UUID to create the task in
descriptionNoDetailed description of the task (optional)
project_nameNoProject name to create the task in (alternative to project_id)
assignee_emailNoEmail of a collaborator to assign this task to (optional)

TDQS

A3.9/5.0
Behavior4/5

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

Discloses the response includes a dashboard URL and the instruction to show it, adding beyond annotations. No contradiction with annotations.

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?

Two sentences, no redundant words, front-loaded with purpose and key instruction.

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

Completeness3/5

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

Lacks guidance on specifying the project (project_id or project_name) which are crucial. Schema descriptions help, but description could clarify the project requirement.

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?

Schema covers 100% of parameters, description adds minimal extra meaning (like optional assignment by email). Baseline 3 is appropriate.

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?

States 'Create a new task in a project', clearly specifying the verb and resource. Differentiates from sibling tools like tasks_list or tasks_delete.

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 as the task creation tool, but no explicit guidance on when not to use or alternatives. The instruction to show the dashboard URL is a behavioral note, not usage context.

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

tasks_deleteA
DestructiveIdempotent

Permanently delete a task. Accepts any identifier: UUID, short_id, or task title. Also deletes related comments, activity, and notifications.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name

TDQS

A4.2/5.0
Behavior4/5

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

The description adds behavioral context beyond annotations by specifying that deletion cascades to 'related comments, activity, and notifications.' This complements the destructiveHint annotation with concrete effects.

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 extremely concise with two sentences that cover core action, identifier flexibility, and side effects. No redundant words or unnecessary details.

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?

For a delete tool with no output schema, the description adequately explains what happens (deletion of task and related data) and acceptable inputs. It lacks error handling details, but that is acceptable given annotations and simplicity.

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?

The schema description already covers the parameter's accepted formats (UUID, short_id, title), and the tool description repeats this. With 100% schema coverage, the description adds no new parameter-level meaning beyond the schema.

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 purpose with a specific verb ('permanently delete') and resource ('task'). It lists accepted identifier formats, which distinguishes it from siblings like tasks_resolve or tasks_update.

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

Usage Guidelines4/5

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

The description provides clear context by indicating that any identifier (UUID, short_id, title) is accepted, but it does not explicitly state when to avoid using this tool or mention alternatives. The irreversible nature is implied.

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

tasks_listA
Read-onlyIdempotent

Call this at the start of any conversation about work, planning, or status — and any time the user asks about pending/open/in-progress tasks. Shows pending tasks by default (sort by due date, urgent first). Use status "all" for everything, "resolved" for completed, "in_progress" for active work. IMPORTANT: Every task includes a dashboard URL (🔗). You MUST include these clickable links when presenting tasks to the user. If you see overdue tasks (past due date), surface them at the top of your response.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of tasks (1-100, default: 20)
scopeNo"mine" shows only tasks assigned to or created by you (default), "all" shows all tasks in your organization/shared projects
statusNoFilter by status (default: pending)
project_idNoFilter by project UUID (optional)

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral details such as default sorting, surfacing overdue tasks, and the requirement to include clickable dashboard URLs, which go beyond 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?

The description is informative but slightly lengthy. However, critical usage instructions are front-loaded in bold, and the rest is structured logically. A minor improvement would be to trim redundant phrasing, but it remains clear and effective.

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?

Given no output schema, the description covers key behaviors: default view, sorting, status filtering, and the critical requirement to include dashboard links and surface overdue tasks. 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.

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 extra meaning by explaining default for status (pending) and that overdue tasks should be surfaced. It also highlights the dashboard URL, though not a parameter, it informs output handling.

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 lists tasks, with specific verb 'call' and resource 'tasks'. It distinguishes from sibling task tools (like tasks_create) by focusing on listing. It also specifies default behavior (pending, sorted by due date, urgent first) and optional filters.

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?

Explicitly instructs when to call: 'at start of any conversation about work, planning, or status — and any time the user asks about pending/open/in-progress tasks.' It also explains how to use status parameter and emphasizes including dashboard links.

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

tasks_list_commentsB
Read-onlyIdempotent

List comments on a task. Accepts any identifier: UUID, short_id, or task title.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already indicate readOnlyHint, idempotentHint, and destructiveHint false, so safety is clear. The description adds that any identifier form is accepted, which is helpful but does not disclose other behaviors like pagination or ordering. With annotations covering core safety, a score of 3 is appropriate.

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?

A single sentence conveys the purpose and key parameter detail without waste. Efficient and front-loaded.

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

Completeness3/5

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

Given the tool’s simplicity and lack of output schema, the description is adequate but missing return value description (e.g., that it returns a list of comment objects). No additional context like ordering or limits is provided. Slightly incomplete for full completeness.

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?

Schema description coverage is 100%, so the schema already documents the parameter. The description clarifies that identifier can be UUID, short_id, or title, which adds some context but mostly repeats schema info. Baseline 3 is suitable.

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 clearly states the tool lists comments on a task and specifies the acceptable identifier types (UUID, short_id, title). It does not explicitly distinguish from sibling tools like tasks_add_comment or tasks_list, but the action and resource are clear.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool over alternatives, such as tasks_list for listing tasks or tasks_add_comment for adding comments. The description lacks context for selection.

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

tasks_resolveA
Idempotent

Mark a task as "resolved". Use this when you finish working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name

TDQS

A4.3/5.0
Behavior4/5

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

Description adds behavioral context beyond annotations: includes response with dashboard URL that should be shown to user. Annotations indicate idempotent and non-destructive, which is consistent.

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?

Two sentences, no extraneous information. Front-loaded with action and usage, then adds response instruction. Every sentence earns its place.

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?

Given the tool's simplicity (1 parameter, no output schema), the description covers all necessary context: purpose, when to use, identifier types, and response handling.

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?

Schema covers identifier with full description; tool description restates the accepted formats but does not add new meaning beyond the schema. Baseline 3 applicable due to 100% schema coverage.

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?

Clearly states the tool marks a task as resolved, used upon completion. Distinguishes from sibling tasks_resolve_by_name by accepting multiple identifier types (UUID, short_id, title).

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

Usage Guidelines4/5

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

Explicitly says 'Use this when you finish working on a task.' Provides clear context for usage, though does not explicitly mention when not to use or alternatives beyond the implicit sibling.

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

tasks_resolve_by_nameA
Idempotent

Resolve a task by searching for it by title, short_id, or UUID. Use this when you have any identifier for the task. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask identifier — can be a title (partial match), short_id, or UUID

TDQS

A4/5.0
Behavior3/5

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

Annotations already indicate idempotentHint=true and destructiveHint=false. The description adds that the response includes a dashboard URL, but does not disclose any additional behavioral traits beyond what annotations provide. It does not contradict annotations.

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 extremely concise with two sentences, zero waste, and front-loaded with the key action and identifiers.

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?

For a simple tool with one parameter and no output schema, the description is adequate explaining usage and response. However, it lacks mention of error cases (e.g., no match, multiple matches) which could be useful for an agent.

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?

The schema description coverage is 100% for the single parameter 'title', which already describes it as a task identifier. The tool description repeats the types (title, short_id, UUID) but does not add significant new meaning beyond the schema.

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 verb 'Resolve' and resource 'task', and specifies that it searches by title, short_id, or UUID. The title annotation 'Resolve Task by Name' aligns with this. It distinguishes from siblings like 'tasks_resolve' and other task tools.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this when you have any identifier for the task', providing clear usage guidance. However, it does not mention when not to use this tool or explicitly differentiate from the sibling 'tasks_resolve', which might be a similar resolution method.

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

tasks_startA
Idempotent

Mark a task as "in_progress". Use this when you start working on a task. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
identifierYesTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name

TDQS

A4.2/5.0
Behavior4/5

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

Beyond annotations (idempotentHint, readOnlyHint), the description adds that the response includes a dashboard URL and instructs the agent to always show it to the user. This provides useful behavioral context.

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 two sentences: first states the action and usage, second explains identifier flexibility and response handling. It is front-loaded, concise, and every sentence adds value.

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?

The description covers the purpose, usage context, identifier options, and response behavior. Given the simplicity of the tool (one parameter, no output schema), it is nearly complete. Could mention idempotency or error cases but is sufficient.

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?

The input schema already has a description for 'identifier' stating acceptable formats (UUID, short_id, title). The description repeats this but adds no new semantic information. With 100% schema description coverage, a score of 3 is appropriate.

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 action ('Mark a task as in_progress') and when to use it ('when you start working on a task'). It distinguishes from sibling tools like tasks_create, tasks_delete, and tasks_resolve by specifying the exact state change.

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

Usage Guidelines4/5

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

The description explicitly says 'Use this when you start working on a task,' which provides clear context. It does not explicitly state when not to use it or list alternatives, but the context is sufficient for a simple operation.

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

tasks_updateA
Idempotent

Update a task's title, description, status, priority, tags, due date, or assignee. Accepts any identifier: UUID, short_id, or task title. The response includes a dashboard URL — always show it to the user.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNoNew tags (replaces existing tags)
titleNoNew title for the task
statusNoNew status for the task
due_dateNoNew due date in ISO format, or null to clear
priorityNoNew priority level
identifierNoTask identifier — can be a UUID, short_id (e.g. 'hpiu09'), or task title/name
descriptionNoNew description for the task
assignee_emailNoEmail of a collaborator to assign this task to

TDQS

A4/5.0
Behavior4/5

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

Annotations already indicate idempotentHint=true (safe to retry) and destructiveHint=false. The description adds crucial behavioral context: the tool accepts multiple identifier types (UUID, short_id, title) and the response includes a dashboard URL that must be shown to the user. This goes beyond what annotations provide, though it could mention potential errors or authorization needs.

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 extremely concise at two sentences. The first sentence lists the updatable fields, and the second provides critical usage details (identifier flexibility and required user-facing output). No wasted words; every sentence adds value. It is well-structured and front-loaded.

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?

Given the tool's complexity (8 optional params, no output schema), the description covers the core purpose, identifier flexibility, and a key output behavior. It does not discuss error handling or side effects like whether changing assignee requires collaboration, but with annotations and schema already covering safety hints, it is largely complete for an agent to use correctly.

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?

Schema coverage is 100% with each parameter already described in the schema. The description reinforces that 'tags' replaces existing tags and that the 'identifier' parameter can take multiple forms, but does not add substantial new meaning beyond the schema descriptions. A score of 3 reflects the baseline for high coverage with minor added context.

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 verb 'update' and the resource 'task', and lists specific fields that can be updated (title, description, status, priority, tags, due date, assignee). It implicitly distinguishes from sibling tools like tasks_assign (only assignee), tasks_resolve (only status), and tasks_add_comment (only comment) by covering multiple fields, making its purpose unambiguous.

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?

The description does not provide explicit guidance on when to use this tool versus alternatives. It mentions that it accepts any identifier (UUID, short_id, or title), which is useful for invocation, but lacks advice on when to prefer tasks_update over tasks_assign or tasks_resolve. The intent is implied but not directly stated.

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

tasks_what_nextA
Read-onlyIdempotent

Call this whenever the user asks what they should work on, what's next, what's pending, or how to start the day. Trigger phrases include: 'what should I do', 'where do I start', 'qué hago hoy', 'next task', 'I have time, what's open'. Returns the highest-priority unresolved task assigned to the user, with due date and priority. Always include the dashboard URL (🔗) in your reply so the user can click through. Prefer this over generic answers when the user seems unsure about priorities — it gives a concrete next action.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint. Description adds that it returns highest-priority unresolved task with due date and priority, and instructs to include dashboard URL. No additional behavioral details beyond annotations, but 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.

Conciseness4/5

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

Concise, front-loads purpose and trigger phrases. Could be slightly tighter, but each sentence adds value. No redundancy.

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?

For a tool with no parameters and no output schema, the description covers purpose, trigger phrases, output content, and best practices. Missing explicit mention of error cases or edge conditions, but adequate.

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?

No parameters, so baseline 4. Description doesn't need to add parameter info. Mentions output format briefly, which is helpful.

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?

Description clearly states the tool returns the highest-priority unresolved task for the user, with explicit trigger phrases and usage context. Distinguishes from sibling tools like tasks_list or tasks_create by focusing on 'what's next' rather than general task operations.

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

Usage Guidelines4/5

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

Provides explicit trigger phrases and advises preferring this over generic answers when user seems unsure. Lacks explicit 'do not use for' conditions, but context from sibling tools implies boundaries. Slight gap in completeness.

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

TDQS

B3.4/5.0
Disambiguation4/5

Most tools have clearly distinct purposes, but `tasks_resolve` and `tasks_resolve_by_name` are redundant—both accept any identifier and resolve the task. This creates minor ambiguity.

Naming Consistency5/5

All tools follow a consistent noun_verb pattern in snake_case (e.g., memory_ingest, tasks_list, skills_create). No mixing of conventions.

Tool Count2/5

67 tools is extremely high. While the domain is broad, there is notable redundancy (e.g., multiple resolve, delete, and batch tools). The surface is overwhelming for an agent.

Completeness4/5

The tool surface covers memory, tasks, skills, routines, sessions, git, snapshots, export/import, and collaboration comprehensively. Minor gaps exist (e.g., no generic update for memory items, no item move between spaces).

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    B
    maintenance
    MCP server that provides cross-session persistent memory for AI coding assistants using local vector database and semantic search, enabling automatic recall of project context, issues, and tasks.
    9
    91
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    Persistent memory server for AI assistants with semantic search and three-layer context (global, project, personality). Works with MCP-compatible AI tools like Claude Code, Cursor, Continue, Cline, and more.
    1

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/alfredoizdev/contextforge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server