diff --git a/docs/.vitepress/config.mts b/docs/.vitepress/config.mts index da75aeb3..cd4b2675 100644 --- a/docs/.vitepress/config.mts +++ b/docs/.vitepress/config.mts @@ -604,7 +604,8 @@ export default withMermaid(defineConfig({ ] }, { text: 'Webhooks', link: '/dev-tools/intro-webhooks' }, - { text: 'MCP Server', link: '/dev-tools/mcp-server' } + { text: 'MCP Server', link: '/dev-tools/mcp-server' }, + { text: 'MCP Server for Claude Code', link: '/dev-tools/mcp-server-claude-code' } ] } ], diff --git a/docs/dev-tools/mcp-server-claude-code.md b/docs/dev-tools/mcp-server-claude-code.md new file mode 100644 index 00000000..8d1924b7 --- /dev/null +++ b/docs/dev-tools/mcp-server-claude-code.md @@ -0,0 +1,284 @@ +--- +title: MCP Server for Claude Code +description: Install and use the Plane MCP Server with Claude Code CLI. Manage work items, projects, cycles, and modules from your terminal with AI. +keywords: plane, mcp server, claude code, cli, ai, project management, work items, developer tools +--- + +# MCP Server for Claude Code + +[Claude Code](https://docs.anthropic.com/en/docs/claude-code) is Anthropic's CLI tool for agentic +coding. By connecting the Plane MCP Server to Claude Code, you can manage your Plane workspace +directly from the terminal — create work items, plan cycles, search across projects, and more, +all through natural language. + + +Beta +The Plane MCP Server is currently in **Beta**. Some aspects of the API may change. Please send any +issues to support@plane.so. + + +## Prerequisites + +- **Claude Code**: [Install Claude Code](https://docs.anthropic.com/en/docs/claude-code/getting-started) if you haven't already. +- **Node.js 22+**: Required for HTTP transports. Verify with `node --version`. +- **Python 3.10+** and **uvx**: Required only for the local Stdio transport. Verify with `python --version` and `uvx --version`. +- **Plane API Key**: For PAT or Stdio transports, generate one from **Workspace Settings > API Tokens** in Plane. + +## Setup methods + +Choose the transport method that fits your setup. + +| Method | Best for | Auth | +| ------------------------------------- | ---------------------------- | --------------------- | +| [HTTP with OAuth](#http-with-oauth) | Plane Cloud, interactive use | Browser-based OAuth | +| [HTTP with PAT](#http-with-pat-token) | CI/CD, automated workflows | API key in headers | +| [Local Stdio](#local-stdio) | Self-hosted Plane instances | Environment variables | + +## HTTP with OAuth + +The simplest way to connect to Plane Cloud. Run this in your terminal: + +```bash +claude mcp add --transport http plane https://mcp.plane.so/http/mcp +``` + +After adding the server, start Claude Code and run `/mcp` to authenticate via your browser. + +## HTTP with PAT token + +For automated workflows or when you prefer token-based auth: + +```bash +claude mcp add-json plane '{ + "type": "http", + "url": "https://mcp.plane.so/http/api-key/mcp", + "headers": { + "Authorization": "Bearer ", + "X-Workspace-slug": "" + } +}' +``` + +Replace `` and `` with your actual values. + +## Local Stdio + +For self-hosted Plane instances, use the Stdio transport which runs locally: + +```bash +claude mcp add-json plane '{ + "type": "stdio", + "command": "uvx", + "args": ["plane-mcp-server", "stdio"], + "env": { + "PLANE_API_KEY": "", + "PLANE_WORKSPACE_SLUG": "", + "PLANE_BASE_URL": "https://your-plane-instance.com" + } +}' +``` + +### Environment variables + +| Variable | Required | Description | +| ---------------------- | -------- | --------------------------------------------------------------------- | +| `PLANE_API_KEY` | Yes | API key from your workspace settings | +| `PLANE_WORKSPACE_SLUG` | Yes | Your workspace slug (found in your Plane URL) | +| `PLANE_BASE_URL` | No | API URL for self-hosted instances. Defaults to `https://api.plane.so` | + +## Scope options + +Control where the MCP server configuration is stored by adding a `--scope` flag: + +```bash +# Available only to you in the current project (default) +claude mcp add --scope local --transport http plane https://mcp.plane.so/http/mcp + +# Shared via .mcp.json, committed to version control +claude mcp add --scope project --transport http plane https://mcp.plane.so/http/mcp + +# Available across all your projects +claude mcp add --scope user --transport http plane https://mcp.plane.so/http/mcp +``` + +## Verify the connection + +After setup, verify the Plane MCP Server is connected: + +```bash +# List all configured MCP servers +claude mcp list + +# Get details for the Plane server +claude mcp get plane +``` + +Inside Claude Code, run `/mcp` to check the server status and see the available tools. + +## Available tools + +The Plane MCP Server exposes 55+ tools across these categories: + +| Category | Tools | Examples | +| ------------------------ | ----- | --------------------------------------------------------------- | +| **Projects** | 9 | List, create, update, delete projects; get members and features | +| **Work Items** | 7 | Create, list, search, update, delete work items | +| **Cycles** | 12 | Manage cycles, add/remove work items, transfer, archive | +| **Modules** | 11 | Manage modules, add/remove work items, archive | +| **Initiatives** | 5 | Create and manage workspace-level initiatives | +| **Intake** | 5 | Manage intake work items for triage | +| **Work Item Properties** | 5 | Manage custom properties on work items | +| **Users** | 1 | Get current authenticated user info | + +## Examples + +Here are common tasks you can perform by chatting with Claude Code after connecting the Plane MCP Server. + +### List projects in your workspace + +**Prompt:** + +``` +List all projects in my workspace. +``` + +Claude Code calls `list_projects` and returns a summary of all projects including their identifiers, lead, and status. + +### Create a work item + +**Prompt:** + +``` +Create a bug in project WEB titled "Fix login redirect loop" and assign it to me. +``` + +Claude Code calls `get_me` to find your user ID, then `create_work_item` with the project ID, name, and assignee. + +### Search across work items + +**Prompt:** + +``` +Search for work items related to "authentication" across the workspace. +``` + +Claude Code calls `search_work_items` with the query string and returns matching results from all projects. + +### Plan a cycle + +**Prompt:** + +``` +Create a new cycle called "Sprint 24" in project WEB starting today and +ending in 2 weeks. Add work items WEB-102, WEB-115, and WEB-118 to it. +``` + +Claude Code calls `create_cycle` with the name and dates, then `add_work_items_to_cycle` to attach the specified items. + +### Triage intake items + +**Prompt:** + +``` +Show me all intake items in project MOBILE and accept the ones related to +crash reports. +``` + +Claude Code calls `list_intake_work_items` to retrieve pending items, then `update_intake_work_item` to accept the relevant ones. + +### Get a project overview + +**Prompt:** + +``` +Give me a summary of project BACKEND — what cycles are active, how many +open work items are there, and who are the members? +``` + +Claude Code calls `retrieve_project`, `list_cycles`, `list_work_items`, and `get_project_members` to assemble a full overview. + +### Manage modules + +**Prompt:** + +``` +Create a module called "Auth Revamp" in project WEB and add all work items +tagged with the "auth" label to it. +``` + +Claude Code calls `create_module`, then `list_work_items` with label filtering, and finally `add_work_items_to_module` to associate the items. + +### Move work items between cycles + +**Prompt:** + +``` +Transfer all incomplete work items from "Sprint 23" to "Sprint 24" in +project WEB. +``` + +Claude Code calls `list_cycles` to find both cycle IDs, then `transfer_cycle_work_items` to move unfinished items. + +## Managing the server + +```bash +# Remove the Plane MCP server +claude mcp remove plane + +# Re-add with a different transport +claude mcp add --transport http plane https://mcp.plane.so/http/mcp +``` + +## Troubleshooting + +### MCP server not connecting + +If the server fails to start, launch Claude Code with the debug flag: + +```bash +claude --mcp-debug +``` + +This shows detailed logs during MCP server initialization. + +### Authentication errors (OAuth) + +Clear saved OAuth tokens and re-authenticate: + +```bash +rm -rf ~/.mcp-auth +``` + +Then restart Claude Code and run `/mcp` to authenticate again. + +### Server timeout on startup + +If the MCP server times out during initialization, increase the timeout: + +```bash +MCP_TIMEOUT=10000 claude +``` + +This sets a 10-second startup timeout (default is lower). + +### Python or Node.js not found + +Ensure the required runtime is installed and available on your `PATH`: + +```bash +# For HTTP transports +node --version # Should be 22+ + +# For Stdio transport +python --version # Should be 3.10+ +uvx --version +``` + +### Getting help + +If issues persist: + +1. Check your credentials and workspace slug +2. Run `claude mcp list` to verify the configuration +3. Contact support at support@plane.so for Plane-specific issues +4. Visit the [Plane MCP Server repository](https://github.com/makeplane/plane-mcp-server) for known issues