Skip to main content
Glama
mrswer

super-productivity-rest-mcp

by mrswer

super-productivity-rest-mcp

An MCP server that exposes Super Productivity's built-in Local REST API as MCP tools — so Claude (or any other MCP client) can list, create, update, archive and control your tasks, projects and tags through plain conversation.

License: MIT Node

Two transports, two branches — pick the one your client needs

  • main (this branch) — stdio. The client spawns the server as a local subprocess. This is what you want for Claude Code.

  • http-transportStreamable HTTP on http://127.0.0.1:3877/mcp, run as a long-lived local service. Use it for Claude Cowork / Claude Desktop, which reach it through the mcp-remote bridge.

Same 15 tools and the same Local REST API underneath — only the transport differs.

Why this exists

Super Productivity ships with a Local REST API (http://127.0.0.1:3876), but it doesn't speak MCP — it's a plain REST API. This project is a thin, direct translation layer between the two, with a few design choices that set it apart from other Super Productivity MCP integrations:

  • Talks directly to the official Local REST API — no Super Productivity plugin to install, no Node-execution permission to grant, no file-based polling. One HTTP request per tool call.

  • Full coverage of everything the Local REST API exposes: task CRUD (including delete), archive/restore, current-task control (start/stop/set/get), projects, tags, and health/status — 15 tools total, mapped 1:1 to the API's endpoints.

  • Handles the access-token variant. Some Super Productivity versions require a bearer token for the Local REST API and some don't — this server supports both via an optional environment variable.

  • Zero extra runtime dependencies beyond Node.js — no Python, no Super Productivity plugin bundle.

Related MCP server: Super Productivity MCP Server

Prerequisites

  • Super Productivity desktop app (Electron — the Local REST API is not available in the web version)

  • Node.js 18+

  • An MCP client that can spawn a local (stdio) server — this README focuses on Claude Code. For clients that connect by URL instead, see the http-transport branch.

1. Enable the Local REST API in Super Productivity

Go to Settings → Misc → Enable local REST API. This starts a server on http://127.0.0.1:3876 (the port is fixed and not configurable). It only accepts connections from localhost.

Check whether your installation also requires an access token:

curl -i http://127.0.0.1:3876/tasks
  • 200 OK with a task list → no token needed, skip the SP_REST_TOKEN parts below.

  • 401 Unauthorized → copy the token from Settings → Misc → Access Token; you'll need it in step 3.

2. Install

git clone https://github.com/mrswer/super-productivity-rest-mcp.git
cd super-productivity-rest-mcp
npm install

3. Register with Claude Code

The server's name must come before the --scope/-e flags, or the CLI misparses the following arguments as more environment variables.

Without a token:

claude mcp add super-productivity --scope user -- node /absolute/path/to/super-productivity-rest-mcp/server.js

With a token:

claude mcp add super-productivity --scope user -e SP_REST_TOKEN=your-token-here -- node /absolute/path/to/super-productivity-rest-mcp/server.js

--scope user registers the server for every project, in both the claude CLI and the Claude Code UI (they share the same ~/.claude.json).

Verify:

claude mcp list
# super-productivity: node /path/to/server.js - ✔ Connected

Other MCP clients

Any client that supports local stdio servers works the same way — point it at node /absolute/path/to/server.js, and set SP_REST_TOKEN (and optionally SP_REST_BASE_URL) in its environment-variable configuration if needed. See .env.example for the variables this server reads (note: it does not load .env files automatically — your MCP client must pass real environment variables).

Note on clients that connect by URL: this branch speaks stdio only, so a client that wants an MCP endpoint rather than a subprocess — Claude Cowork and Claude Desktop among them — cannot use it. The http-transport branch serves the same tools over Streamable HTTP on localhost for exactly that case. Either way the server must run on the same machine as Super Productivity.

Usage

Ask your MCP client things like:

  • "Show my tasks for today"

  • "Create a task 'Review PR #42' in the Work project"

  • "What's my currently running task?"

  • "Mark task X as done"

By default, sp_list_tasks excludes completed tasks (includeDone defaults to false), matching a typical "what's left to do" view. Ask for "including completed tasks" if you want the full count to match what Super Productivity's UI shows for the day.

Available tools

Tool

Description

sp_health

Check whether the Local REST API is reachable and ready

sp_get_status

Get the current task and task counts

sp_list_tasks

List tasks, filterable by title, project, tag, completion state, source

sp_get_task

Get a single task by id

sp_create_task

Create a task (supports subtasks via parentId)

sp_update_task

Update a task's title, notes, project, tags, estimate, due date, etc.

sp_delete_task

Delete a task

sp_start_task

Start a task (set as current)

sp_archive_task

Archive a task

sp_restore_task

Restore an archived task

sp_get_current_task

Get the currently active task, if any

sp_set_current_task

Set or clear the current task

sp_stop_current_task

Stop the current task

sp_list_projects

List projects, optionally filtered by title

sp_list_tags

List tags, optionally filtered by title

Environment variables

Variable

Required

Default

Description

SP_REST_TOKEN

Only if your Super Productivity requires it

Bearer token from Settings → Misc → Access Token

SP_REST_BASE_URL

No

http://127.0.0.1:3876

Override if running the server on a different host than Super Productivity

Troubleshooting

Symptom

Likely cause

Fix

✘ Failed to connect in claude mcp list

Wrong path to server.js, or dependencies not installed

Check the path (claude mcp get super-productivity), run npm install in the project directory

"Could not reach Super Productivity's Local REST API"

Super Productivity isn't running, or the Local REST API is disabled

Start Super Productivity, enable it in Settings → Misc

401 Unauthorized / "Authorization token required"

This installation requires a token that isn't configured

Get the token from Settings → Misc → Access Token, pass it as SP_REST_TOKEN (see step 3)

Invalid environment variable format: <server-name> when running claude mcp add

Argument order — -e before the server name

Put the server name right after add, before --scope/-e

Task counts don't match the Super Productivity UI

Completed tasks are excluded by default

Ask for "including completed tasks"

Security notes

  • The Local REST API only accepts connections from 127.0.0.1 — it is not reachable from other machines unless you deliberately expose it (not recommended).

  • This server runs as a local subprocess over stdio; it is not a network service and doesn't listen on any port itself.

  • Treat your SP_REST_TOKEN, if you have one, like any other credential — don't commit it, and pass it via your MCP client's environment-variable configuration rather than hardcoding it.

Limitations

  • Requires the Super Productivity desktop app (Electron) — the Local REST API isn't available in the web build.

  • This branch uses stdio transport only. If your client needs an HTTP endpoint, use the http-transport branch instead of building your own wrapper.

  • Re-parenting a task (moving it under a different parent) isn't supported by the underlying Local REST API — this is a limitation of Super Productivity's API, not this server.

Contributing

Issues and PRs are welcome. If you hit a bug or want a tool that Super Productivity's Local REST API supports but this server doesn't yet expose, open an issue.

Support

If this project saved you some time, you're welcome to buy me a coffee ☕.

License

MIT — see LICENSE.

Available Tools

15 tools
sp_archive_taskC

Archive a Super Productivity task.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description bears the full burden of behavioral disclosure. It only states 'Archive', and omits whether the operation is reversible, what state changes occur, whether the task remains viewable, or any return value.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one concise sentence with no redundant wording. It is narrowly scoped and front-loaded, though it still lacks contextual guidance that would make it a more complete definition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, this description is under-specified. It doesn't clarify the effects of archiving, how success or failure is conveyed, or how the `id` parameter is consumed beyond schema-level identification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema already documents the single parameter `id` with 'Task id', giving 100% schema coverage. The description adds no extra meaning about the id's origin, format, or behavior if invalid, so 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.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the action ('Archive') and the resource ('a Super Productivity task'), which is distinct from sibling tools like delete_task and restore_task. It doesn't describe the effect of archiving, so it falls short of maximum clarity.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives such as sp_delete_task or sp_restore_task. There is no mention of whether archiving is meant to non-destructively hide tasks or what conditions favor this action.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_create_taskC

Create a new task in Super Productivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
notesNo
titleYesTask title (required)
dueDayNoDue date, day only, no specific time ("Termin") as YYYY-MM-DD. Use dueWithTime instead if a specific time matters.
isDoneNo
tagIdsNo
parentIdNoCreate as a subtask of this top-level task id. Cannot be combined with projectId or tagIds.
plannedAtNoWhen you plan to work on the task ("Zaplanuj"), as a timestamp in ms since epoch — distinct from the due date.
projectIdNoProject id, e.g. "INBOX_PROJECT" for the inbox
timeSpentNoTime already spent on the task, in milliseconds
dueWithTimeNoDue date and time ("Termin do") as a timestamp in ms since epoch. Use this instead of dueDay when the deadline has a specific time, not just a day.
timeEstimateNoEstimated duration in milliseconds

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure, but it only states that a task is created. It does not disclose whether the operation is idempotent, what side effects occur, whether certain fields are required in practice, or what happens on success or failure. The description is not misleading, but it is far too thin to be transparent about behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with no wasted words. It is concise and immediately states the core purpose, though it is arguably too terse to carry much informative weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 11 parameters, no annotations, no output schema, and many sibling tools, the one-sentence description is not complete enough. It does not explain return values, required fields, or how this creation flow interacts with projects, tags, or subtasks. The schema provides some richness, but the description itself leaves significant gaps for an agent deciding how to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter-level meaning beyond what the input schema already provides. Schema coverage is 73%, which is moderate, and the schema itself contains useful descriptions for many fields, but the tool description does not compensate for the remaining undocumented parameters or clarify relationships between them.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Create') and the resource ('a new task in Super Productivity'), making the tool's primary purpose immediately understandable. It does not explicitly differentiate from sibling tools like sp_update_task or sp_delete_task, but the verb 'create' is unambiguous enough to avoid confusion.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives such as sp_update_task or sp_start_task. It does not mention prerequisites, constraints like parentId cannot be combined with projectId, or any context that would help an agent decide between creating a task and using another task-related tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_delete_taskB

Delete a Super Productivity task.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Without annotations, the description carries the burden of disclosing behavioral traits. It states the core behavior (deletion) but fails to disclose important consequences such as irreversibility, whether related data (e.g., subtasks, comments) is also deleted, or any confirmation steps. Given no annotations, a score of 3 is appropriate because it covers the basic action but lacks depth on side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one short sentence that is front-loaded with the action and object. It is concise and to the point, but could be slightly improved by adding a brief note about irreversibility or a cross-reference to archive for alternatives, giving it a 4 rather than a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and no output schema, the description is incomplete. It does not explain the effect of deletion on related entities, the irreversibility, or any confirmation expectations, which an agent needs to know to call it safely. The presence of a sibling like sp_archive_task makes the lack of guidance on when to delete versus archive a notable gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides 100% coverage with a clear description for the 'id' parameter ('Task id'). The tool description adds no extra detail about the format or semantics of the id beyond what the schema says, so the baseline score of 3 is correct.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description 'Delete a Super Productivity task' clearly states the verb (delete) and the resource (Super Productivity task), making the purpose unambiguous. It distinguishes from siblings by the specific action of deletion, as opposed to create, update, list, or archive.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool versus alternatives like sp_archive_task, which might be a less destructive alternative. It does not mention any prerequisites, such as the task existing or whether the user needs to be the owner, nor does it warn about irreversibility, which would be crucial for a deletion operation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_get_current_taskA

Get the task that is currently active/running in Super Productivity, if any.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the behavioral burden. The word 'Get' implies a read-only operation, and 'if any' correctly signals that an absence of an active task is a legitimate outcome. It does not describe error or none-return format, but there are no side effects obvious for this zero-parameter getter.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One tight, front-loaded sentence states the resource, the operation, the system context, and the nullable outcome. There is no filler or repetition of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter getter, this description is largely complete: an agent knows exactly what to call and what it gives. It would benefit from explicitly stating the return value when no task is active (e.g. 'null'/'empty'), but the phrase 'if any' already covers most of the ambiguity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no properties, so parameter coverage is trivially complete. The description validly needs to provide no parameter-level details. Baseline 4 for zero-parameter tools applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Get') and a specific resource: the currently active/running task in Super Productivity, with 'if any' signaling a possible absence. This clearly separates it from siblings like sp_get_task, sp_list_tasks, and sp_set_current_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the purpose: call this when you need the current running task. However, it does not explicitly say when not to use it or name alternatives like sp_get_task for a specific task or sp_list_tasks for all tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_get_statusA

Get the current task and task counts from Super Productivity.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry the behavioral disclosure burden. It states that the operation returns current task and task counts, implying a read-only operation, but it does not clarify what status data is included or whether any side effects occur.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with no wasted words. It front-loads the verb and resource, making the purpose immediately understandable.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter status tool, the description is mostly complete: an agent knows what to expect ('current task and task counts'). Slight ambiguity remains about what the task counts represent, but this is a minor gap given the tool's simplicity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so parameter semantics are largely irrelevant. The baseline of 4 applies because no param documentation is needed for correct invocation.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and clearly identifies the resource (Super Productivity) and the returned information (current task and task counts). It is clear, though it does not explicitly differentiate itself from the sibling sp_get_current_task beyond adding 'task counts.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides no guidance on when to use this tool instead of siblings such as sp_get_current_task, sp_health, or sp_list_tasks. An agent must infer its use case from the name and brief description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_get_taskA

Get a single Super Productivity task by its id.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full responsibility. It implies a read operation but doesn't explicitly mention that it doesn't modify anything. It also doesn't describe what happens if the id is invalid, but for a simple getter, the behavior is fairly obvious.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the verb and resource. No fluff, easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple get-by-id tool with one fully documented parameter and no output schema, the description is adequate. It doesn't explain return values, but since the output schema is absent and it's a standard getter, this is not critical. However, it doesn't mention error behavior or edge cases, which might be useful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The parameter 'id' is fully described in the schema as 'Task id', and the description says 'by its id', so there is high redundancy. The schema already carries the meaning, and the description adds little beyond confirming the id is used for lookup.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool gets a single task by its id, which is specific and matches the name. However, it does not differentiate from other retrieval tools like sp_get_current_task or sp_list_tasks, though the phrase 'by its id' helps distinguish from list operations.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for retrieving a single task when you have its id, but it does not explicitly state when to use this over alternatives like sp_get_current_task or sp_list_tasks. There is no mention of when not to use it, but the context is clear enough for a simple get-by-id tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_healthB

Check whether the Super Productivity Local REST API is reachable and ready.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full behavioral disclosure burden. It conveys that the tool is a read-only reachability/readiness probe, which is useful, but it does not disclose what happens when the API is unreachable, what the response format is, or what 'ready' means precisely. The behavior is implied but not detailed enough for fully confident invocation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence with zero redundancy. Every word earns its place, specifying the verb, resource, and criterion ('reachable and ready') without padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a parameterless health probe, the description covers the core 'what' adequately, but because there is no output schema, the agent is left to wonder what the response will look like and how failure is signaled. A brief line about return format or error behavior would meaningfully improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 clarify; the baseline of 4 applies. The description correctly implies no inputs are needed by focusing purely on the reachability check.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('check') and identifies the resource ('Super Productivity Local REST API') and target state ('reachable and ready'). It clearly conveys this is a health-check probe, though it does not explicitly distinguish itself from sibling sp_get_status, which could plausibly be selected for similar health/status queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this tool versus alternatives such as sp_get_status, which could serve an overlapping 'status' role. The description gives no context about preconditions, expected usage scenarios, or exclusions, leaving the agent to infer when a health probe is appropriate.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_list_projectsA

List Super Productivity projects, optionally filtered by title.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFilter by title, case-insensitive substring match

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. 'List' and 'optionally filtered by title' convey that the operation is read-only and that the query restricts results, but the description does not disclose return format, pagination, errors, or access requirements. Basic behavior is clear, but fuller transparency is absent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no filler: it front-loads the action and resource and states the optional filter in a compact clause. Every word earns its place, and the structure is easy for an agent to parse quickly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity — one optional parameter, no nested objects, and no output schema — the description is minimally adequate for selecting and invoking the tool. However, the lack of annotations and output schema leaves unspecified details about response shape and operational behavior. The description could be more complete without adding much length.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The sole parameter, query, is fully described in the schema as a case-insensitive substring match on title, giving 100% schema description coverage. The description adds only the phrase 'filtered by title,' which does not go beyond the schema. Baseline 3 is appropriate since the schema handles parameter semantics.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List') and a specific resource ('Super Productivity projects'), and adds the optional title filter. It clearly distinguishes this from sibling tools like sp_list_tasks and sp_list_tags by naming the resource directly. There is no ambiguity about what the tool does.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no guidance on when to use this tool versus alternatives, nor does it mention exclusions or prerequisites. An agent must infer from the tool name and sibling context that this is the right tool for project listing. Explicit routing such as 'use this for projects, not tasks/tags' is missing.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_list_tagsA

List Super Productivity tags, optionally filtered by title.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFilter by title, case-insensitive substring match

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must disclose behavior. It only states the action and optional filter; it does not mention that this is a read-only operation, whether authentication is required, or any potential side effects. For a list tool this is a notable gap, as even minimal disclosure of non-mutation would be expected.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, efficient sentence that front-loads the action and resource, with zero superfluous words. It communicates the core functionality and the optional filter without distraction.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with one optional parameter and no output schema, the description is adequate. It covers the key functionality and filter. However, the lack of any explicit statement about side effects or return format is a minor omission given the tool's simplicity, so it does not warrant a perfect score.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides a complete description of the query parameter ('Filter by title, case-insensitive substring match'), achieving 100% coverage. The description's 'optionally filtered' adds no new semantic beyond what the schema implies by the parameter being optional. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('List') and the resource ('Super Productivity tags'), and the optional filter is noted. This distinguishes it from siblings like sp_list_tasks and sp_list_projects, as the tool name and description make the resource explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage: use this tool when you want a list of tags. However, it does not explicitly mention alternatives or conditions when not to use it. The context is clear but not elaborated with routing to other tools, leading to an implicit rather than explicit guideline.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_list_tasksB

List tasks from Super Productivity, optionally filtered by title, project, tag or completion state.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryNoFilter by title, case-insensitive substring match
tagIdNoFilter by tag id. Use "TODAY" for tasks scheduled for today
sourceNoWhich task set to search (default "active")
projectIdNoFilter by project id
includeDoneNoInclude completed tasks (default false)

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the transparency burden. It signals a read-only 'list' operation but does not state side effects explicitly, nor does it mention result shape, pagination, ordering, or the default active/non-done behavior that affects output. The schema provides defaults, but the description itself discloses almost no behavioral context beyond listing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One well-structured sentence that front-loads the operation and then gives the optional filters. No filler or repetition of schema details. It earns its place while remaining minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations and no output schema, the description is adequate but thin: it tells the agent what the tool does and the filter dimensions, but does not mention default source/archived semantics, includeDone behavior, or return expectations beyond 'tasks'. Since the schema covers the parameters, this is not critically incomplete, but it could be more useful for correct invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so parameters are already documented with names, types, defaults, and enum values. The description only summarizes those filters without adding any syntax, constraints, or cross-parameter behavior. Baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description identifies a specific operation (list tasks), the resource (Super Productivity), and the optional filter dimensions. It is immediately distinguishable from sibling tools like sp_get_task, sp_list_tags, or sp_list_projects. It does not name an alternative, so it stops short of the strongest sibling-aware phrasing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use guidance, exclusions, or alternative routing appears in the description. An agent must infer that this is the tool for obtaining multiple tasks and has no guidance on when sp_get_task or sp_list_tags would be more appropriate. This is effectively no usage guidance beyond the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_restore_taskA

Restore a previously archived Super Productivity task.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id

TDQS

A3.5/5.0
Behavior2/5

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. 'Restore' conveys an operation, but the description does not disclose success/failure behavior, return values, idempotency, permissions, or side effects such as whether restored tasks retain their tags, projects, or timing data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One sentence with the verb and resource front-loaded, and no filler. It is concise without becoming a tautology.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool this is near-sufficient, but because there are no annotations and no output schema, an agent gets no information about return values, error conditions, state transitions, or requirements. A little more behavioral context would make it fully self-contained.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already documents the only parameter, id, with 100% coverage and describes it as 'Task id'. The description adds no additional parameter meaning, so 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Restore'), a specific resource ('Super Productivity task'), and a scope condition ('previously archived'). This clearly identifies the tool as the inverse of sp_archive_task and distinguishes it from the other task-related sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the usage context: it should be used when an archived task needs to be brought back. However, it does not explicitly mention alternatives, exclude other states, or name sp_archive_task as the inverse operation, so the guidance remains inferred rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_set_current_taskB

Set (or clear) the currently active task in Super Productivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
taskIdYesTask id to make current, or null to clear it

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are present, so the description must carry behavioral disclosure. It reveals the state-changing nature and the null-to-clear behavior, but does not mention side effects such as whether setting a new current task stops the previous one, whether time tracking is affected, or what the operation returns.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence, front-loaded with the primary action and a compact parenthetical for the null case; no filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a one-parameter setter this is nearly sufficient, but the lack of any note about its relationship to sp_start_task/sp_stop_current_task and the effect on time-tracking state leaves a moderate gap, especially with no annotations or output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema already documents taskId and the null special value. The description's '(or clear)' reinforces that behavior but adds no new syntax or format information.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Set') and a precise resource ('currently active task'), including an explicit '(or clear)' branch for the null case. It is unambiguous on its own, though it does not explicitly differentiate itself from siblings like sp_start_task or sp_get_current_task.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement about when to choose sp_set_current_task over siblings such as sp_start_task or sp_stop_current_task. The description only defines what the tool does, leaving the selection context to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_start_taskB

