mcp-session-threads
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., "@mcp-session-threadscreate a thread for each review finding"
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.
mcp-session-threads
An MCP server that turns an agent's review and decision loops into a browser board of threads you answer at your own pace — instead of a wall of text in the terminal.
When an agent has several findings, questions, or decisions for you, it posts each as its own thread on a local web board. You reply per‑thread with quick‑reply buttons or free text, dump unrelated thoughts in a side notes rail, and submit once. The agent picks up your batched feedback and responds — all on one stable local URL, with a fresh board per project.


Why
You're deep in one Claude Code session and the work piles up:
you spot several improvement ideas at once and don't want to fork a separate session for each;
the agent hands you ~30 review findings to work through together;
juggling multiple sessions is a chore — and parallel agents happily crash into each other's work.
The fix is one system, one context window — but with each thread shown as its own chat, so it stays easy to keep track. You answer threads independently, at your own pace, and send your feedback back in batches. The agent keeps working in a single session; nothing forks, nothing collides, nothing gets lost in the scrollback.
Related MCP server: Lens
Install
Requires Node ≥ 18. No global install needed — run it with npx.
Claude Code
claude mcp add session-threads -- npx -y mcp-session-threadsAny MCP client
Point your client at the command npx -y mcp-session-threads (stdio transport). Or install globally:
npm i -g mcp-session-threads
mcp-session-threads # this is the stdio MCP serverThe first tool call prints the board URL — open it in your browser (default http://127.0.0.1:4517/b/<id>).
How it works
Two processes, auto‑managed:
MCP server (
mcp-session-threads, stdio) — one per client session. Exposes the tools below.Daemon (auto‑started on first use) — one long‑lived HTTP server on a fixed port hosting many boards and the web UI. It persists, so a board's URL never moves between restarts.
Each session resolves a stable board by key (the working directory by default), so:
the URL is the same across restarts for a given project,
concurrent sessions in different projects get separate boards,
no drift, no cross‑session bleed‑over.
Boards are stored as JSON under ~/.session-threads/boards.
Web board
Command‑center list grouped into lanes — Needs your attention, Waiting on agent, Deferred, Resolved — newest first; click one to open it full‑screen as a chat.
Read/unread per thread: unread = still awaiting your response; cleared only when you reply or submit (never by merely viewing). Shown as a marker in the list and a pill in the full‑screen view.
Markdown in bodies/messages — code, tables, lists, links — rendered safely (HTML escaped,
javascript:links neutralised).Freestyle tags (
high,security,question, …) shown as auto‑coloured badges.Quick replies inline in the chat; a click stages the reply as an editable pending bubble. Your drafts persist in the browser until you submit.
Other notes rail, always open, for thoughts unrelated to any thread — each submission is preserved.
Turn‑aware progress: the top bar + browser title switch between agent progress while it works and your reply progress when it's your turn; optional per‑board sounds confirm when your feedback syncs and ping when it becomes your turn.
Keyboard:
k/jnext/prev thread,Enter/eopen or reply,h/lscroll,rresolve,Escleave.
Tools
Tool | Purpose |
| Open a thread (Markdown body, freestyle tags, tailored quick‑reply buttons). |
| Append an agent message; reopens a resolved thread. |
| Mark a thread done / reopen it. |
| Park a thread in the Deferred lane (excluded from the review counts) until it's a good time. |
| Un‑defer a thread and post a "why pick this up now" message; brings it back as unread. |
| Reconcile board state. |
| Pin an overall TL;DR at the top of the board. |
| The stable board URL to share with the user. |
| One long‑blocking call that returns the user's batched replies + notes. |
| All durable "other notes" submissions. |
| Share progress (shown live in the UI). |
| Board management & recovery. |
Failed calls throw — the agent never falsely reports a write that didn't land.
Configuration
All optional, via environment variables:
Variable | Default | Meaning |
|
| Daemon port. |
|
| Daemon host. |
|
| Where boards are persisted. |
| current working directory | Stable board identity for the session. |
| derived from the key | Human label shown on the boards index. |
Development
npm install
npm test # node --test: unit (store, feedback, markdown), HTTP integration, and MCP e2e
npm run daemon # run the HTTP daemon directlyArchitecture (src/): board-store.js (model + persistence, event‑emitting), feedback.js (long‑poll hub), http-server.js (REST + SSE + static), client.js (resilient daemon client), tools.js (MCP tool wiring), mcp.js / daemon.js (entry points). The Markdown renderer (public/markdown.js) is shared by the UI and the tests.
License
MIT
Available Tools
15 toolsadd_messageA
Append an agent message to a thread (Markdown). Start with a one-line summary of what the user asked. Optionally refresh actions/tags. Adding a message to a resolved thread reopens it.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | ||
| text | Yes | ||
| actions | No | ||
| thread_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full responsibility. It discloses that adding to a resolved thread reopens it and optionally refreshes actions/tags, but lacks details on idempotency, permissions, or side effects beyond reopening.
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 three concise sentences, front-loading the core purpose. No extraneous information, each sentence 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 four parameters, zero schema descriptions, and no output schema, the description omits essential details for required params (thread_id, text) and does not describe expected output or error conditions.
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%, yet the description only mentions optional refresh of 'actions' and 'tags', leaving required parameters 'thread_id' and 'text' completely unexplained. The text property's schema reference is erroneous, further reducing clarity.
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 appends an agent message to a thread in Markdown format, which distinguishes it from sibling tools like create_thread or reopen_thread. The verb 'append' and resource 'message' are specific and 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 implies usage context (e.g., adding to a resolved thread reopens it) but does not explicitly guide when to use this tool versus alternatives like reopen_thread. No direct when-to-use or when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
backup_boardA
Write a timestamped backup file of THIS board to the daemon's backups/ folder. Returns the path.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must cover behavioral traits. It indicates a write operation and returns a path, but does not mention whether it overwrites, side effects, or permissions needed. For a 0-param tool, this is minimal but not fully 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?
A single, 14-word sentence that front-loads the action and includes all necessary information without any superfluous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers action, resource, destination, and return value. For a simple tool with no parameters or output schema, it is mostly complete, but lacks details on error conditions or concurrency behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters; the schema coverage is 100%. The description adds meaning by specifying the destination and output, fulfilling the baseline expectation for a parameterless tool.
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 (write backup), the specific resource (THIS board), the destination (daemon's backups/ folder), and the return value (the path). No sibling tool performs this function, so it is well-distinguished.
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 the tool should be used to backup the current board. It does not provide explicit when-not-to-use or alternatives, but given no sibling tool does backups, the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_threadA
Open a thread on this project's board (one per finding/question/note). body supports Markdown (incl. tables). tags are freestyle marker badges. actions are tailored quick-reply buttons (default ["Fix","Approve"]).
| Name | Required | Description | Default |
|---|---|---|---|
| body | No | ||
| tags | No | ||
| title | Yes | ||
| actions | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Mentions Markdown support, tags, and default actions, but omits side effects, permissions, or rate limits. Mutation is implied.
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, front-loaded with main purpose, then concise details. Every sentence adds value without waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main parameters and their semantics, but lacks mention of required fields, return value, or when to use vs siblings. Adequate for a creation 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?
With 0% schema coverage, description adds meaning: body supports Markdown, tags are freestyle badges, actions are quick-reply buttons with defaults. Does not explicitly state that title is required or data 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?
Clearly states it opens a thread on a project board, with specific purpose 'one per finding/question/note', distinguishing it from sibling tools like reopen_thread or resolve_thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage context ('one per finding/question/note'), but does not explicitly state when not to use or mention alternatives among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
defer_threadA
Park a thread as "deferred": it drops into a Deferred lane below Waiting-on-agent and is excluded from the review counts and the "needs your attention" set, so the user can ignore it for now. Use for real work that is not a good time to tackle yet (blocked, out of scope for this pass, better done after X). Optionally pass a short reason (posted as a note on the thread).
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | ||
| thread_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description discloses key effects: dropping into Deferred lane, exclusion from review counts and attention set, and posting reason as a note. Could mention reversibility (e.g., via resume_thread) but still informative.
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 purpose. No wasted words; every sentence 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 annotations or output schema, the description covers core behavior, use cases, and effect on UI. Could mention prerequisites (e.g., thread state) but overall complete for a simple defer action.
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 description adds meaning to the 'reason' parameter (optional, posted as note). The thread_id is implied by context but not explicitly described; schema coverage is 0% so description compensates partially.
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 'park' and clearly defines the resource (thread) and the resulting state ('deferred lane', excluded from counts). It distinguishes from siblings like resolve_thread or reopen_thread.
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 when to use: 'real work that is not a good time to tackle yet' with examples. Does not explicitly mention when not to use or alternatives, but the context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
finish_workingC
Tell the UI the whole batch is done (title highlights, optional sound).
| Name | Required | Description | Default |
|---|---|---|---|
| activity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It mentions UI effects (title highlights, optional sound) but does not explain side effects, state changes, or what happens if the activity parameter is used. Lacks depth for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise with one sentence, but it is too brief to cover necessary information. It is not wasteful, but it sacrifices completeness for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter and no annotations or output schema, the description should provide more context about the parameter, return behavior, and error states. It is incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'activity' has no schema description and the tool description does not explain its meaning or usage. The only hint is 'optional sound' which may relate, but it is insufficient. 0% schema coverage and no added detail.
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 tells the UI that the entire batch is done, and mentions title highlights and optional sound, making the purpose specific and distinguishable from sibling tools like 'start_working'.
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, no prerequisites or conditions. The description implies it is used after finishing a batch but does not explicitly state context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_board_urlA
Return this project's stable board URL. Share it with the user.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description implies read-only, non-destructive behavior. Doesn't mention permissions or side effects, but it's a simple getter with no parameters.
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 unnecessary words. Every sentence provides value: what the tool does and what to do with the result.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description fully explains purpose and outcome. No gaps given the simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist; schema coverage is 100%. Description doesn't need to add parameter info. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it returns the project's stable board URL. Verb 'return' and resource 'stable board URL' are specific. Siblings are unrelated thread tools, so clear distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to share with the user, indicating when to use. No explicit when-not or alternatives, but context is sufficient for this simple tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_notesA
Return ALL free-form "other notes" the user submitted on this board (durable; each submission a separate entry).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It reveals that notes are durable and each submission is a separate entry, but fails to disclose return format, ordering, or any side effects. Moderate but incomplete given the lack of 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, front-loaded sentence with no unnecessary words. It conveys the essential information 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?
While the description covers the main function and data characteristics, it omits output format details (e.g., array, fields) and does not mention any limits or pagination. Given no output schema, more completeness would be beneficial.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters (100% coverage), so the baseline is 4. The description adds meaning by specifying what the tool returns (notes, all, board-scoped) beyond the empty 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 indicates the verb 'Return' and the resource 'ALL free-form notes', explicitly scoping to the board and noting durability and separate entries. It distinguishes from sibling tools (thread actions, board operations) by focusing on notes retrieval.
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, when not to use it, or any prerequisites. The description simply states what it does without contextual cues for the AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_threadsC
List threads on this board (id, title, tags, status, work-state, message count).
| Name | Required | Description | Default |
|---|---|---|---|
| include_resolved | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must fully disclose behavior. It implies a read operation but does not mention pagination, default filtering, rate limits, or scope (e.g., whether it lists all threads or limited set).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise, but it omits important behavioral details and parameter explanation. Appropriate length for a simple tool but incomplete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists returned fields. However, given no annotations and missing parameter details, the description is barely adequate for a simple 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 has 0% description coverage, and the description does not explain the 'include_resolved' parameter. The parameter's role and default are left implicit.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List' and resource 'threads', and specifies returned fields (id, title, tags, status, work-state, message count). It is distinct from sibling tools like create_thread, resolve_thread, 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?
No guidance on when to use this tool vs alternatives such as work_on_thread or backup_board. No context on prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reopen_threadA
Reopen a resolved thread to continue it.
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes |
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 merely states the action without disclosing any side effects, permissions, or state changes, which is minimal for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no wasted words, effectively communicating the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool, the description is adequate but misses distinctions from resume_thread and fails to mention prerequisites like the thread being resolved. It is minimally 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%, but the description does not explain the thread_id parameter. It adds no semantic value beyond the schema's type definition.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'reopen' and resource 'resolved thread', clearly stating the purpose to continue it. It distinguishes well from sibling tools like resolve_thread and resume_thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use (on a resolved thread), but lacks explicit exclusions or comparisons to alternatives like resume_thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_threadA
Mark a thread resolved (only small/clear-cut items — leave heavy/uncertain changes open for the user).
| Name | Required | Description | Default |
|---|---|---|---|
| thread_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action but does not disclose behavioral details such as reversibility, permission requirements, or side effects. The phrase 'mark resolved' implies a state change but lacks further transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words. It efficiently communicates purpose and usage guideline without 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?
Given the tool's simplicity (one simple parameter, no output schema), the description is mostly complete. It covers purpose and usage, but could be slightly improved by mentioning any return value or side effects, though not strictly necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, thread_id, is self-explanatory from its name. The description does not add additional meaning beyond what the schema provides. Since the schema is simple, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the action ('mark a thread resolved') and distinguishes from siblings by specifying the scope ('only small/clear-cut items'), making it clear what the tool does and when it is appropriate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool ('only small/clear-cut items') and what to leave for the user ('heavy/uncertain changes'), offering clear context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resume_threadA
Un-defer a parked thread AND post a message recommending the user pick it up now — message must explain WHY now is a good time (e.g. the blocker is cleared, the prerequisite landed). This brings the thread back to the top of "Needs your attention" as unread.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| thread_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes side effects: posts a message and brings thread to top as unread. Discloses the message requirement (explain why now is a good time). However, no mention of permissions or prerequisites, and a schema error (message ref) might confuse. With no annotations, this is fairly 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, front-loaded with action, no wasted words. Efficient and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers action, side effects, and message content requirement. Lacks explanation of return value and does not address the schema error. Still largely complete for the tool's purpose given no output schema and low schema coverage.
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% (no param descriptions). Description explains 'message' must contain a reason, but not its format. 'thread_id' is not explained. Adds some meaning but not fully compensatory for both parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action: un-defer a parked thread and post a message. It specifies the purpose (recommending user to pick up now) and the effect (brings thread to top as unread). Distinguishes from siblings like reopen_thread, create_thread, and defer_thread.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage when a thread is parked and a blocker is cleared, but no explicit when-to-use or when-not-to-use compared to siblings. No guidance on alternatives like reopen_thread or defer_thread.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_summaryA
Pin an overall TL;DR (Markdown) at the top of the board. Empty string clears it.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description discloses key behaviors: it pins at the top, supports Markdown, and clearing is done via empty string. These go beyond a simple set and are non-obvious.
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?
One sentence that front-loads the purpose and immediately addresses the key variation (clearing). 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?
For a simple set/clear tool with one parameter and no output schema, the description covers the behavior, format, and edge case. Could mention overwriting behavior, but it's implied.
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 description adds meaning to the single parameter 'text' by explaining it is the Markdown content and that an empty string clears the summary. With 0% schema coverage, this is essential and well-provided.
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: 'Pin an overall TL;DR (Markdown) at the top of the board.' The verb 'pin' and resource 'overall TL;DR' (i.e., summary) uniquely identify this tool among siblings, which focus on threads and messages.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or avoid this tool. However, the purpose is singular and obvious—setting or clearing a board summary—so a minimal score of 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
start_workingC
Tell the UI you started acting on the feedback (shows a working indicator).
| Name | Required | Description | Default |
|---|---|---|---|
| activity | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions showing a working indicator but doesn't disclose side effects, whether repeated calls reset the indicator, or if the 'activity' parameter alters behavior. Minimal transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded, and clear. However, it could be improved by adding a brief note on the parameter. It is concise but overly sparse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with one optional parameter and no output schema, the description should cover the parameter's role. It fails to do so, leaving a gap for the agent on how to properly invoke the tool with or without the parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'activity' has no schema description (0% coverage), and the description does not mention it at all. The agent gets no meaning for this parameter beyond its type (string).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to tell the UI that the user started acting on feedback, which shows a working indicator. It distinguishes from sibling tools like 'finish_working' (stops indicator) and 'work_on_thread' (actual work on a thread).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. For example, it doesn't clarify when to use 'start_working' instead of 'work_on_thread' or other notification tools. The agent has to infer the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wait_for_feedbackA
Block until the user submits their batched replies/notes on the board, then return them. ONE long call (default ~55 min) — do not poll in a loop; it returns instantly on submit and sends progress so it will not time out. Automatically flips the board to "your turn" (title + sound) while blocking and back to idle on return. Survives a daemon restart mid-wait (reconnects and keeps waiting); only if reconnection keeps failing does it return with a hint to call it once more. Create the threads BEFORE calling this.
| Name | Required | Description | Default |
|---|---|---|---|
| timeout_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description fully discloses behavioral traits: blocking until submit, progress sending, automatic board state flipping, survival across daemon restart, and reconnection failure handling. This covers all critical behaviors an agent needs.
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, starting with the main purpose and then detailing behaviors. While it is somewhat lengthy, each sentence adds valuable information. Minor redundancy in explaining 'one long call' could be trimmed, but overall it is efficient for the 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?
The description thoroughly covers behavioral aspects but fails to document the only parameter (timeout_seconds) and does not specify the return value format. Given the tool's complexity and lack of output schema, these omissions reduce completeness to an adequate but not thorough level.
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 one parameter (timeout_seconds) with 0% schema description coverage, meaning the description does not explain it at all. The parameter's semantics—such as its effect, default, or format—are absent, forcing the agent to guess or rely on external knowledge.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's primary function: 'Block until the user submits their batched replies/notes on the board, then return them.' It uses a specific verb ('block' and 'return') and identifies the resource ('batched replies/notes'), distinguishing it from sibling tools that handle threads independently.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit usage guidance: 'Create the threads BEFORE calling this' and advises against polling ('do not poll in a loop'). It explains the blocking nature and default timeout, but does not explicitly list when not to use it or compare with alternatives, missing a complete usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
work_on_threadB
Tell the UI you are now working on a specific thread (highlighted as in-progress).
| Name | Required | Description | Default |
|---|---|---|---|
| thread_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. It discloses the behavioral effect: highlighting the thread as in-progress in the UI. However, it does not mention whether the action is reversible, if it affects other threads, or if it triggers notifications. More transparency about side effects would be beneficial.
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 directly conveys the core action. No unnecessary words, well front-loaded. It efficiently uses 13 words to describe the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations, output schema, and parameter descriptions, the description is minimal. It does not explain return values, error cases, or prerequisites. With 13 sibling tools, more context to differentiate would be helpful, especially regarding the relationship to 'start_working' and 'resume_thread'.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter 'thread_id' has no description in the schema, and the description does not elaborate on its format or meaning (beyond 'specifc thread'). Schema coverage is 0%, so the description should compensate but does not. An explanation that 'thread_id' is the unique identifier of the thread to mark as in-progress would improve clarity.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: to tell the UI that the user is working on a specific thread, marking it as in-progress. The verb 'tell the UI' and resource 'thread' are specific, and it is distinguishable from siblings like 'start_working' which may be broader. However, it could more explicitly differentiate from 'start_working'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies usage when wanting to indicate work on a thread, but lacks context about prerequisites (e.g., must have the board open) or exclusions (e.g., not for starting general work). Sibling tools like 'start_working' and 'resume_thread' exist without any comparative notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Each tool targets a distinct action on threads or board state: creation, messaging, resolution, deferral, listing, waiting, notes, and working indicators. Overlaps like add_message reopening are clearly documented.
All tools follow a consistent verb_noun pattern in snake_case (e.g., create_thread, wait_for_feedback, start_working), making it easy for an agent to infer functionality.
15 tools cover the full thread lifecycle and board interactions. While slightly numerous, each has a clear purpose; no obvious bloat or missing core functionality.
The surface covers creating, messaging, resolving, deferring, listing, waiting for feedback, notes, and working states. Minor gaps include no explicit delete/update thread (though add_message can update tags) and no get_thread_by_id (only list).
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
An MCP server that automatically collects feedback on your MCP server.
Hybrid human + AI expertise for faster, trusted answers and decisions via MCP Server.
MCP server for building and testing AI agents with multi-model experimentation and insights.
A paid remote MCP for AI agent browser MCP session, built to return verdicts, receipts, usage logs,
Related MCP Servers
- AlicenseAqualityAmaintenanceAn MCP server designed for managing One-By-One (OBO) review sessions through specialized tools for creating, navigating, and resolving priority-scored items. It automates session tracking and item management within standardized JSON workflows to replace manual file-write operations.9AGPL 3.0
- AlicenseNot gradedqualityDmaintenanceMCP server for visual feedback, video direction, and QA assertions on web pages, enabling AI agents to read, reply, and resolve annotations in real time.4MIT
- FlicenseAqualityCmaintenanceMCP server providing feedback-oriented development workflows with a Web UI and desktop application for interactive user confirmation, session tracking, and smart prompt management.2
- AlicenseNot gradedqualityDmaintenanceProvides a web-based interactive feedback server for MCP, replacing desktop GUI with a browser interface supporting full CJK input and bilingual UI.1MIT
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/gweiermann/mcp-session-threads'
If you have feedback or need assistance with the MCP directory API, please join our Discord server