Skip to main content
Glama
MakarGlavanar

WEEEK MCP Server

weeek-mcp-server

MCP (Model Context Protocol) server for the WEEEK task tracker. Gives AI coding agents (Claude Desktop, Cursor, Cline, and any other MCP client) direct read/write access to WEEEK projects, boards, tasks, and comments — no context switching.

Features

  • 12 tools — 7 read (projects, boards, columns, tasks, comments) + 5 write (create/update/move/complete tasks, post comments)

  • Read/write split — tools are grouped so MCP clients can auto-approve reads while gating writes

  • Stdio transport — zero server infrastructure, runs via npx

  • Token auth — single WEEEK_API_TOKEN env var, never logged

  • Safe defaults — list tools paginate (default 20, max 50) so responses stay under the 25k token MCP limit

  • Structured errors — API failures return isError: true with a human-readable message, the server never crashes

Related MCP server: Yougile MCP Server

Installation

No installation needed — configure your MCP client to run it via npx.

Getting a WEEEK API Token

  1. Sign in to WEEEK.

  2. Open Workspace settings → API.

  3. Generate a personal API token.

  4. Treat it like a password — it grants full read/write access to your workspace. Rotate it if it leaks.

Configuration

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

{
  "mcpServers": {
    "weeek": {
      "command": "npx",
      "args": ["-y", "weeek-mcp-server"],
      "env": {
        "WEEEK_API_TOKEN": "your-weeek-token-here"
      }
    }
  }
}

Restart Claude Desktop.

Cursor

Edit ~/.cursor/mcp.json (or use Cursor Settings → MCP → Add new MCP server):

{
  "mcpServers": {
    "weeek": {
      "command": "npx",
      "args": ["-y", "weeek-mcp-server"],
      "env": {
        "WEEEK_API_TOKEN": "your-weeek-token-here"
      }
    }
  }
}

Generic MCP client

Any MCP client that supports stdio transport can launch:

command: npx
args: ["-y", "weeek-mcp-server"]
env: { WEEEK_API_TOKEN: "<your token>" }

NVM Workaround (IMPORTANT for nvm users)

If you installed Node via nvm, GUI applications (Claude Desktop, Cursor) do not source your shell startup files, so npx is not on their PATH. You will see spawn npx ENOENT in the client logs.

Fix: use the absolute path to your nvm npx binary.

  1. In your terminal, run:

    which npx

    Example output: /Users/you/.nvm/versions/node/v22.0.0/bin/npx

  2. Put that absolute path in your MCP client config as the command:

    {
      "mcpServers": {
        "weeek": {
          "command": "/Users/you/.nvm/versions/node/v22.0.0/bin/npx",
          "args": ["-y", "weeek-mcp-server"],
          "env": {
            "WEEEK_API_TOKEN": "your-weeek-token-here"
          }
        }
      }
    }

This is the single most common setup failure across all npx-based MCP servers. If you upgrade Node via nvm, update the path.

Tools

All tools are prefixed weeek_. Read tools are side-effect free and safe for auto-approve. Write tools mutate WEEEK state and should prompt for user confirmation.

Read tools

Tool

Purpose

weeek_list_projects

List projects in the workspace. Use FIRST to discover project IDs.

weeek_get_project

Get a single project's full details by ID.

weeek_list_boards

List boards inside a project.

weeek_list_board_columns

List columns (statuses) inside a board. Required before moving tasks.

weeek_list_tasks

List tasks with filters (project, board, column, assignee, completion) and pagination.

weeek_get_task

Get full details of a single task by ID.

weeek_list_task_comments

List comments on a task.

Write tools

Tool

Purpose

weeek_create_task

Create a NEW task. Requires title + project_id.

weeek_update_task

Edit fields (title, description, priority, assignee, due date) of an existing task.

weeek_move_task

Move a task to a different board column (status change).

weeek_complete_task

Mark a task complete, or reopen a completed task.

weeek_create_task_comment

Post a comment on a task.

Safety

  • Read/write separation: read tools and write tools are registered in separate groups. Configure your MCP client to auto-approve reads while gating writes.

  • No delete operations: v1 intentionally does not expose delete endpoints — too destructive for an AI agent.

  • Pagination defaults: list tools default to 20 results (max 50) to stay under the 25,000 token MCP response cap.

  • Token handling: WEEEK_API_TOKEN is read from the env block only. It is never logged, echoed, or included in error messages.

