Skip to main content
Glama
Aadi775
by Aadi775

Why MahoRAGa?

If you've ever watched an AI agent solve the same bug twice, you already know the pain this project solves.

MahoRAGa gives your agents a long-term memory they can actually use: past errors, fixes, concepts, and artifacts stay connected in a local graph so future sessions can build on previous work instead of starting from zero.

  • πŸ” Never solve the same bug twice. Errors and solutions are persisted and semantically searchable.

  • 🧩 Cross-project knowledge. Concepts learned in one project are instantly available in others.

  • πŸ“Š Activity intelligence. Daily summaries, session histories, and project timelines β€” all queryable.

  • πŸ”’ 100% local. Your data never leaves your machine. No API keys, no cloud dependencies.


Related MCP server: Memory Palace

Visual Viewer (Browser)

If you prefer to inspect memory visually, there's now a separate local viewer stack:

  • viewer_api/ β†’ read-only API for graph data

  • viewer_ui/ β†’ interactive browser UI (zoom, pan, drag, search, node details)

Run backend:

source .venv/bin/activate
uvicorn viewer_api.main:app --host 127.0.0.1 --port 8090 --reload

Run frontend:

cd viewer_ui
npm install
npm run dev

Open:

http://127.0.0.1:5173


Strict multi-agent provenance

Writes now support strict provenance tracking so you can audit which agent + model performed each mutation and when.

Required actor context on mutating tools

Mutating tools require actor_context with:

  • agent_id

  • agent_name

  • model_id

  • model_name

  • provider

agent_id and agent_name must match exactly and must be one of the configured OpenCode agent names from:

