standup-journal-mcp
This server is a personal standup journal and checklist dashboard that stores tasks in one shared database and exposes MCP tools to log, update, query, and visualize them.
Log work items with inferred status (done/in_progress/blocked), optional tags, and due dates (natural language parsed to ISO).
Update task status, tag, or due date without losing original log date or history.
Retrieve tasks by a specific date or across a date range, optionally filtered by tag.
List all tags with open task counts.
Generate Slack-ready standup reports, optionally including a weekly 7-day rollup grouped by tag and status.
Manage a checklist: add items, nest subtasks, delete items (with subtasks), toggle done/not-done, and view the full checklist grouped by status.
Launch an interactive localhost dashboard with progress bar, due dates, nested subtasks, and tag badges.
Generates Slack-ready standup reports summarizing logged tasks for a specific date range or a 7-day weekly rollup.
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., "@standup-journal-mcpGenerate my standup report for today."
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.
Standup Journal MCP
A personal standup journal as an MCP server — log tasks, generate standup reports, and manage a checklist dashboard, all from Claude Desktop.
One Dataset, Two Views
The standup log tools and the checklist dashboard both read from and write to the same underlying task table — they are not separate stores. An item logged with log_task shows up in get_checklist and the dashboard, and vice versa, using the same task IDs.
Standup log tools (
log_task,get_tasks_by_date,get_tasks_between,generate_standup_report) present tasks as a dated journal — good for "what did I do on Aug 12" or generating a Slack-ready standup message.Checklist dashboard (
get_checklist,add_checklist_item,toggle_checklist_item,delete_checklist_item,open_checklist_dashboard) presents the same tasks as a checkable to-do list athttp://localhost:9249.
In short: it's one list of tasks, viewable either as a standup journal or as a checklist — pick whichever framing suits what you're trying to do in the moment.
Related MCP server: work-tracker-mcp
Following Along (YouTube Tutorial)
This project follows MCP Tutorial: Build Your First MCP Server, adapted for uv and the current v2 SDK.
Step 1: Initialize the project
uv init
uv add "mcp[cli]"Step 2: Write the server
Create main.py in the project root. The server uses MCPServer from mcp.server with @mcp.tool() decorators.
Note: The video uses FastMCP from mcp.server.fastmcp (v1.x SDK). uv add "mcp[cli]" today installs v2, where FastMCP was renamed MCPServer and moved to mcp.server. Decorators are unchanged.
Data lives in ~/.standup-journal/standups.db (override with STANDUP_DB_PATH).
Step 3: Install into Claude Desktop
uv run mcp install main.pyFully quit and reopen Claude Desktop for the server to appear.
Step 4: Verify in Claude Desktop
Open Settings → Developer → Edit Config to confirm standup-journal is listed under mcpServers. Restart Claude Desktop, then check Connectors — your tools should be available.
Tools
Standup log — what you did / are doing / are blocked on
Tool | Description |
| Log what you did/are doing/are blocked on. Supports tags, due dates, deduplicates recurring blockers, and normalizes natural-language statuses (e.g. "todo" → in_progress). |
| Change a task's status (done, in_progress, blocked). |
| View tasks for a specific date. Optional tag filter. |
| View tasks across a date range. Optional tag filter. |
| See all tags in use with open task counts. |
| Slack-ready standup message. Set |
Tags get a consistent royal-themed emoji (👑💎🦋🕯️ etc.) assigned automatically per tag name.
Checklist dashboard — what you need to do
Tool | Description |
| Add a task (or subtask) to the checklist. Supports nested subtasks. |
| Remove a task by ID (recursively deletes nested subtasks). |
| Toggle done/not-done. |
| Set, change, or clear a task's due date without touching its status, tag, or log date. |
| View all tasks as a checklist. |
| Get the localhost URL for the interactive HTML dashboard. |
Due dates are parsed from natural language by Claude (e.g. "due Aug 20"). In the dashboard, a due date only appears next to a task once one is set — undated tasks show nothing. Click the 📅 icon on any task to set or edit its due date directly. Tasks with due dates sort to the top; overdue dates show in red.
Interactive Checklist Dashboard
The server starts a local HTTP server on port 9249 (override with CHECKLIST_PORT) alongside the MCP stdio transport. The dashboard at http://localhost:9249 provides an interactive checklist with a progress bar, nested subtasks, due dates, and tag badges. Use it as your working to-do list — items you still need to do, not a record of what's already happened.
The progress bar reflects all-time completion (done tasks ÷ total tasks), not just a recent window — so finishing an older item always moves it. It's a plain sliding bar by design, with no numeric done/in-progress/blocked counts shown alongside it.
# Run standalone (starts MCP server + dashboard)
uv run python main.py
# Custom port
CHECKLIST_PORT=8080 uv run python main.pyOnly binds to localhost — not exposed to the network.
Testing in Claude Desktop
Try these:
"Log that I finished the login screen styling."
"Log that I'm blocked on AWS permissions, tag it infra."
"Log that the API docs are due Friday, tag it github."
"What have I logged for today?"
"Generate my standup report."