Troubleshooting

Symptom

Fix

spawn npx ENOENT in client logs

You are using nvm — see the NVM Workaround section above.

WEEEK_API_TOKEN environment variable is required

The env block is missing or empty in your MCP client config.

Invalid WEEEK_API_TOKEN

Token is wrong, revoked, or expired — regenerate in WEEEK workspace settings.

Server disconnects immediately after starting

You are on Node < 20. Upgrade Node (nvm install 20) and update your config path.

Tool returns "Resource not found (404)"

The ID doesn't exist in the workspace — list the parent resource first (e.g., weeek_list_projects before weeek_get_project).

Development

git clone <this-repo>
cd weeek-mcp-server
npm install
npm run build
npm test

Scripts:

  • npm run build — compile TypeScript to dist/

  • npm run dev — run from source via tsx

  • npm run lint — ESLint (enforces no-console rule for stdio safety)

  • npm run typechecktsc --noEmit

  • npm test — vitest unit tests

To smoke-test the built binary:

npm run build
WEEEK_API_TOKEN=test node dist/index.js
# server blocks on stdin — press Ctrl+C to exit

Requirements

  • Node.js >= 20.0.0

  • A WEEEK account with API access

License

MIT — see LICENSE.

Available Tools

12 tools
weeek_complete_taskA

Mark a WEEEK task as COMPLETE or REOPEN a completed task. WRITE OPERATION — the MCP client may prompt for confirmation. Required: task_id. Optional: completed (default true), mr_url (records a merge/pull request link on the "МР" custom field in the same call), field_name (only with mr_url). Pass completed=false to reopen. Returns the updated task. DISTINCT from weeek_move_task: completing a task is a done/undone toggle, independent of which column it lives in. DISTINCT from weeek_update_task: completion is not an editable field — it has its own dedicated semantics in WEEEK. Use this tool when the user says 'mark done', 'complete', 'finish', 'close', 'reopen', or 'uncomplete'. task_id must come from weeek_list_tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_urlNoMerge/pull request URL to record on the task's "МР" custom field in the same call as completion. Optional. Omit to leave the field unchanged. Use weeek_set_task_mr_link instead if there is no completion change happening.
task_idYesWEEEK task ID to complete or reopen. Required. Obtain from weeek_list_tasks.
completedNoWhether to mark the task as completed. Default: true (mark done). Pass false to REOPEN a previously-completed task.
field_nameNoName of the custom field to write mr_url into. Optional — defaults to "МР". Only used when mr_url is provided.

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations provided, the description carries full burden. It discloses the tool is a WRITE OPERATION that may prompt for confirmation, explains the complete/reopen toggle behavior, and details the optional mr_url functionality. No contradictions.

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 front-loaded with the main purpose and uses clear formatting. It is slightly verbose but every sentence adds value, especially the distinctions and usage hints. Could be streamlined slightly, but overall effective.

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

Completeness5/5

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

Given the tool has 4 parameters (1 required) and no output schema, the description is complete. It explains return value ('Returns the updated task'), prerequisites (task_id from weeek_list_tasks), and behavioral details. No gaps for correct tool selection.

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?

Input schema has 100% coverage with descriptions for all 4 parameters. The description adds value beyond schema: it clarifies that completed=false reopens, mr_url records a link on the 'МР' field, and field_name is optional with mr_url. This extra context justifies a 4 despite high schema coverage.

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 tool's action: 'Mark a WEEEK task as COMPLETE or REOPEN a completed task.' It specifies the verb (mark) and resource (task), and explicitly distinguishes from siblings like weeek_move_task and weeek_update_task, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance: 'Use this tool when the user says mark done, complete, finish, close, reopen, or uncomplete.' It clearly differentiates from alternatives, instructs that task_id must come from weeek_list_tasks, and suggests an alternative tool when no completion change is involved.

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

weeek_create_taskA

