weeek-mcp

weeek-mcp

Enables task management on Weeek via the public REST API and knowledge base browsing as MCP resources with full document content.

Category
访问服务器

README

weeek-mcp

CI PyPI version License: MIT

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.

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 with weeek-mcp-login.

Installation

pip install weeek-mcp              # task tools only
pip install "weeek-mcp[kb]"        # + knowledge base (Playwright)
playwright install chromium         # KB runtime

With 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
WEEEK_API_TOKEN Task API token. Required for task tools.
WEEEK_EMAIL / WEEEK_PASSWORD First automated KB login. Optional (skip if 2FA/SSO — use weeek-mcp-login).
WEEEK_WORKSPACE_ID KB workspace id. Optional — auto-detected via /ws when unset.
WEEEK_STORAGE_STATE Where the browser session is cached (defaults under ~/.local/state).
WEEEK_HEADLESS false to watch the browser during login.
WEEEK_KB_CACHE_TTL Seconds to cache the KB document list (default 300).

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-login

Usage

Run the stdio server:

weeek-mcp

Claude 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.

Knowledge base: weeek_kb_search, weeek_kb_list, weeek_kb_read, weeek_kb_create, weeek_kb_update, weeek_kb_delete.

weeek_kb_update with 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.

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 in weeek_mcp/kb/client.py are 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 with weeek-mcp-login instead.
  • 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), so weeek_kb_update opens the document in a headless browser and pastes the new content. 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.

Development

See CONTRIBUTING.md for setup, tests, and pull requests.

License

This project is licensed under the MIT License — see LICENSE.

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选