Sevalla

io.github.sevallaPublished by GitHub account sevallav2.0.0Updated Oct 31, 2026

Official Sevalla MCP: deploy, debug and manage apps, static sites and databases.

Overview

AI-generated overview

Official Sevalla MCP server that lets an AI assistant deploy, debug and manage Sevalla apps, static sites and databases through a hosted OAuth endpoint.

What you can do
  • List and inspect services, applications, static sites, databases and platform options, and search Sevalla docs
  • List deployments, read deployment details and logs, trigger deployments and roll back
  • Search runtime and access logs and read metrics
  • List, set and delete environment variables, scale processes and add domains
  • Create applications, static sites and databases
  • Reach the rest of the Sevalla API through generic read, create, update and delete tools limited to reviewed operation IDs
When to use it
Useful when your team hosts applications, static sites or databases on Sevalla and you want an assistant to investigate failed deployments, summarize logs and metrics, redeploy or roll back, adjust environment variables and scaling, or provision new services without leaving the chat.
Requirements
The hosted remote endpoint at mcp.sevalla.com over streamable HTTP, added to an MCP client such as Claude Code, Claude Desktop, Cursor, Windsurf or OpenCode. A Sevalla account and OAuth sign-in approved in the Sevalla dashboard; clients without OAuth can send a Sevalla API key as a Bearer token. Self-hosting needs Node.js and pnpm or Docker.
Before you install
The connection acts with the permissions of the Sevalla API key behind it, so a full-access key can delete entire services, manage API keys and rotate secrets. Some operations return new secrets, and commands run inside processes and application logs can still expose secrets. Destructive tools are annotated so clients confirm them, but review each call. Removing the server does not revoke the API key; revoke it in the Sevalla dashboard.

Installation

In SourceWeft

  1. Open Sevalla in the dashboard and add it to a workspace.
  2. Connect the required credentials. They are stored privately and never shown on public pages.
  3. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.sevalla%2Fmcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config. The client completes OAuth sign-in on first connect.

{
  "mcpServers": {
    "sevalla": {
      "type": "http",
      "url": "https://mcp.sevalla.com/mcp"
    }
  }
}

README

[Image]

Sevalla MCP server

Deploy, debug and manage Sevalla applications, databases and static sites from any AI agent.

[CI] [License: MIT] [Node.js]

Docs · Sevalla · mcp.sevalla.com

A remote Model Context Protocol (MCP) server for Sevalla, so AI agents like Claude Code, Cursor and Codex can work with the applications, databases and static sites in your Sevalla company. It gives them 27 tools: 22 purpose-built tools for the everyday workflows (deploying, reading logs and metrics, environment variables, scaling, domains, creating services) and 5 generic tools that reach the rest of the Sevalla API by operation ID, split into read, create, update and delete.

Quick start

Connect your MCP client to the hosted server at https://mcp.sevalla.com/mcp, then sign in with your Sevalla account when the client opens a browser.

Claude Code

sh
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 Code MCP docs

Claude Desktop

Add via Settings → Connectors → Add Connector and enter https://mcp.sevalla.com/mcp as the URL. Claude Desktop handles OAuth automatically.

Claude Desktop MCP docs

Cursor

Add to .cursor/mcp.json in your project root:

json
{  "mcpServers": {    "sevalla": {      "url": "https://mcp.sevalla.com/mcp"    }  }}

Cursor MCP docs

Windsurf

Add to ~/.codeium/windsurf/mcp_config.json:

json
{  "mcpServers": {    "sevalla": {      "serverUrl": "https://mcp.sevalla.com/mcp"    }  }}

Windsurf MCP docs

OpenCode

Add to opencode.json in your project root:

