plane-mcp-server CLAUDE.md

A project guide for a Python MCP server that exposes Plane’s project-management API to AI assistants. MCP is a standard way for assistants to call external tools.

In plain words
What is it for?
Installing dependencies, starting the server through local or web transports, running tests, and checking or formatting Python code.
Why use it?
It gives developers the commands and configuration needed to install, run, test, and format the server correctly.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/makeplane/plane-mcp-server/claude-md
Clone the repo
git clone --depth 1 https://github.com/makeplane/plane-mcp-server
Per session 2,250 This file is loaded in full into every session.
When invoked 2,250 The same file — it is already loaded in full.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.02250 $0.02250
Opus 5 $0.01125 $0.01125
Sonnet 5 $0.00450 $0.00450
Haiku 4.5 $0.00225 $0.00225

Measured 2d ago against content hash ac3d175f3b6e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

plane-mcp-server CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 137 lines

How it starts

The opening of the file, as written. The whole thing — 137 lines — stays where its author put it; the contents beside it link to each section on GitHub.

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

Plane MCP Server — a Python-based Model Context Protocol server that exposes Plane's project management API as MCP tools. Built on FastMCP with the official plane-sdk. Supports three transport modes: stdio (local), HTTP (with OAuth or header auth), and SSE (legacy).

Common Commands

# Install dependencies (uses uv)
uv pip install -e ".[dev]"

# Run the server locally (stdio mode)
PLANE_API_KEY=... PLANE_WORKSPACE_SLUG=... python -m plane_mcp stdio

# Run HTTP server
python -m plane_mcp http

# Run all tests
pytest

# Run a single test
pytest tests/test_integration.py::test_full_integration -v

# Run tests with env vars from file
export $(cat .env.test.local | xargs) && pytest tests/ -v

# Format code (line length: 120)
ruff format plane_mcp/

# Lint (rules: E, F, I, UP, B; line length: 120)
ruff check plane_mcp/

Architecture

Entry Point & Transport Modes

plane_mcp/__main__.py parses a positional arg (stdio, http, or sse) and launches the corresponding server:

  • stdio: Requires PLANE_API_KEY + PLANE_WORKSPACE_SLUG env vars. Runs locally.
  • http: Starts on port 8211 with two auth endpoints — OAuth (/oauth/mcp) and header-based PAT (/http/api-key/mcp).
  • sse: Legacy OAuth-only SSE transport.

Server Factories (server.py)

Three factory functions (get_oauth_mcp, get_header_mcp, get_stdio_mcp) each create a FastMCP instance and configure the appropriate auth provider, then hand it to _configured() for the middleware stack and tools — one place, so a transport cannot be left a middleware behind. OAuth/HTTP modes use Redis for token storage (falls back to in-memory).

Middleware (middleware.py)

Ordered as registered; the earlier one wraps the later:

Middleware Does
PlaneLoggingMiddleware structured logging, plus the tool name
CoerceArguments repairs arguments a client encoded as strings, before validation (coercion.py)
ValidateActionArguments refuses a call with no action, and arguments the chosen action does not accept, from the ACTIONS declaration

Read the full file on GitHub · 137 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 137 lines · 2,250 tokens per session scan A ac3d175f3b6e

Subscribe to this mod's changes

plane-mcp-server CLAUDE.md is an instructions file published in the GitHub repository makeplane/plane-mcp-server (300 stars, last pushed 7d ago), licensed MIT. It adds 2,250 tokens to every session, about $0.0112 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.