mcpField
S
Sevalla

Sevalla

远程服务
github.com/sevalla-hosting云与基础设施10今天更新
代码仓库

关于 Sevalla

Sevalla MCP 服务将 Sevalla PaaS API 提供给 AI Agent,用于管理应用、静态站点和数据库。它涵盖常见部署与运维流程,并通过受审查的操作 ID 工具访问其余 API。

主要功能

  1. 01部署、回滚与查看部署日志
  2. 02查询运行日志和指标
  3. 03管理环境变量、扩缩容与域名
  4. 04创建应用、静态站点和数据库
  5. 05按操作类型访问其余 API

适用场景

  1. 01排查部署失败原因
  2. 02部署应用并检查运行状态
  3. 03查看近期运行日志中的错误
  4. 04创建数据库并配置应用连接

MCP 相关

这是面向远程连接的 MCP 服务,通过 OAuth 将 Sevalla API 工具暴露给兼容客户端。工具带有读写及破坏性操作提示,权限受所用 Sevalla API 密钥限制。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://mcp.sevalla.com/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

工具

详细介绍

Sevalla MCP 服务

通过任意 AI Agent 部署、调试和管理 Sevalla 应用、静态站点和数据库。

CI License: MIT Node.js MCP Hosted at


这是一个面向 Sevalla PaaS API 的远程 Model Context Protocol 服务。它为 AI Agent 提供 27 个工具:22 个专为日常工作流打造的工具(部署、读取日志和指标、管理环境变量、扩缩容、配置域名、创建服务),以及 5 个通过操作 ID 访问其余 Sevalla API 的通用工具,分别用于读取、创建、更新和删除。

Sevalla server MCP server

工具

每个工具都带有标题以及明确的 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
其余 APIsevalla_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 Code MCP 文档

Claude Desktop

通过 Settings → Connectors → Add Connector 添加,并输入 https://mcp.sevalla.com/mcp 作为 URL。Claude Desktop 会自动处理 OAuth。

Claude Desktop MCP 文档

Cursor

在项目根目录的 .cursor/mcp.json 中添加:

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

Cursor MCP 文档

Windsurf

在 ~/.codeium/windsurf/mcp_config.json 中添加:

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

Windsurf 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 流程。

OpenCode MCP 文档

卸载

要彻底移除 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 Code MCP 参考文档

Claude Desktop

打开 Settings → Connectors,找到 Sevalla 连接器并将其移除。然后完全退出并重新启动 Claude Desktop。

OAuth 令牌存储在操作系统的钥匙串中(macOS Keychain / Windows Credential Manager)。若要移除令牌,请手动从钥匙串中删除 Sevalla 条目。

Claude Desktop MCP 文档

Cursor

从 .cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局)中删除 sevalla 条目。然后清除缓存的 OAuth 令牌:

rm -rf ~/.mcp-auth

Cursor MCP 文档

Windsurf

从 ~/.codeium/windsurf/mcp_config.json 中删除 sevalla 条目。

Windsurf MCP 文档

OpenCode
opencode mcp logout sevalla

然后从项目根目录的 opencode.json 中删除 sevalla 条目。

OpenCode MCP 文档

工作原理

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
变量用途
PORTHTTP 端口(默认值为 3000)
OAUTH_SECRETbase64url 编码的 32 字节;当 NODE_ENV=production 时必需
PUBLIC_URLOAuth 元数据中使用的公开基础 URL(默认值为 https://mcp.sevalla.com)
SEVALLA_FRONTEND_URLOAuth 授权页面使用的 Sevalla 仪表板 URL(默认值为 https://app.sevalla.com)
SEVALLA_API_URLSevalla API 基础 URL(默认值为 https://api.sevalla.com)
SEVALLA_DOCS_URLsearch_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 连接器目录要求:每个工具都要有标题和明确提示、读写分离、描述应说明而非指示操作,以及工具定义的大小限制。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。