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
Visit Server

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.

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured