Skip to content

Commit 668c28a

Browse files
committed
esolved merge conflicts
2 parents 76f3d29 + cf59ae3 commit 668c28a

15 files changed

+1166
-479
lines changed

api-reference/byoa/build-plane-app.mdx

Lines changed: 0 additions & 449 deletions
This file was deleted.

dev-tools/build-plane-app.mdx

Lines changed: 732 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
---
22
title: Webhooks
3-
sidebarTitle: Introduction
43
description: A webhook triggers a HTTP POST request on the specified url, whenever there is a change in an event. Like a new project is created, updated or deleted then a webhook can be triggered to receive the required payload.
54
---
65
## Creating a webhook

dev-tools/mcp-server.mdx

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,177 @@
1+
---
2+
title: MCP server
3+
description: Use the Plane MCP server to integrate with Plane
4+
---
5+
6+
The [Model Context Protocol](https://modelcontextprotocol.io/overview) (MCP) is a
7+
standardized interface that enables AI models to communicate with external tools and
8+
services. When combined with Server-Sent Events (SSE), it provides a powerful
9+
mechanism for real-time data transfer between AI models and external systems.
10+
11+
<Note>
12+
Beta
13+
The Plane MCP Server is currently in **Beta**. Some aspects of the API may change.
14+
While MCP is standardized, it is also rapidly evolving. The Plane MCP Server aims to
15+
provide a stable implementation for developers to build robust AI-powered
16+
applications. Please send any issues to [email protected].
17+
</Note>
18+
19+
## Prerequisites
20+
21+
Before setting up the Plane MCP Server, ensure you have the following installed:
22+
23+
### Node.js and npm
24+
- **Node.js**: Version 20 or later (LTS recommended)
25+
- **npm**: Comes bundled with Node.js
26+
- **npx**: Comes bundled with npm
27+
28+
You can verify your installation by running:
29+
```bash
30+
node --version
31+
npm --version
32+
npx --version
33+
```
34+
35+
If you don't have Node.js installed, download it from [nodejs.org](https://nodejs.org/).
36+
37+
<Note>
38+
The MCP server uses `npx` to run the `mcp-remote` package, which handles the connection to Plane's MCP server. This is why Node.js and npx are required.
39+
</Note>
40+
41+
## Using the Plane MCP Server
42+
43+
Follow these steps to integrate with the Plane MCP Server.
44+
45+
### Claude.ai
46+
47+
- Open **Settings** from the sidebar on the web or desktop app.
48+
- Scroll to the **Integrations** section and click **Add more**.
49+
- Enter the Integration URL: `https://mcp.plane.so/sse`
50+
- Click **Connect** to link your Plane workspace.
51+
52+
### Claude Desktop
53+
54+
Add Plane to [Claude Desktop](https://modelcontextprotocol.io/quickstart/user) by
55+
updating your `claude_desktop_config.json`:
56+
57+
```json
58+
{
59+
"mcpServers": {
60+
"plane": {
61+
"command": "npx",
62+
"args": ["mcp-remote", "https://mcp.plane.so/sse"]
63+
}
64+
}
65+
}
66+
```
67+
68+
### VSCode
69+
70+
Connect Plane to [VSCode](https://code.visualstudio.com/docs/copilot/chat/mcp-servers#_add-an-mcp-server)
71+
by editing your `.vscode.json` or `mcp.json` file:
72+
73+
```json
74+
{
75+
"servers": {
76+
"plane": {
77+
"command": "npx",
78+
"args": ["mcp-remote", "https://mcp.plane.so/sse"]
79+
}
80+
}
81+
}
82+
```
83+
84+
### Windsurf
85+
86+
1. Press `Ctrl/Cmd + ,` to open Windsurf settings
87+
2. Navigate to **Cascade** > **MCP servers**
88+
3. Select **Add Server** > **Add custom server**
89+
4. Add the following configuration:
90+
91+
```json
92+
{
93+
"mcpServers": {
94+
"plane": {
95+
"command": "npx",
96+
"args": ["-y", "mcp-remote", "https://mcp.plane.so/sse"]
97+
}
98+
}
99+
}
100+
```
101+
102+
### Zed
103+
104+
1. Press `Cmd + ,` to open Zed settings
105+
2. Add the following configuration:
106+
107+
```json
108+
{
109+
"context_servers": {
110+
"plane": {
111+
"source": "custom",
112+
"command": "npx",
113+
"args": ["-y", "mcp-remote", "https://mcp.plane.so/sse"],
114+
"env": {}
115+
}
116+
}
117+
}
118+
```
119+
120+
## Activating the Plane MCP Server
121+
122+
After setup, when activating the server, you will be prompted in your browser to
123+
connect your Plane workspace to the MCP server.
124+
125+
When prompted to authorize, click **Approve**.
126+
127+
Next, choose the workspace you want to connect, review the permissions, and click
128+
**Accept**.
129+
130+
## Troubleshooting
131+
132+
### Common Issues
133+
134+
**Authentication Errors**
135+
136+
If you encounter authentication issues, clear saved auth tokens:
137+
138+
```bash
139+
rm -rf ~/.mcp-auth
140+
```
141+
142+
**Connection Timeouts**
143+
144+
- Ensure you have a stable internet connection
145+
- Check if your firewall or proxy is blocking MCP connections
146+
- Try using the HTTP endpoint instead of SSE if available
147+
148+
**WSL on Windows**
149+
150+
If you're using WSL on Windows and encountering errors, use this configuration:
151+
152+
```json
153+
{
154+
"mcpServers": {
155+
"plane": {
156+
"command": "wsl",
157+
"args": ["npx", "-y", "mcp-remote", "https://mcp.plane.so/sse", "--transport sse-only"]
158+
}
159+
}
160+
}
161+
```
162+
163+
**Node.js Version**
164+
165+
Ensure you have a recent version of Node.js installed. MCP servers require Node.js 18 or later.
166+
167+
### Getting Help
168+
169+
If you continue to experience issues:
170+
171+
1. Verify your authentication credentials
172+
2. Contact support at [email protected] for Plane-specific issues
173+
3. Check the [MCP community forums](https://modelcontextprotocol.io) for general MCP issues
174+
175+
## Congrats!
176+
177+
You have successfully connected your Plane workspace to the MCP server!

mint.json

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@
4747
"url": "self-hosting"
4848
},
4949
{
50-
"name": "APIs and BYOA",
50+
"name": "API Reference",
5151
"url": "api-reference"
5252
},
5353
{
54-
"name": "Webhooks",
55-
"url": "webhooks"
54+
"name": "Dev Tools",
55+
"url": "dev-tools"
5656
}
5757
],
5858
"navigation": [
@@ -74,6 +74,14 @@
7474
"self-hosting/methods/kubernetes",
7575
"self-hosting/methods/coolify",
7676
"self-hosting/methods/portainer",
77+
{
78+
"group": "Airgapped Edition",
79+
"pages": [
80+
"self-hosting/methods/airgapped-edition",
81+
"self-hosting/methods/airgapped-edition-kubernetes"
82+
]
83+
},
84+
7785
"self-hosting/methods/podman-quadlets"
7886
]
7987
},
@@ -138,13 +146,6 @@
138146
"self-hosting/troubleshoot/storage-errors"
139147
]
140148
},
141-
142-
{
143-
"group": "App Development",
144-
"pages": [
145-
"api-reference/byoa/build-plane-app"
146-
]
147-
},
148149
{
149150
"group": "API Reference",
150151
"pages": [
@@ -348,8 +349,12 @@
348349
]
349350
},
350351
{
351-
"group": "Webhooks",
352-
"pages": ["webhooks/intro-webhooks"]
352+
"group": "Build and extend Plane",
353+
"pages": [
354+
"dev-tools/build-plane-app",
355+
"dev-tools/intro-webhooks",
356+
"dev-tools/mcp-server"
357+
]
353358
}
354359
],
355360
"footerSocials": {
@@ -360,5 +365,15 @@
360365
"ga4": {
361366
"measurementId": "G-G578SD4VZD"
362367
}
363-
}
368+
},
369+
"redirects": [
370+
{
371+
"source": "/api-reference/byoa/build-plane-app",
372+
"destination": "/dev-tools/build-plane-app"
373+
},
374+
{
375+
"source": "/webhooks/intro-webhooks",
376+
"destination": "/dev-tools/intro-webhooks"
377+
}
378+
]
364379
}

