recap-mcp
Recap
Your AI project manager. Plain markdown. Local-first. Open source.
Recap is an MCP server that gives Claude persistent memory of your ongoing projects. Job searches, side projects, learning goals, writing efforts, anything you work on over weeks or months. Your data lives as plain markdown files in a folder you own.
Why Recap
Claude forgets between conversations. You spend the first five minutes of every chat re-explaining what you're working on, what you decided last time, and what's pending. Recap fixes that.
Local-first: your workspace is a folder of markdown files. Nothing leaves your machine.
Plain markdown: open it in VS Code, Obsidian, vim, anything.
Open source: MIT licensed, no vendor lock-in.
Project-shaped, not blob-shaped: structured around projects, tasks, sessions, and notes, not opaque memory dumps.
Eleven focused tools: no kitchen sink, no bloat.
Related MCP server: Cortex
Install
Requires Node.js 18+.
npx recap-mcp initThat single command:
Creates a workspace folder at
~/recap-workspace/Adds Recap to your Claude Desktop config
Backs up any existing Claude config to
.bak
Then quit Claude Desktop, reopen it, and say "hi". Recap will guide you through your first project.
The eleven tools
Tool | Purpose |
| Run at session start. Loads workspace status, active projects, recent activity. |
| List projects, filter by status. |
| Start a new project, optionally seeded from a template. |
| Load full context for one project (description, open tasks, recent sessions). |
| Add a task with optional priority, due date, notes. |
| List tasks for a project, filterable by status. |
| Change status, priority, due date, notes, or title. |
| Remove a task. |
| Save a structured session entry: worked on, decisions, next steps. |
| Drop a timestamped note into a project. |
| Fuzzy ranked search across the entire workspace. |
Templates
Recap ships with six starter templates:
generic(clean slate)job-searchside-projectlearningwritingmoving
Pass --template to project_create (or have Claude do it) to seed a project with starter tasks and a knowledge file.
Workspace structure
~/recap-workspace/
├── .recap/
│ └── config.json
├── projects/
│ └── job-search-2026/
│ ├── project.md
│ ├── tasks.md
│ ├── notes.md
│ ├── sessions/
│ │ └── 2026-05-20.md
│ └── knowledge/
│ └── starter.md
└── archived/Plain markdown with YAML frontmatter. You can cd into it and git init if you want version control. Open it in Obsidian if you want a nice viewer.
Configuration
The workspace path defaults to ~/recap-workspace/. Override it with:
export RECAP_WORKSPACE_PATH=/path/to/your/workspaceOr pass --workspace to recap-mcp init.
Other settings live in .recap/config.json:
{
"version": "0.1.0",
"briefing": { "recent_days": 14, "max_active_projects": 5 },
"search": { "max_results": 10 }
}Troubleshooting
Run npx recap-mcp doctor for diagnostics.
If Claude Desktop doesn't see Recap after install:
Make sure you fully quit Claude Desktop (not just closed the window).
Check
~/recap-workspace/exists.Check your Claude Desktop config has
mcpServers.recapentry.
Privacy
Recap runs entirely on your machine. There is no telemetry, no analytics, no remote calls. Your projects, tasks, notes, and session logs never leave your computer.
License
MIT. See LICENSE.
Status
v0.1.0. Early. Feedback and issues welcome at https://github.com/shivam-singh-git/recap-mcp/issues.
Available Tools
11 toolsbriefingA
Session-start orientation. Run this at the beginning of every conversation to load workspace status, active projects, recent activity, and stale projects. Returns a 'welcome_flow_active' flag if the workspace is empty.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Describes it as loading data (read-only implied) and returning a flag. Transparent about its behavior for a simple tool, though does not explicitly state nondestructive nature.
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, front-loaded with purpose. No wasted 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?
Completely covers purpose, usage, and return value for a parameterless tool with no output schema. No missing information.
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?
No parameters exist; schema coverage is 100%. Description adds no param info, but baseline is 4 for zero-param tools.
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 it is a session-start orientation tool, lists specific data loaded (workspace status, active projects, recent activity, stale projects), and mentions the return flag. Distinguishes from sibling tools like task_add, project_list, etc.
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 run at the beginning of every conversation, providing clear usage context. Does not explicitly mention when not to use or alternatives, but the purpose is self-evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_briefA
Load full context for a single project: description, body, open tasks, blocked tasks, knowledge files, and recent session logs. Use this when you need to dive deep into one project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug or name. | |
| recent_sessions | No | How many recent session logs to include in full. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the tool loads data but does not explicitly state it is read-only, mention rate limits, or disclose any side effects. The description is adequate but lacks behavioral 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?
Two sentences, no wasted words. The first sentence immediately states the main purpose and content, and the second provides usage guidance. 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?
For a tool with 2 parameters and no output schema, the description gives a good summary of what is returned. It could mention that it is a read-only operation, but overall it is sufficiently complete for 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 coverage is 100%, but the description adds value by listing what the 'full context' includes (description, body, open tasks, etc.) and explaining the 'recent_sessions' parameter's purpose and default. This goes 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 clearly states the tool loads 'full context for a single project' and lists specific contents (description, body, open tasks, etc.), distinguishing it from siblings like 'project_list' (which lists projects) and 'briefing' (potentially broader).
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 includes 'Use this when you need to dive deep into one project,' providing clear usage context. It implies not to use for listing or overviews, but could be more explicit about 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.
project_createA
Create a new project. Optionally seed it from a template: 'generic', 'job-search', 'side-project', 'learning', 'writing', or 'moving'. Each template adds starter tasks and an optional knowledge starter file.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Display name of the project. | |
| template | No | Optional template id to seed starter tasks and knowledge content. | |
| description | No | One-paragraph description of what this project is about. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses that templates add starter tasks and a knowledge file, but omits details like side effects, permissions, or return values. 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 sentences, front-loaded with the primary purpose, no redundant information. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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 ideally mention what the tool returns (e.g., project object or ID) and any uniqueness constraints. It provides the core functionality but misses these details.
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 is 3. The description adds value for the 'template' parameter by listing valid values and explaining their effect, but adds nothing for 'name' and 'description' 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 clearly states the action 'Create a new project' and mentions optional templating. It distinguishes from sibling tools like project_list and project_brief by specifying creation, but does not explicitly differentiate from them.
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 creating projects with optional templates but provides no explicit guidance on when to use this tool versus alternatives, nor any conditions or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_listA
List projects in the workspace. Filter by status (active, archived, all). Returns slug, name, description, task counts, and last-touched dates.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by project status. Defaults to 'active'. | active |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must convey behavioral traits. It describes the return fields and filtering capability, which is adequate for a simple read-only tool. However, it lacks details about pagination, limits, or any side effects, though none are expected.
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 of 18 words, front-loaded with the main action and resource. Every part adds value: action, scope, filter, and return fields. No wasted 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 simplicity of the tool (one optional parameter, no output schema), the description covers the essential aspects: what it does, how to filter, and what is returned. It lacks discussion of edge cases or ordering, but overall it is fairly complete for a list 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 the parameter description in the schema already explains the status filter and default. The main description reiterates the same information without adding new meaning, so it scores at the 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?
The description clearly states the verb 'List' and resource 'projects', specifying filtering by status and listing exact return fields (slug, name, description, task counts, last-touched dates). It effectively distinguishes project_list from sibling tools like task_list which list tasks.
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 does not explicitly state when to use this tool versus alternatives such as search or task_list. While the tool name implies its purpose, no exclusions or alternative recommendations are provided, 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.
quick_noteA
Drop a timestamped note into a project. For stray thoughts that don't fit a session log.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The note text. | |
| project | Yes | Project slug or name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description bears full responsibility. It mentions 'timestamped' but provides no details on mutability, persistence, or error handling. For a simple create tool, this is minimally adequate but lacks depth.
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 with front-loaded action verb; every word earns its place. No redundancy or filler.
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 (2 required params, no output schema), the description covers purpose and usage clearly. However, it omits details like persistence or if notes are appended to existing notes, but these are minor 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 schema already describes both parameters adequately. The description adds no extra meaning beyond 'into a project,' which echoes the project param. The timestamp mention is behavioral, not param-specific.
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 'Drop a timestamped note into a project' which clearly identifies the action and resource. It distinguishes from the sibling 'session_log' by specifying notes are for stray thoughts, not fitting a session log.
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 'For stray thoughts that don't fit a session log,' providing clear when-to-use and a direct alternative (session_log). This covers both affirmative and exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchA
Fuzzy ranked search across projects, tasks, sessions, and notes. Ranks by recency, type relevance, and field match. Use to recall anything in the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Restrict results to a single type. | |
| query | Yes | The search query. | |
| project | No | Restrict results to a single project slug. | |
| max_results | No | Maximum number of results to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description provides useful behavioral context: fuzzy, ranked, criteria. But lacks details on pagination, empty results, or result 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?
Two sentences, front-loaded with scope, then ranking criteria, then usage hint. No wasted 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?
The description explains scope and ranking but omits output format or any warnings. For a search tool, return structure would be helpful, especially without 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 coverage is 100%, so description doesn't need to repeat param details. It adds overall context (ranking) but no per-param improvements. 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 verb 'search' and the resources 'projects, tasks, sessions, and notes'. It distinguishes from sibling tools (CRUD operations) by being a broad recall tool.
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 suggests using it to 'recall anything in the workspace', implying a recall context. However, it does not explicitly exclude cases where a specific tool (e.g., project_list) would be better.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
session_logA
Log a session entry for a project: what was worked on, decisions made, next steps. The core 'log progress' tool. Run at the end of a working session.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Session date in YYYY-MM-DD format. Defaults to today. | |
| project | Yes | Project slug or name. | |
| decisions | No | Decisions made and their rationale. | |
| worked_on | Yes | Short summary of what was worked on this session. | |
| next_steps | No | What to pick up next time. | |
| duration_minutes | No | Approximate session duration in minutes. |
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 mentions logging a session entry but does not disclose whether the operation is reversible, if it overwrites existing logs, permission requirements, or any side effects. For a write operation, 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?
Two concise sentences with no waste. The first sentence defines the tool's purpose and key fields, the second adds usage timing. Front-loaded effectively. Every word earns its place.
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?
With 6 parameters and no output schema, the description covers the essential purpose and usage timing. It could mention that this creates a persistent record or how it relates to session history, but for a straightforward logging tool, it is nearly 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 coverage is 100%, and each parameter has a clear description. The description adds narrative context by grouping fields (worked_on, decisions, next_steps) but does not provide new semantic meaning beyond what the schema already conveys. 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?
Description explicitly states it logs a session entry with specific fields (worked on, decisions, next steps) and positions itself as the 'core log progress tool', clearly distinguishing it from sibling tools like quick_note or task_add.
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 says 'Run at the end of a working session', providing clear when-to-use guidance. However, it does not explicitly exclude alternative uses or mention when not to use it. Among sibling tools, it is the only structured logging tool, so context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_addB
Add a task to a project. Supports priority, due date, and notes.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | Optional due date in YYYY-MM-DD format. | |
| notes | No | Optional notes or context for the task. | |
| title | Yes | What needs to be done. | |
| project | Yes | Project slug or name. | |
| priority | No | Task priority. | medium |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description only states the add operation and supported fields. No annotations exist, so the description fails to disclose behavioral traits like side effects, error handling, idempotency, or return behavior. For a creation tool, 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 single-sentence description is concise and front-loaded with the action and resource. It contains no filler, but some additional context or structure (e.g., use cases) could improve it without harming 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, the description does not mention return values or outcomes. It lacks info on side effects, idempotency, or behavior when inputs are invalid. The 5-parameter tool needs more context to be 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%, and the description adds no new information beyond the schema's parameter descriptions. The phrase 'Supports priority, due date, and notes' merely summarizes existing schema details, not adding 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 'Add a task to a project' with a specific verb and resource, and lists supported features (priority, due date, notes). It effectively distinguishes from sibling tools like task_delete, task_update, and task_list.
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 vs alternatives (e.g., task_update, task_delete). The description does not specify prerequisites, limitations, or preferred scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_deleteB
Delete a task from a project.
| Name | Required | Description | Default |
|---|---|---|---|
| project | Yes | Project slug or name. | |
| task_id | Yes | The task id to delete. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose important behavioral traits such as whether the deletion is permanent, irreversible, or requires specific permissions, which is critical for a destructive operation without annotations.
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 front-loads the action without any 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?
For a deletion tool with no output schema, the description fails to mention return values, side effects, or success/failure indicators, leaving the agent underinformed.
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 adds no value 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 verb 'Delete' and the resource 'a task from a project', distinguishing it from siblings like task_add, task_list, and task_update.
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, nor any conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_listA
List tasks for a project. Filter by status (open, done, blocked, all). Sorted by priority then due date.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter tasks by status. Defaults to 'open'. | open |
| project | Yes | Project slug or name. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes filtering and sorting behavior beyond schema. No annotations, so description carries burden; lacks mention of pagination or error handling, but adequate for a simple list 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?
Two sentences, front-loaded with main action, no fluff.
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 tool is straightforward. Missing details on return format or pagination, but acceptable given sibling tools 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?
Schema coverage is 100%, and description adds sorting order ('sorted by priority then due date') not in schema, enhancing parameter 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 clearly states 'List tasks for a project' with a specific verb and resource, distinguishing it from siblings like task_add or task_delete.
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 on filtering and sorting, helping the agent decide. Does not explicitly mention when not to use or alternatives, but the name and description imply correct usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_updateC
Update a task. Change status, priority, due date, notes, or title. Pass null for due/notes to clear them.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | New due date (YYYY-MM-DD), or null to clear. | |
| notes | No | New notes, or null to clear. | |
| title | No | New title. | |
| status | No | New status. | |
| project | Yes | Project slug or name. | |
| task_id | Yes | The task id (e.g. 't_a8f2x9'). | |
| priority | No | New priority. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description bears full burden. It mentions mutation and clearing due/notes via null, but does not disclose other behavioral traits such as required permissions, error handling, side effects, or whether partial updates are supported.
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. Efficiently conveys core purpose and a key usage detail. Ideal 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?
Description omits return value information (no output schema) and does not mention required parameters (project and task_id) or potential errors. Given 7 parameters, this is insufficient 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?
Schema coverage is 100% (all parameters described), baseline is 3. Description adds value by explaining that passing null for due and notes clears them, which is not obvious from schema alone. However, other parameters lack additional semantic guidance.
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 'Update a task' and lists modifiable fields, distinguishing from sibling tools like task_add, task_delete, and task_list. However, it does not explicitly differentiate from any potential alternative update tool.
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, nor any exclusions or prerequisites. The description implies usage for updating tasks but lacks explicit context.
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.
11 tool updates
v0.1.1- First observed
briefing - First observed
project_brief - First observed
project_create - First observed
project_list - First observed
quick_note - First observed
search - First observed
session_log - First observed
task_add - First observed
task_delete - First observed
task_list - First observed
task_update
TDQS
Scored across 11 tools
Each tool targets a distinct resource and action: project, task, session, note, or search. Even session_log and quick_note are clearly separated by structured end-of-session entries vs. stray timestamped thoughts, so an agent should rarely mis-select.
Most tools follow a readable resource_action pattern: project_list, project_create, task_add, task_update, task_delete. A few outliers like briefing, quick_note, and search break that pattern, but the naming remains largely predictable and unambiguous.
Eleven tools is a well-scoped size for a workspace/project/task/session management domain. Each tool covers a meaningful operation without unnecessary overlap or bloat.
Task CRUD is complete, and search/project_brief provide solid retrieval. However, project lifecycle management is incomplete: projects can be created and listed but not updated, archived, or deleted, which is notable given archived and stale project statuses are referenced.
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
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Persistent AI memory shared across Claude, ChatGPT, coding agents, and compatible MCP clients.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that gives Claude Code cross-session memory persisted to a plain .claude-memory.md file in your repo.MIT
- AlicenseNot gradedqualityDmaintenancePersistent memory MCP server for Claude Code that captures and recalls project context across sessions, eliminating the need to re-explain architecture and decisions daily.3861MIT
- FlicenseNot gradedqualityDmaintenanceMCP server for project planning inside Claude. It tracks progress, knows your codebase, and resumes exactly where you left off every session.145-
- AlicenseNot gradedqualityAmaintenanceSelf-hosted MCP server giving Claude persistent memory via entities, observations, history, and reminders, backed by a lightweight Node/SQLite backend.81MIT