Create a NEW task in WEEEK. WRITE OPERATION — the MCP client may prompt for user confirmation before this runs. Required: title and project_id. Optional: description, board_id, board_column_id (status), priority, assignee_id, due_date. Returns the created task object in the same shape as weeek_get_task. Use this ONLY when creating a brand-new task; to change an existing task's fields use weeek_update_task, to move it to a different column use weeek_move_task, to mark it done use weeek_complete_task. All *_id parameters must come from the corresponding list tools — do not guess IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleYesTask title. Required. Shown as the task's headline in WEEEK.
board_idNoBoard to place the task on. Optional. Obtain from weeek_list_boards. If omitted, WEEEK assigns to the project's default board.
date_endNoDue date in ISO 8601 format (e.g. 2026-04-15 or 2026-04-15T12:00:00Z). Optional. WEEEK's task model uses dateEnd, not dueDate.
priorityNoTask priority as an integer (WEEEK uses numeric priority levels, e.g. 0=none, 1=low, 2=medium, 3=high). Optional.
project_idYesWEEEK project ID. Required. Obtain from weeek_list_projects — do not guess.
assignee_idNoWEEEK user UUID to assign as primary. Optional. Obtain from weeek_list_workspace_members — do not guess IDs.
descriptionNoTask description / body. Optional. Plain text; WEEEK may render basic formatting.
board_column_idNoColumn (status) to place the task in. Optional. Obtain from weeek_list_board_columns. Determines the task's initial status.

TDQS

A4.7/5.0
Behavior4/5

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

Discloses that it's a WRITE OPERATION and may prompt for confirmation. No annotations are present, so the description carries the burden. It could mention side effects like notifications or dependencies, but overall sufficient.

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?

Well-structured with front-loaded purpose, parameter requirements, and usage guidelines. Slightly lengthy but every sentence adds value. Could be more concise by combining a few sentences.

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

Completeness5/5

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

Given 8 parameters with 2 required, no output schema, and no annotations, the description is thorough: explains all parameters, return shape (same as weeek_get_task), and provides contextual guidance for ID sources and sibling tool differentiation.

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

Parameters5/5

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

Despite 100% schema description coverage, the description adds significant value by explaining where to obtain IDs (list tools), format expectations (ISO 8601 dates, integer priority), and optional behaviors (default board assignment).

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 it creates a NEW task in WEEEK, specifies required parameters (title, project_id), and distinguishes from sibling tools like weeek_update_task, weeek_move_task, and weeek_complete_task.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (creating a brand-new task) and when not to (use update, move, complete instead). Also warns not to guess IDs, directing to list tools.

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

weeek_get_projectA

Get full details of a specific WEEEK project by ID. Use this AFTER weeek_list_projects to drill into a project and see its description, creation date, and settings. Returns the full project object. For listing boards inside the project, use weeek_list_boards with this project's id. The project_id parameter must be obtained from weeek_list_projects (do not guess IDs).

ParametersJSON Schema
NameRequiredDescriptionDefault
project_idYesWEEEK project ID. Obtain from weeek_list_projects — do not guess. Required.

TDQS

A4.5/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. States 'Returns the full project object' but does not disclose any potential side effects, authentication needs, or response structure details. Adequate but minimal.

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?

Three sentences; front-loaded with purpose. Every sentence adds necessary context without redundancy.

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

Completeness5/5

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

For a simple read operation with one parameter, the description covers workflow integration and return value. No output schema needed; 'full project object' suffices.

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?

Only one parameter with 100% schema coverage. Description adds value by specifying how to obtain the ID and that guessing is disallowed, which is beyond the schema's basic description.

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?

Clearly states the tool gets full details of a specific project by ID. Distinguishes from siblings like weeek_list_projects for listing all projects and weeek_list_boards for boards.

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

Usage Guidelines5/5

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

Explicitly instructs to use after weeek_list_projects, warns against guessing IDs, and directs to weeek_list_boards for boards. Provides clear sequencing and alternatives.

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

weeek_get_taskA

Get full details of a single WEEEK task by ID. Use this AFTER weeek_list_tasks when an agent needs the complete task context — full description, priority, assignee, due date, board/column location, timestamps. The task_id must come from weeek_list_tasks — do not guess IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesWEEEK task ID. Obtain from weeek_list_tasks. Required.

TDQS

A4.8/5.0
Behavior4/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 return fields (description, priority, assignee, etc.) and implies read-only behavior. However, it doesn't explicitly state that the tool has no 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.