self-hosting/govern/environment-variables.mdx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,8 @@ The environment configuration file is located at:
166166
| **WEB_URL** | The complete base URL for the web application including protocol. Essential for email links and integrations. | `http://${APP_DOMAIN}` |
167167
| **CORS_ALLOWED_ORIGINS** | Comma-separated list of origins allowed to make cross-origin requests to your API. | `http://${APP_DOMAIN}` |
168168
| **DEBUG** | Toggles debug mode for verbose logging. Set to `1` to enable, `0` to disable. Not recommended in production as it may expose sensitive information. | `0` |
169-
| **NGINX_PORT** | Port for HTTP traffic. The primary port your users will connect to. | `80` |
169+
| **LISTEN_HTTP_PORT** | Port for HTTP traffic. The primary port your users will connect to. | `80` |
170+
| **LISTEN_HTTPS_PORT** | Port for HTTPS traffic. The primary port your users will connect to. | `443` |
170171

171172
### Scaling and performance
172173

self-hosting/govern/reverse-proxy.mdx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ Make sure to update the following environment variables in your plane.env file.
2121
```
2222
This is required so that generated links and redirects work correctly behind the proxy:
2323

24+
3. After editing plane.env, restart your instance so the changes take effect:
25+
```bash
26+
sudo prime-cli restart
27+
```
28+
2429
## Proxy setup
2530

2631
1. Choose the appropriate [configuration template](#configuration-templates) for your reverse proxy.

self-hosting/govern/saml-sso.mdx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ Create a Plane client or application per your IdP's documentation and configure
2020

2121
| **Config** | **Value** |
2222
|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
23-
| Entity ID <br/><br/> Metadata that identifies Plane as an authorized service on your IdP | `http(s)://domain.tld/auth/oidc/` |
24-
| ACS URL <br/><br/>Assertion Consumer service that your IdP will redirect to after successful authentication by a user <br/><br/>This is roughly the counterpart of the `Callback URL` in OIDC set-ups. | `http(s)://domain.tld/auth/oidc/callback/` <br/><br/> Plane supports HTTP-POST bindings. |
25-
| SLS URL <br/><br/>Single Logout Service that your IdP will recognize to end a Plane session when a user logs out <br/><br/>This is roughly the counterpart of the `Logout URL` in OIDC set-ups. | `http(s)://domain.tld/auth/oidc/logout/` |
23+
| Entity ID <br/><br/> Metadata that identifies Plane as an authorized service on your IdP | `http(s)://domain.tld/auth/saml/` |
24+
| ACS URL <br/><br/>Assertion Consumer service that your IdP will redirect to after successful authentication by a user <br/><br/>This is roughly the counterpart of the `Callback URL` in SAML set-ups. | `http(s)://domain.tld/auth/saml/callback/` <br/><br/> Plane supports HTTP-POST bindings. |
25+
| SLS URL <br/><br/>Single Logout Service that your IdP will recognize to end a Plane session when a user logs out <br/><br/>This is roughly the counterpart of the `Logout URL` in SAML set-ups. | `http(s)://domain.tld/auth/saml/logout/` |
2626

2727
<Tip>
2828
When setting these values up on the IdP, it’s important to remember Plane does not need to provide a signing certificate like other service providers.

self-hosting/manage/backup-restore.mdx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ Follow these steps to restore data from a backup:
8686
2. Use the command ↓ to download the restore script. It’s easiest to save it in the same directory as `setup.sh`.
8787

8888
```bash
89-
curl -fsSL -o restore.sh https://raw.githubusercontent.com/makeplane/plane/master/deploy/selfhost/restore.sh
89+
curl -fsSL -o restore.sh https://raw.githubusercontent.com/makeplane/plane/refs/heads/preview/deployments/cli/community/restore.sh
9090
chmod +x restore.sh
9191
```
9292

0 commit comments

Comments
 (0)