# RunPane MCP daemon and MCP servers

MCP (Model Context Protocol) lets your agent talk to external tools like GitHub, Linear, Jira, and Slack. Pane doesn't do anything special here. When you run Claude Code in a Pane terminal, it picks up MCP servers from `.mcp.json` (project-level) or `~/.claude.json` (user-level), the same as it would in any terminal.

## Is there a RunPane MCP daemon?

No. Pane has a local daemon, but it isn't an MCP server. The daemon runs your terminals, worktrees, and agent processes. Agents control it through the typed `runpane` CLI. This keeps local workspace access on your machine.

1. Read the [runpane CLI contract](https://runpane.com/runpane-cli-contract.json).
2. Check the daemon with `runpane doctor --json`.
3. Read the available commands with `runpane agent-context --json`.
4. Use your agent's own MCP servers for GitHub, Linear, Jira, Slack, and other tools.

That's the boundary: the RunPane daemon controls local Pane work. Your agent's MCP servers connect it to external tools.

## How it works

A Pane is a real terminal. Claude Code running inside it reads `.mcp.json` exactly like it would in a standalone terminal. The same goes for any other agent that supports MCP. Pane's job is to give each agent an isolated shell. The agent handles MCP on its own.

## Example: Context7 docs lookup

Drop an `.mcp.json` at the root of your worktree:

```json
{
  "mcpServers": {
    "context7": {
      "command": "npx",
      "args": ["-y", "@upstash/context7-mcp@latest"]
    }
  }
}
```

Claude Code will connect automatically the next time you start it.

<TerminalPreview lines={[
  { type: "command", text: "claude" },
  { type: "output",  text: "MCP server \"context7\" connected" },
  { type: "output",  text: "" },
  { type: "command", text: "How does React's reconciler work? Use context7." },
  { type: "success", text: "Fetched 12 docs from context7 (react)" },
  { type: "output",  text: "The reconciler works by diffing two fiber trees..." }
]} />

Source: [github.com/upstash/context7](https://github.com/upstash/context7)

## Example: Linear ticket to PR

```json
{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "linear-mcp-server"],
      "env": {
        "LINEAR_API_KEY": "${LINEAR_API_KEY}"
      }
    }
  }
}
```

Workflow inside a Pane terminal:

1. Agent reads the Linear issue via MCP.
2. Agent writes code in the worktree.
3. Agent commits and opens a PR with `gh pr create`.
4. You review in the adjacent panel without switching windows.

Source: [linear.app](https://linear.app)

## Different MCPs per pane

Each pane runs in its own worktree directory. That means each worktree can have its own `.mcp.json`. One pane can connect to Context7 while another connects to an internal MCP server. No conflicts, no shared state.

```
my-repo/          ← main worktree (.mcp.json → context7)
../api-pane/      ← worktree for API work (.mcp.json → internal-mcp)
../web-pane/      ← worktree for UI work  (no .mcp.json)
```

## Where to put credentials

| Config file | Scope | Use for |
|-------------|-------|---------|
| `~/.claude.json` | All sessions | Personal API keys, MCPs you use everywhere |
| `.mcp.json` in worktree | This project | Repo-specific MCPs, team-shared config |

`~/.claude.json` is shared across all Pane sessions for the same OS user. `.mcp.json` in the worktree is for project-specific servers. Commit `.mcp.json` to your repo if the whole team uses those servers. Put secret env vars in `.env` and add it to `.gitignore`.

## What Pane Itself Integrates

Pane isn't a task manager or a Kanban board. It doesn't integrate with Linear, Jira, or GitHub Issues on its own, and it doesn't manage specs or product feedback either. Your agents already talk to those tools through MCP servers and CLI tools, the terminal is the integration layer, and Pane's job is to give those agents somewhere to run.

The one exception: Pane shows read-only PR status badges by calling `gh pr list`. That's it for built-in integrations. See the [Linear example](#example-linear-ticket-to-pr) above for how the rest works in practice.

## Related

- [AI providers](/docs/providers) — set provider API keys per pane
- [Security & permissions](/docs/security) — what Pane does and does not send off-device
