MCP server
Openpane hosts its MCP server with the app. Any client that speaks Streamable HTTP connects with one URL and one header, and gets seven tools.
Connect
| URL | https://openpane.oblaidish.com/api/mcp |
|---|---|
| Transport | Streamable HTTP, stateless: one JSON-RPC message per POST, answered with plain JSON |
| Header | Authorization: Bearer YOUR_API_KEY |
The key is a personal API key from the API keys page. Clients that sign in with OAuth, such as the Claude app and ChatGPT, need no key: without one, the endpoint answers 401 with a resource_metadata link that tells them where to sign in, and you allow them on Openpane. Setup guides: Claude Code, Claude app, ChatGPT, Codex, Cursor, VS Code, Devin Desktop, Zed, Antigravity.
Clients that only start local servers
Bridge them with mcp-remote. The space after Bearer lives in the variable, so Windows can't split the argument.
{
"mcpServers": {
"openpane": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://openpane.oblaidish.com/api/mcp",
"--header",
"Authorization:${OPENPANE_AUTH}"
],
"env": {
"OPENPANE_AUTH": "Bearer YOUR_API_KEY"
}
}
}
}Tools
Tools act as the key's owner. Read-only tools are marked as such, and delete_pane as destructive, so clients can ask before running it.
create_pane
Publishes HTML, React or Markdown as a live pane and returns its link. Panes are private unless you set visibility.
| Parameter | Type | About |
|---|---|---|
title | string, 1 to 200 characters | Required. A short title. |
type | html, react or markdown | Required. html: a document or fragment. react: JSX defining a component named App. markdown: GitHub-flavored Markdown. |
content | string, up to 1 MB | Required. The full source. |
visibility | private, unlisted or public | Defaults to private. Set it only when the user asks to share the pane. |
Returns id, url, title, type, visibility, version, and for unlisted and public panes an iframe snippet (embed).
update_pane
Revises one of your panes, or one shared with you to edit. Only the fields you pass change, and the link stays the same.
| Parameter | Type | About |
|---|---|---|
id | string | Required. The pane's id. |
title | string | A new title. |
type | html, react or markdown | A new type. |
content | string | New source. Saves a new version. |
visibility | private, unlisted or public | Who can open it. Owners only. |
Returns id, url, visibility, version and updatedAt.
get_pane
Fetches a pane with its full source: your panes, panes shared with you, and any unlisted or public pane.
| Parameter | Type | About |
|---|---|---|
id | string | Required. The pane's id. |
Returns the pane, with its url and embedUrl.
list_panes
Lists your panes, most recently updated first, without their source.
| Parameter | Type | About |
|---|---|---|
limit | integer, 1 to 200 | How many. Defaults to 50. |
Returns id, title, type, visibility, url, version, updatedAt, and sharedWith: how many people and companies each is shared with.
delete_pane
Permanently deletes one of your panes. Its link and embeds stop working.
| Parameter | Type | About |
|---|---|---|
id | string | Required. The pane's id. |
Returns a confirmation.
share_pane
Asks to share one of your panes by email. Nothing is shared until you approve it on the pane's Share page.
| Parameter | Type | About |
|---|---|---|
id | string | Required. The pane's id. |
emails | array of strings | Required. Up to 10 addresses at a time on Free, 50 on Pro. @acme.com means everyone at acme.com (Pro). |
role | viewer or editor | Defaults to viewer. Editors (Pro) can change the content too. |
notify | boolean | Email them the link once you approve. Defaults to true. |
expiresAt | ISO 8601 date and time | When their access ends, within a year (Pro). Leave it out for no end. |
Returns status (pending) and approvalUrl, where you approve it.
list_shares
Who one of your panes is shared with, people and companies, with their roles, and the shares waiting for your approval.
| Parameter | Type | About |
|---|---|---|
id | string | Required. The pane's id. |
Returns shares (email, role, createdAt, expiresAt, and openedAt on Pro) and pending.
Errors
A tool that fails answers with isError and a message such as Openpane API error (404): Pane not found. Private panes you can't open answer 404, as if they didn't exist.