Start a task (set it as the current/active task) in Super Productivity.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden of disclosure. It states the basic action but does not disclose potential side effects such as what happens to the previously active task, whether the operation fails if the task is already active, or whether any validation occurs. The description is a minimal restatement of the name with no additional behavioral context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, concise sentence that is front-loaded with the core action and scope. It contains zero filler and requires no restructuring.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one required parameter, no output schema), the description covers the basic operation but omits usage context entirely, such as when to use it vs. siblings or any side effects. It is minimally adequate but not complete for a tool with no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema describes the single 'id' parameter with 100% coverage, so the description does not need to add parameter details. The description correctly implies the id identifies the task to start, but it adds no supplementary semantic value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool starts a task and sets it as current/active, with a specific verb and resource. However, it does not distinguish itself from the sibling sp_set_current_task, which likely performs the same action, so it lacks sibling differentiation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

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 sp_set_current_task or other alternatives. The description does not mention any conditions, prerequisites, or exclusions, leaving the agent to infer the appropriate context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_stop_current_taskA

Stop the currently active task in Super Productivity (no task remains current).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.1/5.0
Behavior3/5

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 the core effect and the no-current postcondition, but it does not mention behavior when no task is active, whether the task is completed or merely paused, or whether the operation is reversible.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence that front-loads the action and uses a parenthetical to add the essential postcondition. There is no wasted wording.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple zero-parameter command, but it omits edge-case behavior such as what happens when no task is currently active, and it does not describe return or error semantics. With no annotations or output schema, these gaps are not filled elsewhere.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters and schema coverage is 100%, so there is no parameter information for the description to add. Per the baseline for zero-parameter tools, this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Stop') and a clear resource ('currently active task'), and the parenthetical 'no task remains current' states the postcondition. This distinguishes it from sp_start_task and sp_set_current_task, which would leave a task current.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly conveys when to use the tool: when the currently active task should be stopped. It does not explicitly name alternatives or exclusions, but the 'no task remains current' clause implies it is not for switching to another task.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

