ResumeState MCP Server
OfficialClick 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., "@ResumeState MCP Serverresume my checkout-refactor lane and show the latest handoff"
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.
ResumeState MCP server
Session continuity for AI assistants: resume any work lane where the last session stopped.
ResumeState keeps track of where your work stands: what was tried, what was decided, what's done and what failed. It files that under named lanes, one per line of work, so the next session can pick up where the last one stopped, on any model or vendor. This MCP server gives an assistant the tools to do that.
Tools
Tool | What it does |
| Links this assistant to your ResumeState account with a short approval code (OAuth 2.0 device flow, RFC 8628) |
| Fetches a lane's latest handoff, or the account-wide packet and its lanes |
| Lists your lanes (code, name, last handoff, freshness) |
| Records one structured handoff under a lane: tried, decided, done, failed, state, pointer |
| Shows artifact cards first, and full content only when it's needed |
| Finds routines that worked, from the replay pool |
| Session bookkeeping, transcript ingest, and connection status |
Related MCP server: agent-runtime-mcp
Install
You need Python 3.10+ and uv. Nothing to clone.
Claude Desktop (one-click bundle)
Download resumestate-mcp-1.0.0.mcpb from the latest release
and open it in Claude Desktop to install it.
Claude Code
claude mcp add resumestate -- uvx --from git+https://github.com/Resume-State/resumestate-mcp resumestate-mcpClaude Desktop, Cursor and other MCP clients (claude_desktop_config.json, .cursor/mcp.json, ...)
{
"mcpServers": {
"resumestate": {
"command": "uvx",
"args": ["--from", "git+https://github.com/Resume-State/resumestate-mcp", "resumestate-mcp"]
}
}
}Then ask your assistant to run connect. It shows you a link and a short code. Approve it in your ResumeState account,
and the assistant gets its own pass.
How the connection works
No API key in your config.
connectuses the OAuth 2.0 device flow: you approve the assistant on the website, and it gets a pass scoped to your continuity.The pass stays on your machine. It's kept in
~/.resumestate/mcp-token.json, readable by your user only, and renews itself. It's never printed.The pass is narrow. It can't reach your keys, billing, password or other AIs. You can see it and switch it off under Connected AIs in your account.
No configuration needed.
RESUMESTATE_API_URLdefaults tohttps://resumestate.com; you don't need to set it.
Pricing
Connecting an AI is part of a ResumeState membership. Every plan starts with a 7-day free trial (a card is asked at checkout; cancel anytime). Prices are in Canadian dollars:
Plan | Monthly | Yearly (20% off) |
Solo | $9.99 CAD | $95.88 CAD |
Team | $19.99 CAD | $191.88 CAD |
Enterprise | $99 CAD | $950.40 CAD |
See the plans and the guide to MCP continuity servers.
Privacy
Your continuity stays private to your account, and to your team on Team. This client talks only to the ResumeState API at the address above. Read the privacy page.
Licence
MIT. See LICENSE.
Available Tools
11 toolsconnectA
Connect this assistant to a ResumeState account. Mints a short approval code and link; if it doesn't finish within about a minute, approve at the link and call connect again.
| 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 carries the full disclosure burden. It usefully reveals the async approval flow, the ~1 minute wait, and the re-call pattern, but is silent on permissions required, what account linking grants, what happens on repeated calls (new code each time?), and error/expiry behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two compact sentences that lead with the purpose and then the fallback procedure. No filler, though the retry sentence is dense and could be slightly clearer about success detection.
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-param, no-annotation, no-output-schema auth tool, the description covers the mechanics but omits how the agent knows the connection succeeded or failed, and never cross-references a natural follow-up like status. Adequate but with clear gaps for an authentication flow.
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 takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a 0-param tool applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a concrete verb and target: connect the assistant to a ResumeState account, and names the artifacts it produces (a short approval code and a link). The purpose is clear enough to distinguish it from siblings like resume or list_lanes, though it never explicitly contrasts itself with 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?
Gives an explicit conditional for the retry path ('if it doesn't finish within about a minute, approve at the link and call connect again'), which is genuinely actionable. It does not, however, say when to reach for this tool versus siblings such as handoff or status, so alternative-selection guidance is absent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_artifactB
Fetch one artifact's full content by the id list_artifacts (or a resume packet's
artifacts cards) gave.
| Name | Required | Description | Default |
|---|---|---|---|
| artifact_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 behavioral burden. Beyond 'full content', it discloses nothing about permissions needed, behavior on an unknown/stale id, whether the response is truncated or paginated, or how large content is delivered. For a no-annotation read tool with no output schema, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and resource, with no filler. The parenthetical about id provenance is slightly tangled ('...gave') but still earns its place by telling the agent where to get the id.
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?
This is a simple single-parameter getter and the description covers the core call path, but with no annotations and no output schema it should say more about what comes back (raw content, metadata envelope, truncation) and failure modes. Adequate at minimum-viable level, not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% for the single artifact_id parameter, so the description must compensate. It does add meaningful provenance — the id is the value produced by list_artifacts or embedded in a resume packet — but it gives no format, validity, or error semantics for the 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?
States a specific verb ('Fetch'), resource ('one artifact's full content'), and the keying scheme (by id), which separates it from list_artifacts. It even names list_artifacts as the source of ids, giving implicit sibling differentiation. It falls short of a 5 only because the contrast with list_artifacts ('full content' vs. a listing) is implied rather than stated as a selection rule.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent where the artifact_id comes from (list_artifacts output or a resume packet's `artifacts` cards), which is real usage context. However, it never states when to prefer this tool over alternatives or what to do if the id is stale, so usage remains implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
handoffB
Record one rule-16 HANDOFF entry under a work lane: what was tried, decided, done, and failed, plus where things stand (state: working/failed/open/blocked) and a pointer to detail. Use the lane's code from list_lanes as lane_code.
| Name | Required | Description | Default |
|---|---|---|---|
| by | Yes | ||
| done | Yes | ||
| state | Yes | ||
| tried | Yes | ||
| detail | Yes | ||
| failed | Yes | ||
| decided | Yes | ||
| pointer | No | ||
| summary | No | ||
| lane_code | 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 usefully discloses the state vocabulary (working/failed/open/blocked), which the schema does not encode as an enum, but says nothing about persistence, idempotency, required permissions, or what happens on repeat calls — meaningful gaps for a recording/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?
Two sentences, front-loaded with the core action and the lane_code prerequisite last. Dense but every clause adds information; no 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?
For an 8-required-parameter recording tool with no annotations and no output schema, the description covers the conceptual fields reasonably but omits several parameter meanings and any behavioral/safety context. It is minimally adequate, not 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% across 10 parameters, so the description must compensate. It does explain tried/decided/done/failed and the state values, but leaves 'by', 'summary', and 'pointer' completely unexplained, and 'detail' is only vaguely glossed as 'a pointer to 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?
States a specific verb and resource: 'Record one rule-16 HANDOFF entry under a work lane', with the content shape spelled out. It is clearly distinguishable from read-only siblings like list_lanes or status, though it does not name any sibling it competes with.
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 gives one real prerequisite — use the lane_code obtained from list_lanes — which is genuinely useful routing guidance. However, it never says when this tool is appropriate versus alternatives, nor any when-not conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ingestB
Upload a session transcript or checkpoint to ResumeState so a future session can resume from it. The upload itself stays private to this account and never enters the replay pool; once member sharing starts, routines from your sessions may be shared as your plan says.
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| project | No | ||
| filename | No | session.md |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden and does disclose meaningful traits: the upload is account-private, never enters the replay pool, and may later be shared under the plan. It omits auth requirements, size/format limits, idempotency, and what a call returns, so the disclosure is partial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core action and its purpose, then the privacy/sharing caveat. The second sentence is somewhat dense but each clause adds real information about data handling, so little is wasted.
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 annotations, no output schema, and 0% parameter coverage mean the description must do more than it does. It covers privacy semantics but leaves parameters, format expectations, and result behavior entirely unaddressed, which is thin for a three-parameter upload tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% for three parameters (content, project, filename), so the schema does not compensate. The description says nothing about what content should contain, what project scopes, or what filename affects, leaving all three effectively undocumented.
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 ('Upload a session transcript or checkpoint to ResumeState') plus the goal of future resumption, so the purpose is clear. It does not, however, distinguish itself from plausible siblings like log_session or handoff, which an agent might reasonably confuse with it.
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?
Usage is implied through the outcome ('so a future session can resume from it'), giving a rough sense of when to reach for it. There is no explicit when-to-use guidance, no when-not-to-use, and no naming of alternatives such as log_session or handoff.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_artifactsA
List this account's artifacts as short cards (id, title, kind, one-line summary, link) — optionally only those pinned to one work lane. Bodies are NOT included: call get_artifact with an id only when that artifact's full content is actually needed.
| Name | Required | Description | Default |
|---|---|---|---|
| lane_code | No |
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, and it does disclose the key behavioral trait: bodies are NOT included, only short cards. It does not mention pagination, result limits, ordering, or whether results are account-scoped by auth, which leaves some behavior undisclosed.
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, zero waste, and the highest-value information (what is returned, what is excluded) is front-loaded ahead of the alternative-tool routing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, no annotations, and a single undocumented parameter, the description does the heavy lifting by describing the return fields and the body exclusion. It is nearly complete, but omits pagination/limit behavior and how to source a lane_code, which an agent would need for the filtered mode.
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% for the single lane_code parameter, so the description must compensate. It does explain the filter's meaning (artifacts pinned to one work lane) and that it is optional, but gives no hint about the lane_code value format or where to obtain valid codes (e.g., list_lanes).
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 (List) and resource (this account's artifacts), and enumerates the exact shape returned (id, title, kind, one-line summary, link), so the agent knows what it gets. It also names the sibling get_artifact and distinguishes itself from it, avoiding ambiguity with the other listing 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?
Explicitly routes the agent: use this for cards, and 'call get_artifact with an id only when that artifact's full content is actually needed.' The optional lane filter condition ('only those pinned to one work lane') is also stated, so both the default and the filtered mode are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_lanesA
List this account's work lanes (code, name, last handoff time, freshness) — pick one of these codes to pass to resume/handoff so a session's continuity follows its own work lane.
| 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 carries the burden, and it discloses the returned fields (code, name, last handoff time, freshness), which is meaningful behavioral context since there's no output schema. It doesn't cover pagination, auth, or rate limits, but for a zero-param read-only list those are minor.
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 sentence that front-loads the action and resource and then explains the payoff. No wasted words; every clause 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 zero-parameter list tool with no output schema, the description supplies the return fields and the reason to call it, which is exactly what an agent needs. Nothing material 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 takes zero parameters, so there is no parameter semantics to document; baseline is 4. The description adds the relevant concept of a lane 'code' that is produced here and consumed elsewhere.
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 (List) and resource (this account's work lanes) and even enumerates the returned fields (code, name, last handoff time, freshness). It distinguishes itself from siblings resume/handoff by explaining how the codes it returns are consumed by 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?
Clearly states the downstream use: pick a code to pass to resume/handoff so continuity follows its own work lane. This tells the agent when the tool is relevant, though it doesn't state explicit when-not conditions or compare against other listing tools like list_artifacts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
log_sessionB
Record that a session under the given label happened, for this account's own session bookkeeping (separate from the per-lane continuity resume/handoff track).
| Name | Required | Description | Default |
|---|---|---|---|
| label | 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 discloses only that this is bookkeeping distinct from the continuity track; it says nothing about permissions, whether repeated labels create duplicates, idempotency, or what the call returns.
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 with the action and free of filler. The parenthetical clarification is slightly dense but earns its place by disambiguating from siblings.
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 trivial one-parameter tool with no output schema, the description is mostly adequate, but it leaves the label's meaning and the effect of logging (what gets recorded, whether it is retrievable) unstated, which matters given zero annotation and zero schema-description 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 description coverage is 0% for the single required 'label' parameter. The description merely restates 'under the given label' without defining the label's format, uniqueness, or scope, so it adds no meaning beyond the schema's bare string type.
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 ('Record') and resource ('a session under the given label'), and explicitly separates it from the resume/handoff continuity track. It is clear enough to distinguish from siblings, though what constitutes a 'session' or a 'label' is left undefined.
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 phrase 'for this account's own session bookkeeping (separate from the per-lane continuity resume/handoff track)' implies when this tool applies and rules out the continuity siblings. However, it never states the concrete trigger for logging a session or what happens if you should have used resume/handoff instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_getA
Fetch one replay by its code (RP- and ten hex digits): its steps and templates, each step's
effect (read / idempotent-write / destructive) and whether it is checked, the slots to fill, the
evidence, its lifespan, the live record from runs, and policy -- the fixed rules for running
it. Follow the policy: stop at the first failed step; idempotent writes need the user's
permission; destructive steps need the owner's explicit yes.
| Name | Required | Description | Default |
|---|---|---|---|
| code | 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 substantial work: it discloses that steps carry read/idempotent-write/destructive effects and lays out the operating rules (stop at first failure, permission for idempotent writes, owner consent for destructive steps). It stops short of describing error handling, pagination, or what a failed fetch returns.
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?
Front-loads the core action and identifier format, then enumerates return contents and closes with the policy. It is dense and long for one sentence, but each clause carries information an agent needs.
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 exists, yet the description enumerates the return payload (steps, templates, effects, checked status, slots, evidence, lifespan, live record, policy) and the rules for acting on it. For a one-parameter read tool this is complete enough to invoke and interpret.
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% and the lone parameter has only a bare 'Code' title, but the description compensates by specifying the exact format ('RP- and ten hex digits'). That is real added meaning beyond the schema, though it omits case-sensitivity or validation behavior.
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 (Fetch) and resource (one replay) and pins it to a unique identifier format ('RP- and ten hex digits'), which clearly separates it from replay_search. It then enumerates exactly what the fetched replay contains.
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 lookup key ('by its code') implies usage but there is no explicit when-to-use statement or routing to the obvious sibling replay_search for agents that lack a code. The 'follow the policy' guidance addresses execution after retrieval, not tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
replay_searchA
Find replays (routines that worked in real sessions, with the values we can recognise turned into blank slots) this account can use, as short cards: code, title, topic, pool, kind, risk, proven, status. Optionally narrow by words in the title or by a topic (e.g. version-control, testing, databases). Call replay_get with a code for the steps.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | ||
| topic | No |
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 useful behavior: results are scoped to 'this account', returned as short cards with named fields, and the stored values are anonymised into blank slots. It is silent on pagination, result caps, and whether either filter is required, which an agent would want before calling.
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 the core definition front-loaded, then filtering options, then the next-step pointer. The parenthetical explanation of 'replays' earns its space because the term is domain-specific; no sentence is 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?
With no output schema and no annotations, the description appropriately names the card fields and the follow-up tool, so an agent knows what comes back and what to do with a code. Remaining gaps are result limits and filter-combination semantics, both minor for a search tool with two optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description has to compensate, and it largely does: 'query' is explained as words matched against the title, and 'topic' is given meaning plus concrete examples (version-control, testing, databases). It still doesn't say whether the two filters are ANDed or how partial matches behave.
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 ('Find replays') and goes further by defining the domain term ('routines that worked in real sessions, with the values we can recognise turned into blank slots'). It enumerates the returned card fields, which makes the tool's output shape unmistakable and clearly separates it from replay_get.
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?
Explains the two narrowing options ('words in the title' vs 'by a topic') and explicitly routes the agent onward: 'Call replay_get with a code for the steps.' That names the alternative and the condition selecting it, but there is no guidance on when not to search, or how the two filters combine.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resumeA
Fetch the connected ResumeState account's continuity. With a work-lane code (list_lanes gives the codes), returns that lane's own latest handoff + its children instead of the account-wide packet. With neither project nor lane_code, the packet also lists the account's lanes so a caller with no code yet can pick one. Reports a not-yet-current compile state instead of stale packet content.
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | ||
| lane_code | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the whole burden and does disclose real behavior: lane-scoped results include the latest handoff plus children versus the account-wide packet, the no-arg fallback also lists lanes, and a not-yet-current compile state is reported instead of stale content. It omits auth/permission requirements and failure modes, so it is strong but not complete.
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 the core action before the conditional behavior, and each sentence adds distinct information. Slightly dense clause stacking ('its own latest handoff + its children instead of the account-wide packet'), but no 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?
With no output schema and no annotations, the description does describe return content (packet, handoff, children, lane list, compile state), which is genuinely helpful. It still leaves the project parameter and any error/auth behavior unexplained, so a caller cannot fully predict invocation outcomes.
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%, so the description must compensate. It explains lane_code well (a work-lane code, obtainable from list_lanes) and implies the default behavior when it is absent, but the 'project' parameter is never explained — what it scopes, its format, or where to get it — leaving half the parameters under-specified.
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 (fetch) and resource (the account's continuity packet), and disambiguates itself from siblings by explaining the lane_code branch and pointing at list_lanes for codes. The domain term 'continuity'/'packet' is jargon that isn't defined, which keeps it short of a 5, but an agent can still tell what the tool returns.
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 explicit branching conditions: pass lane_code for a lane-scoped packet, pass neither project nor lane_code to get the lane list for discovery, and use list_lanes to obtain codes. It stops short of saying when to prefer this over status or replay_get, so it is clear context without full alternative routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
statusB
Check whether this assistant is connected to ResumeState and whether the stored connection is still valid.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden. It implies a read-only check but never states whether it is side-effect free, whether it requires auth or a token, how stale a 'stored connection' must be to count as invalid, or what the result contains. For a tool whose entire purpose is to report state, the absence of any return-shape hint (and no output schema) is a real gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single well-formed sentence with no filler, and the two things it verifies (connection existence, connection validity) are front-loaded immediately. Nothing to trim.
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 (no params, no nested objects) and the description covers its two checks, but with no annotations and no output schema, an agent still cannot anticipate what a success or failure response looks like. Adequate for the tool's low complexity, but not fully self-contained.
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 takes zero parameters, so there is nothing for the description to disambiguate beyond what the empty schema already shows. Baseline 4 applies for a no-parameter 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 names a specific verb ('Check') and a precise resource ('connection to ResumeState', 'stored connection validity'), which is far more informative than the bare name 'status'. It implies a distinction from the 'connect' sibling (establishing a connection) but never states that distinction explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer this is a diagnostic to run before or instead of connect/resume, but the description gives no explicit when-to-use, when-not-to-use, or alternative routing. With siblings like connect and resume in the same family, an explicit contrast would have been cheap and valuable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v1.0.0- First observed
connect - First observed
get_artifact - First observed
handoff - First observed
ingest - First observed
list_artifacts - First observed
list_lanes - First observed
log_session - First observed
replay_get - First observed
replay_search - First observed
resume - First observed
status
TDQS
Scored across 11 tools
Most tools have distinct roles: replay_search/replay_get and list_artifacts/get_artifact are clean card-then-fetch pairs, and connect vs status are related but distinguishable. However, handoff, log_session, and ingest all read as 'record activity for this account,' and resume's fallback to listing lanes overlaps with list_lanes, creating some boundaries an agent could misjudge.
A clear verb_noun convention exists in list_lanes, list_artifacts, get_artifact, and log_session, but replay_search/replay_get invert it to noun_verb while connect, resume, handoff, ingest, and status are bare verbs/nouns with no shared pattern. The mix is still readable in context but not predictable.
Eleven tools is well within the ideal 3-15 range and each earns its place across connection, continuity, lanes, artifacts, replays, and ingestion. Nothing feels padded or missing at the count level.
The surface covers the continuity lifecycle well: connect/status for auth, resume/handoff for per-lane state, list_lanes for navigation, artifacts and replays for retrieval, and ingest/log_session for recording. Artifacts are read-only with no create/update/delete exposed, and lanes have no management operations, but these are plausible external responsibilities rather than dead ends.
Maintenance
Related MCP Connectors
Persistent work tracking for AI agents: tasks, status and history that follow you across machines
Gives your AI assistant persistent memory and intelligence about your work patterns.
Shared task layer for AI agents: tasks, handoffs and decisions that persist across tools.
Durable agent-to-agent handoffs and shared scratchpad for multi-agent workflows.
Related MCP Servers
- FlicenseBqualityNot gradedmaintenanceA state persistence layer that enables seamless handoffs between different AI coding assistants by maintaining a shared context bus. It provides tools for tracking summaries, next steps, and active files to ensure continuity across development sessions.3-
- FlicenseNot gradedqualityDmaintenanceEnables persistent task and goal management with AI-powered decomposition, cross-session continuity, and fault-tolerant multi-agent pipelines.1-
- FlicenseNot gradedqualityCmaintenanceProvides session persistence, crash recovery, decision tracking, and context compression for AI assistants, enabling seamless multi-session continuity.-
- AlicenseNot gradedqualityDmaintenanceGives AI agents persistent memory, handoffs, and shared context across sessions, enabling seamless continuity and multi-agent collaboration.25 npm67-