MCP servers
neondeck reads MCP server config from runtime-home
mcp.json. Connected tools are registered with Flue as
mcp__<server>__<tool> and appear in new Neon sessions
after the registry refreshes.
Configuration
{
"servers": {
"linear": {
"transport": "http",
"url": "https://mcp.linear.app/mcp",
"auth": { "kind": "oauth" }
},
"local-tools": {
"transport": "stdio",
"command": "node",
"args": ["/absolute/path/to/server.mjs"],
"tools": {
"deny": ["dangerous_tool"]
}
}
}
}
HTTP servers must use https:// except loopback development
hosts. Raw secrets are rejected. Header auth uses environment-variable references,
and OAuth tokens are stored only in
data/neondeck.db.
{
"servers": {
"internal": {
"transport": "http",
"url": "https://mcp.example.com/mcp",
"auth": {
"kind": "header",
"headers": {
"Authorization": { "env": "INTERNAL_MCP_AUTHORIZATION" }
}
}
}
}
}
Approval policy
MCP tools default to per-call approval. Exact tool names can be denied or auto-approved per server:
{
"tools": {
"autoApprove": ["search"],
"deny": ["delete_project"]
}
}
Pending approvals are single-use and bound to the exact argument hash. Resolve them from Runtime Overview, the local API, or the CLI, then retry the same tool call with unchanged arguments.
OAuth
OAuth servers start in needs-login until a user completes a
state-bound loopback authorization flow. The callback exchanges the authorization
code through the MCP SDK provider and stores client registration, PKCE verifier,
discovery state, and tokens in SQLite.
neondeck mcp add linear --url https://mcp.linear.app/mcp --oauth
neondeck mcp login linear
neondeck mcp logout linear --confirm
The dashboard Runtime Overview panel shows configured MCP servers, OAuth login/logout controls, tool counts, connection errors, and pending MCP approvals.
CLI and API
neondeck mcp list
neondeck mcp status [id]
neondeck mcp add <id> --url ... | --command ...
neondeck mcp enable <id>
neondeck mcp disable <id>
neondeck mcp tools <id>
neondeck mcp approvals [--resolve <id> --approve|--deny]
neondeck mcp audit
GET /api/mcp/servers
POST /api/mcp/servers
PATCH /api/mcp/servers/:id
DELETE /api/mcp/servers/:id
GET /api/mcp/servers/:id/tools
POST /api/mcp/servers/:id/refresh
POST /api/mcp/servers/:id/login
GET /api/mcp/logins/:id
GET /api/mcp/oauth/callback
POST /api/mcp/servers/:id/logout
GET /api/mcp/approvals
POST /api/mcp/approvals/:id/resolve
GET /api/mcp/audit
Agent boundary
Neon can use safe typed actions for HTTP/OAuth server setup and OAuth
login starts. Stdio servers, header-authenticated servers, and
auto-approval policy are user-owned surfaces because they can spawn
host processes or forward environment-backed secrets. Configure those
through the CLI, local API, or direct mcp.json edits.