sp_update_taskB

Update an existing Super Productivity task. Note: parentId and subTaskIds cannot be changed this way.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesTask id
notesNo
titleNo
dueDayNoDue date, day only, no specific time ("Termin") as YYYY-MM-DD. Use dueWithTime instead if a specific time matters.
isDoneNo
tagIdsNo
plannedAtNoWhen you plan to work on the task ("Zaplanuj"), as a timestamp in ms since epoch.
projectIdNo
timeSpentNo
dueWithTimeNoDue date and time ("Termin do") as a timestamp in ms since epoch.
timeEstimateNo

TDQS

B3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden of behavioral disclosure. It only states 'Update' and the immutability of two fields, but does not explain whether the update is partial or full, whether it returns the updated object, or any side effects. The lack of detail on mutation semantics is a significant gap for an agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences with no waste. The constraint note is front-loaded and useful, and the overall structure is ideal for an update tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 11 parameters, no output schema, and no annotations, the description is incomplete. It fails to clarify whether unspecified fields are left unchanged or reset, what the tool returns, and any prerequisites like authentication. An agent could not fully anticipate the tool's behavior from this description alone.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is only 36% (4 of 11 properties have descriptions). The description adds no parameter-specific information beyond the note about parentId and subTaskIds, which are not even in the schema, potentially causing confusion. It does not compensate for the undocumented parameters, so the agent gains little clarity on parameter expectations.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool updates an existing task, using the verb 'update' with the resource 'task'. It also mentions a specific constraint about parentId and subTaskIds. However, it does not explicitly distinguish itself from sibling tools like sp_create_task or sp_delete_task, though the verb implies the intended difference.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives a constraint (parentId and subTaskIds cannot be changed) but does not clarify when to use this tool over alternatives. There is no explicit 'use this when' guidance, though the purpose implies it's for modifying existing tasks. The note is a usage caveat rather than a full guideline.

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.

  1. 15 tool updatesv1.0.0
    • First observedsp_archive_task
    • First observedsp_create_task
    • First observedsp_delete_task
    • First observedsp_get_current_task
    • First observedsp_get_status
    • First observedsp_get_task
    • First observedsp_health
    • First observedsp_list_projects
    • First observedsp_list_tags
    • First observedsp_list_tasks
    • First observedsp_restore_task
    • First observedsp_set_current_task
    • First observedsp_start_task
    • First observedsp_stop_current_task
    • First observedsp_update_task

TDQS

A3.5/5.0

Scored across 15 tools

Disambiguation4/5

Tools are mostly distinct, but start_task and set_current_task have overlapping functionality; descriptions clarify their purposes.

Naming Consistency4/5

Most tools follow the 'sp_verb_noun' pattern, but 'sp_health' deviates from this convention, which is a minor inconsistency.

Tool Count5/5

15 tools is appropriate for a task management server, covering CRUD, workflow actions, and auxiliary features without being excessive.

Completeness4/5

Tasks are comprehensively covered, but tags and projects only have list operations, missing create/update/delete for those entities.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Bridge between Super Productivity app and MCP servers, allowing Claude Desktop to directly interact with Super Productivity for task management, project organization, and information retrieval.
    120
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    An MCP server that connects AI assistants to Super Productivity for managing tasks, projects, and tags. Supports quick capture, batch triage, and full planning sessions through natural language.
    90
    85
    MIT