boardagent-mcp
Allows Hermes to connect to the BoardAgent task manager via MCP, enabling AI agents to create, update, and manage tasks.
Click on "Deploy 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., "@boardagent-mcpcreate a task named 'prepare slides' with priority high"
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.
BoardAgent
A task manager that lives on your computer — for you and your AI agents. Terminal UI, REST API, MCP server. Free, local, no cloud.
Install (Windows)
You need the prebuilt exes. Two ways to get them:
Option A — use the release binaries (easiest):
Download the latest release from GitHub → unzip → double-click INSTALL.bat.
That's it. It copies the programs, sets up autostart, installs a watchdog,
and adds the app to your PATH.
Option B — build them yourself: Requires Python 3.10+.
pip install -e . # installs the 3 CLI commands
python scripts/build_exes.py # builds boardagent.exe, boardagent-server.exe, boardagent-mcp.exe into dist/Then run INSTALL.bat.
Related MCP server: pith
Run
Windows (after INSTALL.bat): double-click boardagent.exe (or type
boardagent in a terminal). The background server auto-starts at logon.
Anywhere (source):
boardagent-server # terminal 1 — the background service
boardagent # terminal 2 — the task board UIFirst-time tips:
Press
cto create a task,afor AI mode,qto quit.Full keyboard-first: arrows move, space selects/opens, enter activates.
Settings tab: theme, opacity, API keys, keybinds.
Let an AI agent use the board
Point your MCP host (Claude Desktop, Cursor, Hermes) at boardagent-mcp:
{
"mcpServers": {
"boardagent": { "command": "C:\\path\\to\\boardagent-mcp.exe" }
}
}Create an API key in Settings → API Keys for anything else.
How it works
REST API — source of truth,
http://127.0.0.1:7373.MCP server — thin adapter over the same service layer.
Textual TUI — the app you see, talks to the service over localhost.
Data lives in
~/.boardagent/boardagent.db(SQLite). Everything local.
Docs
For humans:
docs/human/— intro, MCP setup, themes, packaging.For AI agents:
docs/agent/— token-optimized REST + MCP references.
Development
python -m pytest
python scripts/generate_agent_docs.py # needs the server running
python scripts/build_exes.py # Windows exes into dist/License
MIT — see LICENSE.
Available Tools
7 toolsboardagent_claim_taskB
Claim/lock a todo task for an agent. Returns an error if unavailable. Requires write role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| agent_id | 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 it does contribute two real behavioral facts: failure semantics ('Returns an error if unavailable') and an auth prerequisite ('Requires write role'). It still omits whether the claim is reversible/releasable, what the returned error or success looks like, and whether it mutates persistent state.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, zero filler, and the core action is front-loaded ahead of the failure and permission caveats. Every sentence carries 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 mutation tool with no annotations, no output schema, and two undocumented parameters, the description covers the essentials of failure and permission but leaves the return value, state effects, and parameter meaning unaddressed. Adequate but with clear 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?
Both parameters have 0% schema description coverage, so the description is the only place semantics could be added, yet it never mentions 'id' or 'agent_id'. The names are largely self-explanatory, which softens the gap, but the description does not compensate for the coverage hole.
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 ('Claim/lock') and resource ('todo task') with the acting party ('for an agent'), so the operation is unambiguous. It does not, however, position itself against siblings like boardagent_complete_task or boardagent_update_task, so an agent must infer the boundary itself.
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 word 'todo' implies usage (claim only tasks in a todo state), but there is no explicit when-to-use/when-not statement and no named alternative for the adjacent operations (complete, update, create). Usage is implied rather than directed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_complete_taskA
Mark a task done. Only the owning agent may complete it. Requires write role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| agent_id | 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 usefully discloses the authorization model (owning agent only, write role required), but says nothing about the resulting task state, whether completion is reversible, or error behavior on permission failure.
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 short sentences, action first, prerequisites after. No filler and nothing 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 mutation tool with no annotations, no output schema, and two undocumented parameters, the description covers authorization but omits state-change semantics and parameter meaning. It is minimally adequate but leaves gaps an agent must guess at.
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% — neither 'id' nor 'agent_id' has any description. The description does not identify what 'id' refers to or whose 'agent_id' is expected (the caller's or the owner's), so it fails to compensate for the coverage gap.
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 ('Mark a task done') that is clearly distinct from siblings like claim_task, update_task, and delete_task. It does not explicitly contrast with claim_task, but the action is 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?
Gives concrete preconditions: only the owning agent may complete it and a write role is required. It states when the call will succeed but does not name alternatives for non-owning agents (e.g., claim or update instead).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_create_taskA
Create a new task. Priority is a color: red/orange/yellow/green/blue/white. Tasks are always created as todo (claim to start work). Requires write role.
| Name | Required | Description | Default |
|---|---|---|---|
| due | No | ||
| tags | No | Labels for the task | |
| links | No | Reference URLs or file paths | |
| notes | No | Running log of updates | |
| title | Yes | Task title | |
| project | No | ||
| agent_id | No | Agent namespace for metadata | |
| estimate | No | Time estimate, e.g. '2h' | |
| metadata | No | Freeform JSON metadata | |
| priority | No | white | |
| description | No | ||
| dependencies | No | Blocking task ids/names | |
| custom_fields | No | Custom field name -> value | |
| acceptance_criteria | No | Definition of done |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations at all, the description carries the full burden and does disclose two non-obvious traits: the forced initial status ('always created as todo') and the authorization requirement ('Requires write role'). It still omits return behavior, error/duplicate handling, and whether the new task id is returned.
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 short sentences, front-loaded with the core action and free of filler. The enumerated color list partially duplicates the schema enum, which is the only mild 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 14-parameter mutation tool with no annotations and no output schema, the description covers auth and initial state but says nothing about the returned value, defaults beyond priority, or what most parameters do. Adequate but with visible gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 71% across 14 parameters, so the schema documents most fields itself. The description clarifies that priority is expressed as a color, but that largely restates the enum already present in the schema and adds no meaning for due, estimate, dependencies, custom_fields, or metadata.
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 verb+resource ('Create a new task'), which cleanly separates it from the list/get/update/delete/claim/complete siblings without needing to name them. It never explicitly contrasts against those siblings, so it stops short of a 5.
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 clause 'Tasks are always created as todo (claim to start work)' implies a create-then-claim workflow, which is useful routing guidance. However, no alternative tool is named and there is no explicit when/when-not condition, so the guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_delete_taskA
Delete a task by id. Requires admin role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | 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 discloses the admin-role requirement, which is valuable, but does not state whether deletion is permanent, cascading, reversible, or what the result looks like for a destructive operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, zero waste, and the core action is front-loaded before the permission caveat. Perfectly sized for the tool's complexity.
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 a single parameter, no output schema, and no annotations, the description covers the basic purpose and auth requirement. However, for a destructive delete operation it omits important context about permanence and side effects.
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 is one parameter, id, and schema description coverage is 0%. The description says 'by id' but adds no format or type detail beyond the schema's integer declaration. For a single obvious identifier, this is minimally acceptable.
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 (Delete), a specific resource (task), and the key identifier (by id). This clearly distinguishes the tool from all siblings such as create_task, update_task, claim_task, and complete_task.
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 notes the prerequisite of admin role, which is useful context, but does not say when to use this tool versus alternatives like update_task or complete_task. Usage is implied by the tool name rather than explained.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_get_taskB
Read a single task by id. Requires read role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | 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 that the operation is a read and requires read role, which is useful authorization context, but it does not describe return behavior, missing-record handling, or any other operational traits.
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, front-loaded sentences with no wasted words. The core action is stated first, followed by the role requirement, which is an efficient structure.
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 single-parameter read tool, the description covers the essential action and permission requirement, but it omits return-value expectations and edge-case behavior. It is minimally adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the single parameter has no schema description. The description only repeats 'by id' without clarifying what the id identifies or its expected format, adding virtually no meaning beyond the schema's id integer property.
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 and resource: read a single task by id. It clearly distinguishes itself from list tools by specifying 'single' and 'by id', though it does not explicitly name any sibling 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?
The only usage guidance is 'Requires read role', which states a prerequisite but not when to use this tool versus alternatives like boardagent_list_tasks. There is no explicit when-to-use or when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_list_tasksC
List tasks, optionally filtered. Requires read role.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rows (1-500) | |
| owner | No | ||
| offset | No | Skip N rows | |
| status | No | ||
| project | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses a read-role requirement, which is useful, but omits return format, pagination behavior, and whether results are sorted or truncated. Minimal behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with purpose. However, it is under-specified for a tool with five parameters, making conciseness come at the cost of needed detail.
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?
Inadequate for a list tool with five parameters, no output schema, and no annotations. Missing filter semantics, return shape, and pagination behavior, which an agent needs to invoke it correctly.
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 40% (only limit and offset described). The description adds no parameter details beyond 'optionally filtered', leaving owner, status, and project undocumented. Fails to compensate for low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb 'List' and resource 'tasks', and the plural distinguishes it from the sibling 'boardagent_get_task' which likely retrieves a single task. No explicit sibling differentiation in text, but the intent is 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?
Only mentions 'optionally filtered' and 'Requires read role'. No guidance on when to use this vs get_task, or when to prefer this over claim/complete. No exclusions or alternatives named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
boardagent_update_taskC
Update a task. Metadata is merged into agent_id's namespace. Requires write role.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | ||
| due | No | ||
| tags | No | ||
| links | No | ||
| notes | No | ||
| title | No | ||
| status | No | ||
| project | No | ||
| agent_id | No | ||
| estimate | No | ||
| metadata | No | ||
| priority | No | ||
| description | No | ||
| dependencies | No | ||
| custom_fields | No | ||
| acceptance_criteria | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden, and it does add two genuine behavioral facts: metadata is merged into agent_id's namespace, and a write role is required. It still omits whether omitted fields are preserved or cleared (partial vs full replacement), validation/failure behavior, and reversibility, which matters for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action, and no filler. The brevity is efficient, though it edges into under-specification for a 16-parameter mutation 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?
Given 16 parameters, 0% schema coverage, no annotations, no output schema, and nested objects, this description is far too thin. It covers the core purpose and two behavioral facts but leaves the agent without guidance on the vast majority of inputs.
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% across 16 parameters, so the description must compensate and largely does not. It clarifies only the metadata/agent_id relationship; the status and priority enums, due format, dependencies, custom_fields, and the remaining parameters get no semantic explanation.
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 ('Update a task'), which is enough to distinguish it from the create/list/get/delete/claim/complete siblings by verb. However, it never says which aspects of the task are updatable, leaving the scope of the operation thin relative to a 16-parameter 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 only guidance is 'Requires write role,' which is a prerequisite rather than usage context. There is no statement of when to use this tool versus boardagent_claim_task, boardagent_complete_task, or boardagent_create_task, and no exclusions or conditions.
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.
7 tool updates
v0.2.1- First observed
boardagent_claim_task - First observed
boardagent_complete_task - First observed
boardagent_create_task - First observed
boardagent_delete_task - First observed
boardagent_get_task - First observed
boardagent_list_tasks - First observed
boardagent_update_task
TDQS
Scored across 7 tools
Each tool maps to a distinct action: CRUD (create/list/get/update/delete) plus two clearly-scoped lifecycle operations (claim for locking, complete for finishing). Claim vs update are well separated by their descriptions (lock vs metadata merge), so misselection is unlikely.
All seven tools share the boardagent_ prefix and follow a strict verb_noun pattern (create_task, list_tasks, get_task, delete_task, update_task, claim_task, complete_task). No mixed conventions or vague verbs.
Seven tools is a well-scoped set for a task board, covering the essential operations without bloat. Every tool earns its place.
Full CRUD plus claim/complete lifecycle is strong, but a few natural operations are absent: releasing/unclaiming a task, reopening a completed task, and explicit assignment. These are minor gaps an agent can largely work around.
Maintenance
Related MCP Connectors
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Local-first task manager: create, edit, and complete tasks, projects, and checklists via MCP.
- mcpOAuthnet.todoist
Official Todoist MCP server for AI assistants to manage tasks, projects, and workflows.
Work management where AI agents are first-class members: tasks, projects, memory over hosted MCP
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceMCP server for the Google Tasks API that enables AI agents to read, create, update, delete, and manage Google Tasks.67 npmMIT
- AlicenseNot gradedqualityDmaintenanceMCP server for task management that enables AI agents to read, create, update tasks, and track work sessions, allowing agents and humans to collaborate on the same task board.5 npm9MIT
- FlicenseNot gradedqualityCmaintenanceExposes task management (add, list, complete tasks) and document search (RAG) as MCP tools for AI agents.-
- AlicenseNot gradedqualityAmaintenanceLocal-first task governance board for AI agents, enabling session registration, task creation, progress updates, and evidence reporting via MCP, with separation of agent claims and human acceptance.Apache 2.0