Conciseness5/5

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

Two sentences, front-loaded with purpose, followed by usage guidance. Every sentence adds value with no redundancy or wasted words.

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

Completeness5/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 no output schema, the description lists the key return fields (description, priority, assignee, etc.) and provides complete context for correct invocation.

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

Parameters5/5

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

Only one parameter (task_id) with 100% schema coverage. The description adds meaning by stating 'must come from weeek_list_tasks' and 'do not guess IDs,' which the schema alone does not convey.

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 starts with 'Get full details of a single WEEEK task by ID,' which is a specific verb+resource. It clearly distinguishes from sibling tools like weeek_list_tasks (list vs. single) and weeek_update_task (update vs. get).

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

Usage Guidelines5/5

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

Explicitly states 'Use this AFTER weeek_list_tasks when an agent needs the complete task context' and instructs 'do not guess IDs,' providing clear when-to-use and when-not-to-use guidance.

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

weeek_list_board_columnsA

List columns (status buckets) of a specific WEEEK board. Use this AFTER weeek_list_boards to understand the statuses that exist on a board — e.g. 'Todo', 'In Progress', 'Done'. Columns are the task status mechanism in WEEEK; you MUST call this before weeek_move_task (Phase 3) to know which column_id to target. Returns array of {id, name, boardId, order}. The board_id parameter must come from weeek_list_boards — do not guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-50, default: 20). Default protects against 25k-token MCP response cap.
offsetNoNumber of items to skip for pagination (default: 0)
board_idYesWEEEK board ID whose columns to list. Obtain from weeek_list_boards. Required.

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. Discloses return format as array of {id, name, boardId, order}. Notes that default limit of 20 protects against MCP response cap, indicating rate awareness. Could explicitly state read-only nature, but sufficiently safe implied.

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?

Three sentences with zero fluff. First sentence states purpose, second covers usage order and return format, third clarifies parameter source. Every sentence earns its place.

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

Completeness5/5

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

Despite no annotations or output schema, description provides purpose, usage ordering, parameter constraints, return structure, and rationales. Covers all essential information for an agent to correctly select and invoke the tool.

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?

Schema documentation covers all 3 parameters. Description adds value: explains board_id must be obtained from weeek_list_boards and warns against guessing. Also contextualizes default limit as protection against token cap. This extra guidance elevates above baseline 3.

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?

Clearly describes the tool as listing columns (status buckets) of a specific WEEEK board. Defines verb, resource, and clarifies columns as task status mechanism. Differentiates from sibling tools by specifying use after weeek_list_boards and before weeek_move_task.

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

Usage Guidelines5/5

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

Explicitly states when to use: 'Use this AFTER weeek_list_boards' and 'MUST call this before weeek_move_task (Phase 3)'. Also warns that board_id must come from weeek_list_boards and not to guess, providing clear sequencing and prerequisites.

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

weeek_list_boardsA

List all boards inside a WEEEK project. Use this AFTER weeek_list_projects to discover kanban boards within a project. A board is a container of columns (statuses) and tasks. Returns array of {id, name, projectId, type}. To see the columns/statuses of a specific board, use weeek_list_board_columns next. The project_id parameter must come from weeek_list_projects — do not guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-50, default: 20). Default protects against 25k-token MCP response cap.
offsetNoNumber of items to skip for pagination (default: 0)
project_idYesWEEEK project ID whose boards to list. Obtain from weeek_list_projects. Required.

TDQS

A4.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 the full burden. It discloses the return format but does not mention auth requirements, rate limits, or side effects. For a read-only list operation, this is adequate but not excessive.

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?

Four sentences, no wasted words, purpose front-loaded. Every sentence earns its place: purpose, usage order, return description, next step.

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

Completeness5/5

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

Given no output schema, description explains return structure. Includes prerequisites, parameter source, and next tool. Completeness is high for a list tool with well-described schema.

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?

Schema covers 100% of parameters, but the description adds value for project_id by specifying its source and for limit by explaining the default protects against response cap. This extra context justifies above baseline.

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 'List all boards inside a WEEEK project' with specific verb and resource, and distinguishes from siblings like weeek_list_projects and weeek_list_board_columns.

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

Usage Guidelines5/5

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

