plane-local-mcp
plane-local-mcp
MCP (Model Context Protocol) local para Plane Community Edition self-hosted.
Usa a API pública /api/v1/.../issues/ (compatível com Plane CE). Útil para listar projetos, issues, estados, labels, cycles e buscar itens pelo identificador humano (PROJECT-N, ex.: CKTPC-838).
Pré-requisitos
Python
>= 3.10uv instalado e no
PATHInstância Plane CE acessível + API key
Instalação
git clone https://github.com/JonatanCosta/plane-local-mcp.git
cd plane-local-mcp
uv syncAnote o caminho absoluto do clone (ex.: /Users/voce/plane-local-mcp). Ele será usado nas configs abaixo.
Variáveis de ambiente
Variável | Obrigatória | Descrição |
| sim | API key do Plane |
| sim | Slug do workspace |
| sim | URL base da instância (sem |
Exemplo:
export PLANE_API_KEY="plane_api_..."
export PLANE_WORKSPACE_SLUG="meu-workspace"
export PLANE_BASE_URL="https://plane.exemplo.com"Cursor
Edite ~/.cursor/mcp.json (ou Settings → MCP → Add server) e adicione:
{
"mcpServers": {
"plane": {
"command": "uv",
"args": [
"run",
"--directory",
"/ABS/PATH/plane-local-mcp",
"plane-local-mcp"
],
"env": {
"PLANE_API_KEY": "plane_api_...",
"PLANE_WORKSPACE_SLUG": "meu-workspace",
"PLANE_BASE_URL": "https://plane.exemplo.com"
}
}
}
}Substitua /ABS/PATH/plane-local-mcp pelo caminho absoluto do repositório. Reinicie o Cursor (ou recarregue os MCPs) e confira se o servidor plane aparece com as tools.
Claude Desktop
Abra Settings → Developer → Edit Config (cria o arquivo se ainda não existir).
Edite
claude_desktop_config.json:macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"plane": {
"command": "uv",
"args": [
"run",
"--directory",
"/ABS/PATH/plane-local-mcp",
"plane-local-mcp"
],
"env": {
"PLANE_API_KEY": "plane_api_...",
"PLANE_WORKSPACE_SLUG": "meu-workspace",
"PLANE_BASE_URL": "https://plane.exemplo.com"
}
}
}
}Feche completamente o Claude Desktop e abra de novo.
No chat, o ícone de ferramentas (martelo) deve listar as tools do Plane.
Dica: se
uvnão for encontrado, use o caminho absoluto do binário (ex.:/Users/voce/.local/bin/uv).
Claude Code (CLI)
claude mcp add plane --env PLANE_API_KEY=plane_api_... \
--env PLANE_WORKSPACE_SLUG=meu-workspace \
--env PLANE_BASE_URL=https://plane.exemplo.com \
-- uv run --directory /ABS/PATH/plane-local-mcp plane-local-mcpOu edite ~/.claude/settings.json / .claude/settings.json com o mesmo bloco mcpServers do Cursor.
Codex (CLI / IDE)
Edite ~/.codex/config.toml (ou .codex/config.toml no projeto, se ele estiver trusted):
[mcp_servers.plane]
command = "uv"
args = [
"run",
"--directory",
"/ABS/PATH/plane-local-mcp",
"plane-local-mcp",
]
[mcp_servers.plane.env]
PLANE_API_KEY = "plane_api_..."
PLANE_WORKSPACE_SLUG = "meu-workspace"
PLANE_BASE_URL = "https://plane.exemplo.com"Alternativa via CLI:
codex mcp add plane --env PLANE_API_KEY=plane_api_... \
--env PLANE_WORKSPACE_SLUG=meu-workspace \
--env PLANE_BASE_URL=https://plane.exemplo.com \
-- uv run --directory /ABS/PATH/plane-local-mcp plane-local-mcpEm uma sessão Codex, use /mcp para validar que o servidor conectou.
Tools disponíveis
Tool | Descrição |
| Base URL, workspace e estilo de API |
| Lista projetos do workspace |
| Projeto por UUID |
| Estados (colunas) do projeto |
| Labels do projeto |
| Modules do projeto |
| Cycles do projeto |
| Issues do projeto ( |
| Issue por UUID |
| Issue por |
| Filhos de um épico/issue |
| Edita título, descrição, prioridade e/ou status |
| Adiciona issue a um cycle |
| Remove issue de um cycle |
Exemplos de edição
update_issue(identifier="CKTPC-844", name="Novo título")
update_issue(identifier="CKTPC-844", description="Texto simples da descrição")
update_issue(identifier="CKTPC-844", state_name="Em Execução")
add_issue_to_cycle(identifier="CKTPC-844", cycle_name="Payment Sprint - 23")Notas:
Descrição no Plane usa HTML (
description_html). Se passardescriptionem texto puro, o MCP converte para HTML mínimo.Status e cycle aceitam UUID (
state_id/cycle_id) ou nome (state_name/cycle_name).Cycle não entra no PATCH da issue: a API exige
POST .../cycles/{id}/cycle-issues/.
Desenvolvimento
uv sync
uv run plane-local-mcpO servidor fala MCP via stdio.
Licença
MIT
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/JonatanCosta/plane-local-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server