内容
OpenServerless MCP
OpenServerless 的 MCP 服务器。通过模型上下文协议Serverless 操作工具,以便任何支持 MCP 的代理都可以驱动它们。
## 工具列表
| 工具 | 描述 |
|---|---|
| `action_new` | 幂 API 端点(`__.py` + 模块文件public` 默认值为 true。 |
| `action_invoke` `ops action invoke <endpoint>`,并带有 `key=value。 |
| `action_requirements` | 向端点的 `requirements.txt` 添加库(跳过的库)。 |
| `_secret` | 将 `.env` 机密绑定到端点的上下文中,形式为 `ctx.<SECRET>`。 |
| `secret_status 检查机密存在性和端点绑定情况,无需读取其值| `secret_ensure` | 生成缺失的 `.env` 机密,而不返回其值。 |
| `secret_bind` | 原子性地将同一机密绑定到多个端点。 |
| `secret_unbind` | 原子性地删除过时的生成绑定,而不读取或删除机密。 |
| `auth_setup` | 准备一个共享机密用于令牌颁发和保护端点。 |
| `action_add_s3` |点的上下文中范围的 S3(.S3_CLIENT`、`ctx.S3_DATA`、`ctx.S3_WEB`、`ctx.S3_PUBLIC`);禁止 `list_buckets`,需要 `put_object` → `get_object`/compare → `delete_object`验证。 |
| `action_add_postgresql` | 添加 PostgreSQLctx.POSTGRESQL`)。 |
| `action_add_redis` Redis(`ctx.REDIS`、`ctx.REDIS_PREFIX`) 运行时依赖。 |
| `action_add_milvus` |vus 矢量数据库(`ctx.MILVUS`| `action_add_mongodb` | 添加 MongoDB(`ctxODB_CLIENT`、`ctx.M`)。 |
`endpoint`是 `name`(使用 `v1` 包)或 `package/name`。两个部分必须以字母开头,仅包含字母、数字和连字符。使用类似 `v1/employees-photo` 的平面连字符名称允许使用下划线、空格、嵌套路由和 `v1/employees_photo` 或 `/employees/photo` 等格式。
对兼容的现有端点重复_new` 是一个成功的检查,不其文件;不完整的路径性冲突将被报告为 MCP机密值永远不会被返回。缺少的机密的端点是 MCP 错误(`isError: true`客户端无法将不完整的身份误认为是成功的工具调用。_add_secret` 仍然是单个端点的兼容性工具;当必须共享一个凭证时,请secret_bind` 或 `auth_setup`。
当设置 `OPENSERVERLESS_SECRETS_FILE` 时,_ensure` 还会名称与持久环境文件同步。`.env` 中已经存在的值返回的情况下复制;当需要时,持久值会恢复到`。这样,主机可以将应用程序机密保存在源代码检查## 工作目录
所有基于路径的工具都相对于**进程工作进行操作:它们读取 `packages/<pkg>/<name` 和 `.env`。因此,服务器必须以用户的应用程序检查作为其 CWD 启动(这就是 opencode 启动 `type: " MCP 服务器的方式)。
## 布局
```
src/
index.ts 入口点 — 通过 stdio 注册每个工具
lib.ts 共享帮助程序(端点解析、连接器注入、类型)
secrets.ts 机密名称、.env、状态和原子程序
tools/
new.ts action_new
invoke.ts action_invoke
requirements.ts action_requirements
add-secret.ts action_add_secret
add-s3.ts action_add_s3
add-postgresql.ts action_add_postgresql
add-redis.ts action_add_redis
add-milvus.ts action_add_milvus
add.ts action_add
secret-status.ts secret_status
secret-ensure.ts secret_ensure
secret-bind.ts secret_bind
secret-unbind.ts secret_unbind
auth-setup.ts auth_setup
```
`tools/` 下的每个文件都默认导出一个 `Tool`(`defineTool({ name, config, handler })`);`index.ts` 导入所有文件,并在循环中注册它们。要添加工具,请在 `tools/` 中添加文件,并在 `index.ts` 中将其添加到数组中。
## 运行
需要 Node 18+ 和 `ops` 在 `PATH` 上。通过 `tsx` 直接运行 TypeScript。
```bash
npm install
npm start # tsx src/index.ts — 通过 stdio 讲话 MCP
```
## 连接到 opencode
将以下内容添加到应用程序的 `opencode.json` 中:
```json
{
"mcp": {
"openserverless": {
"type": "local",
"command": ["npx", "tsx", "/path/to/mcp/src/index.ts"],
"enabled": true
}
}
}
```