Verify data directly:
sqlite3 ~/.standup-journal/standups.db "SELECT * FROM tasks;"Troubleshooting
Connector won't connect: Check
~/Library/Logs/Claude/mcp-server-standup-journal.log(macOS) or%APPDATA%\Claude\logs\(Windows).Stray stdout corrupts the connection — use
logging(stderr), neverprint().
Sources: MCP docs, Claude MCP troubleshooting, PyPI MCP
Available Tools
13 toolsadd_checklist_itemA
Add a task to the checklist. Set parent_id to nest it as a subtask under an existing task.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| parent_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It discloses that the tool creates a checklist item and that parent_id can nest it under an existing task. It does not mention effects like appended position, invalid parent handling, or side effects, but for a simple create operation the core behavior is reasonably transparent.
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 no filler. The primary action is front-loaded, and the optional nesting behavior is explained in the second sentence. Every sentence contributes useful 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 is adequate for a simple two-parameter tool and an output schema exists, so return values need not be described. However, it never clarifies which checklist receives the new item, which is relevant given siblings like get_checklist and open_checklist_dashboard. This leaves some context implicit.
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 0%, so the description must compensate. It adds meaningful semantics to parent_id by explaining it 'nest[s] it as a subtask under an existing task.' The title parameter is not elaborated, though 'Add a task' makes its role fairly obvious.
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 states a clear, specific action: 'Add a task to the checklist.' It also introduces the parent_id nesting behavior, which differentiates this creation tool from sibling update/delete/toggle tools without relying on the schema.
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 gives no explicit guidance about when to use this tool versus alternatives like update_task_status, delete_checklist_item, or toggle_checklist_item. The verb 'Add' implies creation, but no exclusions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_checklist_itemA
Delete a task from the checklist by ID, including all nested subtasks.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It does reveal the important cascade behavior ('including all nested subtasks'), but it does not state that the deletion is permanent, irreversible, or what happens to associated data beyond subtasks.
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, front-loaded sentence with no filler. Every word adds value: what action, on what resource, by what key, and the critical cascade 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 one-parameter destructive tool with an output schema available, the description covers the core behavior and the most important side effect. It is slightly incomplete in not stating permanence or permission requirements, but given the low complexity, nothing essential is missing for an agent to invoke it.
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 provides only an integer `item_id` with 0% description coverage. The description adds meaning by clarifying that the ID identifies a task in the checklist, which is the key semantic needed. It doesn't elaborate on ID format or constraints, but for a single simple parameter this is adequate.
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 ('Delete') and resource ('task from the checklist') and adds critical scope ('including all nested subtasks'). This clearly distinguishes it from siblings like add_checklist_item or toggle_checklist_item without needing to name 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 when to use it: whenever a checklist task needs to be removed. However, it offers no explicit guidance about when not to use it, no alternatives, and no caution about the cascading deletion versus toggling completion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_standup_reportA
Generate a clean, bulleted standup message from yesterday and today.
Automatically groups items by tag/project if any logged tasks have one.
Set include_weekly=True to append a rollup covering the last `range_days`
days (default 7). The rollup follows the standard three-question standup
format — Done / In Progress / Blocked — for that whole period, not just
completed items, so it works for a weekly retro, a 1:1, or any custom
stretch of time by adjusting range_days.
Uses standard Markdown (**bold**, _italic_, - bullets) so it renders
cleanly in Claude's chat UI. If pasting into Slack, swap ** for single
* around headers (Slack uses single asterisks for bold).
| Name | Required | Description | Default |
|---|---|---|---|
| range_days | No | ||
| include_weekly | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does well: it discloses automatic grouping by tag/project, the rollup's three-question format over the full period rather than only completed items, and Markdown/Slack formatting behavior. It does not explicitly confirm the tool is read-only or state an empty-data edge case, but these are minor for a report generator.
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 front-loaded with the core purpose and each paragraph adds distinct value. It is slightly longer than strictly necessary, with the Slack formatting note being peripheral to invoking the tool, but it remains well-structured and free of 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 two-parameter, zero-annotation tool with an output schema, the description covers invocation semantics, parameter effects, output formatting, and common use cases. Nothing essential for calling it correctly is missing.
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 0%, but the description fully explains both parameters: include_weekly=True appends the rollup, and range_days controls the lookback period with a default of 7. This adds real meaning beyond the raw schema 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?
States exactly what it does: 'Generate a clean, bulleted standup message from yesterday and today.' The verb+resource is specific and clearly distinct from the task-logging, status-updating, and checklist sibling tools, so an agent can select it without opening schemas.
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 clear usage context: the default yesterday/today behavior, the optional weekly rollup, and explicit use cases (weekly retro, 1:1, custom stretch via range_days). It does not list exclusions or name alternatives, but the sibling tools are functionally distinct enough that the intended scope is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_checklistA
Get all tasks as a checklist view, grouped by status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It does state the grouping-by-status behavior, but it doesn't mention ordering, inclusion of unlabeled tasks, or any other edge cases; 'get' only subtly signals that this is a read-only 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?
A single front-loaded sentence with no filler. Both the full scope ('all tasks') and the behavioral detail ('grouped by status') are communicated 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?
For a no-parameter read operation with an output schema, the description is nearly complete. It could add guidance on how this relates to the sibling task-viewing tools, but the core behavior is sufficiently covered.
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 zero parameters and the input schema is empty, so there are no parameter semantics to clarify. The baseline of 4 applies because no parameter explanation 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 names a specific verb and resource — 'Get all tasks' — and adds a distinguishing behavior, grouping by status. It doesn't explicitly contrast with date-filtered siblings, but the 'all tasks' scope and checklist presentation make the purpose clear.
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?
There is no explicit when-to-use or when-not-to-use guidance, and no alternative sibling tools are named. The wording implies a broad, unfiltered task view, but the agent is left to infer when to pick this over get_tasks_by_date or get_tasks_between.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasks_betweenA
Retrieve all logged tasks within an inclusive date range (YYYY-MM-DD each).
Use this for "what did I do last week" style questions instead of
calling get_tasks_by_date multiple times. Optionally filter to a single
`tag`/project.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| end_date | Yes | ||
| start_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry behavioral context. It discloses that the range is inclusive, that it retrieves all tasks, and that tag filtering is optional. It does not describe ordering, pagination, or timezone handling, but the read-only nature is clear from 'Retrieve.'
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 compact and front-loaded. The core behavior appears in the first sentence, the usage guidance in the second, and the optional parameter in the third. Every sentence adds unique value with no repetition.
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 query tool with an output schema, the description covers purpose, usage context, date format, inclusive boundaries, and optional filtering. An agent can both select this tool over get_tasks_by_date and construct a correct call without further 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?
Schema description coverage is 0%, so the description must compensate. It adds the date format YYYY-MM-DD, explains the inclusive range semantics, and clarifies that tag is an optional filter. It does not explicitly document start_date and end_date individually, but the meaning is sufficiently inferable.
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 begins with a specific verb and resource: 'Retrieve all logged tasks within an inclusive date range.' It also clearly distinguishes itself from the sibling get_tasks_by_date by framing this tool as the range-based alternative.
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 explicitly states when to use the tool ('what did I do last week' style questions) and names the alternative approach it replaces ('instead of calling get_tasks_by_date multiple times'). This gives an agent a clear decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tasks_by_dateA
Retrieve all logged tasks for a given ISO date (YYYY-MM-DD).
Optionally filter to a single `tag`/project.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| log_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It clearly indicates a read operation ('Retrieve') and scopes the behavior to all logged tasks with optional tag filtering. It does not describe edge cases like empty results or ordering, but for a straightforward retrieval tool this is a moderate, adequate level of transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences with no filler. The main action and date format are front-loaded, and the optional filter is stated in a compact second sentence. 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?
For a simple read-only tool with two parameters and an existing output schema, the description covers the essential purpose, parameter formats, and filtering semantics. It lacks an explicit pointer to the sibling date-range tool, but given the low complexity and structured output, it is otherwise 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 0%, so the description must compensate. It does: it specifies the ISO date format for log_date and explains the optional tag filter and its meaning ('single tag/project'). Both parameters are meaningfully described beyond the bare schema, leaving little ambiguity.
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 states a specific verb ('Retrieve all logged tasks') and a specific resource ('tasks for a given ISO date'), and the optional tag filter further narrows the scope. It is clearly distinguishable from the sibling get_tasks_between by the single-date wording.
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 usage is implied by the description: use this when you need tasks for one specific date, with optional tag filtering. However, it does not explicitly mention alternatives (e.g., get_tasks_between for date ranges) or state when not to use this tool. Guidance is present but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tagsA
List all distinct tags/projects currently in use, with open task counts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral disclosure burden. It goes beyond a generic 'list tags' by specifying 'currently in use' and 'open task counts,' revealing output semantics and signaling a read-only operation. Minor omissions such as ordering or pagination are not material for a zero-parameter tool with an output 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?
A single, front-loaded sentence conveys the verb, resource, scoping condition, and output detail with no wasted words. It is compact without sacrificing clarity.
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 zero-parameter, no-nested-object tool with an output schema, the description covers everything needed to invoke it correctly. The sibling list contains no overlapping tag-listing tool, removing ambiguity about when it should be used.
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 zero parameters with 100% schema description coverage, so the baseline for parameter semantics is 4. The description adds meaning about the returned data rather than parameter details, which is appropriate here.
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 states a specific verb ('List'), resource ('distinct tags/projects'), scope ('currently in use'), and return characteristic ('with open task counts'). This makes it clearly distinguishable from task-mutation and date-based sibling tools.
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 its use case — retrieving a tag/project overview with open-task counts — but it does not explicitly name alternatives, exclusions, or when not to use it. The intent is clear from context and sibling names, though the guidance is implicit rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_taskA
Log a single piece of work: what you did, are doing, or are blocked on.
If the user gives a rambling, multi-item update in one message (e.g.
"finished the login screen, still working on the API integration, and
I'm blocked on AWS permissions"), call this tool ONCE PER DISTINCT ITEM
rather than logging it as one combined entry.
Infer `status` from the language used for each item:
- "done" -> finished, shipped, completed, past tense ("fixed", "wrote")
- "in_progress" -> still working on, in the middle of, ongoing, todo, to do, need to, planning to
- "blocked" -> blocked, stuck, waiting on, can't proceed until
IMPORTANT: Always normalize status to exactly one of: "done", "in_progress", "blocked".
Never use "todo", "to do", "in progress" (with space), or any other variant.
`tag` is an optional project/category label (e.g. "frontend", "acme-client",
"customer-advisor", "infra", "github"). Set it whenever the user's phrasing implies
a category, using any of these patterns:
- "log ___ under/as/for [category]"
- "tag this as [category]"
- "categorize/sort this as [category]"
- simply mentioning a known project/client name in the task description
Each distinct tag automatically gets a consistent colored-circle emoji
in every response, so tasks stay visually grouped by category over time.
If no category is stated or inferable from context, leave `tag` unset.
`due_date` is an optional ISO date (YYYY-MM-DD) deadline. Set it whenever
the user mentions a due date, deadline, or "by [date]" in their message.
Parse natural language dates (e.g. "due Friday", "by next week", "due Aug 21")
into ISO format.
If `status` is "blocked" and there's already an open blocker with a very
similar description, this updates that existing entry's date instead of
creating a duplicate — so a recurring blocker doesn't pile up as
multiple rows across days.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | ||
| status | No | done | |
| due_date | No | ||
| task_description | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so thoroughly. It reveals status normalization rules, the exact allowed values, the blocked-entry dedup behavior, the tag-to-emoji visual grouping, and natural-language date parsing. These are meaningful behavioral traits an agent could not infer from the schema alone.
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 long but well structured and front-loaded with the core purpose. Each block adds actionable detail for status, tag, due_date, and dedup behavior. The only mild redundancy is the 'Never use' line following the normalization rule, which slightly extends the text but also reinforces an important constraint.
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, four parameters, and lack of annotations, this description is complete enough for an agent to select and invoke the tool correctly. It covers multi-item handling, status normalization, tag inference, due-date parsing, and duplicate prevention. Since an output schema exists, not detailing return values is acceptable.
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 0%, so the description must fully compensate. It does: task_description is explained as the work being logged, status has inference rules and forbidden variants, tag has optional category patterns with examples, and due_date has ISO formatting and parsing guidance. Every parameter receives substantial semantic 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?
The description states a specific action and resource: 'Log a single piece of work: what you did, are doing, or are blocked on.' It clearly conveys the tool's role and the three content categories. It does not explicitly distinguish itself from sibling update tools like update_task_status, but the 'log' framing plus 'call this tool ONCE PER DISTINCT ITEM' makes 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 gives concrete when-to-use guidance: call once per distinct item in a multi-item update, set status based on language, set tag when a category is implied, set due_date when a deadline is mentioned, and dedupe blocked entries. It does not mention when to prefer update_task_status or get_tasks_by_date, but the triggering contexts are clear and specific.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
open_checklist_dashboardA
Launch the interactive task checklist in the browser.
Use this whenever the user wants to view, manage, or work through their tasks interactively — whether they're starting their day, checking what's left, or asking about what to do next.
Returns a localhost URL. Data persists across sessions.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses that the tool launches a browser, returns a localhost URL, and persists data across sessions. This covers the key behavioral expectations, though it doesn't mention any side effects like starting a server.
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 no filler: action first, then usage guidance, then return behavior. Every sentence adds distinct value and the most important information is 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?
For a zero-parameter tool with an output schema and no annotations, the description is complete. It explains what the tool does, when to use it, what it returns, and persistence behavior. Nothing essential is missing.
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, so per the baseline rule this dimension gets a 4. The description doesn't need to add parameter meaning since no parameters exist.
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 opens with a specific action and resource: 'Launch the interactive task checklist in the browser.' This clearly distinguishes it from sibling tools, which operate on individual tasks or generate reports rather than launching a dashboard view.
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 explicit guidance: 'Use this whenever the user wants to view, manage, or work through their tasks interactively' with concrete scenarios. It doesn't name alternatives or exclusions, but the use-case framing makes the appropriate context clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
toggle_checklist_itemB
Toggle a task between done and not done.
| Name | Required | Description | Default |
|---|---|---|---|
| item_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose the core state-changing behavior (done toggles to not done), but it gives no additional context about side effects, idempotency, or what entity is affected beyond the vague term 'task.'
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 one concise sentence with no wasted words and the core action is front-loaded. It could be slightly improved by using 'checklist item' instead of 'task,' but overall it is well-sized for such a simple tool.
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, has one parameter, and has an output schema, so the description does not need to explain return values. However, it is missing explicit connection to the checklist item context and lacks guidance on how this differs from update_task_status.
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 0%, so the description needed to compensate by explaining item_id, but it never mentions it. The single parameter is self-descriptive and clearly identifies the entity being toggled, so the gap is not severe, but the description adds no semantic value 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 uses a specific verb ('toggle') and a resource ('task') and clearly conveys the done/not-done state transition. It does not explicitly differentiate from the sibling update_task_status, and it says 'task' rather than 'checklist item,' so there is slight ambiguity.
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 given about when to use this tool versus alternatives like update_task_status or get_checklist. The only usage signal is implied by the verb 'toggle,' which is not enough to route an agent confidently.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_task_due_dateA
Change the due date on an existing logged task, without altering its log_date, status, description, tag, or ID.
Use this whenever the user wants to set, change, or clear a due date on
a task they already logged — e.g. "the behavioral stories task is due
today EOD" or "push #12's due date to Sept 1" or "clear the due date on
#7". This is the correct tool for that; do NOT delete and re-log the
task, since that rewrites its original log_date and loses history.
`due_date` must be an ISO date (YYYY-MM-DD). Parse natural language
dates (e.g. "today", "EOD today", "Friday", "next week") into ISO
format before calling this — relative phrasing stored as-is will not
sort or display correctly in the checklist dashboard.
Pass due_date=None (or an empty string) to clear an existing due date.
| Name | Required | Description | Default |
|---|---|---|---|
| task_id | Yes | ||
| due_date | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It clearly explains that the operation preserves other task fields, that passing None/empty clears the due date, and that relative date strings must be parsed to ISO beforehand. It does not discuss permissions or side effects beyond the task itself, but it covers the important behavioral specifics.
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 front-loaded with the core purpose, followed by clear usage guidance and parameter details. Every sentence adds meaningful information—examples, constraints, and clearing behavior—without repetition 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?
The description is complete for this tool's complexity: it covers purpose, when to use, parameter formats, clearing behavior, and what not to do. An output schema exists, so return-value documentation is unnecessary. Nothing needed to invoke the tool correctly is missing.
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 0%, so the description fully compensates. It explains task_id contextually as referring to an existing logged task, and thoroughly documents due_date: ISO format required, natural language must be pre-parsed, and None/empty string clears the date. This is far more than the raw 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?
States a specific verb, resource, and scope: 'Change the due date on an existing logged task,' and explicitly lists what it does NOT alter (log_date, status, description, tag, ID). This clearly distinguishes it from sibling tools like update_task_status and update_task_tag.
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 explicit when-to-use guidance with concrete examples ('due today EOD', 'push #12's due date to Sept 1', 'clear the due date on #7'), and explicitly warns against deleting and re-logging the task. It leaves no ambiguity about when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_task_statusA
Update the status of an existing logged task (e.g. unblock it).
Use this when the user says a previously logged item has changed state
— e.g. a blocker just got resolved, or something in progress is now
done. `status` must be one of: "done", "in_progress", "blocked".
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavior disclosure. It clearly communicates that the operation mutates an existing task's status and constrains the valid values. However, it does not disclose what happens if the task does not exist, whether the change is reversible, or what the response contains, though an output schema exists to cover some of that.
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 compact, front-loaded with the core action, and gives usage guidance, examples, and allowed values in just a few sentences. Every sentence contributes meaningfully, with no repetition of schema fields.
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 two-parameter mutation with an output schema, this description is nearly complete: it states the action, the trigger scenario, and the valid status values. It could add a note about how to obtain task_id, but the combination of schema, output schema, and description is sufficient for correct invocation in most cases.
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 0%, but the description compensates for the most important parameter by explicitly stating that status must be one of 'done', 'in_progress', or 'blocked'. It also frames task_id as referring to an already-logged task. The task_id semantics could be slightly richer, but the critical enum-like constraint is present only in the description, giving it genuine added 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 and resource: 'Update the status of an existing logged task'. It also clarifies scope with 'e.g. unblock it' and gives the allowed status values, making it clearly distinct from siblings like update_task_tag or update_task_due_date.
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 explicitly tells the agent when to use this tool: 'Use this when the user says a previously logged item has changed state'. It provides concrete examples like a blocker being resolved or work moving from in progress to done. It does not explicitly name alternatives to avoid, but the context is clear enough given the sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_task_tagA
Change the tag on an existing logged task, without altering its log_date, status, description, or ID.
Use this whenever the user wants to retroactively add, change, or
remove a category/tag on a task they already logged — e.g. "tag #12
as infra" or "remove the tag from #7". This is the correct tool for
that; do NOT delete and re-log the task, since that rewrites its
original log_date and loses history.
Pass tag=None (or an empty string) to clear an existing tag.
Note: if the task has subtasks (other tasks tagged "subtask:<task_id>"),
those are untouched by this call — only task_id's own tag changes.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | Yes | ||
| task_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden and does so excellently. It discloses that only the tag changes, that tag=None or an empty string clears the tag, and that subtasks are untouched by the call.
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 well-structured and front-loaded with the core action, then examples, then exclusions and caveats. It is detailed but every sentence adds meaningful information; nothing is redundant.
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 two-parameter tool with an output schema, the description is complete. It covers what the tool changes, what it preserves, when to use it, how to clear a tag, and an important subtask side-effect caveat.
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 0%, so the description must compensate. It explains the tag parameter's semantics well, including the clearing behavior, and gives concrete task_id examples. It does not formally define task_id, but the integer schema plus examples make it sufficiently clear.
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?
States a specific verb and resource: 'Change the tag on an existing logged task.' It also explicitly lists what is NOT altered (log_date, status, description, ID), which cleanly distinguishes it from siblings like update_task_status and update_task_due_date.
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?
Gives clear when-to-use guidance with concrete user examples ('tag #12 as infra', 'remove the tag from #7'). It also tells the agent what NOT to do ('do NOT delete and re-log the task') and explains why, making the invocation context unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have clearly distinct purposes, and the descriptions carefully separate journal tasks from checklist items. However, log_task vs add_checklist_item and update_task_status vs toggle_checklist_item could cause confusion when a user simply says 'add a task' or 'mark this done' without clarifying which store they mean.
Tool names mostly follow a consistent verb_noun snake_case pattern like update_task_status, get_tasks_by_date, and delete_checklist_item. The main inconsistency is the mixing of 'task' and 'checklist_item' terminology without a clear prefix to distinguish the two domains, plus the less patterned generate_standup_report and open_checklist_dashboard.
Thirteen tools is well within the ideal range for a focused server. Each tool earns its place: seven support journal logging and reporting, five cover checklist management, and one launches the interactive dashboard.
The journal and checklist domains both have solid create/read/update coverage, and the dashboard fills an interactive role. The notable gap is that logged journal tasks cannot be deleted or have their description edited, which could leave an agent unable to fully correct a mislogged entry.
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
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
MCP Server for an Agent Task Marketplace
MCP server for generating rough-draft project plans from natural-language prompts.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for structured daily work diary management, enabling entries, standup summaries, weekly reports, full-text search, and automatic git commits.14MIT
- FlicenseAqualityCmaintenanceMCP server that tracks what you are working on. Logs are stored locally as one markdown file per day on your Desktop.5
- FlicenseBqualityCmaintenanceA task manager MCP server that enables creating, reading, updating, and deleting tasks persisted in a local JSON file.4
- AlicenseBqualityNot gradedmaintenanceA basic MCP server for managing a todo list stored in a local JSON file, enabling task creation, completion, listing, and daily summary generation.214MIT
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/rominap22/standup-journal-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server