json
{  "$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.

OpenCode MCP docs

Tools

Every tool carries a title and explicit readOnlyHint, destructiveHint, idempotentHint and openWorldHint annotations, so clients like Claude run read-only tools without asking and always confirm destructive ones.

AreaTools
Discoverylist_services, get_application, get_static_site, get_database, get_platform_options, search_sevalla_docs
Deploymentslist_deployments, get_deployment, get_deployment_logs, trigger_deployment, rollback_deployment
Observabilitysearch_runtime_logs, search_access_logs, get_metrics
Configurationlist_environment_variables, set_environment_variables, delete_environment_variables, scale_process, add_domain
Createcreate_application, create_static_site, create_database
Rest of the APIsevalla_api_search, sevalla_api_read, sevalla_api_create, sevalla_api_update, sevalla_api_delete

The generic tools only accept operation IDs from a reviewed table generated from the Sevalla API v3 spec: the server, not the model, picks the HTTP method and path, and each tool only runs operations of its own class.

Secrets and destructive actions

Environment variable values are withheld: the tools list variable keys and their scoping, and set or delete them without ever returning a value. Everything else the Sevalla API offers is available, including deleting entire services, managing API keys and operations that issue a new secret (rolling a webhook secret, regenerating a deployment hook, rotating storage credentials), which return that secret. Destructive tools are annotated so Claude asks for confirmation before each call. Commands run inside a process (execProcessCommandV3) and application logs can still show secrets.

Authentication

Clients sign in with OAuth: the client opens a browser, you approve the connection in the Sevalla dashboard, and the approval creates an API key for it. No API key goes in the client's config. Clients without OAuth can send a Sevalla API key as Authorization: Bearer <api-key> instead.

Every tool is limited by the permissions of the Sevalla API key behind the connection. Sevalla API keys support granular permissions, so a read-only key keeps an agent read-only. Full API reference at api-docs.sevalla.com.

How it works

[How AI agents use Sevalla's MCP server: your agent calls tools on the server, signed in with OAuth or an API key, and the server calls the Sevalla API, limited by the key's permissions, to manage your applications, databases and static sites.]

Each request creates a fresh MCP server bound to the caller's API key; nothing is stored between requests. The server speaks MCP 2026-07-28 (server/discover, per-request metadata, cacheable tool lists) and still serves clients on the 2025 revisions (2025-11-25 back to 2024-11-05) over the same URL, with the same tools.

Sign-in is OAuth 2.1 with PKCE. Clients identify themselves with an OAuth Client ID Metadata Document (as Claude, ChatGPT and VS Code do) or, for older clients, Dynamic Client Registration. The flow is stateless too: pending authorizations are HMAC-signed into the callback URL, authorization codes are AES-256-GCM encrypted, and access tokens are encrypted and bound to https://mcp.sevalla.com/mcp.

Examples

  • "Why did the latest deployment of storefront fail?"
  • "Deploy the main branch of storefront and tell me when it's live."
  • "Summarize the errors in storefront's runtime logs from the last hour."
  • "Create a PostgreSQL database in Frankfurt and connect it to storefront."
  • "Add shop.example.com to storefront and tell me which DNS records to create."

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

sh
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:

sh
claude mcp remove --scope user sevallaclaude mcp remove --scope project sevalla

Claude Code MCP reference

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.

Claude Desktop MCP docs

Cursor

Delete the sevalla entry from .cursor/mcp.json (project) or ~/.cursor/mcp.json (global). Then clear cached OAuth tokens:

sh
rm -rf ~/.mcp-auth

Cursor MCP docs

Windsurf

Delete the sevalla entry from ~/.codeium/windsurf/mcp_config.json.

Windsurf MCP docs

OpenCode

sh
opencode mcp logout sevalla

Then delete the sevalla entry from opencode.json in your project root.

OpenCode MCP docs

Self-hosting

Requirements: Node.js 26 (24 also works) and pnpm 12. TypeScript runs natively, no build step.

sh
git clone https://github.com/sevalla/mcp.gitcd mcppnpm installpnpm start

Or with Docker:

sh
docker build -t sevalla-mcp .# OAUTH_SECRET (base64url-encoded 32 bytes) comes from the environmentdocker run -p 3000:3000 -e OAUTH_SECRET sevalla-mcp
VariablePurpose
PORTHTTP port (default 3000)
OAUTH_SECRETbase64url-encoded 32 bytes; required when NODE_ENV=production
PUBLIC_URLPublic base URL used in OAuth metadata (default https://mcp.sevalla.com)
SEVALLA_FRONTEND_URLSevalla dashboard URL for the OAuth consent page (default https://app.sevalla.com)
SEVALLA_API_URLSevalla API base URL (default https://api.sevalla.com)
SEVALLA_DOCS_URLDocumentation site searched by search_sevalla_docs (default https://docs.sevalla.com)
DEVICE_CODE_TRUSTED_CLIENT_TOKENService token that lets the API rate-limit OAuth sign-ins per end-user IP instead of per server IP
CLIENT_IP_HEADERHeader carrying the end-user IP, set by your edge (default x-forwarded-for; use cf-connecting-ip behind Cloudflare)
TRUSTED_PROXY_HOPSWith x-forwarded-for: number of trusted proxies that append to it; the client IP is read that many entries from the right (default 1)
SEVALLA_API_KEY--stdio mode: the Sevalla API key
SHUTDOWN_TIMEOUT_MSGraceful shutdown deadline (default 30000)
OPENAI_APPS_CHALLENGEDomain verification token served at /.well-known/openai-apps-challenge for the OpenAI plugin submission

Client IP in production. The device-code rate limit is applied per end-user IP, so the server must read that IP from something your edge controls. Behind Cloudflare, set CLIENT_IP_HEADER=cf-connecting-ip, and make sure the origin cannot be reached without going through Cloudflare, otherwise the header can be forged. Without Cloudflare, set TRUSTED_PROXY_HOPS to the number of proxies that append to X-Forwarded-For. The defaults read the right-most entry, which behind a CDN or load balancer is usually a proxy address, so every user would share one limit.

Development

sh
# Hot reload (node --watch)pnpm dev
# Unit and end-to-end tests (node:test), e2e as both 2026-07-28 and 2025 clientspnpm test
# End-to-end tests: real HTTP server, MCP SDK client, fake Sevalla APIpnpm test:e2e
# Live checks: client metadata documents; API smoke test and fake API fidelity with SEVALLA_E2E_API_KEYpnpm test:live
# Evals through headless Claude Code against the fake API (see evals/)pnpm eval
# tsc + oxlint + oxfmtpnpm check:code
# Regenerate src/sevalla/operations.json from the live API specpnpm sync:operations
# Fail if the live API spec drifted from the snapshotpnpm check:operations

The policy tests in test/policy.test.ts enforce Anthropic's connector directory requirements on the live tool list: titles and explicit hints on every tool, read/write separation, descriptions that describe rather than instruct, and a size budget for the tool definitions.

License

MIT. See LICENSE.

Source: README.md at commit bd71076

Tools

0
This server asks you to sign in, so SourceWeft could not read its tools without an account and has not indexed them. What a connected account sees can depend on that account and its permissions.

Version history

1
  1. v2.0.0LatestOct 31, 2026

Score

85% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts