内容
# KYA-OS MCP 服务器
一个可立即部署的 [模型上下文协议](https://modelcontextprotocol.io) 服务器,由
[KYA-OS 检查点](https://kya.vouched.id) 保护。只需单击一下,指向一个 MCP 客户端,然后
所有连接的代理都由 KYA-OS 检测引擎验证 — 在进程中运行,无需网关往返 — 即可访问您的工具。
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fkya-os%2Fmcp-server-template&project-name=kya-os-mcp-server&repository-name=kya-os-mcp-server&demo-title=KYA-OS%20MCP%20Server&demo-description=%E4%B8%80%E4%B8%AA%E5%8F%AA%E5%8D%B3%E5%8F%96%E9%83%A8%E7%BD%B2%E7%9A%84%20MCP%20%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%94%B5%E6%9C%8D%E4%BA%8E%20KYA-OS%20%E6%A3%AA%E6%9F%A5%E7%82%B9&env=CHECKPOINT_PROJECT_ID,CHECKPOINT_API_KEY&envDescription=%E6%97%8C%E6%89%8B%E6%9C%8D%E5%8A%A1%E9%A1%B5%E9%9D%A2%E4%B8%8A%E7%9A%84%E9%A1%B5%E9%9D%A2%E8%AE%BE%E7%BD%AE%E9%A1%B5%E9%A1%B5%E8%AE%BE%E7%BD%AE&envLink=https%3A%2F%2Fkya.vouched.id)
[](https://app.netlify.com/start/deploy?repository=https%3A%2F%2Fgithub.com%2Fkya-os%2Fmcp-server-template)
> **Railway:** 一个一键部署按钮即将到来 — Railway 通过代码部署已发布的模板
> (`railway.com/new/template/<code>`),因此需要先将此存储库发布为 Railway 模板。
> 目前,直接从存储库部署到 Railway(新建项目 → 从 GitHub 存储库部署)。
## 您将获得
- **一个可用的 MCP 服务器**,位于 `/api/mcp`(可流式传输的 HTTP),带有两个示例工具 — 换成您自己的。
- **检查点保护**,通过 `@kya-os/checkpoint-nextjs` 中的 `withCheckpoint` — Rust
检测引擎在进程中运行(WASM),执行由您的仪表板策略驱动。
- **零配置部署** — 一个标准的 Next.js 16 应用程序路由器应用程序;Vercel / Railway / Netlify 自动检测
并构建它。
## 一键部署
1. 点击上面的 **部署** 按钮。
2. 当提示时,粘贴来自您的 [检查点项目设置](https://kya.vouched.id) 的两个值:
- `CHECKPOINT_PROJECT_ID` — 将此服务器绑定到您的项目的策略。
- `CHECKPOINT_API_KEY` — 验证策略获取。
3. 部署。您的 MCP 端点位于 `https://<您的部署>/api/mcp`。
> 机密信息在平台上输入,永远不会在 URL 中输入。没有它们,服务器仍然运行,使用
> 引擎的默认检测代替您的仪表板策略。
## 连接 MCP 客户端
将任何 MCP 客户端指向您的端点。例如,在使用 `mcp.json` 的客户端中:
```json
{
"mcpServers": {
"kya-os": {
"url": "https://<您的部署>/api/mcp"
}
}
}
```
然后调用 `checkpoint_status` 工具以确认哪个项目正在保护服务器。
## 本地开发
```bash
cp .env.example .env.local # 添加您的 CHECKPOINT_* 值
npm install
npm run dev # http://localhost:3000 · MCP 在 /api/mcp
```
## 检查点如何保护它
`middleware.ts` 将 `withCheckpoint` 应用于每个路由(包括 `/api/mcp`)。引擎
在本地验证每个请求,并应用您的项目的策略 — 阻止、挑战委托
或观察 — 您在仪表板中配置。因为验证在进程中,所以没有
每个请求的网络跳转。
```ts
// middleware.ts
import { withCheckpoint } from '@kya-os/checkpoint-nextjs';
export default withCheckpoint({
tenantHost: process.env.CHECKPOINT_TENANT_HOST ?? 'localhost:3000',
projectId: process.env.CHECKPOINT_PROJECT_ID,
apiKey: process.env.CHECKPOINT_API_KEY,
});
```
## 添加您自己的工具
工具位于 `app/api/[transport]/route.ts`。每个 `server.tool(...)` 都可以被任何
连接的 MCP 客户端调用:
```ts
server.tool(
'get_weather',
'返回一个城市的当前天气。',
{ city: z.string() },
async ({ city }) => ({
content: [{ type: 'text', text: `在 ${city} 是晴天。` }],
})
);
```
## 更进一步 — 可验证的代理委托
此模板使用检查点的 **检测** 层。如果您希望代理呈现
**可验证的、能力范围的委托**(用户向代理授予时间
boxed、读写分离的凭证,该凭证由他们自己的 passkey 支持的身份支持),请参阅
[Hobbsidian](https://github.com/H0BB5/hobbsidian) 参考应用程序,它建立在 `@kya-os/id` 和
`@kya-os/mcp` 之上。
## 了解更多
- 检查点仪表板和文档 — [kya.vouched.id](https://kya.vouched.id)
- 模型上下文协议 — [modelcontextprotocol.io](https://modelcontextprotocol.io)