Explicitly instructs to use this tool 'AFTER weeek_list_projects' and specifies that the project_id must come from that tool, with a warning not to guess. Also provides the next step of using weeek_list_board_columns.

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

weeek_list_projectsA

List projects in the WEEEK workspace. Use this FIRST when an agent needs to discover what projects exist before drilling into boards or tasks. Returns an array of projects with id, name, parentId (for nested projects), and isArchived flag. For a specific project's full details, use weeek_get_project with the id returned here. For board discovery within a project, use weeek_list_boards next.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-50, default: 20). Default protects against 25k-token MCP response cap.
offsetNoNumber of items to skip for pagination (default: 0)

TDQS

A4.5/5.0
Behavior4/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 return format (array with id, name, parentId, isArchived) and the typical workflow, which adds value. However, it does not discuss other behavioral traits like rate limits, idempotency, or side effects. Still, the return structure and workflow context make it a 4.

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 concise, with no wasted words. It starts with the main purpose, then gives usage guidance, return format, and clear next steps. Every sentence earns its place.

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

Completeness5/5

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

Given no output schema, the description adequately explains the return structure. It also covers the typical workflow (first tool to use) and references sibling tools for next steps. Parameter details are fully covered in the schema. The description is complete for a list tool in context.

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 baseline is 3. The description does not add any parameter-specific information beyond what the schema already provides via descriptions for limit and offset. No additional meaning is added.

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 'List projects in the WEEEK workspace' with a specific verb and resource. It distinguishes itself from sibling tools by positioning it as the first tool to use for discovery before drilling into boards or tasks, and directly references alternatives for specific details (weeek_get_project) and board discovery (weeek_list_boards).

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

Usage Guidelines5/5

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

The description explicitly says 'Use this FIRST when an agent needs to discover what projects exist before drilling into boards or tasks.' It provides clear context for when to use it and when to use alternatives, such as 'For a specific project's full details, use weeek_get_project' and 'For board discovery within a project, use weeek_list_boards next.'

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

weeek_list_tasksA

List tasks in WEEEK with optional filters. This is the PRIMARY tool for 'what needs doing?' queries. Filter by project_id, board_id, column_id (status), assignee_id, or is_completed. Pagination is ENFORCED: default 20, max 50 per response, to stay under the 25k-token MCP response cap — call again with a higher offset if more are needed. Returns shaped tasks with id, title, projectId, boardId, boardColumnId, assigneeId, isCompleted, priority, dueDate. For full task description and details, use weeek_get_task with an id returned here. All *_id parameters must come from weeek_list_projects / weeek_list_boards / weeek_list_board_columns — do not guess IDs.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-50, default: 20). Default protects against 25k-token MCP response cap.
offsetNoNumber of items to skip for pagination (default: 0)
board_idNoFilter to tasks on this board. Obtain from weeek_list_boards.
column_idNoFilter to tasks in this column (status). Obtain from weeek_list_board_columns.
project_idNoFilter to tasks in this project. Obtain from weeek_list_projects.
assignee_idNoFilter to tasks assigned to this user (WEEEK user UUID). Obtain from weeek_list_workspace_members.
is_completedNoIf true, return only completed tasks; if false, only open; if omitted, both.

TDQS

A5/5.0
Behavior5/5

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

Discloses enforced pagination (default 20, max 50) with rationale (25k-token cap), describes the return shape (specific fields), and clarifies that full details require a separate tool call. No annotations exist to contradict.

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?

Compact (~120 words) yet comprehensive; every sentence adds value with no redundancy. Front-loaded with purpose and key instructions.

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

Completeness5/5

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

For a 7-param list tool with no output schema and no annotations, the description covers filters, pagination, return shape, limitations, dependencies, and alternative tool usage. Thorough and complete.

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

Parameters5/5

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

Despite 100% schema coverage, the description adds critical context: each filter parameter must come from designated tools (weeek_list_boards, etc.), explains pagination defaults and limits, and clarifies is_completed behavior. This goes well beyond the schema.

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 it lists tasks with optional filters and positions itself as the PRIMARY tool for 'what needs doing?' queries, distinguishing it from sibling tools that list other entities (boards, projects, etc.) or retrieve full task details.

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

Usage Guidelines5/5

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

