diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..db61c76 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# Generated by https://smithery.ai. See: https://smithery.ai/docs/build/project-config +FROM node:lts-alpine AS build +WORKDIR /app + +# Install dependencies and build +COPY package.json package-lock.json tsconfig.json ./ +COPY src ./src +RUN npm install && npm run build && npm prune --production + +FROM node:lts-alpine +WORKDIR /app +COPY --from=build /app/node_modules ./node_modules +COPY --from=build /app/build ./build +COPY --from=build /app/package.json ./package.json + +# Default environment, can be overridden +ENV PLANE_API_HOST_URL=https://api.plane.so/ + +# Start the MCP server +ENTRYPOINT ["node", "build/index.js"] diff --git a/README.md b/README.md index d179613..c82d3b2 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Plane MCP Server +[![smithery badge](https://smithery.ai/badge/@makeplane/plane-mcp-server)](https://smithery.ai/server/@makeplane/plane-mcp-server) + The Plane MCP Server brings the power of Model Context Protocol (MCP) to Plane, allowing AI agents and developer tools to interact programmatically with your Plane workspace. Whether you're building intelligent assistants, automation scripts, or workflow-driven tools, this server provides a seamless bridge to Plane’s API—so you can create projects, manage issues, assign tasks, and keep your work in sync with AI-powered tools. @@ -335,6 +337,14 @@ This server unlocks all sorts of useful capabilities for anyone working with Pla ## Usage +### Installing via Smithery + +To install Plane Server for Claude Desktop automatically via [Smithery](https://smithery.ai/session/@makeplane/plane-mcp-server): + +```bash +npx -y @smithery/cli install @makeplane/plane-mcp-server --client claude +``` + ### Claude Desktop You can add Plane to [Claude Desktop](https://modelcontextprotocol.io/quickstart/user) by updating your `claude_desktop_config.json`: @@ -384,4 +394,4 @@ You can also connect Plane to [VSCode](https://code.visualstudio.com/docs/copilo ## License -This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository. \ No newline at end of file +This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository. diff --git a/smithery.yaml b/smithery.yaml new file mode 100644 index 0000000..dcf805f --- /dev/null +++ b/smithery.yaml @@ -0,0 +1,29 @@ +# Smithery configuration file: https://smithery.ai/docs/build/project-config + +startCommand: + type: stdio + commandFunction: + # A JS function that produces the CLI command based on the given config to start the MCP on stdio. + |- + (config) => ({ command: 'node', args: ['build/index.js'], env: { PLANE_API_KEY: config.planeApiKey, PLANE_WORKSPACE_SLUG: config.planeWorkspaceSlug, PLANE_API_HOST_URL: config.planeApiHostUrl } }) + configSchema: + # JSON Schema defining the configuration options for the MCP. + type: object + required: + - planeApiKey + - planeWorkspaceSlug + properties: + planeApiKey: + type: string + description: Your Plane API token + planeWorkspaceSlug: + type: string + description: Your Plane workspace slug + planeApiHostUrl: + type: string + default: https://api.plane.so/ + description: Plane API host URL + exampleConfig: + planeApiKey: sk_exampleapikey123 + planeWorkspaceSlug: my-workspace + planeApiHostUrl: https://api.plane.so/