~/.config/opencode/agents/*.md

Example valid agent names include: build, planner, frontend-specialist, security-reviewer, etc.

If you want to override the allowed list (for CI/tests), set:

MAHORAGA_ALLOWED_AGENTS=build,planner,frontend-specialist

Provenance query tools

  • get_agent_activity

  • get_model_activity

  • get_action_timeline

  • get_entity_provenance


Features

Category

Highlights

Graph Engine

Kuzu embedded graph DB with strict referential integrity and cascade-safe deletes

Semantic Search

all-MiniLM-L6-v2 embeddings with hybrid ranking (similarity + recency + context + keywords)

MCP Protocol

25+ tools exposed via FastMCP over stdio β€” plug into Claude Code, Cursor, or any MCP client

Artifacts

Attach datasheets, configs, logs, and code snippets to sessions and errors

Daily Activity

Automatic aggregation of sessions into daily summaries with garbage collection

Performance

Vectorized clustering, batched Cypher queries, pagination on all list endpoints

Reliability

Input validation, safe limit clamping, thread-safe connections, and comprehensive test suite


Quick Start

Linux / macOS

git clone https://github.com/Aadi775/MahoRAGa.git
cd MahoRAGa
chmod +x setup.sh && ./setup.sh

Windows

git clone https://github.com/Aadi775/MahoRAGa.git
cd MahoRAGa
setup.bat

Both scripts create a .venv, install all dependencies, and configure the MCP server entry automatically.


Connect to Your Agent

You can run MahoRAGa in two different modes depending on whether you want one agent, or multiple agents/windows sharing the same brain.

Mode 1: Single Client (stdio)

If you only use one AI coding agent (e.g., just Claude Desktop), you can let the client spawn MahoRAGa directly. Add this to your MCP config (.mcp.json or ~/.claude.json):

{
  "mcpServers": {
    "mahoraga": {
      "command": "/path/to/MahoRAGa/.venv/bin/mahoraga-kg"
    }
  }
}

Mode 2: Multi-Client Shared Brain (SSE)

KΓΉzuDB uses file-level locking, meaning if you try to open MahoRAGa in Cursor and OpenCode at the same time using stdio, they will crash fighting over the lock. Instead, start MahoRAGa as a shared HTTP server in the background:

# Start the shared server manually in a terminal
mahoraga-kg --transport sse --port 8000

Then, configure all your MCP clients to connect to this shared endpoint instead of launching their own process:

{
  "mcpServers": {
    "mahoraga-remote": {
      "type": "remote",
      "url": "http://localhost:8000/sse"
    }
  }
}

Any MCP-Compatible Client

MahoRAGa speaks standard MCP. Point your client to either the CLI executable or the SSE endpoint and you're set.

Optional: Auto-start SSE on boot (systemd user service)

If you want the SSE server to start automatically when your laptop boots:

# Install + enable + start user service
chmod +x install_sse_autostart.sh uninstall_sse_autostart.sh
./install_sse_autostart.sh

This creates ~/.config/systemd/user/mahoraga-sse.service, enables it, and starts it immediately.

Useful commands:

systemctl --user status mahoraga-sse.service
journalctl --user -u mahoraga-sse.service -f

To remove it:

./uninstall_sse_autostart.sh

To run user services even before login, enable linger once:

sudo loginctl enable-linger $USER

MCP Tools Reference

πŸ—‚οΈ Projects

Tool

Description

add_project

Create a new project node

update_project

Update metadata or merge two projects

list_projects

Paginated list of all projects

πŸ“ Sessions

Tool

Description

add_session

Start a session (auto-creates project if needed)

close_session

Close and generate daily activity

get_recent_sessions

Fetch recent sessions across projects

delete_session

Cascade-delete with DailyActivity sync

πŸ› Errors & Solutions

Tool

Description

log_error

Log an error with semantic embedding

log_solution

Attach a fix to a logged error

get_error_solutions

Find similar past errors and their solutions

cluster_errors

Group related errors by vector similarity

🧠 Knowledge

Tool

Description

add_concept

Add a semantic knowledge entry

update_concept

Update and re-embed a concept

link_concept_to_session

Associate a concept with a session

batch_link_concepts

Bulk-link multiple concepts efficiently

search

Hybrid semantic + keyword search

πŸ“Ž Artifacts

Tool

Description

add_artifact

Attach a file/document to the graph

link_artifact_to_session

Connect artifact to a session

link_artifact_to_error

Connect artifact to an error

get_project_artifacts

List artifacts for a project

search_artifacts_by_tag

Tag-based artifact search

πŸ“Š Analytics

Tool

Description

get_project_history

Full session/error/solution timeline

get_daily_summary

Aggregated stats for a specific date

get_learning_progress

Error resolution trends over time

get_project_daily_activities

Paginated daily activity feed

πŸ”§ Admin

Tool

Description

delete_old_sessions

Prune sessions older than N days (with DailyActivity GC)

delete_project

Full cascade delete of a project

get_unlinked_concepts

Find orphaned concepts


Search Algorithm

MahoRAGa uses a hybrid ranking algorithm that blends four signals:

Weight

Signal

Description

55%

Semantic Similarity

Cosine similarity between query and content embeddings

20%

Recency

Exponential decay favoring recent knowledge

15%

Context Richness

Bonus for concepts with linked errors, solutions, and sessions

10%

Keyword Overlap

Title-boosted keyword matching for precision


Graph Schema

Project ← HAS_PROJECT ← Session β†’ CONTRIBUTES_TO β†’ DailyActivity β†’ BELONGS_TO β†’ Project
                              ↑
                     OCCURRED_IN
                              |
                           Error ← SOLVES ← Solution
                              ↑
                        ATTACHED_TO
                              |
                          Artifact ← USES_ARTIFACT ← Session
                              ↑
                         ILLUSTRATES
                              |
                           Concept ← REFERENCES ← Session

Nodes: Project Β· Session Β· Error Β· Solution Β· Concept Β· DailyActivity Β· Artifact


Data Storage

All data is stored locally in an embedded Kuzu database:

~/.config/mahoraga/graph.db

No external services, no network calls, no cloud sync. Fully offline-capable.


Development

# Activate virtual environment
source .venv/bin/activate

# Run the full test suite (87 tests)
pytest tests/ -v

# Run performance benchmarks
pytest tests/test_performance.py -v

# Run search tuning tests
pytest tests/test_search_tuning.py -v

Documentation

A full interactive documentation site is included in the docs/ directory, built with React, Vite, TailwindCSS, GSAP, and Framer Motion.

cd docs && npm install && npm run dev

Then open http://localhost:5173.


Demos β€” How Agents Use MahoRAGa

🟒 Demo 1: Basic Agent Session

When an agent starts working on your project, it opens a session and logs everything it does:

Agent β†’ add_session(project_name="my-api", summary="Fix auth middleware", files_touched=["src/auth.ts"])
       ↳ Returns: { session_id: "abc-123" }

Agent β†’ log_error(session_id="abc-123", message="JWT expired during refresh", context="Token TTL was 0", file="src/auth.ts")
       ↳ Returns: { error_id: "err-456" }

Agent β†’ log_solution(error_id="err-456", description="Set TTL to 3600s in config", code_snippet="config.jwt.ttl = 3600")
       ↳ Returns: { solution_id: "sol-789" }

Agent β†’ add_concept(title="JWT Refresh Flow", content="Always check token expiry before API calls. Default TTL should be 1hr.", tags=["auth", "jwt"])
       ↳ Returns: { concept_id: "con-012" }

Agent β†’ link_concept_to_session(concept_id="con-012", session_id="abc-123")
Agent β†’ close_session(session_id="abc-123")

The graph now holds a permanent record: what went wrong, how it was fixed, and what was learned.


πŸ” Demo 2: Agent Recalls Past Knowledge

A week later, the same (or different) agent hits a similar issue. Instead of starting from scratch:

Agent β†’ search(query="JWT token expiry authentication")
       ↳ Returns:
         concepts: [{ title: "JWT Refresh Flow", similarity: 0.94, recency_score: 0.98 }]
         sessions: [{ summary: "Fix auth middleware", files: ["src/auth.ts"] }]
         errors:   [{ message: "JWT expired during refresh" }]
         solutions:[{ description: "Set TTL to 3600s in config", code: "config.jwt.ttl = 3600" }]

Agent β†’ get_error_solutions(error_message="token has expired")
       ↳ Returns 3 similar past errors ranked by semantic similarity, each with their solution

The agent immediately knows the fix without re-debugging. Zero wasted time.


πŸ“Ž Demo 3: Attaching Artifacts

Agents can persist files, logs, and configs as searchable artifacts:

Agent β†’ add_artifact(
          artifact_type="config",
          title="Production JWT Config",
          content="{ jwt: { ttl: 3600, algorithm: 'RS256', issuer: 'api.example.com' } }",
          description="Auth service JWT configuration",
          tags=["production", "auth", "config"]
        )
       ↳ Returns: { artifact_id: "art-345" }

Agent β†’ link_artifact_to_session(artifact_id="art-345", session_id="abc-123")
Agent β†’ search_artifacts_by_tag(tag="auth")
       ↳ Returns: [{ title: "Production JWT Config", type: "config", ... }]

πŸ“Š Demo 4: Project Analytics

Agents (or you) can query high-level project intelligence:

Agent β†’ get_project_history(project_name="my-api", limit=10)
       ↳ Returns: last 10 sessions with all errors and solutions

Agent β†’ get_daily_summary(date="2026-03-24")
       ↳ Returns: { total_sessions: 5, total_errors: 12, projects: [...] }

Agent β†’ get_learning_progress(project_name="my-api")
       ↳ Returns: { errors_logged: 47, errors_resolved: 41, resolution_rate: 0.87 }

🧹 Demo 5: Maintenance & Cleanup

Keep the graph lean over time:

Agent β†’ delete_old_sessions(days=30)
       ↳ Deletes sessions older than 30 days
       ↳ Automatically garbage-collects orphaned DailyActivity nodes
       ↳ Preserves all Concepts (knowledge is never lost)

Agent β†’ get_unlinked_concepts(limit=20)
       ↳ Find concepts not linked to any session (candidates for cleanup or review)

License

MIT β€” use it however you want.

Available Tools

55 tools
add_artifactB

Create a new artifact in the knowledge graph.

Artifacts store files, configs, logs, code snippets, datasheets, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_typeYesType of artifact (datasheet/config/log/code/snippet/diagram/note/reference/template/other)
titleYesShort title for the artifact
descriptionYesDescription of the artifact's purpose
contentYesThe actual content (code, config text, log output, etc.)
created_byNoWho created it - 'agent' or 'user' (default 'agent')agent
tagsNoOptional list of tags for categorization
file_pathNoOptional path to associated file on disk
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided. The description only states the action and the type of content stored, but does not disclose side effects, idempotency, permissions required, or what happens if an artifact with the same title exists. This leaves significant behavioral gaps.

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 two sentences and gets straight to the point. It is efficient, though the second sentence is somewhat redundant given the schema's artifact_type enumeration. It is well 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 presence of an output schema and high schema coverage, the description is minimally adequate. However, it lacks context on common use cases, typical artifact_type choices, or how the tool fits into the broader knowledge graph workflow.

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 high (88%), so the baseline is 3. The description adds no parameter-specific details beyond the schema; it only generalizes the types of artifacts. It does not compensate for the small portion of undocumented parameters.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Create a new artifact in the knowledge graph.' It specifies the resource (artifact) and action (create), and distinguishes from sibling tools like update_artifact, delete_artifact, 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 (e.g., add_concept, link_artifact). There is no mention of prerequisites, exclusions, or context that would help an agent decide to use this tool.

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

add_conceptC

Add a new concept to the knowledge graph.

Concepts are semantic knowledge entries that can be linked to sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesShort title for the concept
contentYesDetailed explanation of the concept
tagsNoList of tags for categorization
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations are provided, so the description must compensate. It only states the tool adds a concept, but does not disclose behavioral traits like idempotency, duplicate handling, permissions, 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?

Two sentences, no redundant information. The main action is in the first sentence, and a definition follows. Efficient and front-loaded.

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 annotations and a creation tool with siblings, the description should provide more behavioral and usage context. The output schema exists but doesn't mitigate the lack of operational details.

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 description adds no additional meaning to the parameters beyond the schema. Schema coverage is 75% (actor_context lacks description), but the description does not compensate for that gap.

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 adds a concept to the knowledge graph and defines what a concept is. However, it does not explicitly differentiate from sibling add tools like add_tag_to_concept or batch_add_concepts, but the target resource is distinct enough.

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., add_tag_to_concept, batch_add_concepts). No preconditions or context for usage are provided.

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

add_projectB

Create a new project node in the knowledge graph.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesUnique name for the project
pathYesFile system path to the project directory
descriptionNoOptional description of the project
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits, but it only states the obvious creation action. It omits side effects, required permissions, error conditions, or output structure, leaving agents uninformed.

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 that is front-loaded with the action and resource. It is efficient but could benefit from slightly more context without much bloat.

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 tool has four parameters and an output schema, the description is insufficient. It does not explain the output, the actor_context parameter, or how this tool fits with siblings like add_artifact or update_project.

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 75%, so the schema communicates most parameter details. The description adds no additional parameter semantics; the undocumented actor_context parameter is not mentioned.

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 the resource ('a new project node in the knowledge graph'), distinguishing it from sibling tools like add_artifact or add_concept.

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, such as when a project should be created before adding artifacts or concepts, or any prerequisites.

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

add_sessionA

Create a new session linked to a project.

If the project doesn't exist, it will be auto-created. For new projects, project_path is required.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesName of the project (will be created if doesn't exist)
summaryYesBrief summary of what happened in the session
files_touchedYesList of file paths that were modified or accessed
project_pathNoRequired if project doesn't exist - path to project directory
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

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 discloses the auto-creation behavior of the project and the conditional requirement for project_path. However, it does not mention idempotency, error responses, rate limits, or any side effects such as modification of existing data beyond creating the session.

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 consists of only two sentences, front-loading the main purpose and then adding the key conditional behavior. Every word is necessary and there is 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?

Given that an output schema exists (though not provided) and the schema covers 80% of parameters, the description is fairly complete. It covers the core creation behavior and the critical conditional logic. However, it lacks details on error cases, default values for optional parameters like actor_context, and any usage constraints (e.g., maximum sessions per project).

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 80%, so the baseline is 3. The description adds value by clarifying that project_path is required when the project is new, which the schema states but the description reinforces. It does not elaborate on actor_context, which is poorly described in the schema (just 'additionalProperties: true').

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 uses a specific verb+resource ('Create a new session linked to a project') and clearly distinguishes from sibling session tools like close_session and delete_session by stating it is for adding a new session, not modifying or deleting.

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 for when to use this tool (adding a new session) and includes a conditional usage note about project_path for new projects. However, it does not explicitly state when not to use it or list alternative tools for similar actions like updating an existing session.

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

add_tag_to_conceptA

Add a tag to a concept without re-embedding.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYesID of the concept
tagYesTag to add
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

No annotations are provided, so the description carries the full burden. It discloses a key behavioral detail: 'without re-embedding', which tells the agent that no embedding recalculation occurs. However, it does not mention error handling, permissions, or if the tag addition is directly persisted.

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 five words, which is extremely concise and front-loaded. Every word adds value: 'Add' (verb), 'tag' (object), 'to a concept' (target), 'without re-embedding' (behavioral qualifier). 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?

Given the tool's low complexity and the presence of an output schema, the description is fairly complete. It covers the primary action and a key behavioral trait. However, it does not mention what happens if the tag already exists or if the concept does not exist, which would be helpful for edge cases.

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 67% (concept_id and tag have descriptions). The description adds no extra meaning beyond the schema. The 'actor_context' parameter is not explained in the description, and the schema only defines its type, so some semantic gap remains.

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: 'Add a tag to a concept', with a specific verb and resource. It also distinguishes from sibling tools like 'remove_tag_from_concept' and 'search_by_tag' by mentioning 'without re-embedding', which is unique to this 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 description implies when to use this tool (when adding a tag without re-embedding), but does not explicitly state when not to use it or provide alternatives. No comparison with sibling tools like 'remove_tag_from_concept' or 'search_by_tag' is given.

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

batch_add_conceptsA

Add multiple concepts at once.

Each concept dict should have: title, content, and optionally tags.

ParametersJSON Schema
NameRequiredDescriptionDefault
conceptsYesList of concept dicts with title, content, tags
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, and the description only states the action and input requirements. It lacks disclosure of behaviors such as error handling, idempotency, limits, or side effects, which is important for a batch operation.

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, consisting of two short sentences that deliver the essential information without any superfluous text.

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 batch add tool, the description provides the necessary input details. However, missing output schema details (though present) and lack of behavioral context make it somewhat incomplete for a comprehensive understanding.

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 description partially repeats the schema's description for the 'concepts' parameter but does not add new semantic information. The 'actor_context' parameter is not described in the tool description, and schema coverage is 50%, so the description does not fully compensate.

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 multiple concepts at once,' specifying the action (add) and resource (concepts). This distinguishes it from the sibling 'add_concept' which adds a single concept.

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 mentions required fields for each concept dict but does not provide explicit guidance on when to use this tool versus alternatives like 'add_concept' or other batch operations. Usage context is implied but not stated.

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

close_sessionB

Close a session and update its end timestamp.

Also creates or updates the DailyActivity node for the session's date.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session to close
ended_atNoOptional ISO 8601 timestamp. If not provided, uses current time.
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses the side effect of updating DailyActivity, which is valuable. However, it does not mention idempotency, error behavior when session already closed, or required permissions. This is a moderate level of 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 the primary action, and the side effect in the second. No unnecessary words. Efficient and clear.

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 core action and side effect. The presence of an output schema means return values need not be described. However, it could be more complete about the nature of the DailyActivity update or potential failures, but it is adequate for a close operation.

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 67% (session_id and ended_at described, actor_context not). The description adds no additional meaning beyond the schema's existing descriptions. It does not explain actor_context's purpose or how ended_at is used, leaving a gap for the agent.

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 main action ('Close a session'), the specific operation (update end timestamp), and a side effect (create/update DailyActivity). It distinguishes from sibling tools like delete_session (removes) and add_session (creates) by using 'close' and mentioning the specific resource and effect.

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. It does not explain prerequisites, why one would choose close over delete or update, or state conditions for appropriate use. The description only lists actions without contextual usage advice.

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

delete_artifactC

Delete an artifact and all its relationships.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_idYesID of the artifact to delete
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Without annotations, the description only mentions cascading deletes ('all its relationships') but lacks details on permissions, reversibility, or confirmation steps. Insufficient for a destructive operation.

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?

Single sentence is concise but lacks structure like warnings or examples. Acceptable but not well-structured.

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 it's a delete operation with output schema, the description fails to explain return value, error conditions, or permanence. Incomplete for safe usage.

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 50%, but description adds no meaning to parameters. actor_context is unexplained, and artifact_id lacks format details.

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 is to delete an artifact and all its relationships, which is specific and distinguishes from siblings like delete_concept or delete_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 vs. alternatives like unlink_artifact_from_session or update_artifact. No context about prerequisites or side effects.

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

delete_conceptA

Delete a concept from the knowledge graph.

Also removes any REFERENCES relationships to sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYesID of the concept to delete
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

With no annotations, the description discloses the destructive nature and the specific side effect of removing REFERENCES relationships. However, it does not mention whether other links (e.g., tags) are affected or if the operation is irreversible. Adequate but not exhaustive.

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, front-loaded with the main purpose. Every word contributes value. No redundancy 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?

Given the delete action and absence of annotations, the description covers the main behavior and a key side effect. It does not mention error cases or prerequisites, but for a delete tool with an output schema, this is reasonably complete.

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 schema has 2 parameters with only 50% description coverage (concept_id is described, actor_context is not). The description adds no additional meaning to either parameter, leaving actor_context completely unexplained.

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 'delete' and the resource 'concept', and includes the important side effect of removing REFERENCES relationships. This distinguishes it from sibling tools that delete other resources (e.g., delete_artifact, delete_project) or modify concepts (update_concept).

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 when to use this tool (when a concept and its references should be removed) but provides no explicit guidance on when not to use it or mentioning alternatives like unlink_concept_from_session. The context is implied rather than stated.

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

delete_old_sessionsB

Delete old sessions and their errors/solutions (keeps concepts).

Smart cleanup that preserves learned concepts while removing old session data.

ParametersJSON Schema
NameRequiredDescriptionDefault
days_to_keepNoNumber of days of sessions to keep (default 30)
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It mentions keeping concepts but does not detail other effects (e.g., whether unlinking occurs, if the operation is reversible, or any logging). The actor_context parameter's role is unclear.

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. The key message is front-loaded and earns its place.

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 2 parameters, no required ones, and no annotations, the description provides a basic overview but lacks details on return values, error handling, and side effects. It is minimally adequate for a simple cleanup tool.

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 50% (actor_context lacks meaningful description). The description adds minimal parameter information; it only reiterates days_to_keep without adding syntax or constraints 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 action (delete) and the resource (old sessions) with specific detail that errors/solutions are removed while concepts are preserved. This distinguishes it from sibling tools like delete_session and delete_concept.

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 for cleanup but does not explicitly state when to use, when not to use, or compare with alternatives like delete_session. 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.

delete_projectA

Delete a project and all its sessions, errors, and solutions.

Warning: This is a cascade delete and cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to delete
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Since no annotations are provided, the description carries full burden. It discloses the cascade delete behavior and irreversibility. It could mention error handling (e.g., if project not found) or permission requirements, but the key behavioral traits are clearly stated.

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: one for purpose, one for critical warning. No wasted words, structured efficiently.

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 an output schema, the description covers the core action, cascade scope, and irreversibility. It could add detail on the optional actor_context parameter or specify return behavior, but overall it is sufficiently complete for the tool's complexity.

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%: project_id has a schema description, but actor_context does not. The tool description adds no extra meaning for either parameterβ€”'Delete a project' only implies project_id. With low coverage, the description should compensate 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 verb 'delete' and the resource 'project', and specifies the scope ('all its sessions, errors, and solutions'). This distinguishes it from sibling tools like delete_session, delete_artifact, and delete_concept, which delete individual entities.

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 includes a strong warning about cascade deletion and irreversibility, guiding the agent on when to avoid using this tool. However, it does not explicitly name alternatives like delete_session for partial deletions, though the warning implicitly suggests caution.

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

delete_sessionA

Delete a session and all its errors and solutions.

Warning: This is a cascade delete and cannot be undone.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session to delete
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Discloses destructive behavior (cascade delete) and irreversibility. With no annotations, this is sufficient for a delete tool, though permissions or rate limits are not mentioned.

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 short sentences, no redundancy, crucial warning front-loaded. 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 delete operation, the description adequately covers behavior and caution. Output schema exists, so missing return details are acceptable.

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 description does not explain individual parameters beyond the tool's purpose. Schema coverage is 50% (only session_id described), and actor_context is entirely undocumented in both schema and description.

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 'Delete a session and all its errors and solutions.' This distinguishes it from siblings like close_session (probably non-destructive closure) and delete_old_sessions (bulk deletion).

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?

Includes a warning about cascade deletion and irreversibility, which indicates when to use (permanent removal) and when to avoid (if reversibility needed). Could explicitly mention alternatives like close_session.

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

get_action_timelineC

Get filtered provenance timeline events.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNo
agent_idNo
model_idNo
sinceNo
untilNo
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.1/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only mentions 'filtered' but omits details like pagination, result limits, or side effects. The presence of an output schema does not excuse the lack of 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.

Conciseness3/5

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

The description is a single sentence, which is concise, but the brevity leads to under-specification. Not every sentence earns its place as the content is insufficient.

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 7 optional parameters, no schema descriptions, and no annotations, the description is woefully incomplete. It does not cover filtering logic, return structure, or constraints, making it inadequate for correct tool use.

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 adds no meaning to the seven parameters. It fails to explain what project_id, agent_id, etc., represent or how they affect results.

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

Purpose3/5

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

The description states it retrieves 'filtered provenance timeline events,' which gives a specific verb and resource. However, it does not differentiate from sibling tools like get_entity_provenance or get_agent_activity, leaving 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?

No guidance is provided on when to use this tool versus alternatives. Given many 'get_' siblings, the lack of usage context reduces agent decision quality.

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

get_agent_activityC

Get action events performed by a specific agent.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_idYesAgent ID
start_dateNoOptional ISO/date lower bound
end_dateNoOptional ISO/date upper bound

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries full responsibility for behavioral disclosure. It only states the read operation without details on safety, pagination, limits, or what constitutes an 'action event.' The description adds minimal value beyond the name.

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 wasted words. However, it is so brief that it may be under-specified for effective use, but it earns a 4 for succinctness.

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 existence of several sibling tools with similar names (e.g., get_action_timeline, get_model_activity), the description lacks contextual completeness. It does not explain what 'action events' entail, the scope of results, or ordering. The output schema exists, but the description still needs more context for effective tool selection.

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 clear descriptions for all three parameters (agent_id, start_date, end_date). The tool description does not add any additional meaning beyond what the schema already provides, so baseline 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 action events performed by a specific agent' clearly states the verb (get), resource (action events), and scope (by a specific agent). It is specific and differentiates from siblings like get_model_activity or get_daily_activity, but does not explicitly mention those differences.

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 such as get_action_timeline or get_model_activity. There is no mention of prerequisites, context, or 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.

get_artifact_detailsB

Get full details of an artifact.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_idYesID of the artifact

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden but only states the purpose; it does not disclose behavior like side effects, permissions, or the meaning of 'full details'.

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 but lacks context that could be added without becoming verbose, such as scope or related tools.

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 output schema exists, the description is minimally adequate for a simple retrieval tool, but it could benefit from a brief note on when to use it over similar get_* siblings.

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 parameter description ('ID of the artifact'), but the tool description adds no additional 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 action 'Get' and the resource 'full details of an artifact', distinguishing it from sibling tools like list_artifacts and other get_* tools.

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, such as get_concept_details or get_session_details, leaving the agent to infer from the name alone.

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

get_concept_detailsB

Get concept with all sessions that reference it.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYesID of the concept to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It only states what is returned (concept + sessions) but does not disclose read-only nature, permissions, or side effects. Minimal 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 a single sentence that is front-loaded and contains no unnecessary information. Every word is valuable.

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 (1 parameter, no nested objects, output schema exists), the description adequately states what is returned. However, lacking annotations, it fails to cover behavioral aspects like safety or reversibility, leaving some 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?

The input schema has 100% coverage for the single parameter 'concept_id' with a clear description. The tool description adds no additional meaning beyond the schema, 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?

The description 'Get concept with all sessions that reference it' clearly states the action (get) and the resource (concept with related sessions). It distinguishes from other get tools like get_artifact_details and get_session_details.

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 such as get_concepts_by_project or get_most_referenced_concepts. The description does not include any context for selection.

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

get_concepts_by_projectB

Get all concepts linked to a project's sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It does not mention whether the operation is read-only, requires authentication, has rate limits, or any side effects. The brevity leaves the agent guessing about the tool's safety and scope.

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 9 words, with no filler or redundancy. It is perfectly concise and front-loaded with the action and resource.

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 an output schema present, the description is nearly complete. It could mention that the output is a list of concepts, but the existence of an output schema mitigates this gap. It adequately covers the tool's purpose for a read operation.

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 parameter 'project_id' is described as 'ID of the project' with 100% schema coverage. The description adds no additional meaning beyond the schema, 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 action (Get), the resource (concepts), and the scope (linked to a project's sessions). It effectively differentiates from siblings like get_session_concepts which focus on a single session, and get_unlinked_concepts.

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 get_session_concepts, get_concept_details, or search. There are no usage conditions, prerequisites, or caveats mentioned.

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

get_daily_activityB

Get daily activity for a specific date and project.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format
project_idYesID of the project

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations present, the description carries the full burden of disclosing behavior. It only states a read operation without any details on side effects, permissions, or rate limits. The description is too minimal to provide adequate 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, direct sentence with no wasted words. It is front-loaded and 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?

Given the existence of an output schema and full parameter schema coverage, the description is minimally adequate. However, it lacks context to distinguish from sibling tools and does not explain what 'daily activity' entails, leaving gaps for an agent to select accurately.

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 both parameters. The description adds no additional 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.

Purpose4/5

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

The description clearly states the verb ('Get') and resource ('daily activity') with scope ('for a specific date and project'). However, it does not differentiate from similar sibling tools like get_daily_summary or get_agent_activity, which could lead to 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?

No guidance is provided on when to use this tool versus alternatives. The description does not mention any prerequisites, limitations, or conditions for appropriate usage.

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

get_daily_summaryA

Get aggregated summary for a specific date across all projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateYesDate in YYYY-MM-DD format

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states it 'get aggregated summary' but provides no details on what the summary includes, whether it's read-only, rate limits, or other behavioral traits relevant for a tool with no 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 sentence with no unnecessary words or repetitions. It is efficiently structured.

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 presence of an output schema, the description does not need to detail return values. However, the description is very brief and lacks context about what 'aggregated summary' entails, which may leave ambiguity for a user selecting among many similar siblings.

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% (the date parameter is fully described in schema). The description adds no extra meaning beyond the schema, 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?

The description uses a specific verb 'Get' and resource 'aggregated summary', and clearly scopes to 'a specific date across all projects'. This distinguishes it from siblings like get_daily_activity (likely per-project) and get_project_daily_activities.

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 for cross-project summary on a date, but does not explicitly state when to use it versus alternatives like get_daily_activity or get_project_daily_activities. No exclusions or when-not-to guidance is provided.

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

get_entity_provenanceC

Get action history for a specific entity.

ParametersJSON Schema
NameRequiredDescriptionDefault
target_typeYes
target_idYes
limitNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided. The description implies a read-only operation but fails to disclose behavioral traits like sorting, pagination (limit is only implied), or the structure of the returned history. The agent cannot infer important constraints.

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 very short, but it lacks necessary details. It is concise but under-specified, leaving the agent to rely on parameter names alone.

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 presence of many similar get_* sibling tools and no annotations, the description is insufficient for an agent to confidently select this tool. It doesn't clarify what constitutes an 'entity' or differentiate from get_action_timeline.

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 description does not explain the meaning of target_type, target_id, or limit beyond their names. Limit's default value is in schema but not stated in the description, and the agent may not understand valid values for target_type.

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 action history for a specific entity' clearly states the tool retrieves action history. However, it doesn't differentiate from sibling tools like get_action_timeline or get_agent_activity, which may have overlapping purposes.

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. The description does not mention prerequisites, such as valid types for target_type, or scenarios where other history tools are more appropriate.

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

get_error_detailsB

Get error with all its solutions.

ParametersJSON Schema
NameRequiredDescriptionDefault
error_idYesID of the error to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden. It only states the action without disclosing behavioral traits such as read-only nature, required permissions, rate limits, or side effects. The agent has no insight beyond the basic purpose.

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 unnecessary words. It is front-loaded and efficient, though it could be slightly more informative without losing conciseness.

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 (one required parameter, output schema exists), the description is minimally adequate. It conveys the core function but omits additional context like what 'solutions' entail or the structure of the response, which the output schema may cover. No major gaps, but not fully 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 schema describes error_id as 'ID of the error to retrieve,' which is sufficient. The description adds no extra meaning or context beyond the schema, resulting in baseline score.

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 retrieves an error and all its solutions, with a specific verb and resource. It distinguishes from siblings like get_error_solutions, which may only return solutions, and get_recent_errors, which returns multiple errors.

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. It does not provide context, prerequisites, or exclusions, leaving the agent to infer usage solely from the name and description.

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

get_error_solutionsA

Find similar errors and their solutions using semantic search.

ParametersJSON Schema
NameRequiredDescriptionDefault
error_messageYesError message to search for
top_kNoNumber of similar errors to return (default 5)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations provided, so description carries full burden. It states it uses semantic search and returns similar errors/solutions, but does not disclose behavioral traits like rate limits, auth requirements, or behavior when no matches found. The presence of an output schema mitigates slightly, but the description itself is sparse.

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, front-loaded with key information, no wasted words. Efficient and clear.

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 only 2 parameters and an output schema, the description is reasonably complete. It conveys the core functionality and method. Minor missing details about pagination or edge cases, but the output schema likely covers return structure.

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 baseline is 3. The description adds 'using semantic search' for the error_message parameter, but doesn't provide additional meaning beyond the schema. The top_k parameter is not elaborated on.

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 'Find', the resource 'similar errors and their solutions', and the method 'using semantic search'. This distinguishes it from siblings like 'get_error_details' and 'get_recent_errors'.

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 to find similar errors/solutions by error message, but lacks explicit when-not-to-use or comparisons to alternative error tools. Given many sibling tools, guidance would be helpful.

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

get_errors_without_solutionsB

Find unresolved errors (errors without solutions).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idNoOptional project ID to filter by

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior1/5

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

No annotations are provided, so the description must disclose behavioral traits. It only rephrases the tool name and gives no information about side effects, return format, or security requirements.

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 conveys the core purpose without any redundant words. It is appropriately sized for the tool's simplicity.

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 one optional parameter and an output schema, but the description does not explain what constitutes 'unresolved' or the scope of results. It is adequate but not fully 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 description coverage is 100%, so the baseline is 3. The tool description adds no extra meaning beyond what the schema already provides for the single parameter.

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 uses a clear verb 'Find' and a specific resource 'unresolved errors (errors without solutions)', which distinguishes it from sibling tools like get_error_details or get_recent_errors.

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 prerequisites or exclusions. With many sibling tools, this omission is significant.

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

get_learning_progressB

Track concept growth and activity over time for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It only states the high-level purpose without revealing details like performance implications, pagination, or whether the operation is read-only. This is insufficient for an agent to understand the tool's behavior beyond its basic function.

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, clear sentence that efficiently conveys the core purpose without unnecessary 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.

Completeness3/5

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

With an output schema present, the description need not detail return values, but it still leaves ambiguity about what 'concept growth and activity' entail temporally or spatially. For a tool querying progress over time, details like time range or default aggregation 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 has 100% description coverage for the single parameter (project_id). The description does not add any additional meaning or examples beyond what the schema already provides, so it meets the baseline for schema coverage but adds no extra value.

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 tracks concept growth and activity over time for a project, which is specific and provides a clear purpose. However, it does not explicitly differentiate from sibling tools like get_daily_activity or get_agent_activity, though the focus on 'concept growth' and 'learning progress' is distinct enough.

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. With many sibling tools for tracking activity, users are left to infer usage context without explicit distinctions or prerequisites.

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

get_model_activityC

Get action events produced by a specific model.

ParametersJSON Schema
NameRequiredDescriptionDefault
model_idYes
start_dateNo
end_dateNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It only states 'Get action events' with no mention of read-only nature, performance, rate limits, or what exactly constitutes an action event. This is insufficient for safe invocation.

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 sentence, which is concise, but at the expense of necessary detail. It could be expanded to include key information without becoming verbose. It is not optimally structured to convey tool purpose and usage efficiently.

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 tool has three parameters, an output schema, and many sibling tools, the description is incomplete. It does not explain what the tool returns, how to filter with dates, or how it differs from related tools like get_agent_activity or get_action_timeline.

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%, so the description must compensate. However, it provides no explanation of the three parameters (model_id, start_date, end_date). The agent cannot infer their meaning or usage from the description alone.

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 verb 'Get' and resource 'action events', and specifies that they are produced by a specific model. However, it does not differentiate from sibling tools like get_agent_activity or get_daily_activity, which could also be focused on activities.

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. The description does not mention any exclusive conditions or when not to use it, leaving the agent without decision support.

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

get_most_referenced_conceptsB

Get the most referenced concepts across all sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of concepts to return (default 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, and the description does not disclose what 'referenced' means (e.g., count of session associations), whether the list is sorted, or if it considers all time or recent sessions. The output schema exists but is not detailed in 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.

Conciseness4/5

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

The description is a single efficient sentence with no waste. However, it could be more informative without adding length.

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 tool with one parameter and an output schema, the description is minimally adequate but lacks details on the meaning of 'most referenced' and how results are ordered, which is important for correct usage.

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 one parameter (limit) described in the schema. The description adds no additional semantic context beyond what the 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?

The description clearly states the verb 'Get' and the resource 'most referenced concepts' with scope 'across all sessions', distinguishing it from sibling tools like get_concept_details or get_session_concepts.

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 get_concepts_by_project or search_concepts. The agent is left to infer usage from the name alone.

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

get_project_artifactsA

Get all artifacts linked to a project's sessions.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
limitNoMaximum artifacts to return (default 50)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

No annotations exist, and the description fails to disclose behavioral traits such as pagination behavior, sorting, rate limits, or that it is a read-only operation. The 'get' verb implies reading, but more explicit details are absent.

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, clear sentence with no extraneous information. It is optimally concise.

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 retrieval tool with pagination parameters and no annotations, the description is adequate but not comprehensive. It lacks details on error handling, response format, or behavior with no results. The presence of an output schema partially compensates.

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 meaning by specifying that artifacts are 'linked to a project's sessions,' which contextualizes the project_id parameter beyond the schema. Schema coverage is 100%, so baseline is 3, but the extra context justifies a 4.

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 retrieves artifacts linked to a project's sessions, distinguishing it from sibling tools like list_artifacts (all artifacts) or get_artifact_details (single artifact).

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 list_artifacts or search_artifacts_by_tag. The description does not provide context for choosing this over similar tools.

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

get_project_daily_activitiesC

Get all daily activities for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description should disclose behavior such as side effects, rate limits, or pagination. It only states 'get all daily activities', which is misleading given limit/offset parameters. No mention of what constitutes an 'activity' or if the call is read-only.

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 (one sentence), but it omits critical details like pagination and result count. It is not well-structured for a tool with multiple parameters.

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 output schema exists, the description could be simpler, but it doesn't explain the difference between 'daily activities' and other similar tools. The limit/offset contradiction ('all' vs paginated) is incomplete.

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 only 33% (only project_id described). The description does not explain what 'limit' and 'offset' do, nor how they affect results. The user must infer from names.

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 verb 'get' and the resource 'daily activities for a project', but does not differentiate from similar siblings like 'get_daily_activity' (singular) or 'get_daily_summary'.

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 like 'get_daily_activity' or 'get_daily_summary'. No mention of pagination or use cases.

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

get_project_errors_by_typeB

Cluster project errors by similarity to find common error patterns.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project
similarity_thresholdNoMinimum similarity to group errors (default 0.85)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

No annotations provided, and the description does not disclose behavioral traits such as read-only nature, computational cost, or any side effects. It only states the clustering action without further context.

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 of 8 words, very concise and front-loaded. Every word is necessary, but it could slightly expand without becoming verbose.

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 presence of an output schema (not shown), the description does not need to detail return values. However, it lacks context on the clustering algorithm, expected output format, or any prerequisites, making it minimally 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% with descriptions for both parameters. The description adds minimal additional meaning beyond the schema, which already explains the similarity_threshold role.

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 clusters project errors by similarity to find common error patterns. The verb 'cluster' and resource 'project errors' are specific, and it distinguishes from sibling tools like get_error_details or get_recent_errors which focus on individual or list errors.

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 alternatives are provided. It implies use for pattern finding but doesn't guide on when to choose this over other error-related tools. The similarity threshold is mentioned in schema but not in description.

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

get_project_historyB

Get all sessions, errors, and solutions for a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_nameYesName of the project to query
limitNoMaximum sessions to return (default 50)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It fails to mention that the tool is read-only, that results are paginated, or any prerequisites like project existence. The agent cannot infer safety or performance implications.

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, clear sentence with no redundant words. It is front-loaded and efficiently 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 output schema exists and schema coverage is high, the description is minimally adequate. However, it does not explain the paginated nature (implied by limit/offset), nor does it clarify scope among many sibling tools. Lacks contextual completeness 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 description coverage is 100%, so baseline is 3. The description adds no parameter information beyond the schema, but also does not contradict it. It does not enhance understanding of limit, offset, or project_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 tool retrieves sessions, errors, and solutions for a project, distinguishing it from more specific sibling tools like get_recent_sessions or get_error_solutions. The verb 'get' and resource 'sessions, errors, and solutions' make the 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 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. Despite many sibling tools with overlapping functionality, the description does not clarify when this comprehensive history is appropriate versus using more specific tools.

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

get_project_statsB

Get comprehensive statistics for a project.

Returns session count, error count, resolution rate, top files with errors, etc.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden of behavioral disclosure. It mentions the type of data returned but does not explicitly state that it is a read-only operation, any side effects, permissions, or performance implications. The description is adequate but lacks explicit behavioral traits.

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 purpose, and lists examples concisely. No redundant information is present, making it highly 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 the tool's simplicity (one parameter, output schema exists), the description adequately covers what the tool does and what data it returns. The listing of example fields is helpful, though it uses 'etc.' which implies incompleteness; however, the output schema fills that gap.

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 'project_id' (described as 'ID of the project'). The description adds no additional 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.

Purpose4/5

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

The description clearly states the verb 'Get' and the resource 'comprehensive statistics for a project', listing examples of returned data. While it doesn't explicitly differentiate from sibling tools like get_project_errors_by_type or get_project_history, the focus on overall stats is apparent.

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, such as when to prefer it over get_project_history or get_project_errors_by_type. It only describes the output without usage context.

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

get_recent_errorsB

Get the most recent errors across all projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of errors to return (default 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of behavioral disclosure. It fails to explain what 'recent' means, whether results are sorted, or any side effects. With an output schema available, more details on the return format would be expected.

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 efficiently communicates the tool's purpose without any redundant or unnecessary text.

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?

The description is too sparse given the tool has an output schema and many sibling tools. It lacks usage guidance and behavioral details, making it insufficient for an agent to correctly invoke this tool in a nuanced 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?

Schema description coverage is 100%, and the schema already documents the 'limit' parameter with its default. The description adds no additional meaning beyond what the schema provides, 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.

Purpose5/5

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

The description clearly states the verb 'Get', the resource 'most recent errors', and the scope 'across all projects'. It distinguishes this tool from siblings like get_project_errors_by_type and get_session_errors that are scoped differently.

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 such as get_error_details or get_errors_without_solutions. The agent has no context to decide which tool is appropriate.

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

get_recent_sessionsB

Get the most recent sessions across all projects.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of sessions to return (default 10)

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description bears full responsibility for behavioral disclosure. It only states that sessions are retrieved but does not explain ordering criteria, potential side effects, or how 'recent' is determined. This is insufficient for an agent to understand the tool's 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, concise sentence that immediately conveys the tool's purpose with no filler or unnecessary words. It is well front-loaded and 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?

While the presence of an output schema reduces the need to explain return values, the description lacks context about what 'most recent' means (e.g., creation time or last activity). It is adequate but leaves some ambiguity that could affect correct usage.

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 'limit', so the description does not need to add meaning; the schema already explains it. The description adds no extra parameter context beyond what the schema provides, earning the baseline score.

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 the resource ('most recent sessions across all projects'). It distinctly describes a specific retrieval operation that is different from sibling tools like get_session_details or get_session_errors.

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, nor any context about prerequisites or exclusions. The description only states the function without helping the agent decide between it and similar get_* siblings.

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

get_session_conceptsA

Get all concepts linked to a specific session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries full burden for behavioral disclosure. It only states the action and does not disclose read-only nature, pagination, error handling, or what 'linked' means. Minimal value beyond the name.

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 redundant words. Every part is essential. Front-loaded with verb and resource. Highly 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 simple getter with one parameter and an output schema, the description covers the core purpose. However, it omits details like whether all concepts are returned at once or paginated, and whether the session must exist. Nearly complete but minor 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% with the parameter 'session_id' described as 'ID of the session'. The description adds no additional meaning or syntax guidance. Baseline 3 is appropriate as the schema already covers the parameter adequately.

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 uses a specific verb 'Get' and resource 'concepts linked to a specific session'. It clearly distinguishes from siblings like 'get_concepts_by_project' or 'get_unlinked_concepts' by specifying the linking context.

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 guidance on when to use versus alternative tools. The context signals show many sibling getter tools, but the description does not mention exclusions or conditions. Usage is implied but not clarified.

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

get_session_detailsA

Get full session info including errors, solutions, and linked concepts.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session to retrieve

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description should disclose behavioral traits. It indicates that the tool returns session info with specified content, which suggests a read operation. However, it does not disclose permissions, rate limits, or potential side effects, though for a retrieval tool this is less critical.

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 concise sentence of 10 words that effectively communicates the tool's purpose. No unnecessary words or 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 existence of an output schema (not shown) and the simplicity of the tool (one parameter, read operation), the description provides sufficient context about what the tool returns. It covers the key elements but might omit other session metadata; however, the output schema would fill that gap.

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 the parameter session_id with a description (100% coverage). 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?

The description clearly specifies the verb 'Get' and the resource 'full session info', listing included elements (errors, solutions, linked concepts). It distinguishes from sibling tools like get_session_concepts and get_session_errors by indicating comprehensiveness.

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 for retrieving comprehensive session details but does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusion criteria or alternative tool names are mentioned.

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

get_session_errorsA

Get all errors for a specific session.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior2/5

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

No annotations exist, so the description bears full responsibility. It does not disclose behavior on invalid session id, empty results, side effects, or return format. This is a notable gap.

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 purpose without any unnecessary 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?

The description states the basic function, and an output schema exists (reducing need to describe return values), but lacks behavioral details and error handling 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?

Schema coverage is 100% (parameter description 'ID of the session'). The description adds no extra meaning, so 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 'Get all errors for a specific session' uses a clear verb and resource. It distinguishes from sibling tools like 'get_error_details' (for a single error) and 'get_recent_errors' (across 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 implies when to use (for a known session id to fetch all errors) but does not explicitly state when not to use or provide alternatives. This is adequate for a simple retrieval tool.

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

get_unlinked_conceptsB

Find concepts that are not linked to any session.

Returns: dict with list of unlinked concepts

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations provided, and description only mentions return type (dict with list) without disclosing pagination, read-only nature, or other behaviors.

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?

Very concise, two sentences with no fluff, but could include parameter context without being verbose.

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?

Output schema exists, but description lacks details on pagination and behavior, leaving the tool minimally described.

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?

Description does not mention the limit and offset parameters, adding no additional meaning beyond the schema. Schema coverage is 0%.

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 finds concepts not linked to any session, distinguishing it from siblings like get_concept_details or get_session_concepts.

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 guidance on when to use or alternatives, but the purpose is self-evident as a read-only list operation.

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

list_artifactsC

List artifacts filtered by type.

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_typeYesType filter (datasheet/config/log/code/snippet/diagram/note/reference/template/other)
limitNoMax results (default 50)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.8/5.0
Behavior2/5

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

No annotations provided, so description must disclose behavior. It mentions filtering but omits details on pagination, ordering, authentication, or return format. Schema provides pagination params but description does not clarify their behavior.

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?

Extremely concise (5 words) but lacks important details. Concise yet under-specified; not an ideal balance.

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 tool has 3 parameters and an output schema, the description is too brief. Missing usage guidelines and behavioral context, making it insufficient 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 descriptions for each parameter. Description adds no extra meaning beyond schema, so baseline 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?

Clearly states it lists artifacts filtered by type. Provides specific verb and resource. However, does not differentiate from sibling tools like 'get_project_artifacts' or 'search_artifacts_by_tag'.

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. Does not mention when not to use or provide usage context.

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

list_projectsB

List all projects in the knowledge graph.

Returns: dict with list of projects sorted by creation date

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
offsetNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It notes that results are sorted by creation date, but fails to specify that the tool is read-only or describe pagination behavior. The phrase 'list all projects' conflicts with the limit parameter, which implies pagination.

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: one for purpose and one for return format. It front-loads the core action and avoids unnecessary 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 the existence of an output schema, the description adequately notes sorting. However, it lacks details on what a project contains, whether archived projects are included, and how pagination works. For a simple list tool, it is minimally complete but could be improved.

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 does not mention any parameters. The agent must infer that 'limit' and 'offset' control pagination, but the description 'list all projects' contradicts this. No value is added 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?

The description explicitly states 'List all projects in the knowledge graph,' providing a clear verb and resource. It distinguishes from sibling tools like 'add_project' or 'get_project_stats' by focusing on listing all projects without filtering.

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 offers no guidance on when to use this tool versus alternatives. It does not mention prerequisites, when not to use it, or differentiate from similar list tools like 'get_project_daily_activities'.

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

log_errorA

Log an error that occurred during a session.

Creates an Error node with embedded message for semantic search.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session where the error occurred
messageYesThe error message
contextYesAdditional context about what was happening
fileYesThe file where the error occurred
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are present, so the description must carry the full burden. It mentions creating an Error node for semantic search but does not disclose whether the operation is idempotent, if duplicates are prevented, or any side effects like overwriting. This is a significant gap for a write operation.

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, front-loaded with the core purpose, and 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?

The tool is simple with well-documented parameters and an output schema, so the description does not need to explain return values. It adds the useful detail 'for semantic search,' but could hint at return behavior or confirmation of success. Still, it is largely 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?

Schema coverage is 80% with adequate parameter descriptions. The description adds no extra meaning beyond the schema, meeting the baseline for high-coverage cases.

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 logs an error during a session and creates an Error node for semantic search. It uses a specific verb-resource pairing ('Log an error') and distinguishes itself from sibling error-retrieval tools.

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 recording errors but does not explicitly contrast with sibling tools like get_error_details or get_recent_errors. No when-to-use or when-not-to-use guidance is provided.

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

log_solutionB

Log a solution for a previously logged error.

ParametersJSON Schema
NameRequiredDescriptionDefault
error_idYesID of the error this solution addresses
descriptionYesDescription of how the error was solved
code_snippetNoOptional code that was used to fix the issue
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, and the description is too brief to disclose behavioral traits such as idempotency, error handling, or side effects on the error record.

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, front-loaded with the verb and object, efficient but could benefit from minor rephrasing for better scannability.

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?

Despite having an output schema, the description lacks context about prerequisites (e.g., error must exist), success behavior, and error cases, making it incomplete for an AI 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?

Schema coverage is 75%, so the baseline is 3. The description does not add any additional meaning to the parameters beyond what the 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?

The description clearly states the action ('Log a solution') and the target ('for a previously logged error'), differentiating it from siblings like log_error or get_error_solutions.

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 that a solution must be logged after an error, but it lacks explicit guidance on when to use it versus alternatives like updating or deleting solutions, or prerequisites such as the error existing.

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

remove_tag_from_conceptB

Remove a tag from a concept without re-embedding.

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYesID of the concept
tagYesTag to remove
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations exist, so the description carries full burden. It only hints at the lack of re-embedding but fails to disclose other behavioral traits such as error handling, permission requirements, or side effects on related entities.

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 with no filler, efficiently communicating the core purpose and a key behavioral detail.

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?

Despite having an output schema, the tool is a mutation and the description lacks essential context such as side effects, failure modes, or preconditions, making it incomplete for safe agent 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 description coverage is 67% (concept_id and tag described, actor_context undocumented). The description adds no parameter details, leaving the optional actor_context parameter unexplained.

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 states a specific action ('Remove a tag from a concept') and includes a differentiating behavior ('without re-embedding'), clearly distinguishing it from its sibling tool 'add_tag_to_concept'.

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 phrase 'without re-embedding' implies a lighter operation, but no explicit guidance is provided on when to use this tool versus alternatives like 'add_tag_to_concept' or other mutation tools.

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

search_artifacts_by_tagC

Find artifacts by tag.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to search for
limitNoMaximum artifacts to return (default 50)
offsetNoPagination offset

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Find artifacts by tag' without mentioning pagination behavior, result ordering, or whether the search is exact or fuzzy. The input schema covers limit/offset, but the description adds nothing beyond the obvious.

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, front-loaded sentence, which is efficient. However, it borders on being too minimal, sacrificing completeness for brevity. It earns a point for conciseness but could benefit from additional context.

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 presence of an output schema, the description does not need to explain return values. However, considering the tool's many siblings and lack of usage guidance, the description feels incomplete. It covers the basic purpose but leaves behavioral and contextual 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 baseline is 3. The description does not add any additional meaning to the parameters beyond what the schema already provides (e.g., 'tag' is simply the tag to search for). No extra context about format or behavior is given.

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 ('Find') and resource ('artifacts by tag'), making the tool's purpose obvious. However, given the sibling 'search_by_tag', the description does not differentiate between these two similar tools, missing an opportunity to clarify scope or behavior.

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?

There is no guidance on when to use this tool versus alternatives like 'search_by_tag', 'list_artifacts', or 'get_artifact_details'. The agent receives no context about prerequisites, typical scenarios, or exclusions, leaving it to infer usage from the tool name alone.

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

search_by_tagB

Find concepts by tag (non-semantic search).

ParametersJSON Schema
NameRequiredDescriptionDefault
tagYesTag to search for

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries full disclosure burden. It only states 'non-semantic search' but omits details like case sensitivity, pagination, or scope of concepts searched.

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 extremely concise (5 words) and front-loaded. It earns its place but could include more guiding information without losing brevity.

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 one parameter and an output schema, the description is minimally adequate. However, it fails to specify the scope (e.g., all concepts) or return format, leaving some ambiguity.

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 adds 'non-semantic search' context but does not enhance parameter understanding beyond the schema's 'Tag to search for'.

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 'find', resource 'concepts', and method 'by tag (non-semantic search)'. It effectively distinguishes from sibling tools like 'search' and 'search_artifacts_by_tag'.

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 explicit guidance on when to use this tool versus alternatives. It only hints at the difference via 'non-semantic search' but lacks direct comparisons or exclusions.

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

update_artifactA

Update an artifact's metadata or content (re-embeds automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
artifact_idYesID of the artifact
titleNoNew title
descriptionNoNew description
contentNoNew content
tagsNoNew tags list
file_pathNoNew file path
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It only mentions that updates cause re-embedding automatically, but omits important traits such as permissions required, versioning behavior, irreversibility, or side effects on linked entities. This is insufficient for a mutation tool.

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 immediately conveys the core purpose without wasted words. It is front-loaded with the action and resource.

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 that an output schema exists (context signal), the description need not detail return values. However, for a tool with 7 parameters and potential side effects, the description is too sparse to fully prepare an agent for correct invocation. It covers the basics but lacks depth.

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 86%, so the baseline is 3. The description adds minimal extra meaning beyond the parameter names and types; it says 'metadata or content' but does not clarify how parameters interact or any constraints. The schema already describes each parameter adequately.

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 states 'Update an artifact's metadata or content', clearly specifying the action (update) and the resource (artifact). The parenthetical '(re-embeds automatically)' adds a distinguishing behavioral detail, differentiating it from sibling update tools like 'update_concept'.

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 for updating artifact metadata or content, but it does not provide explicit guidance on when to use it versus alternatives (e.g., delete_artifact for removal). No 'when not to use' or context for preceding steps are mentioned.

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

update_conceptB

Update a concept's content (re-embeds automatically).

ParametersJSON Schema
NameRequiredDescriptionDefault
concept_idYesID of the concept to update
new_contentYesNew content for the concept
new_titleNoOptional new title for the concept
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries full transparency burden. It reveals one key behavior ('re-embeds automatically') but omits other aspects like idempotency, error states, or side effects. The output schema may cover return values, but 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?

A single sentence that is front-loaded with the action and efficiently conveys core function. No superfluous words or repetition.

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 tool has 4 parameters (including optional new_title and actor_context) and many sibling tools, the description is too sparse. It fails to mention that new_title can be updated, or clarify the purpose of actor_context. Output schema existence partially mitigates, but description lacks 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 75% (3 of 4 parameters described). The description adds no additional parameter-level meaning beyond the schema, and does not address the undocumented actor_context parameter. 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 'Update' and the resource 'concept', and includes a notable behavioral trait 're-embeds automatically'. It effectively distinguishes from sibling tools like add_concept and delete_concept.

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 usage guidelines are provided. The description does not indicate when to use this tool versus alternatives such as add_concept or batch_add_concepts, leaving the agent without decision-support cues.

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

update_daily_activityC

Update a daily activity's summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
activity_idYesID of the daily activity
summaryYesNew summary text
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden for behavioral disclosure. It only states 'update,' which implies mutation, but does not disclose side effects, permissions, or whether the daily activity must exist. There is no mention of overwrite behavior or any other behavioral traits.

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 concise with one sentence and no unnecessary words. It is appropriately front-loaded. However, it could be slightly more informative without sacrificing conciseness.

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 tool has 3 parameters and no annotations, the description is too brief. It lacks context about what a daily activity is, the effect of the update, and any constraints. Despite having an output schema, the description fails to provide sufficient contextual completeness for an agent to use the tool effectively.

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 description adds no meaning beyond the input schema. Schema coverage is 67%, and the description does not elaborate on any parameter, including the undocumented actor_context. It essentially repeats the schema's purpose without enriching the agent's understanding.

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 states 'Update a daily activity's summary,' which clearly indicates the verb and resource. However, it does not differentiate from sibling tools like update_artifact or update_session_summary, as it lacks specific context about what a daily activity encompasses.

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 context. It is a single sentence with no usage direction.

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

update_projectB

Update a project's metadata or merge with another project.

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesID of the project to update
nameNoNew name for the project
pathNoNew path for the project
descriptionNoNew description for the project
merge_project_idNoIf provided, merge this project into another project
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations, the description carries full burden for behavioral disclosure. It mentions merging but does not explain consequences (e.g., if source project is deleted), permissions needed, or side effects. This is insufficient for a mutation tool.

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 that immediately conveys the tool's purpose and main actions. It is concise and front-loaded, though could be slightly expanded for clarity without losing conciseness.

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?

Despite an output schema, the description omits critical details about the merge operation (e.g., whether the source project is destroyed) and does not address implications or prerequisites. The tool's complexity demands more complete 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?

Schema description coverage is 83% (5 of 6 parameters described). The description adds that merge_project_id initiates a merge, but does not add meaning beyond schema for other parameters. 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 updates project metadata or merges with another project, using a specific verb and resource. It distinguishes between two distinct actions, and the merge functionality sets it apart from sibling update tools.

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 guidance on when to use this tool versus alternatives like update_artifact or delete_project. The description implies usage for project modifications but does not provide context or exclusions.

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

update_session_summaryC

Update a session's summary.

ParametersJSON Schema
NameRequiredDescriptionDefault
session_idYesID of the session to update
summaryYesNew summary text
actor_contextNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

With no annotations, the description carries full responsibility for behavioral disclosure. It only states 'update,' implying mutation, but offers no details on idempotency, authorization, side effects, or whether the update is additive or replaces the existing summary. This is insufficient.

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 brief sentence, which is concise. However, it is too short to convey necessary details, striking a poor balance between conciseness and completeness. A slightly longer description with behavioral context would be better.

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 tool has three parameters and an output schema, the description should explain the effect of the update and the role of actor_context. It does not. The description is incomplete for a tool of this complexity.

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 67%, meaning two of three parameters have descriptions in the schema. The description adds no additional meaning beyond the schema; it does not clarify the actor_context parameter's purpose or provide any format hints. The description should compensate for the missing 33% coverage but does not.

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 'Update a session's summary' clearly states the verb (update) and resource (session's summary), which distinguishes it from other update tools like update_artifact or update_project. However, it lacks additional specificity about what the summary content entails, preventing a 5.

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, such as when to update the summary vs. adding a new session. There are no conditions, prerequisites, or exclusions mentioned.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 55 tool updatesv0.1.0
    • First observedadd_artifact
    • First observedadd_concept
    • First observedadd_project
    • First observedadd_session
    • First observedadd_tag_to_concept
    • First observedbatch_add_concepts
    • First observedbatch_link_concepts
    • First observedclose_session
    • First observeddelete_artifact
    • First observeddelete_concept
    • First observeddelete_old_sessions
    • First observeddelete_project
    • First observeddelete_session
    • First observedget_action_timeline
    • First observedget_agent_activity
    • First observedget_artifact_details
    • First observedget_concept_details
    • First observedget_concepts_by_project
    • First observedget_daily_activity
    • First observedget_daily_summary
    • First observedget_entity_provenance
    • First observedget_error_details
    • First observedget_error_solutions
    • First observedget_errors_without_solutions
    • First observedget_learning_progress
    • First observedget_model_activity
    • First observedget_most_referenced_concepts
    • First observedget_project_artifacts
    • First observedget_project_daily_activities
    • First observedget_project_errors_by_type
    • First observedget_project_history
    • First observedget_project_stats
    • First observedget_recent_errors
    • First observedget_recent_sessions
    • First observedget_session_concepts
    • First observedget_session_details
    • First observedget_session_errors
    • First observedget_unlinked_concepts
    • First observedlink_artifact
    • First observedlink_concept_to_session
    • First observedlist_artifacts
    • First observedlist_projects
    • First observedlog_error
    • First observedlog_solution
    • First observedremove_tag_from_concept
    • First observedsearch
    • First observedsearch_artifacts_by_tag
    • First observedsearch_by_tag
    • First observedunlink_artifact_from_session
    • First observedunlink_concept_from_session
    • First observedupdate_artifact
    • First observedupdate_concept
    • First observedupdate_daily_activity
    • First observedupdate_project
    • First observedupdate_session_summary

TDQS

B3.2/5.0

Scored across 55 tools

Disambiguation5/5

Each tool targets a distinct entity and operation (e.g., add_artifact vs add_concept, get_session_details vs get_concept_details). There is no meaningful overlap; even similar search tools have different scopes (semantic vs tag-based).

Naming Consistency5/5

Tool names follow a consistent verb_noun pattern (e.g., add_artifact, delete_session, get_daily_activity). Minor variations like 'list' vs 'get' are standard, and batch operations are uniformly prefixed. No mixing of conventions.

Tool Count2/5

With 55 tools, the count far exceeds the typical well-scoped range. While the domain is broad, this many tools risks overwhelming agents and suggests insufficient consolidation or granularity.

Completeness4/5

The tool set covers CRUD and lifecycle operations for all major entities (artifacts, concepts, sessions, projects, errors, solutions). Minor gaps exist, such as no direct update or delete for individual errors, but workflows are supported via session deletion and event logging.

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
    A
    quality
    D
    maintenance
    Provides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.
    14
    12
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Persistent semantic memory for AI agents, enabling storage, semantic search, knowledge graph connections, and inter-instance messaging across conversations using local models via Ollama.
    47
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides persistent knowledge graph memory for AI agents, enabling them to store, recall, and query facts about people, projects, and relationships across sessions.
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables persistent, graph-based memory for AI agents, allowing them to store, traverse, and recall relationships between facts, decisions, and context across sessions for efficient reasoning and reduced token usage.
    MIT