Provides explicit when-to-use context, explains filtering options, pagination behavior, and cautions against guessing IDs, directing the agent to companion tools for valid parameter values.

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

weeek_list_workspace_membersA

List members (users) of the WEEEK workspace. Use this FIRST when an agent needs to resolve a person's name to a user ID — required before filtering tasks by assignee_id in weeek_list_tasks or setting assignee_id on weeek_create_task / weeek_update_task. Returns shaped members with id, name, email, role. Pagination ENFORCED: default 20, max 50 per response. The WEEEK workspace is determined by the API token.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of items to return (1-50, default: 20). Default protects against 25k-token MCP response cap.
offsetNoNumber of items to skip for pagination (default: 0)

TDQS

A4.9/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: it is a read operation (lists members), enforces pagination (default 20, max 50), and returns shaped members. It does not contradict any safety hints because none are provided.

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 concise but thorough, with no wasted words. Each sentence serves a purpose: purpose, usage guidance, return shape, pagination, and token determination. The most critical information is front-loaded.

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

Completeness5/5

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

Given no output schema, the description provides return shape, pagination details, and when to use. It covers all necessary context for an agent to correctly invoke this tool.

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?

Input schema already covers both parameters (limit, offset) with descriptions. The description adds value by explaining the default limit protects against the 25k-token response cap, which is not in the schema.

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 tool lists workspace members with specific return fields (id, name, email, role). It distinguishes from siblings by stating it is needed for resolving names to IDs before using other tools.

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

Usage Guidelines5/5

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

The description explicitly says 'Use this FIRST when an agent needs to resolve a person's name to a user ID' and lists specific sibling tools (weeek_list_tasks, weeek_create_task, weeek_update_task) that require the output. It also notes workspace is determined by API token.

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

weeek_move_taskA

Move a WEEEK task to a different board column. This IS how you change a task's status in WEEEK — columns ARE the status mechanism. WRITE OPERATION — the MCP client may prompt for confirmation. Required: task_id and board_column_id. Optional: board_id (only when moving across boards), mr_url (records a merge/pull request link on the "МР" custom field in the same call), field_name (only with mr_url). Returns the updated task. DISTINCT from weeek_update_task: use update for field edits (title, description, priority, assignee, due date); use move for column/status changes. DISTINCT from weeek_complete_task: use complete for the done/undone toggle even though 'completed' is visually similar to a 'Done' column. board_column_id must come from weeek_list_board_columns — do not guess.

ParametersJSON Schema
NameRequiredDescriptionDefault
mr_urlNoMerge/pull request URL to record on the task's "МР" custom field in the same call as the status change. Optional. Omit to leave the field unchanged. Use weeek_set_task_mr_link instead if there is no status change happening.
task_idYesWEEEK task ID to move. Required. Obtain from weeek_list_tasks.
board_idNoDestination board ID. Optional — only needed when moving the task to a column on a DIFFERENT board than its current one.
field_nameNoName of the custom field to write mr_url into. Optional — defaults to "МР". Only used when mr_url is provided.
board_column_idYesDestination column ID. Required. Obtain from weeek_list_board_columns. Moving a task to a new column IS the status change in WEEEK.

TDQS

A4.7/5.0
Behavior4/5

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

No annotations provided, so description carries full burden. It labels itself as a WRITE OPERATION with possible confirmation prompt, describes effect (status change, optional MR link), and notes board_id usage. Some minor behavioral details (reversibility, notifications) omitted, but overall transparent.

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?

Description is somewhat lengthy but every sentence contributes value. Front-loaded with core purpose. Could combine some points for slightly tighter prose, but still well-structured.

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

Completeness5/5

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

No output schema, but description notes it returns updated task. All 5 parameters covered, required ones emphasized, sibling distinctions provided. Complete for the tool's complexity and context.

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

Parameters5/5

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

Schema description coverage is 100%, but description adds key context: board_column_id is the destination column, moving equals status change, warns against guessing column IDs, explains mr_url and field_name relationship, and clarifies board_id optionality across boards.

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 verb 'Move' and resource 'task to a different board column', immediately distinguishing it from update and complete tools. It avoids tautology and is specific.

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

Usage Guidelines5/5

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

Explicitly states when to use this tool (changing column/status) and when not (use update for field edits, complete for done/undone, set_mr_link without status change). Also specifies prerequisite: get board_column_id from weeek_list_board_columns.

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

