{
  "markdown": "# weeek-mcp-smart\n\n[![npm version](https://img.shields.io/npm/v/weeek-mcp-smart.svg)](https://www.npmjs.com/package/weeek-mcp-smart)\n[![npm downloads](https://img.shields.io/npm/dm/weeek-mcp-smart.svg)](https://www.npmjs.com/package/weeek-mcp-smart)\n[![CI](https://github.com/IlyaIvanchikov/weeek-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/IlyaIvanchikov/weeek-mcp/actions/workflows/test.yml)\n[![node](https://img.shields.io/node/v/weeek-mcp-smart.svg)](https://www.npmjs.com/package/weeek-mcp-smart)\n[![license](https://img.shields.io/npm/l/weeek-mcp-smart.svg)](./LICENSE)\n\n**The only one-click WEEEK MCP server** — it takes **names, not IDs**. Create a task in one call:\n\n```\nweeek_create_task({ title: \"Ship v1\", project: \"Marketing\",\n                    column: \"In Progress\", assignee: \"Ilya\", due: \"next friday\" })\n```\n\nNo `list_projects → list_boards → list_columns → list_members` dance first.\n\n<!-- DEMO: drop a gif/screenshot here — an agent creating a task by name in one call.\n     Your PROMOTE.md calls this the biggest single stars lever. Suggested: ![demo](docs/demo.gif) -->\n\n\n## Install (Claude Code / Cursor)\n\n```bash\nclaude mcp add weeek -s user -- npx -y weeek-mcp-smart\n# then set WEEEK_API_TOKEN in the generated config\n```\n\n## Install (Claude Desktop, one click)\n\n**[⬇ Download the latest `.mcpb`](https://github.com/IlyaIvanchikov/weeek-mcp/releases/latest/download/weeek-mcp-smart.mcpb)**, then open it in Claude Desktop (Settings → Extensions → install from file). You'll be prompted for your WEEEK API token — it's stored in your OS keychain.\n\nAll releases: https://github.com/IlyaIvanchikov/weeek-mcp/releases\n\n## Get a token\n\nWEEEK → Settings → API → generate a personal token.\n\n## Configuration\n\n| Env var | Required | Default | Purpose |\n|---|---|---|---|\n| `WEEEK_API_TOKEN` | to call tools | — | Your WEEEK personal API token. The server starts and lists its tools without it, but any tool call fails until it is set. |\n| `WEEEK_API_BASE_URL` | no | `https://api.weeek.net/public/v1` | Override for self-hosted / regional hosts. |\n| `WEEEK_TIMEOUT_MS` | no | `30000` | Per-request timeout. |\n| `WEEEK_ATTACH_DIR` | no | the server's working directory | Directory `weeek_attach_file` may read from (see Safety). |\n| `WEEEK_ATTACH_MAX_BYTES` | no | `10485760` (10 MB) | Max attachable file size. |\n\n## Safety\n\nThis server is driven by an LLM that can read untrusted content (task text, web pages), so the two riskiest tools are guarded:\n\n- **`weeek_attach_file`** only reads files inside an allowed directory (its subfolders included). By default that's the server's **working directory** — so it works with no setup for local files, while paths outside it (`/etc/passwd`, `~/.ssh`, `..` traversal, symlinks that escape) are refused. Set `WEEEK_ATTACH_DIR` to point the jail somewhere specific or lock it down further. No special folder is required.\n- **`weeek_delete_task`** is permanent and requires an explicit `confirm: true`; to merely close a task use `weeek_complete_task`.\n\n## Tools\n\nReads: `weeek_version`, `weeek_list_projects`, `weeek_list_tasks`, `weeek_get_task`.\nWrites: `weeek_create_task`, `weeek_create_tasks`, `weeek_update_task`, `weeek_move_task`, `weeek_complete_task`, `weeek_attach_file`, `weeek_delete_task`.\n\n## Author\n\n**Ilya Ivanchikov** — [GitHub](https://github.com/IlyaIvanchikov) · [LinkedIn](https://www.linkedin.com/in/ilyaivanchikov) · [Telegram](https://t.me/IlyaIvanchikov) · [Channel](https://t.me/ivanchikovitclub)\n",
  "bytes": 3504,
  "sha": "a6179a8f246c26e349b24e944cd915cd12da72076475b38d32e19170d323601c",
  "repo_slug": "ilyaivanchikov/weeek-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_ilyaivanchikov_weeek_mcp_smart_5b8c598a/readme"
}