Servicialo
@servicialo/mcp-server
面向 Servicialo 标准的协议级 MCP 接口——AI 代理时代人类服务的目标层。 HTTP 让文档可寻址。Servicialo 让服务可寻址。MCP 和 A2A 是传输层。Servicialo 是代理到达的目的地。
此包是任何兼容 Servicialo 后端的协议级 MCP 接口——并非特定平台的连接器。Coordinalo 是参考实现(也是默认实现),但你可以连接自己的后端。
协议: v0.10(草案)· 规范: servicialo.com/spec · 此包独立于协议进行版本管理(
0.9.x直到 1.0)。
通往 1.0 之路
Servicialo 协议进入稳定化阶段。第一批正式的 RFC 群组在进入最终评论期之前,至少有 4 周的公开评论窗口。在 1.0 之前,发布仍为 0.9.x 补丁版本,任何协议破坏性变更都需要其 RFC 合并并提前通知。
RFC 群组(PR #13): servicialo/mcp-server#13
1.0 流程 / 讨论: servicialo/mcp-server#14
通往 1.0 的待完成里程碑
里程碑 | 状态 |
RFC-001 — RFC 流程与弃用策略 | 草案 / 开放评论 |
RFC-002 — 预付款与客户信用余额 | 草案 / 开放评论 |
RFC-003 — 退款与信用票据(仅向前分类账) | 草案 / 开放评论 |
RFC-004 — PII / PHI 分类框架 | 草案 / 开放评论 |
核心稳定声明(8 个维度 · 6+3 周期 · 6 个流程 · 7 项原则)并保证向后兼容 | 待定 |
≥ 3 个独立生产实现 | 进行中 |
Related MCP server: DiviDen MCP Server
架构
@servicialo/mcp-server → interfaz MCP a nivel de protocolo
↓ se conecta a cualquier backend compatible con Servicialo
Coordinalo → implementación de referencia (default)
Tu implementación → trae tu propio backend问题
AI 代理可以浏览网页、编写代码并进行对话。但让一个代理预约一节运动机能学课程、验证其发生并处理付款——它就会崩溃。
如今,每个平台都是一个孤岛。没有标准来定义:
发现 — 哪个提供者,在哪个组织,提供我需要的服务?
身份 — 这个代理代表谁行事,它被授权做什么?
生命周期 — 这项服务处于什么状态?谁确认了?谁参加了?
交付证明 — 课程真的发生了吗?持续多久?在哪里?
结算 — 多少钱,给谁,在什么合同条款下?
没有共享协议,每次集成都是手工的。每个代理-平台连接都是自定义 API。这无法扩展。
什么是 Servicialo
Servicialo 是一个开放协议,而非平台。它定义了专业服务如何在其生命周期中移动——从发现到支付——以任何 AI 代理或平台都可以实现的方式。
这种关系就像 HTTP 之于 Apache,或 SMTP 之于 Gmail:Servicialo 定义规则,实现赋予它们生命。
该协议通过8 个维度、6+3 生命周期(6 个核心状态 + 3 个可选财务状态)、6 个异常流程和7 项基本原则来建模每项服务——这些在不同垂直领域(健康、法律、教育、家庭服务)中是通用的:
Solicitado → Agendado → Confirmado → En Curso → Completado → Documentado → Facturado → Cobrado → Verificado任何服务,在任何垂直领域,都遵循此序列。垂直领域的特定逻辑存在于每个状态内部,但状态机是不变的。
此 MCP 服务器的作用
此包将 Servicialo 协议暴露为 40 个 MCP 工具,按服务生命周期的7 个阶段(0–6,包括发现解析器——类似于 DNS,基于 HTTP)组织,外加资源管理、解析器管理、网络智能(market.*)和冷启动发现(registry.list_* 用于在事先不了解分类法的情况下了解它)。代理不会按数据库实体调用端点——它遵循协调服务的自然流程。
阶段 0 — DNS 解析(3 个工具,无需认证)
工具 | 描述 |
| 将 orgSlug 解析为其 MCP/REST 端点和信任级别(相当于 DNS 查找) |
| 在全局解析器中按国家和垂直领域搜索已注册的组织 |
| 获取组织的信任分数(0-100 分,级别,最近活动) |
阶段 1 — 发现(6 个工具,无需认证)
工具 | 描述 |
| 按垂直领域、位置、国家搜索组织 |
| 获取公开详情:服务、提供者、预订配置 |
| 获取服务器清单:能力、协议版本、组织元数据 |
| 查询可用性(3 个变量:提供者 ∧ 客户 ∧ 资源) |
| 列出组织的公开服务目录 |
| 获取组织的 A2A 代理卡片,用于代理间发现 |
阶段 2 — 理解(2 个工具)
工具 | 描述 | 作用域 |
| 获取服务的 8 个维度 |
|
| 获取合同条款:所需证据、取消政策、争议窗口 |
|
阶段 3 — 承诺(3 个工具)
工具 | 描述 | 作用域 |
| 通过电子邮件/电话解析客户身份——一次调用中查找或创建 |
|
| 预订会话 → 状态 |
|
| 确认已预订的会话 → 状态 |
|
阶段 4 — 生命周期(4 个工具)
工具 | 描述 | 作用域 |
| 获取当前状态、可用转换和历史记录 |
|
| 执行带证据的状态转换 |
|
| 重新安排到新的日期/时间(合同政策可能适用) |
|
| 取消会话(应用合同的取消政策) |
|
阶段 5 — 验证交付(3 个工具)
工具 | 描述 | 作用域 |
| 使用 GPS + 时间戳签到 → 状态 |
|
| 使用 GPS + 时间戳签退 → 状态 |
|
| 记录证据: |
|
阶段 6 — 关闭(4 个工具)
工具 | 描述 | 作用域 |
| 生成服务记录(临床笔记、检查报告等)→ 状态 |
|
| 为已记录的服务创建费用 → 状态 |
|
| 记录针对销售收到的付款 |
|
| 获取销售付款状态或客户账户余额 |
|
资源管理(6 个工具)
工具 | 描述 | 作用域 |
| 列出组织的物理资源 |
|
| 获取资源详情及其可用性时段 |
|
| 创建新的物理资源(房间、隔间、设备) |
|
| 更新资源(语义补丁) |
|
| 停用资源(软删除: |
|
| 按日期范围查询资源可用性 |
|
解析器管理(3 个工具)
工具 | 描述 | 作用域 |
| 在全局解析器中注册组织,包含 MCP/REST 端点 |
|
| 更新已注册的端点(后端之间的可移植性) |
|
| 向解析器发送心跳,指示节点处于活动状态 |
|
网络智能(2 个工具,无需认证)
关于节点贡献的操作遥测的匿名市场基准。贡献-以-访问 政策(k-匿名 ≥ 5):
工具 | 描述 |
| 列出具有可用数据的段 |
| 获取一个段的桶分布(例如, |
分类发现(3 个工具,无需认证)
冷启动:代理无需事先了解协议的分类。如果代理没有上下文,从这里开始:
工具 | 描述 |
| 网络中存在的垂直领域(已声明 + 在 30 天遥测中观察到的) |
| 网络中有活动的国家/地区(ISO 3166-1 alpha-2) |
| 4 种操作遥测事件类型的目录 + 它们的 |
文档(1 个工具,无需认证)
工具 | 描述 |
| 获取快速入门的 5 个步骤作为结构化 JSON — 为没有上下文的代理提供入门引导 |
快速入门 — 加入网络的 5 个步骤
步骤 1. 安装 MCP 服务器
npx -y @servicialo/mcp-server发现模式 — 15 个公共工具,无需凭据。立即尝试:
{
"tool": "registry.search",
"arguments": { "vertical": "kinesiologia", "location": "santiago" }
}步骤 2. 创建你的组织
在 coordinalo.com/signup 注册你的组织。Coordinalo 是 Servicialo 协议的参考实现。
步骤 3. 获取 MCP 凭据
在 Coordinalo 中:设置 → Servicialo → 生成 MCP 凭据。你将获得两个值:
SERVICIALO_ORG_ID— 你组织的 slug(例如:clinica-dental-sur)SERVICIALO_API_KEY— 用于认证的 bearer token
步骤 4. 配置 MCP 客户端
添加到 Claude Desktop、Cursor 或任何 MCP 客户端的配置中:
{
"mcpServers": {
"servicialo": {
"command": "npx",
"args": ["-y", "@servicialo/mcp-server"],
"env": {
"SERVICIALO_API_KEY": "<tu_api_key>",
"SERVICIALO_ORG_ID": "<tu_org_slug>"
}
}
}
}省略 env 块以仅使用发现模式(15 个公共工具)。
步骤 5. 在 Servicialo 网络上发布
在 Coordinalo 中:设置 → Servicialo → 发布。你的组织会出现在 servicialo.com/network 上,并且可以被其他代理发现。
提示: 代理可以通过调用
docs.quickstart工具以结构化 JSON 形式获取这 5 个步骤。
网络 / Network
Servicialo 网络是实施该协议的组织的全球注册表。每个经过认证的节点都会定期发送心跳,任何代理都可以按国家、垂直领域和信任分数发现组织。
探索网络: servicialo.com/network
按垂直领域搜索:
registry.search({ vertical: "kinesiologia", country: "cl" })解析组织:
resolve.lookup({ org_slug: "clinica-dental-sur" })
凭据
基本凭据
变量 | 必需 | 默认值 | 描述 |
| 否 | — | Bearer 令牌。启用认证模式(额外 25 个工具 = 总共 40 个) |
| 否 | — | 组织 slug。启用认证模式 |
| 否 |
| 与 Servicialo 兼容的平台 API 端点 |
| 否 |
| 后端适配器: |
| 否 |
| 设置为 |
SERVICIALO_API_KEY 和 SERVICIALO_ORG_ID 必须一起配置。如果只存在其中一个,服务器将回退到发现模式并发出警告。
操作遥测 + 基准(可选)
这些变量使你的节点能够向网络基准贡献匿名事件,并访问实时数据(tier 2)。参见 docs/telemetry-operational.md:
变量 | 必需 | 默认值 | 描述 |
| 否 |
| 你的垂直领域(例如 |
| 否 |
| 运营国家的 ISO 3166-1 alpha-2 代码。事件会以此标记 |
| 否 | — | 你的节点在注册表中的 |
| 否 |
| 设置为 |
| 否 |
| 在发出的事件中声明的协议版本 |
| 否 |
| 操作遥测的接收端点(仅用于测试时更改) |
与基准层级的关系: 一个在 30 天内发出 ≥ 50 个操作事件的节点会自动达到 tier 2,
market.get_benchmark会返回实时数据(而不是默认的 tier 0/1,延迟 90 天)。完整政策:GOVERNANCE.md#contribute-to-access-policy-v01。
凭据在 coordinalo.com → 设置 → Servicialo → 生成 MCP 凭据中获取。
连接自己的实现
此 MCP 服务器通过可插拔适配器层支持任何与 Servicialo 兼容的后端。包含两个适配器:
coordinalo(默认)— 连接到 Coordinalo/Digitalo 后端,使用/api/organizations/{orgId}下的组织作用域路由。http— 连接到任何在/v1/*下暴露HTTP_PROFILE.md规范端点的实现。
连接你的实现的 3 个步骤
步骤 1. 在你的平台上实现 HTTP_PROFILE.md 中定义的 REST 端点。
步骤 2. 配置 MCP 服务器以使用 HTTP 适配器:
SERVICIALO_ADAPTER=http \
SERVICIALO_BASE_URL=https://tu-plataforma.com \
SERVICIALO_API_KEY=tu_key \
npx -y @servicialo/mcp-server步骤 3. 添加到你的 MCP 客户端配置中:
{
"mcpServers": {
"servicialo": {
"command": "npx",
"args": ["-y", "@servicialo/mcp-server"],
"env": {
"SERVICIALO_ADAPTER": "http",
"SERVICIALO_BASE_URL": "https://tu-plataforma.com",
"SERVICIALO_API_KEY": "tu_api_key",
"SERVICIALO_ORG_ID": "tu_org_id"
}
}
}
}HTTP 适配器将内部路由转换为规范端点 /v1/*,并通过 X-Servicialo-Org 头发送组织上下文。有关完整的 REST 契约,请参阅 HTTP_PROFILE.md。
委托代理模型
该协议将 AI 代理视为一等参与者 — 但从不隐式信任它们。每个代理操作都需要一个 ServiceMandate:从人类委托人到代理的明确能力委托。
工作原理
人类(专业人士、患者或组织)向代理发出委托
委托指定代理为谁行动、能做什么(范围)以及多长时间
在每次工具调用中,MCP 服务器在执行前根据 8 项检查验证委托
每个操作都会产生一条审计记录 — 成功或失败
委托示例
{
"mandate_id": "550e8400-e29b-41d4-a716-446655440000",
"principal_id": "dra_barbara",
"principal_type": "professional",
"agent_id": "agent_booking_bot",
"agent_name": "Asistente de Agendamiento",
"acting_for": "professional",
"context": "org:clinica-kinesia",
"scopes": ["schedule:read", "schedule:write", "patient:write"],
"constraints": {
"max_actions_per_day": 50,
"allowed_hours": {
"start": "08:00",
"end": "20:00",
"timezone": "America/Santiago"
},
"require_confirmation_above": {
"amount": 100000,
"currency": "CLP"
}
},
"issued_at": "2026-03-01T00:00:00Z",
"expires_at": "2026-06-01T00:00:00Z",
"status": "active"
}在工具调用中使用委托
当 actor.type 为 "agent" 时,包含 mandate_id:
{
"tool": "scheduling.book",
"arguments": {
"service_id": "srv_123",
"provider_id": "prov_111",
"client_id": "cli_789",
"starts_at": "2026-03-03T10:00:00",
"actor": {
"type": "agent",
"id": "agent_booking_bot",
"mandate_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
}8 项验证检查
每个代理工具调用都根据以下内容进行验证:
# | 检查 | 防止 |
1 | 状态 — 委托必须为 | 使用已撤销或过期的委托 |
2 | 时间有效性 — | 基于时间的攻击 |
3 | 代理身份 — | 代理冒充 |
4 | 范围覆盖 — 委托的范围覆盖工具的要求 | 权限提升 |
5 | 上下文 — 委托的上下文与请求匹配 | 跨组织访问数据 |
6 | 利益冲突 — 代理不能同时为双方行动 | 双重代理违规 |
7 | 限制 — 允许的时间、每日限额、财务阈值 | 过度自主的代理 |
8 | 审计 — 每个操作都记录有清理后的输入 | 不可否认性 |
非代理参与者(client、provider、organization)不经过委托验证。
服务提供者发现
代理可以搜索注册表,并使用结构化查询将服务提供者与患者需求进行匹配。
在注册表中搜索
{
"tool": "registry.search",
"arguments": {
"vertical": "kinesiologia",
"location": "santiago",
"country": "cl"
}
}返回与其服务和提供者匹配的组织。
查询可用性
{
"tool": "scheduling.check_availability",
"arguments": {
"org_slug": "clinica-kinesia",
"service_id": "srv_rehab_pelvica",
"provider_id": "prov_111",
"date_from": "2026-03-10",
"date_to": "2026-03-14"
}
}3 变量调度器同时检查提供者、客户和物理资源的可用性。
端到端示例
1. registry.search({ vertical: "kinesiologia", location: "santiago" })
→ encuentra org "clinica-kinesia"
2. services.list({ org_slug: "clinica-kinesia" })
→ lista servicios disponibles
3. scheduling.check_availability({ org_slug: "clinica-kinesia", date_from: "2026-03-10", date_to: "2026-03-14" })
→ retorna slots disponibles
4. contract.get({ service_id: "srv_123", org_id: "org_456" })
→ cancelación: 0% si >24h, 50% si 2-24h, 100% si <2h
→ evidencia requerida: check_in + check_out + registro_clinico
5. clients.get_or_create({ email: "maria@mail.com", name: "Maria", last_name: "Lopez" })
→ client_id: "cli_789"
6. scheduling.book({ service_id: "srv_123", provider_id: "prov_111", client_id: "cli_789", starts_at: "2026-03-12T10:00:00" })
→ session_id: "ses_001", estado: "solicitado"
7. scheduling.confirm({ session_id: "ses_001" })
→ estado: "confirmado"
8. delivery.checkin({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
→ estado: "en_curso"
9. delivery.checkout({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
→ estado: "entregado", duración: 42min
10. documentation.create({ session_id: "ses_001", content: "Sesión de rehabilitación de piso pélvico..." })
→ estado: "documentado"
11. payments.create_sale({ client_id: "cli_789", service_id: "srv_123", unit_price: 35000 })
→ sale_id: "sale_001", estado: "cobrado"
12. lifecycle.transition({ session_id: "ses_001", to_state: "verified" })
→ estado: "verificado" ✓协议规范
Servicialo 协议的完整规范可在以下位置获取:
网站: servicialo.com
当前稳定版本: 0.9
JSON Schemas:
service.schema.json、service-order.schema.json、service-mandate.schema.json、resolution.schema.json、servicialo-config.schema.json
该规范涵盖了服务的 8 个维度、6+3 生命周期、6 个异常流程、7 项基本原则、双实体架构(原子服务 + 服务订单)、委托代理模型、DNS 解析以及 A2A 互操作性。
参考实现
Digitalo 是 Servicialo 协议的第一个生产实现,在智利的医疗领域运行。它实现了完整的生命周期——从服务提供者发现到支付结算——并作为协议演进的验证场。
此 MCP server 通过 SERVICIALO_BASE_URL 连接到任何兼容 Servicialo 的后端。Digitalo 就是这样的后端之一。该协议的设计使得任何 CRM、HIS 或平台都可以将其实现为独立节点。
为协议做贡献
Servicialo 对协议规范采用语义化版本控制:
Patch(0.7.x)——澄清、拼写修正、非破坏性补充
Minor(0.x.0)——新的可选字段、新的工具定义、新的异常流程
Major(x.0.0)——对 schemas、状态机或核心语义的破坏性更改
如何提议更改
打开一个 issue,描述问题和提议的解决方案
对于重大更改,在
spec/中编写 RFC,并注明受影响的章节编号协议的更改在合并前至少需要一个参考实现
对 schemas 的更改必须包含更新的 JSON Schema 和 MCP server 中的 Zod 类型
正在积极寻求意见的领域
特定垂直领域的证据要求(超越医疗)
生命周期状态名称的多语言支持
节点间联邦(两个 Servicialo 实现如何互操作)
用于 Python 和 TypeScript 的 Agent SDK 模式
遥测
启动时,MCP server 会向 https://servicialo.com/api/telemetry/instance 发送一个匿名 POST,内容如下:
{
"event": "node_initialized",
"version": "0.9.8",
"node_id": "a1b2c3d4-...",
"ts": 1711300000000
}字段 | 描述 |
| 始终为 |
| 包版本 |
| 存储在 |
| 毫秒时间戳 |
仅发送这些内容。 不会传输组织信息、API 密钥、患者数据或任何个人标识符。IP 在服务器上存储前会进行哈希处理(SHA-256)。该 ping 是即发即忘的:如果失败,错误会被静默丢弃,绝不会阻塞服务器操作。
首次启用遥测运行时,服务器会在 stderr 上打印一条通知,说明发送的内容以及如何禁用它。
禁用遥测
SERVICIALO_TELEMETRY=false npx -y @servicialo/mcp-server或在 MCP 配置中:
{
"env": {
"SERVICIALO_TELEMETRY": "false"
}
}加入网络
安装 @servicialo/mcp-server 后,你的节点会自动注册到网络遥测。这有助于生态系统衡量协议的实际采用情况——不收集个人数据或客户数据。
遥测仅报告:包版本、持久节点 UUID 和 IP 哈希(用于粗略地理定位——我们不存储 IP)。你可以随时使用 SERVICIALO_TELEMETRY=false 禁用它。
启动通知
服务器在 stderr 上写入两条信息性通知——绝不会写入 stdout,因为 stdout 承载 JSON-RPC,任何其他内容都会破坏它:
RFC-005 评论窗口,只要它仍然开放。它内置了过期机制:在 2026-09-13(最终评论期结束)之后停止打印。十月安装的节点不会看到过时的公告。
如果你的节点是匿名的,如何识别它(见下文)。
两者每个进程只打印一次,并可通过 SERVICIALO_QUIET=true 静默:
{
"env": {
"SERVICIALO_QUIET": "true"
}
}该变量仅影响这两条通知。模式横幅和遥测首次运行通知保持原有行为。
识别你的节点
默认情况下,你的节点是匿名的:ping 只携带事件、版本、node_id 和时间戳,没有其他内容。如果你运行自己的协议实现,以下三个可选变量可以识别它,并使其有资格成为已验证实现者:
SERVICIALO_IMPL_NAME="Mi Plataforma" # Nombre de tu implementación
SERVICIALO_IMPL_URL="https://example.com" # Tu sitio web o repositorio
SERVICIALO_IMPL_CONTACT="admin@example.com" # Email de contacto — se hashea antes de salir每个变量下从你的机器发送的内容
变量 | 发送的内容 | 不发送的内容 |
| 明文名称,如 | — |
| 明文 URL,如 | — |
| 仅 | 电子邮件。它不会离开主机,不会被记录,不会存储,也不会在任何地方显示。 |
未配置变量时,这些字段都不会出现在 ping 中。未配置的节点行为与此版本之前完全相同。
验证周期
anonymous → pending → verified
anonymous— 未配置变量。这是默认状态,匿名节点完全符合要求。pending— 当新的impl_name首次出现时,记录保持待处理状态,团队会收到包含名称、URL 和国家的通知。联系哈希不会包含在该通知中,也不可能包含:它毫无用处。verified— 经过对照一致性检查清单的手动审查后,你的实现会出现在 servicialo.com/implementors 上,并显示其级别和报告的主机数量。
验证目前是手动的。自动化一致性套件在路线图上;目前不是现有能力。
联系哈希的用途——以及非用途。 它是单向摘要:没有人能根据它给你写信,配置它也不会让你订阅任何公告或列表。它的用途恰恰相反:当你写信谈论你的实现时,你的电子邮件哈希确认你是发送这些 ping 的操作者。
如何停止发送
从你的 MCP 配置中删除这些变量(或 unset SERVICIALO_IMPL_NAME SERVICIALO_IMPL_URL SERVICIALO_IMPL_CONTACT)并重启服务器。下一个 ping 将恢复为匿名,不包含任何身份字段。已发送的 ping 保留其发送的内容;要请求删除现有记录,请在仓库中打开一个 issue。
相邻能力:每周快照
registry 每周一 00:00 UTC 向订阅的端点发出 benchmark.weekly_snapshot,负载由 HMAC-SHA256 签名。这三个变量不会激活它。 它需要 registry 中的条目和通过 Webhooks API 的显式订阅,并提供基准数据,而不是协议公告。
许可证
Apache-2.0 — 欢迎任何实现,无论是商业的还是非商业的。参见 LICENSE。
Available Tools
10 toolsa2a_get_agent_cardA
Get the A2A (Agent-to-Agent) Agent Card for an organization, enabling inter-agent discovery. Use this when your agent needs to communicate with another agent managing this organization — the card declares supported capabilities, endpoints, and authentication requirements. Do NOT use for human-facing discovery (use registry.get_organization) or service listing (use services.list). Returns a JSON-LD Agent Card following the A2A v0.3 specification.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Organization slug (e.g. "clinica-dental-sur") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes full responsibility for behavioral disclosure. It indicates the return format: 'Returns a JSON-LD Agent Card following the A2A v0.3 specification.' It also explains the content of the card: 'declares supported capabilities, endpoints, and authentication requirements.' This gives a clear picture of what the tool does and what the agent will receive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. The first sentence states the core purpose. The second provides usage guidelines. The third details return format and exclusions. Information is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required string parameter, no output schema, no nested objects), the description covers all necessary aspects: purpose, usage alternatives, behavioral details, and return format. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'org_slug', so the baseline is 3. The description does not add additional semantic information beyond the schema's example ('clinica-dental-sur'), but this is acceptable as the schema already provides sufficient detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the A2A Agent Card for an organization, enabling inter-agent discovery.' It specifies the verb (Get), the resource (Agent Card), and the context (inter-agent discovery). It also distinguishes itself from sibling tools like registry.get_organization and services.list, which are explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'when your agent needs to communicate with another agent managing this organization.' It also provides explicit alternatives: 'Do NOT use for human-facing discovery (use registry.get_organization) or service listing (use services.list).' This leaves no ambiguity about the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_quickstartA
Get the complete 5-step onboarding guide as structured JSON data. Use this when helping a new organization join the Servicialo network — covers installation, signup, credentials, MCP client config, and publishing. Do NOT use for searching services (use registry.search) or checking availability (use scheduling.check_availability). Returns step-by-step instructions, config templates, and links. No parameters required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes what the tool returns (instructions, config templates, links) and implies a read-only operation. Lacks mention of any authentication or access requirements, but given the nature of a quickstart guide, this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with clear purpose: definition, usage guidance with exclusions, and output description. No wasted words, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers the tool's purpose, when to use, what it returns, and exclusions. No missing information given the simplicity of the tool (no params, no output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description correctly states 'No parameters required' and does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves the 5-step onboarding guide as structured JSON data. Distinguishes from siblings by explicitly excluding use for searching or availability checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (helping a new organization join) and when-not-to-use with alternative tool names (registry.search, scheduling.check_availability).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_get_organizationA
Get the full public profile of a specific organization: services offered, providers, and booking configuration. Use this after registry.search when you have an org_slug and need detailed info before booking. Do NOT use for searching across organizations (use registry.search). Returns service catalog with prices/durations, provider list, and booking policies.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation by using 'Get' but does not explicitly state it is read-only, nor does it mention authentication, rate limits, or other behavioral traits. It does list return contents, which provides some transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no waste. The first sentence immediately states the purpose, the second provides usage context, and the third summarizes the return content. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only 2 simple parameters, the description adequately covers what the tool returns (service catalog, provider list, booking policies). It also provides usage context. Slight improvement could be to mention that the response is a full profile object, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description does not add any additional meaning or context about the parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the full public profile of a specific organization, listing contents (services, providers, booking configuration). It distinguishes from sibling registry.search by explicitly saying not to use it for searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool ('after registry.search when you have an org_slug and need detailed info before booking') and when not to use it ('Do NOT use for searching across organizations'), with a named alternative (registry.search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_manifestA
Get the Servicialo server manifest: protocol version, server name, and available capabilities. Use this to verify server identity and protocol compatibility before interacting with tools. Do NOT use for organization discovery (use registry.search) or service details (use services.list). Returns static metadata about this MCP server instance, not about any specific organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It explains the tool returns static metadata about the server instance and not about organizations. It omits details like authentication or side effects, but for a read-only, parameterless tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are efficient and front-loaded: purpose, usage guidance, and scope clarification. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is fully complete. It clearly explains what the tool does, when to use it, and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and 100% coverage. The description does not need to explain parameters since there are none. The baseline of 4 is appropriate as it adds context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the server manifest with specific fields (protocol version, server name, capabilities) and distinguishes it from sibling tools by explicitly stating what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (verify server identity and protocol compatibility) and when not to use, providing alternative tools (registry.search, services.list) for other purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_searchA
Search for Servicialo-compatible organizations by vertical, location, and country. Use this as the primary discovery tool when a user needs a service (e.g., "find a physiotherapist in Santiago"). Do NOT use if you already have an org_slug (use registry.get_organization instead). Returns a ranked list of organizations with names, slugs, and service summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| vertical | No | Vertical del servicio. Valores comunes: tecnologia, consultoria, kinesiologia, psicologia, dental, nutricion, fonoaudiologia, terapia-ocupacional, medicina, veterinaria, educacion, fitness, legal, belleza, hogar. Omitir para buscar en todas las verticales. | |
| location | No | City or district to filter by (e.g. "santiago", "providencia"). Omit for country-wide results. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "cl", "mx", "ar"). Default: "cl" | cl |
| limit | No | Max results to return (1-100). Default: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses that results are ranked and returns names, slugs, and service summaries, but does not explain ranking criteria, authentication needs, rate limits, or pagination beyond the limit parameter. Adequate but not fully detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. First sentence states purpose, second gives usage guidance, third describes output. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description partially compensates by mentioning return fields (names, slugs, service summaries). However, it lacks details on response structure (e.g., array format). Overall, sufficient for a search tool with optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description adds minimal extra meaning beyond summarizing the use case (e.g., 'by vertical, location, and country'). No new parameter details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for Servicialo-compatible organizations by vertical, location, and country' with a specific verb and resource. It also distinguishes from sibling tool registry_get_organization by noting when not to use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use as primary discovery tool and provides an example ('find a physiotherapist in Santiago'). Also states not to use if org_slug is known, directing to registry_get_organization. No exclusions but clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_lookupA
Resolve an organization slug to its MCP/REST endpoints and trust level — the DNS of professional services. Use this when you know the org_slug and need its API endpoint before calling any other tool. Do NOT use for searching by vertical or location (use resolve.search or registry.search instead). Returns: endpoint URLs, trust score (0-100), trust level, and last heartbeat timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It lists returned fields (endpoint URLs, trust score, trust level, last heartbeat timestamp), adding behavioral context. Could explicitly state read-only nature, but implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, usage guideline, return values. No fluff, front-loaded, efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description details return structure. Purpose, parameters (via schema), usage, and returns are covered. Fully adequate for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning beyond schema; it implies country is for regional endpoint but doesn't elaborate. Adequate but not improved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves an organization slug to endpoints and trust level, using a strong metaphor ('DNS of professional services'). It distinguishes itself from siblings like resolve_search and registry_search by specifying what it does vs. what it doesn't.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (when you know org_slug and need API endpoint before other tools) and when not to use (searching by vertical/location, directing to resolve.search or registry.search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_searchA
Search the global Servicialo resolver for registered organizations by country and vertical. Use this for broad discovery when you need to find all organizations in a country/vertical (e.g., "what physiotherapy clinics exist in Chile?"). Do NOT use if you already have an org_slug (use resolve.lookup instead). Unlike registry.search, this queries the DNS-level resolver and returns endpoint URLs + trust levels.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
| vertical | No | Vertical del servicio. Valores comunes: tecnologia, consultoria, kinesiologia, psicologia, dental, nutricion, fonoaudiologia, terapia-ocupacional, medicina, veterinaria, educacion, fitness, legal, belleza, hogar. Omitir para buscar en todas las verticales. | |
| limit | No | Cantidad máxima de resultados (1-100). Default: 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions 'queries the DNS-level resolver and returns endpoint URLs + trust levels,' but lacks details on pagination, rate limits, or error handling. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with clear purpose: functional description, usage example, and differentiation. Efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 3 optional params and no output schema, the description covers purpose, usage, and basic behavior. Lacks details on response format beyond 'endpoint URLs + trust levels,' but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond schema: it repeats default values and provides an example vertical list, but does not significantly enhance param meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the global Servicialo resolver for registered organizations by country and vertical.' It specifies the action, resource, and filtering dimensions, and distinguishes from siblings like resolve.lookup and registry.search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use ('broad discovery', example given), when not to use (if you have org_slug, use resolve.lookup), and differentiates from registry.search by highlighting the DNS-level query and returned data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_check_availabilityA
Query available time slots for booking at an organization. No authentication required. Use this after services.list when you know the org and need to find open slots before booking. Checks 3-way availability: provider schedule AND client conflicts AND physical resource (room/equipment). Do NOT use for searching organizations (use registry.search) or listing services (use services.list). Returns available slots grouped by date, each with start time, end time, provider, and resource.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Organization slug (e.g. "clinica-dental-sur"). Get this from registry.search results. | |
| service_id | No | Filter by service ID. Get valid IDs from services.list. Omit to check all services. | |
| provider_id | No | Filter by provider ID. Omit to check all available providers. | |
| resource_id | No | Filter by physical resource (room, equipment). Only needed if the service requires a specific resource. | |
| date_from | Yes | Start date in ISO format (e.g. "2026-03-01"). Must be today or later. | |
| date_to | Yes | End date in ISO format (e.g. "2026-03-07"). Max range: 30 days from date_from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses no authentication required, checks 3-way availability, and describes return format. Lacks details on error handling or empty results, but sufficient for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, each sentence adds value. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description is quite complete: explains purpose, usage context, what it checks, and output format. Minor lack of error handling info, but overall comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds extra context (e.g., 'No authentication required', 'resource_id: Only needed if the service requires a specific resource'). Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Query' and resource 'available time slots for booking at an organization'. It distinguishes from siblings like registry.search and services.list by explicitly stating what not to use it for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('after services.list when you know the org and need to find open slots before booking') and when not to use ('Do NOT use for searching organizations...'). Provides context of 3-way availability check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services_listA
List the public service catalog of an organization: names, prices, durations, and modalities. Use this after registry.search to see what services an organization offers before checking availability. Do NOT use for organization discovery (use registry.search) or checking time slots (use scheduling.check_availability). Returns active, publicly bookable services only — internal or draft services are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key behavioral trait: 'Returns active, publicly bookable services only — internal or draft services are excluded.' No contradictions. Lacks mention of pagination or limits, but acceptable for simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, usage context, and constraints. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, description covers return content, constraints, and predecessor/successor tools completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (single param org_slug described in schema as 'Slug de la organización'). Description does not add new meaning beyond schema, but context of usage indirectly helps. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists public service catalog (names, prices, durations, modalities) and distinguishes from siblings by explicitly contrasting with registry.search (organization discovery) and scheduling.check_availability (time slots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use this after registry.search...' and lists two cases with alternatives: 'Do NOT use for organization discovery (use registry.search) or checking time slots (use scheduling.check_availability).'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trust_get_scoreA
Get the trust score of an organization from the Servicialo resolver. Use this to evaluate reliability before booking — returns score (0-100), trust level (unverified → declared → vouched → verified), and last activity timestamp. Do NOT use this to find organizations (use resolve.search). Trust accumulates passively from verified service history; it cannot be purchased or self-declared.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2. Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses return values (score range, trust levels, timestamp) and key behavioral trait: trust accumulates passively, cannot be purchased. Lacks details on error handling or permissions but covers core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with verb and resource, no redundant words. Every sentence serves a purpose: action, usage guidance, and behavioral insight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, description covers purpose, return values, usage boundaries, and key behavioral constraints. Sufficient for agent to correctly select and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for both parameters. Description adds no new parameter-level semantics beyond context already present in schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'trust score', and explicitly distinguishes from sibling 'resolve.search' by saying 'Do NOT use this to find organizations (use resolve.search)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to evaluate reliability before booking' and provides a clear negative use case 'Do NOT use this to find organizations' with alternative. Also explains passive accumulation, guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.1- Added
a2a_get_agent_card - Added
docs_quickstart - Added
registry_get_organization - Added
registry_manifest - Added
registry_search - Added
resolve_lookup - Added
resolve_search - Added
scheduling_check_availability - Added
services_list - Added
trust_get_score
TDQS
Scored across 10 tools
Each tool targets a distinct function, with clear separation through 'Do NOT use' guidance. However, registry_search and resolve_search both perform discovery with different outputs, and registry_get_organization and resolve_lookup both operate on a specific org_slug but return different data, creating minor ambiguity.
Names use underscores but follow mixed patterns: some are verb_noun (a2a_get_agent_card, registry_get_organization), others are noun_verb (registry_search, services_list), and some lack a verb (registry_manifest, docs_quickstart). This inconsistency could confuse agents.
10 tools is a well-scoped set for a service discovery and scheduling platform, covering discovery, profiles, services, availability, and trust without being overwhelming.
The tool surface covers discovery and pre-booking steps but lacks any tool for actual booking (create, update, cancel). This is a significant gap as users cannot complete the core action implied by the server's purpose.
Maintenance
Related MCP Connectors
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Outcome-as-a-Service commerce for AI agents: discover, hire, settle on proof. Live on devnet.
Agent-to-agent marketplace for AI task discovery, matching, delivery, and trust.
MCP layer for local businesses: discover, query, book, and transact with verified SMB AI agents.
Related MCP Servers
- MIT
- AlicenseNot gradedqualityCmaintenanceOpen coordination network for AI agents and their humans. 13 tools for structured coordination, job marketplace, reputation system. Dual-protocol: MCP + A2A. MIT licensed.1MIT
- AlicenseBqualityBmaintenanceAgent trust checks, reputation and signed passports. Glama's build is a separate local Guild with an empty graph and its own issuer. Registrations and evidence stay local. Use the remote MCP connector for the shared hosted Guild; its free preflight and metered trust services are separate.43Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to post real-world tasks, match them to people, and release payments through a delegation-based authorization system that enforces scoped, spend-capped permissions.-