weeek_update_taskA

Update editable fields of an EXISTING task in WEEEK. WRITE OPERATION — the MCP client may prompt for confirmation. Required: task_id. Optional: title, description, priority, assignee_id, due_date — only provided fields are sent, omitted fields remain unchanged. Returns the updated task. Do NOT use this to move tasks between columns (use weeek_move_task) or to mark tasks complete (use weeek_complete_task) — those are separate operations in WEEEK. The task_id must come from weeek_list_tasks.

ParametersJSON Schema
NameRequiredDescriptionDefault
titleNoNew task title. Optional. Omit to leave unchanged.
task_idYesWEEEK task ID to update. Required. Obtain from weeek_list_tasks — do not guess.
date_endNoNew due date in ISO 8601. Optional. Omit to leave unchanged. WEEEK's task model uses dateEnd, not dueDate.
priorityNoNew priority integer (e.g. 0=none, 1=low, 2=medium, 3=high). Optional.
assignee_idNoNew primary assignee WEEEK user UUID. Optional. Obtain from weeek_list_workspace_members. Omit to leave unchanged.
descriptionNoNew task description. Optional. Omit to leave unchanged. Pass empty string to clear.

TDQS

A4.7/5.0
Behavior4/5

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

The description discloses it is a WRITE OPERATION and warns the MCP client may prompt for confirmation. It notes that only provided fields are sent and omitted fields remain unchanged. Without annotations, this adds good behavioral context, though it could mention error handling or idempotency.

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?

Description is concise with 5 sentences, front-loaded with the main action, and each sentence provides essential information without fluff. Warnings are placed logically.

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

Completeness5/5

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

No output schema, but description states 'Returns the updated task', which is sufficient. Covers required and optional parameters, and separates concerns by referencing sibling tools. Complete for a simple update tool.

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?

Schema coverage is 100%, so baseline is 3. The description adds value by summarizing which parameters are optional and the partial-update behavior. However, there is a minor mismatch: description refers to 'due_date' while schema uses 'date_end', which could cause confusion.

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 'Update editable fields of an EXISTING task in WEEEK' with specific editable fields listed. It distinguishes from sibling tools by explicitly mentioning not to move or complete tasks, referencing weeek_move_task and weeek_complete_task.

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

Usage Guidelines5/5

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

Provides explicit when-not-to-use guidance: 'Do NOT use this to move tasks between columns (use weeek_move_task) or to mark tasks complete (use weeek_complete_task).' Also specifies that task_id must come from weeek_list_tasks, giving a clear prerequisite.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv0.1.0
    • First observedweeek_complete_task
    • First observedweeek_create_task
    • First observedweeek_get_project
    • First observedweeek_get_task
    • First observedweeek_list_board_columns
    • First observedweeek_list_boards
    • First observedweeek_list_projects
    • First observedweeek_list_tasks
    • First observedweeek_list_workspace_members
    • First observedweeek_move_task
    • First observedweeek_set_task_mr_link
    • First observedweeek_update_task

TDQS

A4.7/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct operation (complete, create, move, update, list, etc.) with explicit differentiation. Even similar tools like complete_task vs move_task vs update_task are clearly separated by descriptions and use cases.

Naming Consistency5/5

All 12 tools follow the consistent pattern `weeek_<verb>_<noun>` using snake_case. Verbs (list, get, create, update, move, complete, set) are uniformly applied across the set.

Tool Count5/5

12 tools is a well-scoped number for a task management server. It covers essential operations for tasks, projects, boards, columns, and members without unnecessary redundancy.

Completeness4/5

The tool surface is nearly complete for task management: create, read, update, move, complete, and link MRs. Minor gaps exist (no task deletion, no project/board/column creation or update), but core workflows are fully covered.

Maintenance

ActivityStale
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    A
    maintenance
    Enables AI agents to access and modify Todoist accounts to manage tasks and projects on the user's behalf. It provides a suite of tools for task operations and supports interactive UI widgets for a rich visual experience in AI chat interfaces.
    47
    3,336
    544
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to manage Kanban tasks, boards, teams, and checklists via natural language, with full CRUD operations and live updates.
    163
    MIT

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MakarGlavanar/weeek-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server