weeek-mcp
This MCP server enables full management of Weeek workspaces, including tasks, projects, boards, knowledge base documents, and workspace configuration.
Task Management: Create, read, update, delete, complete/uncomplete, move, and nest tasks. Assign members and watchers, set parent-child relationships, add/remove tasks from projects. Edit title, priority, type, dates, duration, tags, Markdown description, and custom field values. Start/stop timers, log/edit/delete time entries, and upload/retrieve attachments.
Project & Board Administration: List projects, boards, and board columns. Create, rename, delete, archive/unarchive projects; create, rename, delete, reorder boards and columns; manage portfolios (project folders).
Tags & Custom Fields: Create, rename, recolor, delete workspace tags. List, create, update, delete, transfer custom fields (text, boolean, datetime, select, multiselect, member, contact, link, approval, number) with global, per-project, or per-board scoping. Manage select/multiselect options.
Knowledge Base (requires
weeek-mcp[kb]): Search, list, read, create, update, delete documents. Documents are published as MCP resources (weeek-kb://<id>) for content attachments. Auto-conversion between Markdown and Weeek's ProseMirror format. Set document icons and control table column widths.User & Member Info: Get current user info and list workspace members for assignments.
Capability Awareness: Task-related tools available with API token; KB tools and resources available with KB credentials or session.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@weeek-mcpcreate a task called 'Finish presentation' in the Marketing board"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
weeek-mcp
An MCP server for Weeek: manage tasks through the public REST API and browse the knowledge base through Playwright, exposed as MCP Resources so you can search and select KB documents as content (not links) from your MCP client.
Features
Task management (public REST API): projects, boards, board columns, and full task lifecycle — create, update, complete, move between columns, assign/unassign members.
Knowledge base (full CRUD): Weeek has no public KB API, so the server calls Weeek's internal JSON API (
api.weeek.net/ws/{id}/kb/...) using cookies from a saved browser login. Documents are rendered to Markdown and published as MCP Resources (weeek-kb://<id>). Read/list/search/create/rename/delete go over the JSON API; in-place body editing drives Weeek's own editor headlessly (bodies sync over a collaborative websocket, not REST). Content is converted between Markdown and Weeek's ProseMirror format automatically.Capability-aware: task tools appear when an API token is set; KB tools/resources appear when login credentials or a cached session are present.
Related MCP server: Yandex Wiki MCP
Requirements
Python 3.10+
A Weeek API token for task tools (Weeek → Settings → API).
For the knowledge base:
weeek-mcp[kb](Playwright) plus the Chromium runtime, and either login credentials or a session seeded once withweeek-mcp-login.
Installation
pip install weeek-mcp # task tools only
pip install "weeek-mcp[kb]" # + knowledge base (Playwright)
playwright install chromium # KB runtimeWith uv in your own project:
uv add "weeek-mcp[kb]"Configuration
Set environment variables (or copy .env.example to .env). Use just the task API,
just the knowledge base, or both.
Variable | Purpose |
| Task API token. Required for task tools. |
| First automated KB login. Optional (skip if 2FA/SSO — use |
| KB workspace id. Optional — auto-detected via |
| Where the browser session is cached (defaults under |
|
|
| Seconds to cache the KB document list (default |
|
|
Knowledge base first login
If your account has 2FA or a captcha, automated login won't work. Seed the session once, interactively — it opens a browser, you sign in, then it caches the session for headless reuse:
weeek-mcp-loginUsage
Run the stdio server:
weeek-mcpClaude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"weeek": {
"command": "weeek-mcp",
"env": {
"WEEEK_API_TOKEN": "...",
"WEEEK_STORAGE_STATE": "/absolute/path/to/storage_state.json"
}
}
}
}Tools
Tasks: weeek_whoami, weeek_list_members, weeek_list_projects,
weeek_list_boards, weeek_list_board_columns, weeek_list_tasks,
weeek_get_task, weeek_create_task, weeek_update_task, weeek_complete_task,
weeek_uncomplete_task, weeek_delete_task, weeek_move_task,
weeek_set_assignees, weeek_remove_assignees, weeek_set_task_parent,
weeek_add_task_to_project, weeek_remove_task_from_project, weeek_set_watchers,
weeek_remove_watchers, weeek_task_timer, weeek_manage_time_entry,
weeek_upload_attachment, weeek_get_attachment, weeek_list_custom_fields.
Workspace admin: weeek_manage_tags, weeek_manage_projects,
weeek_manage_boards, weeek_manage_board_columns, weeek_manage_portfolios,
weeek_manage_custom_fields. These take an action (create/update/delete/…) rather
than one tool per operation — the CRUD is regular and the tool list stays readable.
Custom fields live per board, per project or workspace-wide, so that tool takes a
scope (global/project/board) plus scope_id.
Priority takes either Weeek's number or its label — 0 low (Низкий), 1 medium
(Средний), 2 high (Высокий), 3 hold (Замороженный).
Custom fields are set with custom_fields: on an existing task by field name or id
({"Ссылка на фичу": "https://…"}, null clears a field, a select takes the option
name or id), on weeek_create_task by id only — weeek_list_custom_fields lists
them. A field belongs to the projects it was added to, and Weeek stores nothing
when you write to one it doesn't cover, so the write is verified and reported.
Descriptions are editable on an existing task: weeek_update_task takes
description as Markdown (empty string clears it). Weeek's REST API only accepts a
description on create — PUT /tm/tasks/{id} has no such field — because
descriptions sync through the same collaborative editor as KB document bodies, so
this drives that editor headlessly and needs the knowledge base session (a few
seconds per task). weeek_create_task still takes its description as HTML, which
is what that endpoint stores.
Knowledge base: weeek_kb_search, weeek_kb_list, weeek_kb_read,
weeek_kb_create, weeek_kb_update, weeek_kb_table_widths, weeek_kb_icons,
weeek_kb_delete.
weeek_kb_updatewith new content launches a short headless browser session (a few seconds) to drive Weeek's editor, because document bodies are saved over a collaborative websocket rather than REST. The document id is preserved.
Tables have one size to set: the pixel width of each column (minimum 90). New tables
are fitted to the document's content column (~676px) instead of Weeek's 180px-per-column
default, and existing widths are carried across a weeek_kb_update — a table that gains
or loses a column is re-fitted. weeek_kb_table_widths sets them explicitly:
widths: [300, 200, 176] for exact sizes, or fit: true to spread a table across the
content column.
Documents can carry an icon: pass icon to weeek_kb_create/weeek_kb_update as a
single emoji (🚀) or as one of Weeek's built-in icon names (weeek_kb_icons lists
them); an empty icon removes it. Listings report the icon a document currently has.
Knowledge base → Claude Desktop Context
Each KB document is published as an MCP Resource (weeek-kb://<id>). In Claude
Desktop you add them from the attachment (+) menu of the connected server — browse
the list or narrow it with weeek_kb_search — and the client pulls in the document
content, not a link.
Note on Project Context: Claude Desktop surfaces MCP resources as attachments. Whether a selected resource persists inside a Project's Context panel (vs. a single conversation) depends on your Claude Desktop version. The content-not-a-link behavior works regardless.
Status & limitations
Task tools follow Weeek's published OpenAPI spec.
Knowledge base uses Weeek's internal, undocumented API (
/ws/{id}/kb/...). It is not covered by any stability guarantee and may change without notice; if KB calls start failing, the endpoints inweeek_mcp/kb/client.pyare the place to look. Login automation targets Weeek's two-step web form (weeek_mcp/kb/session.py); accounts with 2FA/captcha/SSO should seed the session withweeek-mcp-logininstead.Document content is ProseMirror/TipTap JSON, converted to/from Markdown by
weeek_mcp/kb/prosemirror.py. Editing an existing body goes through Weeek's collaborative editor (there is no REST content-write), soweeek_kb_updateopens the document in a headless browser and replaces the content there. Authoring covers the common Markdown subset (headings, paragraphs, lists, bold/inline code, code blocks, quotes, rules); rich cases like nested lists and tables are simplified.Table column widths live on the
table_bodynode and are ignored by the editor's HTML parser, so they are re-applied as an editor transaction after the content is replaced (weeek_mcp/kb/tables.py). Cell colors and per-column colors are stored alongside the widths but are not exposed as tools yet.
Development
See CONTRIBUTING.md for setup, tests, and pull requests.
License
This project is licensed under the MIT License — see LICENSE.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Flicense-qualityDmaintenanceProvides integration with ClickUp's API, allowing you to retrieve task information and manage ClickUp data through MCP-compatible clients.
- AlicenseAqualityBmaintenanceEnables reading, creating, updating, and appending content to Yandex Wiki pages via MCP. Supports both read-write and read-only modes.79MIT
- Flicense-qualityDmaintenanceFull-featured MCP server integrating all 71 endpoints of the Weeek API as MCP tools for AI clients, enabling task, project, and workspace management via natural language.2
- AlicenseCqualityCmaintenanceMCP server for WEEEK Public API v1 enabling management of tasks, projects, boards, tags, custom fields, time tracking, and CRM entities.10027MIT
Related MCP Connectors
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
ClickUp MCP — wraps the ClickUp REST API v2 (BYO API key)
Wiktionary MCP — multilingual dictionary via Wikimedia REST + MediaWiki Action API
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/adalekin/weeek-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server