Cortex MCP
Cortex MCP is a persistent memory, task management, and autonomous execution engine for AI coding agents — running locally with SQLite storage and a live dashboard.
Project Memory & State
Initialize projects via a 10-question onboarding, switch active projects, get compressed project context, and save session snapshots.
Task & Progress Management
Retrieve the next highest-priority task, log completed work, and run safety checks for warnings/blocks based on DB state.
Feature & File Tracking
Add/update features and track their status (pending, in-progress, done, blocked), mark files as created/done with automatic checkpoints, and rollback files to previous checkpoints.
Test & Issue Management
Register and update tests linked to features, log bugs and blockers, and resolve issues with fix descriptions.
Knowledge Base
Write dictionary entries, save code snippets, log research notes, record architectural decisions, and perform FTS5 keyword, semantic vector, or hybrid searches across all data types.
Autonomous Pipeline
Start goal-driven pipelines that plan a DAG of tasks and auto-execute them, preview plans as dry-runs, monitor progress, pause/resume/cancel execution, auto-heal broken files, and view pipeline history.
Human Interaction
Ask humans for input (blocking until answered) and confirm destructive actions via a red modal before execution.
Knowledge Graph
Add typed relationships between project entities (features, files, tests, issues, decisions), detect contradictions, and resolve conflicting data.
Agent Roles & Token Budget
Set/get agent roles (researcher, builder, reviewer, orchestrator) that control tool permissions, list connected agents, log token usage, and check remaining token budget.
Skills & Health
Load bundled or custom SKILL.md agent guides, and run health checks for DB integrity, missing tests, open issues, and broken files with optional auto-repair.
Monitoring & Access
Observe all activity via a live web dashboard with real-time updates and global search, access project data via
cortex://URIs, or use the comprehensive REST API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Cortex MCPget the current project state"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Cortex MCP
Persistent brain, memory, loop controller, and reminder engine for AI coding agents.
What is Cortex?
Cortex is a local MCP server that gives AI coding agents persistent memory, task management, knowledge graphs, and a live dashboard. It runs on your machine, stores everything in SQLite, and never sends data to the cloud.
Agent starts → cortex_get_state → knows everything → works → cortex_save_snapshot → doneRelated MCP server: agent-recall
Features
31 MCP Tools
Core Loop — get_state, get_next_task, log_progress, check_reminders, save_snapshot
Project Setup — init (10-question onboarding), health check with auto-repair
Features & Files — track features, files, checkpoints, rollback
Tests & Issues — register tests, log bugs, resolve issues
Knowledge Base — dictionary, snippets, research, decisions, FTS5 search
Human Interaction — ask_human (pause for input), confirm_destructive (red modal)
V2 Advanced — token budget (180k), agent roles (4 levels), contradiction detection
Knowledge Graph — relationships between features, files, tests, issues
Live Dashboard
12 tabs — Overview, Pipeline, Features, FileTree, Tests, Progress, Issues, Library, Research, Dictionary, Graph, Settings
Pipeline tab — Start a goal, watch tasks execute live with progress bar, pause/resume/cancel
D3 Knowledge Graph — force-directed visualization with 27+ nodes, drag/zoom/pan
WebSocket Live Push — dashboard updates instantly when data changes
Ctrl+K Search — global search across all tables
shadcn/ui — modern React 19 + Tailwind CSS interface
MCP Resources (10 endpoints)
Read project data without tool calls via cortex:// URIs:
cortex://project, cortex://features, cortex://files, cortex://tests, cortex://issues, cortex://dictionary, cortex://progress, cortex://todos, cortex://relationships, cortex://snapshots
MCP Prompts (5 templates)
Pre-built session workflows: start-session, debug-issue, review-code, init-project, end-session
V2.4 Modules — Autonomous Pipeline
Planner — natural language goal → ordered DAG of tasks with dependency resolution
Executor — auto-executes tasks (agent/command/test/verify), retries failures up to 3×
Loop Controller — pause/resume/cancel with WebSocket live push to dashboard
Auto-Heal — detects broken files (restores from checkpoint), resets failed tests
V2.1 Modules
Audit Trail — structured logging for every tool call
Episodic Memory — timestamped events with importance scoring
Context Compilation — full project state in 2ms
Quick Start
Option 1: npx (Recommended)
Add to your opencode.json:
{
"mcp": {
"cortex": {
"type": "local",
"command": ["npx", "-y", "@neuralnexustech/cortex-mcp@latest", "start", "--project", "."],
"enabled": true,
"env": {
"CORTEX_PROJECT_PATH": "."
}
}
}
}Option 2: Local Install
npm install -g @neuralnexustech/cortex-mcp@latestThen add to opencode.json:
{
"mcp": {
"cortex": {
"type": "local",
"command": ["cortex", "start", "--project", "/path/to/your/project"],
"enabled": true,
"env": {
"CORTEX_PROJECT_PATH": "/path/to/your/project"
}
}
}
}Option 3: Clone & Run
git clone https://github.com/neuralnexustech/cortex-mcp.git
cd cortex-mcp
npm install
cd dashboard && npm install && npm run build && cd ..
node src/server.jsAutonomous Pipeline (V2.4)
Cortex Pipeline is a goal-driven autonomous execution engine. Give it a goal, and it plans, executes, tests, and heals itself — no step-by-step prompting required.
Goal → Planner → DAG Tasks → Executor → Test → Auto-Heal → Done
↕
pause / resume / cancel
(WebSocket live)How It Works
You type: "Build authentication system"
↓
Planner breaks goal into ordered DAG:
[1] Scaffold routes → [2] Create User model
→ [3] JWT middleware → [4] Login endpoint
→ [5] Register endpoint → [6] Password hashing
→ [7] Run tests → [8] Verify security
↓
Executor auto-runs each task:
✓ Scaffold routes (1.2s)
✓ Create User model (0.8s)
✗ JWT middleware → retry #1 → ✓ (2.1s)
✓ Login endpoint (0.5s)
...
↓
Auto-Heal detects broken files → restores from checkpoint
Auto-Heal resets failed tests → retries with new approach
↓
Done. Pipeline history saved. Dashboard updated via WebSocket.8 Pipeline MCP Tools
Tool | Purpose |
| Give a goal → DAG planned + executed |
| Check progress, task states, retry counts |
| Pause mid-execution |
| Resume from where it paused |
| Cancel remaining tasks |
| Preview task breakdown (dry run) |
| Fix broken files, reset failed tests |
| List all past pipeline runs |
Why This Is Different
Traditional AI Assistants | Cortex Pipeline |
Wait for your next prompt | Executes autonomously toward a goal |
You give step-by-step instructions | You give a goal, it plans the steps |
You babysit each action | Auto-retry on failure (up to 3×) |
No memory of past runs | Full pipeline history + checkpoints |
Single-threaded Q&A | Multi-task DAG with priority ordering |
You fix broken files | Auto-heal restores from checkpoints |
In short: Most AI tools are reactive — you drive. Cortex Pipeline is proactive — it drives itself, and you just set the destination.
Session Lifecycle
START
↓
cortex_get_state → project context (<200 tokens)
↓
cortex_get_next_task → highest-priority pending todo
↓
WORK → write code, create files
↓
cortex_tick_file → track each file created
↓
cortex_log_progress → log completed work
↓
cortex_check_reminders → handle warnings
↓
cortex_get_next_task → next todo (or "ALL TASKS COMPLETE")
↓
...repeat...
↓
cortex_save_snapshot → compress session to summary
↓
ENDTool Reference
Core Loop (5)
Tool | Purpose |
| Compressed project context |
| Highest-priority pending todo |
| Log completed work |
| 6 safety checks |
| Compress session summary |
Project Setup (3)
Tool | Purpose |
| Initialize project (10-question onboarding) |
| Switch between projects |
| DB integrity + auto-repair |
Features & Files (5)
Tool | Purpose |
| Register a feature |
| Update feature status |
| Track file creation (auto-checkpoints) |
| List all tracked files |
| Restore file from checkpoint |
Tests (2)
Tool | Purpose |
| Register a test |
| Mark test passed/failed |
Issues (2)
Tool | Purpose |
| Log a bug or blocker |
| Mark issue resolved with fix |
Knowledge Base (6)
Tool | Purpose |
| Document a file/feature |
| Retrieve full dictionary entry |
| Save reusable code snippet |
| Log library research notes |
| Record architectural decision |
| FTS5 + vector hybrid search |
Human Interaction (2)
Tool | Purpose |
| Pause, ask question, wait for answer |
| Red confirmation modal for dangerous ops |
V2 Advanced (5)
Tool | Purpose |
| Track token usage per action |
| Check remaining budget (180k default) |
| Set agent role |
| Get agent permissions |
| List all connected agents |
Knowledge Graph (3)
Tool | Purpose |
| Link entities |
| Find conflicting data |
| Resolve conflicts |
Skills (2)
Tool | Purpose |
| Load SKILL.md guide |
| List available skills |
Database
SQLite at .cortex/cortex.db with:
WAL mode — concurrent reads while writing
FTS5 — full-text search across all tables
15+ tables — project, features, files, tests, issues, dictionary, progress, relationships, etc.
Triggers — auto-sync FTS index on insert/update/delete
Dashboard
Live at http://localhost:3001 when the server runs.
Ctrl+K — Global search overlay
Graph tab — D3 force-directed knowledge graph
LIVE indicator — WebSocket connection status
12 tabs — Overview, Pipeline, Features, FileTree, Tests, Progress, Issues, Library, Research, Dictionary, Graph, Settings
REST API
Endpoint | Description |
| Health check |
| All project data |
| Knowledge graph (nodes + edges) |
| Search across tables |
| Audit trail entries |
| Episodic memory events |
| Compiled project state |
| WebSocket status |
| Start a pipeline from a goal |
| Get pipeline run status + tasks |
| List past pipeline runs |
| Pause active pipeline |
| Resume paused pipeline |
| Cancel active pipeline |
| Submit answer to pending question |
MCP Resources
Read project data without tool calls:
URI | Data |
| Project config, features, todos |
| All features with status |
| All tracked files |
| All tests |
| All issues |
| File documentation |
| Recent activity |
| Pending tasks |
| Knowledge graph edges |
| Session summaries |
Architecture
cortex-mcp/
├── bin/cortex.js # CLI entry point
├── src/
│ ├── server.js # MCP server (main entry)
│ ├── api/server.js # Express REST API + dashboard
│ ├── db/
│ │ ├── schema.js # Table definitions + FTS5
│ │ ├── init.js # DB connection (WAL mode)
│ │ ├── queries.js # Read/write functions
│ │ └── cortex_v2.sql # V2 migration
│ ├── pipeline/ # V2.4 Autonomous pipeline
│ │ ├── planner.js # Goal → DAG task breakdown
│ │ ├── executor.js # Auto-execute + retry
│ │ ├── loop.js # Pause/resume/cancel controller
│ │ └── index.js # 8 MCP tool registration
│ ├── tools/ # 31 MCP tools
│ │ ├── state.js # cortex_get_state
│ │ ├── tasks.js # cortex_get_next_task
│ │ ├── search.js # FTS5 + hybrid search
│ │ ├── contradictions.js # Contradiction detection
│ │ ├── tokens.js # Token budget
│ │ ├── roles.js # Agent roles
│ │ ├── relationships.js # Knowledge graph
│ │ ├── health.js # Auto-repair
│ │ └── ...
│ ├── embeddings/ # ONNX vector engine
│ ├── websocket/server.js # WebSocket live push
│ ├── audit/index.js # Audit trail
│ ├── memory/
│ │ ├── episodic.js # Episodic memory
│ │ └── compiler.js # Context compiler
│ ├── resources/project.js # MCP Resources
│ └── prompts/index.js # MCP Prompts
├── dashboard/ # React 19 + shadcn/ui
│ ├── src/
│ │ ├── App.jsx # Main app + routing
│ │ ├── components/
│ │ │ ├── tabs/ # 11 tab components
│ │ │ ├── ui/ # shadcn/ui components
│ │ │ ├── Graph.jsx # D3 knowledge graph
│ │ │ └── GlobalSearch.jsx
│ │ └── styles/globals.css # Tailwind + shadcn vars
│ └── dist/ # Built dashboard
├── skills/ # Agent skill files
├── docs/ # Documentation
└── AGENTS.md # Agent guideEnvironment Variables
Variable | Default | Description |
|
| Project root directory |
|
| REST API port |
|
| Dashboard port |
|
| Enable cloud sync |
Requirements
Node.js ≥ 18.0.0
Works on Windows, macOS, Linux
Links
Platform | URL |
Website | |
GitHub | |
npm |
License
MIT © neuralnexustech
Available Tools
42 toolscortex_add_decisionB
Log an architectural decision
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Decision title | |
| reason | Yes | Reason for decision | |
| alternatives | No | Alternatives considered |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits (e.g., persistence, side effects, or required permissions). The vague verb 'log' leaves the agent uninformed about consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence), with no wasted words. While it lacks depth, it is efficient for a minimal viable description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and 3 parameters, the description fails to explain what 'log' entails (e.g., where the decision is stored, how it relates to other tools like cortex_check_contradictions). It is too sparse for adequate agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds no extra meaning beyond the schema, meriting a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Log an architectural decision' clearly specifies a verb ('log') and a resource ('architectural decision'), distinguishing it from sibling tools like cortex_add_feature, but it does not further differentiate usage context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; usage is implied by the resource name 'architectural decision', but no when-not or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_add_featureC
Add a new feature
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Feature name | |
| description | No | Feature description | |
| priority | No | Priority (high, medium, low) |
TDQS
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 says 'Add a new feature', implying creation but not mentioning side effects, permissions, idempotency, or constraints like duplicate handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise (one short phrase), but it is under-specified and lacks valuable detail. It does not earn its place as it fails to inform the agent beyond the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, no annotations, and three parameters, the description is incomplete. It does not cover return values, error conditions, or when to use this tool in the broader workflow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all three parameters. The description adds no additional meaning beyond what the schema already provides, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Add a new feature', which is a clear verb+resource pair. However, it does not differentiate from other 'cortex_add_*' siblings like cortex_add_decision or cortex_add_snippet, so it lacks sibling distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., cortex_update_feature). No context or exclusions provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_add_relationshipC
Create a relationship between two entities (feature, file, test, issue, decision).
| Name | Required | Description | Default |
|---|---|---|---|
| source_type | Yes | Source entity type: feature, file, test, issue, decision | |
| source_id | Yes | Source entity ID | |
| target_type | Yes | Target entity type: feature, file, test, issue, decision | |
| target_id | Yes | Target entity ID | |
| relationship | Yes | Relationship type: creates, tests, affects, blocks, resolves |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Only states action without disclosing side effects, permissions, idempotency, or error behavior (e.g., duplicate relationships). Minimal transparency for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, 12 words, including verb, resource, and allowed types. No fluff, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutating tool with 5 required parameters and no output schema, the description is too brief. Missing expected return value, error states, and behavior on failure (e.g., missing source/target). More context needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%; all parameters have descriptions. The tool description adds no additional parameter meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states 'create a relationship between two entities' and lists allowed entity types. However, it does not explicitly distinguish from sibling tools like cortex_add_decision or cortex_add_feature, which add individual entities rather than relationships.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Lacks context such as prerequisites, implicit effects, or whether the relationship should be created before or after adding entities.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_add_researchC
Save library research notes
| Name | Required | Description | Default |
|---|---|---|---|
| library_name | No | Library name | |
| library | No | Library name (alias) | |
| version | No | Version | |
| notes | Yes | Research notes | |
| source_url | No | Source URL | |
| url | No | Source URL (alias) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It fails to mention whether notes are appended or overwritten, required permissions, or side effects. The word 'save' implies writing but lacks necessary detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at four words, front-loading the action. While efficient, it could include minimal extra context (e.g., 'using required notes param') without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 6 parameters, 1 required, and no output schema, the description is insufficient. It doesn't explain the operation's effect, prerequisites, or what the return value indicates, leaving critical gaps for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have descriptions in the schema, so baseline is 3. The description adds no extra meaning beyond the schema, such as clarifying the aliases (library vs library_name, url vs source_url) or the usage of optional parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Save library research notes' clearly indicates the action (save) and the resource (library research notes), distinguishing it from siblings like cortex_add_decision or cortex_add_snippet by the specific object type. However, it could be more explicit about what 'research notes' entails.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cortex_add_snippet or cortex_log_issue. The agent must infer from the name alone, which is insufficient for correct selection among many add-tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_add_snippetC
Save a code snippet to library
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Snippet title | |
| code | Yes | Code content | |
| language | No | Programming language | |
| tags | No | Tags (comma-separated) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It implies a write operation but does not disclose any side effects, idempotency, or storage behavior. Minimal behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words. However, it is overly terse and omits important context. Conciseness is good but at the expense of completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema or annotations, the description is insufficient. It does not explain the library context, what happens after saving, or any return behavior, leaving significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters with basic info (e.g., 'Snippet title', 'Code content'). The description adds no additional context about parameter usage or constraints beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (Save), resource (code snippet), and destination (library). It is specific and distinct from sibling tools like cortex_add_decision or cortex_add_feature, though it could be more precise about what 'library' refers to.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. With many sibling 'cortex_add_*' tools, explicit conditions or comparisons would help an agent choose correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_add_testB
Add a test linked to a feature
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Test name | |
| feature_id | No | Linked feature ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It only says 'Add', implying creation, but doesn't mention potential side effects (e.g., does it create a test record that affects other tools?), required permissions, or what happens if the feature_id is invalid or omitted. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the core action. It is front-loaded and free of fluff. However, the brevity comes at the cost of missing contextual details that could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the number of sibling tools and the optional feature_id, the description lacks completeness. It doesn't explain what 'linked to a feature' means in practice, whether the feature must exist, or the behavior when feature_id is omitted. The agent may misuse the tool without broader context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for both parameters (100% coverage), so the description adds no additional meaning beyond the schema. The baseline is 3; no extra parameter context is given, but this is acceptable given schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add a test') and the relationship ('linked to a feature'). It distinguishes from sibling tools like cortex_add_feature or cortex_add_decision by specifying 'test' as the resource, making 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.
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 (e.g., cortex_update_test for existing tests), nor does it mention prerequisites (e.g., feature must exist) or when not to use it. The agent has no context to decide between adding a test vs. adding a decision or feature.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_ask_humanA
Force pause, queue a question for human, block until answered via POST /api/human-answer
| Name | Required | Description | Default |
|---|---|---|---|
| question | Yes | Question to ask the human | |
| agent | No | Agent asking the question |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses blocking behavior and the HTTP endpoint. With no annotations, this provides good transparency about the tool's impact, though could mention idempotency or error handling.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence conveying all essential information without redundancy. Highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple tool with 2 parameters and no output schema. Describes core behavior, but lacks details on return value, timeouts, or cancellation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds no extra meaning beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool forces a pause, queues a question for a human, and blocks until answered. Effectively distinguishes from sibling tools which add data or manage state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when human input is needed, but does not explicitly state when to use or not use it, nor mention alternatives. No exclusion criteria provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_auto_healA
Auto-detect and fix broken files, failed tests, and other issues. Returns list of healed items.
| Name | Required | Description | Default |
|---|---|---|---|
| auto_fix | No | Apply fixes automatically (default: true) |
TDQS
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 states the tool auto-detects and fixes issues, which implies non-destructive changes, but does not elaborate on side effects, reversibility, or risk. Adequate but not detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. Every word serves a purpose: identifies scope (broken files, failed tests), action (auto-detect and fix), and output (list of healed items).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for the tool's simplicity: one optional boolean parameter, no output schema needed. It covers what the tool does and what it returns. Minor gap: could mention what happens if auto_fix is false.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the 'auto_fix' parameter with default. The tool 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool auto-detects and fixes broken files, failed tests, and other issues, and returns a list of healed items. It distinguishes from sibling tools like cortex_health (which checks without fixing) and cortex_resolve_issue (which may require manual action).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description does not mention when not to use it or provide context for choosing it over similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_check_contradictionsA
Find conflicting data in the dictionary. If key provided, checks only that entry. If no key, scans recent entries.
| Name | Required | Description | Default |
|---|---|---|---|
| key | No | Specific dictionary key to check (optional) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It does not explain what 'conflicting' means, the format of results, or any side effects. For a check tool, it provides minimal behavioral disclosure beyond the basic operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the primary purpose. No wasted words or redundant information. The structure is efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema, no annotations), the description is minimally adequate. However, it omits details about what constitutes a conflict and the output format, which could be necessary for correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes the 'key' parameter. The description adds meaningful semantics by explaining the two modes: with key (check that entry) and without key (scan recent entries). This goes beyond the schema definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool finds conflicting data in the dictionary, with two distinct modes based on key presence. It distinguishes itself from sibling 'cortex_resolve_contradiction' by focusing on checking rather than resolving.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use the tool (to find conflicting data) and how to invoke different behaviors. However, it does not explicitly state when not to use it or mention alternatives like 'cortex_resolve_contradiction'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_check_remindersB
Run all 6 reminder checks — returns list of warnings/blocks based on real DB state
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies a read-only operation by stating 'based on real DB state' and returning a list, but it does not explicitly state that the tool has no side effects or whether it is destructive. Since no annotations are provided, the description should more clearly disclose safety and behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no wasted words. It front-loades the action and output. However, it could benefit from a slightly more structured breakdown of the six checks.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (no params, no output schema, no annotations), the description is minimal. It lacks details on what the six reminder checks are, the format of the returned list, any potential side effects, or when to invoke the tool. More context is needed for complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and schema coverage is 100% (empty schema). According to guidelines, a baseline of 4 is appropriate as no additional parameter information is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool runs all 6 reminder checks and returns warnings/blocks. The verb 'Run' is specific and the resource 'reminder checks' is defined. However, it does not differentiate from sibling tool 'cortex_check_contradictions' which also performs checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'cortex_check_contradictions' or other check tools. 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.
cortex_confirm_destructiveA
Block dangerous actions until human confirms. Shows red modal in dashboard. Falls back to terminal if no dashboard.
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | Description of the destructive action (e.g., "delete file src/auth.py") | |
| target | No | What will be affected (e.g., file path, DB table, feature name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses key behavioral traits: it blocks actions, shows a red modal in dashboard, and falls back to terminal. This provides sufficient transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with purpose, and contains no unnecessary words. It efficiently conveys all essential information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (2 parameters, no output schema, no annotations), the description is complete. It explains the blocking behavior, fallback, and UI feedback. No gaps are apparent for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (both parameters have descriptions). The description adds no additional meaning beyond what the schema already provides. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: it blocks dangerous actions until human confirmation. It uses a specific verb ('block') and resource ('destructive actions'). It distinguishes itself from sibling tools like cortex_ask_human by specifying it's for destructive actions and showing a red modal.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (before destructive actions) but does not explicitly state when not to use it or provide alternatives. It mentions a fallback behavior but lacks explicit usage guidance. Score 3 because it's adequate but could be improved with more directed instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_get_detailC
Get full dictionary entry for a file or feature
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Dictionary key (file or feature name) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It implies a read operation but does not explicitly state non-destructiveness, authentication needs, rate limits, or any side effects, which is insufficient for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single front-loaded sentence. While efficient, it could include more context without becoming verbose, such as clarifying the structure of a dictionary entry.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should hint at return values. 'Full dictionary entry' is vague; an agent cannot know what fields are returned. For a simple tool, more detail is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 reiterates 'file or feature name' from the schema's 'Dictionary key' description, adding no additional semantic value beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Get' and resource 'full dictionary entry', clearly indicating retrieval. However, it does not differentiate from sibling tools like cortex_search or cortex_write_dictionary, which may also involve dictionary access.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description lacks context about prerequisites, conditions, or when not to use it, leaving the agent to infer 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.
cortex_get_next_taskA
Get next pending todo - agent always calls this, never decides own next step
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral disclosure burden. While 'Get' suggests a read-only operation, it does not explicitly state that there are no side effects, auth requirements, or rate limits. The description is minimal and lacks detail on what happens if no pending task exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is highly concise and front-loaded. Every word serves a purpose: it states the action, the resource, and the behavioral guideline. No unnecessary information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema), the description is mostly complete. It clearly states the purpose and usage context. However, it lacks information about the return value format or behavior when no pending tasks exist, which would enhance completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema coverage is 100%. According to the rubric, 0 parameters yields a baseline of 4, and the description does not need to add parameter information. No further clarification is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves the next pending todo, with a specific verb and resource. It distinguishes its role from sibling tools by emphasizing that the agent always calls this tool and never decides its own next step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'agent always calls this, never decides own next step', which provides clear guidance on when to use this tool. However, it does not mention alternatives or explicitly state when not to use it, though the context implies it is the sole decider.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_get_roleB
Get the role and permissions for an agent.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | Yes | Agent name |
TDQS
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 the action without disclosing behavioral traits—no info on read-only nature, authentication needs, error conditions, or return format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single sentence. It is well-structured and front-loaded, but its brevity may omit necessary details. Still, it avoids waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 1 required parameter and no output schema. The description does not explain what the returned role and permissions look like, nor does it provide any example or additional context to aid agents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the input schema already describes the single parameter 'agent_name' as 'Agent name'. The description adds no additional meaning or constraints beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: 'Get the role and permissions for an agent.' It uses a specific verb ('Get') and resource ('role and permissions'), and the tool name matches. It distinguishes from sibling tools like cortex_set_role which does the opposite.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cortex_get_detail or cortex_get_state. It lacks context on prerequisites, typical use cases, 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.
cortex_get_skillA
Get the full content of a Cortex skill file. Call this at the start of any session to load the complete agent guide. Works with Claude Code, Gemini, Codex, Cursor, OpenCode, and any MCP client. Defaults to the main "cortex" skill (SKILL.md) if no name is given.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Skill name to retrieve (e.g., "cortex"). Defaults to the main Cortex agent guide. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It describes a read-only operation ('Get') and mentions defaults, but does not detail error handling (e.g., if skill not found) or return format. Adequate for a simple read tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, usage guidance, and compatibility/default. No redundant information, efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (one optional param, no output schema), description covers purpose, when to use, and default. Could mention return format, but overall adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with description of 'name' parameter. Description adds that it defaults to 'cortex' skill (SKILL.md), providing slight extra context beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Get the full content of a Cortex skill file', specifying verb and resource. Distinguishes from sibling 'cortex_list_skills' which only lists skill names. Also mentions default behavior and client compatibility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states 'Call this at the start of any session to load the complete agent guide', providing clear when-to-use guidance. Does not explicitly mention when not to use or alternatives, but context with siblings implies it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_get_stateA
Get compressed project state (under 200 tokens) — call before every action. Includes token budget warning if >50% used.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No | Session ID for token budget check |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that the state is compressed (<200 tokens) and that it includes a token budget warning if >50% used. Though it doesn't declare read-only, the verb 'Get' implies no modification, and the behavioral detail is adequate for a simple getter.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The first sentence front-loads the primary action and usage advice, and the second adds a key behavioral detail. Highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (one param, no output schema), the description covers the tool's purpose, size constraint, usage timing, and a behavioral warning. It doesn't detail the return format or state fields, but for a lightweight state getter this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter ('session_id') with schema description 'Session ID for token budget check'. The tool description reiterates this purpose, adding no new semantic value. With 100% schema coverage, baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets a compressed project state under 200 tokens, and advises to call before every action. It distinguishes itself from siblings like cortex_get_detail and cortex_get_token_budget by emphasizing the compressed nature and the token budget warning.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly instructs to call before every action, providing clear context for when to use. Does not mention when not to use or alternatives, but the directive is strong and useful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_get_token_budgetB
Get token budget status for the current session.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID | |
| budget | No | Max token budget (default: 180000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description implies a read-only operation but does not disclose what 'status' includes (e.g., current usage, limit). It is safe but vague.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single clear sentence with no unnecessary words, perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description does not explain return value or elaborate on 'status'. For a simple status tool it is adequate but could be more complete, especially given siblings like cortex_log_tokens.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds no extra meaning beyond the schema's parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'token budget status for the current session', distinguishing it from sibling tools like cortex_log_tokens which logs token usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. No mention of related tools like cortex_log_tokens, no when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_healthA
Check DB integrity, missing tests, open issues, broken files. Auto-repairs common problems.
| Name | Required | Description | Default |
|---|---|---|---|
| auto_repair | No | Auto-repair problems (default: true) |
TDQS
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 mentions auto-repair is possible but does not clarify if the operation is destructive, what changes occur, or what the return format is. This is a significant gap for a tool that can modify state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently lists the checks and mentions auto-repair. It is front-loaded and contains no superfluous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has only one optional parameter and no output schema, the description is somewhat complete but could provide more details on what constitutes 'common problems' and what auto-repair entails. It is adequate but not fully informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single boolean parameter 'auto_repair', which is also mentioned in the description. The description adds no extra meaning beyond the schema, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks DB integrity, missing tests, open issues, and broken files, and can auto-repair common problems. This distinguishes it from sibling tools that focus on adding features, getting state, or other specific actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for health checks and repairs but does not provide explicit guidance on when to use this tool versus alternatives like other cortex tools for specific checks or fixes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_initA
Initialize Cortex project. You MUST ask the human ALL 10 onboarding questions FIRST using cortex_ask_human. Do NOT call this tool until you have all answers. The 10 mandatory questions are: 1) Project name, 2) Goal, 3) Tech stack, 4) UI style, 5) Preferred libs, 6) Forbidden libs, 7) File structure, 8) Existing codebase, 9) Core features, 10) Complexity level.
| Name | Required | Description | Default |
|---|---|---|---|
| project_name | Yes | Project name (from human answer to question 1) | |
| goal | Yes | Project goal description (from human answer to question 2) | |
| stack | Yes | Tech stack (from human answer to question 3) | |
| ui_style | No | UI style (from human answer to question 4) | |
| preferred_libs | No | Preferred libraries (from human answer to question 5) | |
| forbidden_libs | No | Forbidden libs (from human answer to question 6) | |
| file_structure | No | Expected file/folder structure (from human answer to question 7) | |
| existing_codebase | No | Existing codebase path or "no" (from human answer to question 8) | |
| core_features | Yes | Core features, comma-separated (from human answer to question 9) | |
| complexity | No | Complexity level (from human answer to question 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Discloses initialization and required inputs, but does not explain side effects (e.g., project creation, state changes) or error scenarios.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: first states purpose, second provides critical usage instruction and list of questions. Extremely concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers core workflow (must ask questions first) and lists all parameters through the 10 questions. Lacks details on return value, error handling, and post-initialization steps, but sufficient given no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, each parameter already explains its source (human answer). Description lists the 10 questions but 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.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb+resource: 'Initialize Cortex project'. Distinguishes from siblings like cortex_set_active_project and cortex_add_* tools by specifying it is the initialization step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states prerequisite: must ask 10 onboarding questions using cortex_ask_human first and not call this tool until all answers are obtained. Lists all 10 questions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_list_agentsA
List all connected agents and their roles.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full burden. It discloses it lists agents and their roles but doesn't mention read-only nature, safety, or authorization requirements. Acceptable for a simple list tool but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with clear verb and object, no unnecessary words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with no output schema, the description fully and adequately describes its purpose. No additional context needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, and schema coverage is 100%. The description adds no parameter details, but with zero parameters, this is appropriate. Baseline of 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and resource 'connected agents', specifying that it also returns roles. This distinguishes it from sibling tools like cortex_list_skills.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance is provided, but the use case (listing agents) is straightforward and implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_list_skillsA
List all available Cortex skills — bundled with the package (always available) plus any user-added skills. Returns name, source ("bundled" or "user"), and description for each.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description lists return fields but does not explicitly state that the operation is read-only, non-destructive, or disclose any rate limits or permissions. Listing is implicitly safe, but the burden is not fully met.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, front-loaded sentence with no wasted words. Perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless list tool with no output schema, the description adequately covers purpose and return format. Missing details like pagination are not critical given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Zero parameters in schema with 100% coverage, baseline 4. No parameter documentation needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists all available Cortex skills, specifying return fields (name, source, description). It distinguishes from siblings like cortex_get_skill by implying full list vs. individual, but doesn't explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context about bundled vs. user-added skills, but no explicit when-to-use or when-not-to-use guidance relative to alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_log_issueC
Log a bug or blocker
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | Issue title | |
| description | No | Issue description | |
| file_path | No | Related file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits like side effects, permissions needed, or how issues are stored. The description adds no 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise at 5 words. However, it is too minimal and could benefit from slightly more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context about return values, side effects, or how the issue is logged. It is insufficient for a tool with 3 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description does not add extra meaning or context for how title, description, or file_path are used.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Log' and resource 'bug or blocker'. It is specific enough to indicate the tool's purpose, but lacks differentiation from siblings like cortex_log_progress which also logs but for progress.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as cortex_resolve_issue or cortex_log_progress. The description does not mention prerequisites or context for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_log_progressC
Log a completed step
| Name | Required | Description | Default |
|---|---|---|---|
| task | Yes | Task completed | |
| file_path | No | File affected | |
| file | No | File affected (alias) | |
| notes | No | Additional notes | |
| agent | No | Agent name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavior. It only states the action without any details about side effects, logging destination, or whether it affects state. The description is insufficient for behavioral understanding.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. It avoids unnecessary words. However, it could benefit from a brief structure, but for a simple tool it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (logging a step), the description is too minimal. It omits any context about the log's purpose, relationship to other tools, or expected output. With no output schema, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already documented. The description adds no additional meaning beyond the schema, such as parameter interactions or formatting. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Log a completed step' clearly indicates the tool's action (log) and object (completed step). It distinguishes from sibling tools like cortex_log_issue and cortex_log_tokens by focusing on progress logging, though 'step' could be more defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 siblings like cortex_log_issue or when not to use it. The context signals and sibling list provide some differentiation, but the description itself offers no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_log_tokensA
Log token usage for the current action. Call after every tool call.
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | Yes | Session ID | |
| input_tokens | Yes | Input tokens used | |
| output_tokens | Yes | Output tokens generated |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says to log tokens without disclosing side effects, persistence, or error handling. It does not reveal if logging is destructive or if there are any limits, leaving a transparency gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, front-loading the purpose and usage. Every word earns its place with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple logging tool with no output schema and no annotations, the description is minimal but covers the essential call timing. However, it lacks details on token validity, session handling, and behavioral expectations, leaving some gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with basic descriptions for each parameter. The tool description adds no additional meaning beyond what the schema already provides, so the baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool logs token usage for the current action, distinguishing it from siblings like cortex_get_token_budget which queries budget rather than logging.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call after every tool call, giving clear context. However, it does not mention when not to use it or alternatives, missing some guidance expected for a full 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_cancelA
Cancel a running or paused pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_id | No | Pipeline ID (defaults to active) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
States action and applicable states but does not disclose side effects (e.g., irreversibility), required permissions, or confirmation behavior. No annotations to supplement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 7 words, front-loaded, concise, and waste-free.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple cancellation tool with one optional parameter and no output schema, but lacks post-cancellation state context and fails to explain default pipeline selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meeting baseline 3. The tool description adds no additional meaning beyond the schema's parameter description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'Cancel' and resource 'pipeline' with state constraints ('running or paused'), clearly distinguishing from siblings like pause or resume.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for canceling running/paused pipelines but lacks explicit when-not-to-use or comparison with sibling tools like cortex_pipeline_pause or cortex_pipeline_resume.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_historyB
View recent pipeline runs and their results.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max runs to return (default: 10) |
TDQS
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 states 'View' (implying read-only) but lacks details on ordering (e.g., most recent first), what 'results' include, or any side effects. With no annotations, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded with the key action and resource. It is efficient but could benefit from slight enrichment without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one parameter and no output schema, the description is adequate but minimal. It misses details like default ordering, what constitutes 'recent', and what shape the results take. Given sibling tools include other pipeline operations, context is partially provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description does not add meaning beyond the schema's existing description for the 'limit' parameter ('Max runs to return (default: 10)'). Baseline 3 is appropriate as the description adds no extra value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'View recent pipeline runs and their results.' It uses a specific verb ('view') and resource ('pipeline runs and their results'), which distinguishes it from sibling tools like cortex_pipeline_status (current status) and cortex_pipeline_cancel (cancellation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. The description only states what it does, without mentioning when it is appropriate (e.g., for historical review versus current status). This leaves the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_pauseC
Pause the currently running pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_id | No | Pipeline ID (defaults to active) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only says 'Pause the currently running pipeline' without explaining behavioral details such as what happens to running tasks, whether it requires the pipeline to be active, or if multiple pauses are allowed. No annotations are provided to compensate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely brief, which is appropriate for a simple action, but it omits necessary context that could be added without sacrificing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, and the presence of sibling pipeline tools, the description lacks completeness. It does not specify prerequisites, effects, or how it differs from related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional parameter 'pipeline_id' is described in the schema with a default behavior. The description does not add further meaning beyond the schema, meeting the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Pause' and the resource 'currently running pipeline', leaving no ambiguity about the tool's primary function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 cortex_pipeline_cancel or cortex_pipeline_resume. The description does not mention scenarios or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_planA
Preview what tasks a pipeline would create for a goal without starting it.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | The goal to plan for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description indicates a non-destructive preview. But it omits details on side effects (likely none), permissions, or recurrence behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero wasted words, front-loads the primary action clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema and description fails to explain what the preview returns (e.g., list of tasks). Lacks completeness for a preview tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and description reinforces the 'goal' parameter. However, description adds no extra meaning beyond the schema's field description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'preview' and resource 'tasks a pipeline would create for a goal', clearly distinguishing from siblings like cortex_pipeline_start (which starts) and cortex_pipeline_status (which shows status).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
States 'without starting it', implying use for planning before execution. While no explicit when-not or alternatives, the context of sibling tools makes usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_resumeB
Resume a paused pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_id | No | Pipeline ID (defaults to active) |
TDQS
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 'Resume a paused pipeline,' without disclosing side effects (e.g., state change, impact on running tasks, or error handling if pipeline is not paused). Insufficient behavioral context for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, terse sentence with no extraneous words. It is front-loaded and efficient, appropriate for a simple tool with one parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given low complexity (1 optional parameter, no output schema), the description is minimally complete. However, it lacks details on behavior (e.g., what if pipeline is already running or not paused) and return value, making it slightly under-specified for safe autonomous invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers the single parameter 'pipeline_id' with default behavior. The description adds no additional meaning beyond what the schema provides, so it adds no value. Parameter semantics are adequate but not enhanced.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Resume' and the resource 'paused pipeline', making the tool's purpose unambiguous. It distinguishes from sibling tools like 'pause' and 'cancel' by specifying the action on a paused state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., 'cortex_pipeline_start' for starting a new pipeline, or 'cortex_pipeline_pause' for pausing). The description does not mention prerequisites (e.g., pipeline must be paused) 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.
cortex_pipeline_startA
Start an autonomous pipeline from a goal. Breaks goal into tasks, executes them, auto-retries failures.
| Name | Required | Description | Default |
|---|---|---|---|
| goal | Yes | The goal to achieve | |
| max_retries | No | Max retries per task (default: 3) | |
| pause_on_human | No | Pause when human input needed (default: true) | |
| session_id | No | Session ID | |
| agent | No | Agent name |
TDQS
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 key behaviors: breaking goals into tasks, autonomous execution, and auto-retry on failures. This adds value beyond the input schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences that are front-loaded with the primary action. Every word is necessary and there is no redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description lacks details on return values or how to monitor the pipeline, and does not explain the effect of optional parameters like max_retries or pause_on_human. Given no output schema, more context would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 extra meaning beyond the schema for individual parameters; it only mentions 'goal' generically.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts an autonomous pipeline from a goal, breaking it into tasks with auto-retry. The verb 'start' and resource 'pipeline' are specific, and it distinguishes from sibling tools like cortex_pipeline_plan or cortex_pipeline_pause.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as cortex_pipeline_plan. The description implies use for starting a pipeline but does not provide exclusions or comparative context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_pipeline_statusB
Get the status of a running or completed pipeline.
| Name | Required | Description | Default |
|---|---|---|---|
| pipeline_id | No | Pipeline ID (defaults to active) |
TDQS
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 only states 'Get the status' without disclosing what the status entails (e.g., progress, errors, timestamps) or whether the operation is read-only. This is insufficient for an unannotated tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence. It is concise but could include additional useful information without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one optional parameter, no output schema, low complexity), the description provides the core purpose but omits return value details, error conditions, or how the status is represented. It is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (the single parameter has a description). The tool description adds context about 'running or completed' statuses, which is not in the schema, but does not elaborate on the default behavior or the meaning of 'active' mentioned in the schema description. Thus, it adds marginal value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
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 'status' of a pipeline, clearly differentiating from sibling tools like cortex_pipeline_cancel or cortex_pipeline_history. It specifies the scope ('running or completed'), which adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as cortex_pipeline_history (which likely lists statuses of multiple pipelines). No explicit when-to-use or when-not-to-use information is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_resolve_contradictionB
Resolve a contradiction by choosing which version to keep.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Contradiction ID | |
| keep_version | Yes | Which version to keep: old, new, or manual | |
| corrected_value | No | If keep_version is manual, provide the corrected value |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose behavioral traits such as whether the resolution is permanent, side effects, permission requirements, or what happens to the discarded version. With no annotations, this lack of transparency is significant 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that is front-loaded with the key action and resource. Every word earns its place, with no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 params, no output schema), the description is too minimal. It does not explain the workflow (e.g., needing a contradiction ID from 'cortex_check_contradictions'), expected output, or post-resolution behavior. The agent is left without sufficient guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the description does not need to add much. However, it adds no extra meaning beyond the schema for parameters like 'keep_version' options or 'corrected_value'. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Resolve') and the resource ('contradiction'), along with the method ('choosing which version to keep'). It distinguishes from sibling tools like 'cortex_check_contradictions' and 'cortex_resolve_issue'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 like 'cortex_check_contradictions' for detection or 'cortex_ask_human' for ambiguity. An agent lacks context for appropriate invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_resolve_issueB
Mark issue resolved with fix description
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Issue ID | |
| fix | Yes | Fix description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It mentions 'mark resolved' but does not disclose side effects, permissions, reversibility, or state changes, leaving significant behavioral uncertainty.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single efficient sentence with no wasted words, though it could be expanded slightly for clarity without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description is too minimal. It lacks context on return behavior, side effects, or prerequisites, making it incomplete for a mutation tool with two required parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 slight context with 'fix description' aligning with the 'fix' parameter, but no deeper semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('Mark issue resolved') and the resource ('issue'), with the required 'fix description', clearly distinguishing it from sibling tools like cortex_log_issue.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when an issue is fixed but provides no explicit guidance on when to use versus alternatives (e.g., cortex_log_issue) or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_rollbackB
Restore file to checkpoint
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | File path to restore | |
| checkpoint_id | No | Specific checkpoint ID (latest if not provided) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It only states 'restore' implying mutation, but fails to mention potential side effects (e.g., irreversible changes, need for permissions, or conflict resolution).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one phrase), which is efficient. However, it may be too brief to convey necessary context, slightly reducing its effectiveness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description should explain return values or success indicators. It does not. Also, it lacks context on behavior (e.g., whether the restore overwrites or creates a new version), making it incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds no extra meaning beyond the schema; the parameters are self-explanatory from their names and types.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Restore file to checkpoint' clearly states the verb (restore) and resource (file to checkpoint). It effectively distinguishes from sibling tools like 'cortex_save_snapshot' which performs the opposite operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, no prerequisites (e.g., existence of a checkpoint), and no exclusions. This leaves the agent uninformed about appropriate invocation context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_save_snapshotA
Compress current session to summary, save to DB and .cortex/snapshots/ on disk
| Name | Required | Description | Default |
|---|---|---|---|
| summary | Yes | Session summary in plain English | |
| session_id | No | Session ID (auto-generated if not provided) | |
| agent | No | Agent that created the snapshot |
TDQS
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 states the tool compresses and persists data to two locations, which is transparent for a save operation. However, it omits details such as whether existing snapshots are overwritten, permission needs, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that efficiently communicates the core action. Every word contributes meaning with no unnecessary content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema and 3 parameters, the description is minimally adequate. It covers the core functionality but does not address success/failure behavior, return values, or edge cases. Additional context would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with clear descriptions for all three parameters. The tool description adds minimal value beyond that, only hinting that 'summary' is the compressed content. Given high schema coverage, a score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses specific verbs ('compress' and 'save') and clearly identifies the resource ('current session'). It distinguishes the tool from siblings by indicating a unique action (saving a snapshot to DB and disk), with no other sibling tool performing a similar function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description fails to provide any guidance on when to use this tool versus alternatives. It does not mention context, prerequisites, or exclusions. The agent must infer usage solely from the tool's name and action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_searchA
Search across dictionary, issues, snippets, research, and progress. Supports keyword (FTS5), semantic (vector), and hybrid (RRF fusion) modes. Returns ranked results with source table, id, and matched snippet.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query | |
| mode | No | Search mode: keyword, semantic, or hybrid (default: hybrid) | |
| tables | No | Limit search to specific tables: dictionary, issues, snippets, research, progress |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the return format (ranked results with source table, id, matched snippet) and available modes. It does not mention rate limits or side effects, but as a read-only search, this is adequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste. Each sentence provides essential information: scope, modes, and return format. Efficient and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multi-table search, three modes), the description covers all key aspects. No output schema, but return format is described. Adequate for selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds value by explaining mode specifics (FTS5, vector, RRF fusion) beyond the schema descriptions, which only list options.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool searches across multiple entities (dictionary, issues, snippets, research, progress) and specifies supported modes (keyword, semantic, hybrid). It effectively distinguishes from sibling tools which are primarily CRUD operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies general search usage but does not explicitly provide when-to-use or when-not-to-use guidance. No alternatives are mentioned, but sibling tools are different enough that confusion is unlikely.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_set_active_projectA
Switch active project (loads different .cortex DB). Blocked when process was started with --project (locked to single project).
| Name | Required | Description | Default |
|---|---|---|---|
| project_path | Yes | Path to project directory |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description mentions loading a different .cortex DB and the blocking condition, but no annotations exist. It does not detail side effects like state resets, permissions required, or confirmation steps. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short, clear sentences. Every word is meaningful. The key information is front-loaded: purpose in first sentence, constraint in second.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple action with one parameter and no output schema, the description covers the main functionality and a key constraint. Could mention what happens after success (e.g., return status), but not essential.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'project_path' is described in the schema as 'Path to project directory'. The description does not add further semantic meaning beyond that, so baseline 3 is appropriate for 100% schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool switches the active project by loading a different .cortex DB. The verb 'Switch' and resource 'active project' are specific, and the description distinguishes this from other cortex tools by focusing on project context switching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly notes when the tool is blocked (process started with --project), providing a clear when-not-to-use condition. However, no explicit alternatives are given among the siblings, but the constraint is helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_set_roleA
Set the role for an agent. Roles control which tools the agent can call.
| Name | Required | Description | Default |
|---|---|---|---|
| agent_name | Yes | Agent name (e.g., claude, gemini, opencode) | |
| role | Yes | Role: researcher, builder, reviewer, or orchestrator |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full weight. It only states the basic action without disclosing side effects, permission requirements, or return information.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is exactly two sentences with no extraneous words, front-loading the core action and purpose efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 params, no output schema), so the minimal description is somewhat adequate. However, it lacks context on what happens after setting the role or any constraints on role values beyond the examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters well. The description does not add additional meaning beyond what the schema provides, leading to a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'Set the role for an agent' and explains the purpose of roles ('Roles control which tools the agent can call'), making it distinct from siblings like cortex_get_role.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It implies use for setting roles but does not explicitly state when to use versus alternatives (e.g., get_role) or provide prerequisites or exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_tick_fileA
Mark a file as created/done in file tree. Saves checkpoint if file exists on disk.
| Name | Required | Description | Default |
|---|---|---|---|
| file_path | Yes | File path (relative to project root) | |
| status | No | Status (done, in-progress, pending) | |
| feature_id | No | Linked feature ID | |
| test_id | No | Linked test ID | |
| agent | No | Agent name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions saving a checkpoint conditionally ('if file exists on disk'), but omits details like overwriting behavior, failure modes (e.g., file not found), permissions required, or side effects on the file tree. The transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the main action. Every word contributes meaning. No extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters (1 required) and no output schema, the description covers the core action but lacks details on return values, what 'checkpoint' entails, or behavior when parameters are omitted. It is adequate but leaves gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the input schema fully describes the parameters. The description does not add new meaning beyond what the schema provides. For example, it doesn't explain how feature_id or test_id are used. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Mark a file as created/done' and the resource 'file tree', making the tool's purpose explicit. It also mentions saving a checkpoint, which adds specificity. Among sibling tools like cortex_log_progress or cortex_add_feature, this tool's file-marking function is distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 is provided. However, the purpose is clear enough that an agent can infer usage: when needing to mark a file's status in the file tree. Lacks when-not-to-use or alternative tool references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_update_featureC
Update feature status
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Feature ID | |
| status | Yes | New status (pending, in-progress, done, blocked) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose any behavioral traits such as side effects, permissions required, error handling, or what happens if the feature doesn't exist. For a mutation tool, this is insufficient transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and front-loaded. However, it is slightly under-specified; more detail would improve utility without significant verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and low complexity, the description should explain return behavior or success indicators. It also misses context about when to use this tool over siblings like cortex_update_test. The description feels incomplete for a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (id, status). The description adds no additional meaning beyond the schema, meeting the baseline but not improving understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Update feature status' clearly states the action (update) and the resource (feature) with specific scope (status). It is distinct from sibling tools like cortex_add_feature which adds a feature, but could be more precise by specifying 'status' explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 lacks context about prerequisites, conditions, or exclusions, which is a significant gap given the large number of sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_update_testC
Pass or fail a test
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Test ID | |
| status | Yes | Status (passed, failed) | |
| error_output | No | Error output if failed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states the basic action without explaining side effects, permissions, or implications of updating a test's status (e.g., irreversible? requires confirmation?). The optional 'error_output' parameter's role is not clarified for pass vs fail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (4 words) and front-loaded. However, it sacrifices necessary detail for brevity; a slightly longer description would improve clarity without becoming overly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given complexity (3 parameters, no output schema, no annotations), the description is incomplete. It fails to explain return values, error handling, or how the tool integrates with other cortex tools. The agent lacks sufficient context to use it reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds 'Pass or fail' which aligns with the 'status' parameter but adds no new meaning beyond the schema's description of each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Pass or fail a test' clearly identifies the verb (pass/fail) and resource (test), distinguishing it from sibling 'cortex_add_test' which creates. However, it could be more specific about the update nature implied by the tool name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'cortex_add_test' or 'cortex_update_feature'. Prerequisites (e.g., test must exist) are not mentioned, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cortex_write_dictionaryC
Write or update a dictionary entry
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Dictionary key (file or feature name) | |
| short_summary | No | Short summary | |
| short | No | Short summary (alias) | |
| full_description | No | Full description | |
| full | No | Full description (alias) | |
| status | No | Status (active, broken, archived) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must carry behavioral disclosure. Only states 'Write or update' without detailing overwrite behavior, merging, or side effects. Lacks clarity on whether it creates new or updates existing entries.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single short sentence is concise but too terse; lacks structure and front-loading of key information like required parameters or effect.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple write tool with full schema coverage, description is minimally adequate but does not explain return values, error scenarios, or idempotency. Could be more informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters have descriptions. Description adds no additional meaning beyond schema, meeting baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Write or update' and resource 'dictionary entry'. It is distinct from sibling tools as no other 'cortex_write' tools exist, but lacks explanation of what a dictionary entry is in this context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention prerequisites, or when to prefer other tools like cortex_add_feature.
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. Dates show when Glama detected each change.
9 tool updates
v2.9.0- Added
cortex_auto_heal - Added
cortex_pipeline_cancel - Added
cortex_pipeline_history - Added
cortex_pipeline_pause - Added
cortex_pipeline_plan - Added
cortex_pipeline_resume - Added
cortex_pipeline_start - Added
cortex_pipeline_status - Changed
cortex_tick_file1 field changed- added
Input schema / properties / test_idAdded value: +{ + "description": "Linked test ID", + "type": "number" +}
34 tool updates
v2.1.0- First observed
cortex_add_decision - First observed
cortex_add_feature - First observed
cortex_add_relationship - First observed
cortex_add_research - First observed
cortex_add_snippet - First observed
cortex_add_test - First observed
cortex_ask_human - First observed
cortex_check_contradictions - First observed
cortex_check_reminders - First observed
cortex_confirm_destructive - First observed
cortex_get_detail - First observed
cortex_get_next_task - First observed
cortex_get_role - First observed
cortex_get_skill - First observed
cortex_get_state - First observed
cortex_get_token_budget - First observed
cortex_health - First observed
cortex_init - First observed
cortex_list_agents - First observed
cortex_list_skills - First observed
cortex_log_issue - First observed
cortex_log_progress - First observed
cortex_log_tokens - First observed
cortex_resolve_contradiction - First observed
cortex_resolve_issue - First observed
cortex_rollback - First observed
cortex_save_snapshot - First observed
cortex_search - First observed
cortex_set_active_project - First observed
cortex_set_role - First observed
cortex_tick_file - First observed
cortex_update_feature - First observed
cortex_update_test - First observed
cortex_write_dictionary
TDQS
Each tool has a clear, distinct purpose with descriptive names and descriptions. Overlap is minimal; even similar verbs (add, log, resolve) target different entities or actions, making misselection unlikely.
All tools follow a consistent 'cortex_verb_noun' pattern with verbs like add, get, log, check, resolve. No mixing of styles (e.g., camelCase) is present.
34 tools is high but justified by the breadth of the domain (project management, knowledge base, agent coordination). However, some tools (e.g., cortex_log_tokens) could potentially be automated, making the set slightly heavy.
The tool surface covers most CRUD operations for features, decisions, issues, tests, snippets, and more. Missing explicit delete tools for some entities, but search and rollback compensate. Minor gaps remain.
Maintenance
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
The project brain for AI coding agents — memory, decisions, sprints, knowledge base via MCP.
ADHD system of record for agents: tasks, goals, loops, calendar, focus stats.
Persistent memory and knowledge management for AI agents with semantic search and 50+ tools.
Persistent cross-session memory shared by Codex, Claude Code, ChatGPT, and other AI agents.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceProvides persistent memory and autonomous task execution for AI coding agents, enabling them to store and recall project context, guidelines, and handle issue resolution from GitHub.93AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceEnables persistent memory for AI coding agents, allowing them to remember people, decisions, and context across sessions through a knowledge graph and automated briefings.15MIT
- AlicenseNot gradedqualityAmaintenancePersistent memory for AI coding agents that knows when it has gone stale.2MIT
- AlicenseNot gradedqualityAmaintenanceProvides persistent project memory for AI coding agents, enabling context retention across sessions via event logging, briefing generation, and querying.MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neuralnexustech/cortex-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server