Sevalla
Model Context Protocol (MCP) server for Sevalla cloud hosting platform
Ask AI about Sevalla
Powered by Claude Β· Grounded in docs
I know everything about Sevalla. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
A remote Model Context Protocol server that exposes the entire Sevalla PaaS API through just 2 tools instead of ~200. AI agents write JavaScript that runs in sandboxed V8 isolates to discover and call any API endpoint on demand.
search- query the OpenAPI spec to discover endpoints, parameters, and schemasexecute- run JavaScript in a sandboxed V8 isolate that calls the API viasevalla.request()
This reduces context window usage by ~99% compared to traditional one-tool-per-endpoint approaches.
Background
Cloudflare came up with the Code Mode MCP pattern: instead of registering one tool per API endpoint, you give the agent two tools. One to search the API spec, one to execute code against it. Simple idea, massive difference in practice.
As a Cloudflare partner, we took this pattern and built it for the Sevalla PaaS API. The sandbox architecture and tool design are inspired by codemode, an open-source implementation of the same pattern.
Any MCP client can now manage Sevalla infrastructure through conversation. The AI writes and runs API calls in a secure V8 sandbox. No SDK needed, no boilerplate, no 200-tool context window.
Quick Start
Connect your MCP client to the hosted server at https://mcp.sevalla.com/mcp. Authentication is handled via OAuth β your client will open a browser to log in with your Sevalla account. No API keys needed in the config.
Claude Code
claude mcp add --transport http sevalla https://mcp.sevalla.com/mcp
Then type /mcp inside Claude Code and select Authenticate to complete the OAuth flow.
Claude Desktop
Add via Settings β Connectors β Add Connector and enter https://mcp.sevalla.com/mcp as the URL. Claude Desktop handles OAuth automatically.
Cursor
Add to .cursor/mcp.json in your project root:
{
"mcpServers": {
"sevalla": {
"url": "https://mcp.sevalla.com/mcp"
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"sevalla": {
"serverUrl": "https://mcp.sevalla.com/mcp"
}
}
}
OpenCode
Add to opencode.json in your project root:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sevalla": {
"type": "remote",
"url": "https://mcp.sevalla.com/mcp"
}
}
}
Then run opencode mcp auth sevalla to complete the OAuth flow.
Sevalla API keys support granular permissions β you can create a read-only key if you want your agent to query infrastructure without modifying it. Full API reference at api-docs.sevalla.com (base URL: api.sevalla.com/v3).
Uninstall
To fully remove the Sevalla MCP server, delete the server configuration and clear stored OAuth credentials.
Removing the MCP server does not delete your API key on Sevalla. To revoke it, go to app.sevalla.com/api-keys.
Claude Code
claude mcp remove sevalla
Then clear the stored OAuth token: run /mcp inside Claude Code, select sevalla, and choose Clear authentication.
If the server was added at a non-default scope, specify it explicitly:
claude mcp remove --scope user sevalla
claude mcp remove --scope project sevalla
Claude Desktop
Open Settings β Connectors, find the Sevalla connector, and remove it. Then fully quit and restart Claude Desktop.
OAuth tokens are stored in the operating system keychain (macOS Keychain / Windows Credential Manager). To remove them, delete the Sevalla entry from your keychain manually.
Cursor
Delete the sevalla entry from .cursor/mcp.json (project) or ~/.cursor/mcp.json (global). Then clear cached OAuth tokens:
rm -rf ~/.mcp-auth
Windsurf
Delete the sevalla entry from ~/.codeium/windsurf/mcp_config.json.
OpenCode
opencode mcp logout sevalla
Then delete the sevalla entry from opencode.json in your project root.
How It Works
MCP Client (Claude, Cursor, etc.)
β
β POST /mcp
β Authorization: Bearer <sevalla-api-key>
βΌ
βββββββββββββββββββββββββββββββ
β Sevalla MCP Server β
β (Hono + StreamableHTTP) β
β β
β βββββββββββββββββββββββββ β
β β CodeMode β β
β β β’ search tool β β
β β β’ execute tool β β
β β β’ V8 sandboxed JS β β
β βββββββββββββββββββββββββ β
ββββββββββββββββ¬βββββββββββββββ
β fetch() with Bearer token
βΌ
https://api.sevalla.com/v3
Each request creates an isolated MCP session bound to the caller's API key. The server is fully stateless.
Example
Once connected, the AI agent discovers and calls APIs on your behalf:
// Search for the right endpoint
const endpoints = await sevalla.search('list all applications')
// Execute an API call in the V8 sandbox
const apps = await sevalla.request({
method: 'GET',
path: '/applications',
})
Self-Hosting
Requirements: Node.js 24+ (TypeScript runs natively, no build step)
git clone https://github.com/sevalla-hosting/mcp.git
cd mcp
pnpm install
pnpm start
Or with Docker:
docker build -t sevalla-mcp .
docker run -p 3000:3000 sevalla-mcp
Development
pnpm dev # Hot reload (node --watch)
pnpm test # Run tests (node:test)
pnpm check:code # tsc + oxlint + oxfmt
