内容
# turva-mcp
公共、只读的模型上下文协议(MCP)服务器,用于 [turva.dev](https://turva.dev),一个智能代理就绪度审计和咨询服务。它允许 AI 代理查询 turva.dev 的服务目录、其自身的智能代理就绪度分数、其域名的公共网络安全扫描结果以及其参与原则,以结构化的 JSON 而不是爬取的 HTML。
服务器公开是有意的:任何人都可以读取它公开的内容,然后再做出任何决定。
## MCP 端点
```
https://mcp.turva.dev/mcp
```
传输方式为可流式 HTTP。MCP 端点为 `POST /mcp`;没有 SSE 传输方式。服务器卡在 `GET /` 和 `GET /.well-known/mcp` 处发布。CORS 是开放的(`Access-Control-Allow-Origin: *`)。
不需要身份验证和 API 密钥。所有公开的数据都是只读的。
## 工具
四个只读工具。没有写入工具和事务工具。每个工具都返回 JSON 文本内容。
- `get_services`:服务目录(审计、咨询、实施、智能代理操作、MCP 服务器设计)、参与模型和定价(审计、咨询和实施的固定列表价格;其他按请求)。
- `get_agent_readiness`:turva.dev 自己的智能代理就绪度分数,来自独立扫描器,包括类别子分数、值得注意的优点、测量日期和验证链接。
- `get_security_evidence`:turva.dev 自己域名的公共网络安全扫描结果(Hardenize、Internet.nl),包括扫描日期。
- `get_principles`:参与原则,即异步、最小访问、结果按扫描器数量衡量、开放和可验证。
数据从与 Worker 捆绑在一起的静态 TypeScript 对象提供,因此每个响应都是确定的,不依赖于任何外部状态。分数带有 `measured_at` 日期和验证链接,因此任何读者都可以将存储的快照与新的扫描结果进行比较。
## 证据
turva.dev 发布其自己的扫描结果,因此工作是可验证的,而不仅仅是声称的。
在 turva.dev 上测量:2026-07-20 的智能代理就绪度,2026-07-20 的网络安全。
**智能代理就绪度:100/100 和 isitagentready.com 上的第 5 级。**
- isitagentready.com(与 Cloudflare Agent-Ready 相同的扫描器):100/100,第 5 级(Agent-Native)。可发现性、内容、机器人访问控制和 API/Auth/MCP/技能发现全部通过。商务是可选的,不需要完美的总体分数。
**网络安全:已测量和解释。**
- Hardenize 通过所有 13 个类别。
- Internet.nl 得分 98/100。IPv6、DNSSEC 和 RPKI 全部通过;单个扣分是密钥交换的哈希函数。
所有分数都带有测量日期和实时链接,因此读者可以重新运行任何扫描并进行比较。
## 端点
| 方法和路径 | 响应 |
|---|---|
| `POST /mcp` | MCP 流式 HTTP |
| `GET /` | 服务器卡 JSON(`name`、`transport`、`endpoint`) |
| `GET /.well-known/mcp` | 服务器卡 JSON |
| `GET /.well-known/glama.json` | Glama MCP 目录域验证 |
| `OPTIONS *` | `204` CORS 预检 |
| 任何其他路径 | `404` |
`/mcp` 上的所有方法都由流式 HTTP 传输处理(`GET` 打开 SSE 流,`DELETE` 结束会话)。卡路径对任何方法都有响应。
## 连接
将任何支持流式 HTTP 的 MCP 客户端指向端点。示例客户端配置:
```json
{
"mcpServers": {
"turva": {
"url": "https://mcp.turva.dev/mcp"
}
}
}
```
从 PowerShell 进行快速可达性检查(返回服务器卡):
```powershell
curl.exe https://mcp.turva.dev/
```
## 验证
工具返回的所有内容都是公开可审计的。重新运行扫描并自行打开记录:
- isitagentready 扫描器:https://isitagentready.com/
- Hardenize 报告:https://www.hardenize.com/report/turva.dev
- Internet.nl 报告:https://internet.nl/site/turva.dev/
- 公司(芬兰商业信息系统):https://tietopalvelu.ytj.fi/yritys/3600281-7
## 工作原理
单个 Cloudflare Worker 构建在 Cloudflare Agents SDK 上,提供 MCP 端点,由 Durable Object 支持。工具数据存在于捆绑的静态 TypeScript 对象中。服务器不记录日志;错误作为 MCP 协议错误响应返回,而不是写入任何地方。Cloudflare Workers 可观察性在 `wrangler.jsonc` 中关闭,因此平台也不会收集调用日志。
Worker 独立于主 turva.dev 站点,因此 MCP 更改不会影响网站。
## 部署
需要 Cloudflare 账户和 `wrangler` CLI。
```powershell
cd turva-mcp
npm install
npx wrangler deploy
```
在 **Workers & Pages, your-worker, Settings, Domains & Routes** 下将 Worker 路由到 `mcp.turva.dev`。
## 自用
MIT 许可。Fork 它,用您自己的静态数据对象替换,然后部署。
如果您想对自己的域名进行智能代理就绪度审计,请参阅 [turva.dev](https://turva.dev) 或 [Erik Rekola on LinkedIn](https://www.linkedin.com/in/erikrekola)。
## 安全
负责任的披露:请参阅 [SECURITY.md](SECURITY.md)。联系方式:[info@turva.dev](mailto:info@turva.dev)
## 许可证
[MIT](LICENSE)