Contributing to Plane MCP Server banner
makeplane makeplane

Contributing to Plane MCP Server

Development community intermediate

Description

Thank you for showing an interest in contributing to Plane MCP Server! All kinds of contributions are valuable to us. In this guide, we will cover how you can quickly onboard and make your first contr

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Contributing to Plane MCP Server

Thank you for showing an interest in contributing to Plane MCP Server! All kinds of contributions are valuable to us. In this guide, we will cover how you can quickly onboard and make your first contribution.

Submitting an issue

Before submitting a new issue, please search the [issues](https://github.com/makeplane/plane-mcp-server/issues) tab. Maybe an issue or discussion already exists and might inform you of workarounds. Otherwise, you can give new information.

While we want to fix all the [issues](https://github.com/makeplane/plane-mcp-server/issues), before fixing a bug we need to be able to reproduce and confirm it. Please provide us with a minimal reproduction scenario. Having a live, reproducible scenario gives us the information without asking questions back & forth with additional questions like:

  • Python version and OS
  • MCP client being used (Claude Desktop, etc.)
  • Transport method (stdio, HTTP, SSE)
  • A use-case that fails

Without said minimal reproduction, we won't be able to investigate all [issues](https://github.com/makeplane/plane-mcp-server/issues), and the issue might not be resolved.

You can open a new issue with this [issue form](https://github.com/makeplane/plane-mcp-server/issues/new).

Naming conventions for issues

When opening a new issue, please use a clear and concise title that follows this format:

  • For bugs: Bug: [short description]
  • For features: Feature: [short description]
  • For improvements: Improvement: [short description]
  • For documentation: Docs: [short description]

**Examples:**

  • Bug: OAuth token refresh fails with Redis backend
  • Feature: Add support for custom fields in work items
  • Improvement: Better error messages for missing environment variables
  • Docs: Clarify PAT token setup for HTTP transport

This helps us triage and manage issues more efficiently.

Project setup

Requirements

  • Python 3.10+
  • uv (fast Python package installer)
  • A Plane instance (cloud or self-hosted) with an API key for testing

Setup the project

  1. Clone the repo
git clone https://github.com/makeplane/plane-mcp-server.git
cd plane-mcp-server
  1. Install dependencies
uv pip install -e ".[dev]"
  1. Configure environment variables
cp .env.test .env.test.local
# Edit .env.test.local with your Plane API credentials
  1. Run the server locally (stdio mode)
PLANE_API_KEY="your-api-key" PLANE_WORKSPACE_SLUG="your-workspace" python -m plane_mcp stdio
  1. Run the tests
export $(cat .env.test.local | xargs) && pytest tests/ -v

Missing a Feature?

If a feature is missing, you can directly _request_ a new one [here](https://github.com/makeplane/plane-mcp-server/issues/new). If you would like to _implement_ it, an issue with your proposal must be submitted first, to be sure that we can use it. Please consider the guidelines given below.

Coding guidelines

To