关于 Sevalla
Sevalla MCP 服务将 Sevalla PaaS API 提供给 AI Agent,用于管理应用、静态站点和数据库。它涵盖常见部署与运维流程,并通过受审查的操作 ID 工具访问其余 API。
主要功能
- 01部署、回滚与查看部署日志
- 02查询运行日志和指标
- 03管理环境变量、扩缩容与域名
- 04创建应用、静态站点和数据库
- 05按操作类型访问其余 API
适用场景
- 01排查部署失败原因
- 02部署应用并检查运行状态
- 03查看近期运行日志中的错误
- 04创建数据库并配置应用连接
MCP 相关
这是面向远程连接的 MCP 服务,通过 OAuth 将 Sevalla API 工具暴露给兼容客户端。工具带有读写及破坏性操作提示,权限受所用 Sevalla API 密钥限制。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://mcp.sevalla.com/mcpclaude mcp add --transport http sevalla-hosting https://mcp.sevalla.com/mcp{"mcpServers":{"sevalla-hosting":{"type":"http","url":"https://mcp.sevalla.com/mcp"}}}在 Cursor 中打开{"servers":{"sevalla-hosting":{"type":"http","url":"https://mcp.sevalla.com/mcp"}}}在 VS Code 中打开{"mcpServers":{"sevalla-hosting":{"type":"http","url":"https://mcp.sevalla.com/mcp"}}}{"mcpServers":{"sevalla-hosting":{"serverUrl":"https://mcp.sevalla.com/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
详细介绍
这是一个面向 Sevalla PaaS API 的远程 Model Context Protocol 服务。它为 AI Agent 提供 27 个工具:22 个专为日常工作流打造的工具(部署、读取日志和指标、管理环境变量、扩缩容、配置域名、创建服务),以及 5 个通过操作 ID 访问其余 Sevalla API 的通用工具,分别用于读取、创建、更新和删除。
工具
每个工具都带有标题以及明确的 readOnlyHint、destructiveHint、idempotentHint 和 openWorldHint 注释,因此 Claude 等客户端无需询问即可运行只读工具,并且始终会在执行破坏性操作前请求确认。
| 类别 | 工具 |
|---|---|
| 发现 | list_services、get_application、get_static_site、get_database、get_platform_options、search_sevalla_docs |
| 部署 | list_deployments、get_deployment、get_deployment_logs、trigger_deployment、rollback_deployment |
| 可观测性 | search_runtime_logs、search_access_logs、get_metrics |
| 配置 | list_environment_variables、set_environment_variables、delete_environment_variables、scale_process、add_domain |
| 创建 | create_application、create_static_site、create_database |
| 其余 API | sevalla_api_search、sevalla_api_read、sevalla_api_create、sevalla_api_update、sevalla_api_delete |
通用工具只接受根据 Sevalla API v3 spec 生成的已审核表格中的操作 ID:HTTP 方法和路径由服务而非模型选择,并且每个工具只能执行自身类别的操作。
密钥和破坏性操作
环境变量值不会公开:这些工具会列出变量键及其作用范围,并且可以设置或删除变量,但绝不会返回变量值。Sevalla API 提供的其他功能均可使用,包括删除整个服务、管理 API 密钥,以及执行会生成新密钥的操作(轮换 Webhook 密钥、重新生成部署钩子、轮换存储凭据);这些操作会返回新密钥。破坏性工具带有注释,因此 Claude 会在每次调用前请求确认。在进程中运行的命令(execProcessCommandV3)和应用日志仍可能显示密钥。
每个工具都受连接所用 Sevalla API 密钥权限的限制。Sevalla API 密钥支持细粒度权限,因此只读密钥可以让 Agent 保持只读。完整 API 参考见 api-docs.sevalla.com。
快速开始
将 MCP 客户端连接到托管服务 https://mcp.sevalla.com/mcp。身份验证通过 OAuth 处理——客户端会打开浏览器,让你使用 Sevalla 账号登录。配置中无需 API 密钥。
Claude Code
claude mcp add --transport http sevalla https://mcp.sevalla.com/mcp
然后在 Claude Code 中输入 /mcp,并选择 Authenticate 以完成 OAuth 流程。
Claude Desktop
通过 Settings → Connectors → Add Connector 添加,并输入 https://mcp.sevalla.com/mcp 作为 URL。Claude Desktop 会自动处理 OAuth。
Cursor
在项目根目录的 .cursor/mcp.json 中添加:
{
"mcpServers": {
"sevalla": {
"url": "https://mcp.sevalla.com/mcp"
}
}
}
Windsurf
在 ~/.codeium/windsurf/mcp_config.json 中添加:
{
"mcpServers": {
"sevalla": {
"serverUrl": "https://mcp.sevalla.com/mcp"
}
}
}
OpenCode
在项目根目录的 opencode.json 中添加:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"sevalla": {
"type": "remote",
"url": "https://mcp.sevalla.com/mcp"
}
}
}
然后运行 opencode mcp auth sevalla 以完成 OAuth 流程。
卸载
要彻底移除 Sevalla MCP 服务,请删除服务配置并清除已存储的 OAuth 凭据。
移除 MCP 服务不会删除你在 Sevalla 上的 API 密钥。若要撤销该密钥,请前往 app.sevalla.com/api-keys。
Claude Code
claude mcp remove sevalla
然后清除已存储的 OAuth 令牌:在 Claude Code 中运行 /mcp,选择 sevalla,然后选择 Clear authentication。
如果服务添加时使用了非默认范围,请明确指定:
claude mcp remove --scope user sevalla
claude mcp remove --scope project sevalla
Claude Desktop
打开 Settings → Connectors,找到 Sevalla 连接器并将其移除。然后完全退出并重新启动 Claude Desktop。
OAuth 令牌存储在操作系统的钥匙串中(macOS Keychain / Windows Credential Manager)。若要移除令牌,请手动从钥匙串中删除 Sevalla 条目。
Cursor
从 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局)中删除 sevalla 条目。然后清除缓存的 OAuth 令牌:
rm -rf ~/.mcp-auth
Windsurf
从 ~/.codeium/windsurf/mcp_config.json 中删除 sevalla 条目。
OpenCode
opencode mcp logout sevalla
然后从项目根目录的 opencode.json 中删除 sevalla 条目。
工作原理
MCP client (Claude, Cursor, Codex, ...)
│
│ POST /mcp
│ Authorization: Bearer <OAuth token or Sevalla API key>
▼
┌──────────────────────────────────────┐
│ Sevalla MCP server (Hono, stateless)│
│ • validates the key (cached 60 s) │
│ • 27 tools, read tools get a │
│ GET-only client │
│ • reviewed operation table for the │
│ generic tools │
└──────────────────┬───────────────────┘
│ Bearer <key>
▼
https://api.sevalla.com/v3
每个请求都会创建一个绑定到调用方 API 密钥的新 MCP 服务;请求之间不会存储任何内容。该服务使用 MCP 2026-07-28(server/discover、每请求元数据、可缓存的工具列表),同时也通过同一 URL 为使用 2025 版规范的客户端提供服务(从 2025-11-25 到 2024-11-05),并提供相同的工具。
登录使用带 PKCE 的 OAuth 2.1。客户端通过 OAuth 客户端 ID 元数据文档(Claude、ChatGPT 和 VS Code 均采用此方式)或针对较旧客户端的动态客户端注册来标识自身。此流程同样是无状态的:待处理的授权信息经过 HMAC 签名并写入回调 URL,授权码使用 AES-256-GCM 加密,访问令牌则经过加密并绑定到 https://mcp.sevalla.com/mcp。
示例
- “为什么 my-api 最近一次部署失败了?”
- “部署 my-api 的 main 分支,并在其上线时告诉我。”
- “总结一下 my-api 过去一小时运行时日志中的错误。”
- “在法兰克福创建一个 PostgreSQL 数据库,并将其连接到 my-api。”
- “将 app.example.com 添加到 my-api,并告诉我需要创建哪些 DNS 记录。”
自托管
**要求:**Node.js 26(24 也可运行)和 pnpm 12。TypeScript 可原生运行,无需构建步骤。
git clone https://github.com/sevalla-hosting/mcp.git
cd mcp
pnpm install
pnpm start
也可以使用 Docker:
docker build -t sevalla-mcp .
docker run -p 3000:3000 -e OAUTH_SECRET=<base64url 32 bytes> sevalla-mcp
| 变量 | 用途 |
|---|---|
PORT | HTTP 端口(默认值为 3000) |
OAUTH_SECRET | base64url 编码的 32 字节;当 NODE_ENV=production 时必需 |
PUBLIC_URL | OAuth 元数据中使用的公开基础 URL(默认值为 https://mcp.sevalla.com) |
SEVALLA_FRONTEND_URL | OAuth 授权页面使用的 Sevalla 仪表板 URL(默认值为 https://app.sevalla.com) |
SEVALLA_API_URL | Sevalla API 基础 URL(默认值为 https://api.sevalla.com) |
SEVALLA_DOCS_URL | search_sevalla_docs 搜索的文档站点(默认值为 https://docs.sevalla.com) |
DEVICE_CODE_TRUSTED_CLIENT_TOKEN | 服务令牌,可让 API 按最终用户 IP 而非服务 IP 限制 OAuth 登录频率 |
CLIENT_IP_HEADER | 携带最终用户 IP 的标头,由你的边缘网络设置(默认值为 x-forwarded-for;在 Cloudflare 后使用 cf-connecting-ip) |
TRUSTED_PROXY_HOPS | 使用 x-forwarded-for 时,向其中追加内容的可信代理数量;客户端 IP 从右侧数起读取对应条目(默认值为 1) |
SEVALLA_API_KEY | --stdio 模式:Sevalla API 密钥 |
SHUTDOWN_TIMEOUT_MS | 优雅关闭期限(默认值为 30000) |
OPENAI_APPS_CHALLENGE | 在 /.well-known/openai-apps-challenge 提供的域名验证令牌,用于提交 OpenAI 插件 |
**生产环境中的客户端 IP。**设备代码速率限制按最终用户 IP 应用,因此服务必须从由你的边缘网络控制的信息中读取该 IP。在 Cloudflare 后使用时,设置 CLIENT_IP_HEADER=cf-connecting-ip,并确保无法绕过 Cloudflare 直接访问源站,否则该标头可能被伪造。如果不使用 Cloudflare,请将 TRUSTED_PROXY_HOPS 设为向 X-Forwarded-For 追加内容的代理数量。默认设置读取最右侧的条目;在 CDN 或负载均衡器后,该条目通常是代理地址,因此所有用户都会共用一个限制。
开发
pnpm dev # Hot reload (node --watch)
pnpm test # Unit and end-to-end tests (node:test), e2e as both 2026-07-28 and 2025 clients
pnpm test:e2e # End-to-end tests: real HTTP server, MCP SDK client, fake Sevalla API
pnpm test:live # Live checks: client metadata documents; API smoke test and fake API fidelity with SEVALLA_E2E_API_KEY
pnpm eval # Evals through headless Claude Code against the fake API (see evals/)
pnpm check:code # tsc + oxlint + oxfmt
pnpm sync:operations # Regenerate src/sevalla/operations.json from the live API spec
pnpm check:operations # Fail if the live API spec drifted from the snapshot
test/policy.test.ts 中的策略测试会根据实时工具列表检查 Anthropic 连接器目录要求:每个工具都要有标题和明确提示、读写分离、描述应说明而非指示操作,以及工具定义的大小限制。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。