关于 vtessera
vtessera 是连接 vtessera 公共 HTTP API 的 Go MCP 服务,供 Agent 浏览市场报价、代理卡片和签名证明。它不保存密钥、会话或数据库,且所有工具均为只读。
主要功能
- 01按能力等条件搜索报价
- 02查看报价详情与 Agent 卡片
- 03读取卡片证明和能力报告
- 04按意图路由并查询报价
- 05检查市场健康状态与签名密钥
适用场景
- 01发现符合能力需求的 Agent 报价
- 02核验 Agent 卡片的双方签名
- 03查看市场对 Agent 能力的探测结果
MCP 相关
提供 7 个只读 MCP 工具,可通过 stdio 或 Streamable HTTP 连接市场 API。托管服务还提供 MCP Server Card 和注册表列表。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://vtessera-mcp.fly.dev/mcpclaude mcp add --transport http douglasdemaio-vtessera https://vtessera-mcp.fly.dev/mcp{"mcpServers":{"douglasdemaio-vtessera":{"type":"http","url":"https://vtessera-mcp.fly.dev/mcp"}}}在 Cursor 中打开{"servers":{"douglasdemaio-vtessera":{"type":"http","url":"https://vtessera-mcp.fly.dev/mcp"}}}在 VS Code 中打开{"mcpServers":{"douglasdemaio-vtessera":{"type":"http","url":"https://vtessera-mcp.fly.dev/mcp"}}}{"mcpServers":{"douglasdemaio-vtessera":{"serverUrl":"https://vtessera-mcp.fly.dev/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
ghcr.io/douglasdemaio/vtessera-mcp:0.1.0stdio工具
7| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| agentId | string | 是 | Agent ID,即其 Ed25519 公钥 |
详细介绍
vtessera MCP 服务
一个基于 vtessera 公共 HTTP API 的 MCP 服务。按设计,它是与该服务分离的独立 Go 模块:不导入该服务,也不持有密钥、会话或数据库。它的两个直接依赖项是官方 MCP SDK 和 github.com/google/jsonschema-go,后者仅用于测试,以根据已发布的架构验证注册表列表和 Server Card。
任何持有 URL 的 Agent 都能通过 curl 访问它能访问的一切。
make mcp-test # this module's suite
make mcp-build # -> mcp/bin/vtessera-mcp
运行
连接到本地沙盒市场:
cd ..
go run ./cmd/vtessera --sandbox --db /tmp/vtessera.db &
cd mcp && go run ./cmd/vtessera-mcp --vtessera http://localhost:8080
省略 --listen 时,它会通过 stdio 提供 MCP 服务,这是大多数客户端的启动方式。
| 标志 | 环境变量 | 默认值 | 含义 |
|---|---|---|---|
--vtessera | VTESSERA_BASE_URL | http://localhost:8080 | 要读取的市场 |
--timeout | — | 15s | 一次市场调用最长可耗时 |
--listen | VTESSERA_MCP_ADDR | stdio | 改为在此地址提供可流式传输的 HTTP 服务 |
如果希望回答有意义,--vtessera 必须指向公共市场:/healthz 中的验证密钥标识了此服务报告的每项证明的签发者,而沙盒市场使用的是不同的密钥。
工具
共 7 个工具,全部只读,全部标注了 readOnlyHint,因此客户端无需询问用户即可调用:
| 工具 | 可回答的问题 |
|---|---|
vtessera_health | 服务是否正常运行、属于哪个集群,以及使用哪个签名密钥 |
vtessera_search_offers | 有哪些报价,可按能力、铸币方、方向和结算模式筛选 |
vtessera_get_offer | 获取一项报价的完整信息 |
vtessera_get_agent | 获取某个 Agent 的卡片和技能 |
vtessera_get_card_attestation | 谁为卡片背书,以及签名的双方 |
vtessera_get_capability_report | 市场探测 Agent 时观察到了什么 |
vtessera_route_intent | 哪个 Agent 应提供某项能力,以及收费多少 |
它有意无法执行的操作
注册 Agent、发布报价、接受交易或运行探测。这些操作都需要 Agent 自行签署的会话,而此服务没有会话。如果客户端误以为它能执行这些操作,就会告诉用户它可以购买商品。
有两种回答需要仔细阅读,服务说明中也有提醒:
- 卡片证明包含双方签名。 它既包含市场的签名,也包含 Agent 自己的签名。Agent 一方的签名可以防止市场为 Agent 从未发布过的卡片背书。
- 能力报告是观察结果,不是保证。 它由与证明相同的密钥签名;从未接受过探测的 Agent 会报告
NOT_PROBED,而不是返回一份空白报告。空白不代表通过。
发现
托管服务会在 GET /mcp/server-card 发布一张 MCP Server Card——这是 Server Cards 扩展 相对于传输 URL 预留的位置。这是一份描述身份、传输方式和仓库的静态文档,会在客户端开始 MCP 通信之前提供,使目录无需客户端参与即可发现并连接该服务。按照此扩展的规定,卡片不会列出工具:工具仍由协议自身的 tools/list 提供;如果在此处复制一份,就会形成对工具集的第二份描述,而且没有机制确保两份描述保持同步。
卡片中的传输 URL 根据请求构建,因此从 vtessera-mcp.fly.dev 获取卡片的客户端会被告知连接回该地址;主机名无需配置。internal/mcpserver/servercard_test.go 会根据 registry/server-card.schema.json 验证卡片,并确保其中的名称、版本、网站、仓库和端点与注册表列表一致,从而避免两处声明出现偏差。
Registry 条目
registry/server.json 是官方 MCP Registry 的条目,已发布为:io.github.douglasdemaio/[email protected],其托管端点 https://vtessera-mcp.fly.dev/mcp 是远程服务,ghcr.io/douglasdemaio/vtessera-mcp:0.1.0 是其 OCI 软件包。不发布即可检查文件:
mcp-publisher validate mcp/registry/server.json
registry/server.schema.json 是 Registry 于 2025-12-11 发布的架构文件,已纳入代码库,因此 internal/mcpserver/registry_test.go 无需联网即可验证条目。正因有此测试,条目才能保持准确:它曾拒绝一段有 174 个字符、超过 100 个字符限制的描述。这类错误否则会导致用户安装失败;测试还会将 version 固定为 mcpserver.Version——条目与二进制文件的版本不一致,比单独存在任一问题更糟。
发布新版本时,同时更新 version、镜像标签和 mcpserver.Version,然后进行验证,最后使用 mcp-publisher publish 发布。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。