Servicialo
@servicialo/mcp-server
MCP-интерфейс на уровне протокола для стандарта Servicialo — целевой слой для человеческих услуг в эпоху ИИ-агентов. HTTP сделал документы адресуемыми. Servicialo делает услуги адресуемыми. MCP и A2A — это транспорт. Servicialo — это пункт назначения, к которому приходят агенты.
Этот пакет — MCP-интерфейс на уровне протокола для любого бэкенда, совместимого с Servicialo — а не коннектор к конкретной платформе. Coordinalo — эталонная реализация (и значение по умолчанию), но вы можете подключить собственный бэкенд.
Протокол: v0.10 (draft) · Спецификация: servicialo.com/spec · Этот пакет версионируется независимо от протокола (
0.9.xдо 1.0).
Путь к 1.0
Протокол Servicialo вступает в фазу стабилизации. Первая формальная когорта RFC открыта для комментариев в течение минимального окна в 4 недели перед переходом к Final Comment Period. До 1.0 релизы остаются 0.9.x patch, и любое ломающее изменение протокола требует merged RFC и предварительного уведомления.
Когорта RFC (PR #13): servicialo/mcp-server#13
Процесс 1.0 / Обсуждение: servicialo/mcp-server#14
Предстоящие вехи на пути к 1.0
Веха | Статус |
RFC-001 — RFC Process & Deprecation Policy | Черновик / Открыт для комментариев |
RFC-002 — Prepayment & Client Credit Balance | Черновик / Открыт для комментариев |
RFC-003 — Refunds & Credit Notes (Forward-Only Ledger) | Черновик / Открыт для комментариев |
RFC-004 — PII / PHI Classification Framework | Черновик / Открыт для комментариев |
Декларация стабильного Core (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Проблема
ИИ-агенты умеют просматривать веб, писать код и вести разговоры. Но попросите агента забронировать сеанс кинезиологии, проверить, что он состоялся, и обработать оплату — и всё рушится.
Сегодня каждая платформа — это silo. Нет стандарта для:
Обнаружения — какой поставщик, в какой организации предлагает то, что мне нужно?
Идентичности — от чьего имени действует этот агент и что ему разрешено делать?
Жизненного цикла — в каком состоянии находится эта услуга? Кто подтвердил? Кто присутствовал?
Подтверждения оказания — действительно ли состоялся сеанс? Как долго? Где?
Расчёта — сколько, кому, на каких договорных условиях?
Без общего протокола каждая интеграция — ручная работа. Каждое соединение агент-платформа — это кастомный API. Так не масштабируется.
Что такое Servicialo
Servicialo — это открытый протокол, а не платформа. Он определяет, как профессиональные услуги проходят через свой жизненный цикл — от обнаружения до оплаты — так, что любой ИИ-агент или платформа может его реализовать.
Отношение такое же, как у 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, включая resolver обнаружения — аналог DNS, поверх HTTP), плюс управление ресурсами, администрирование resolver, сетевую аналитику (market.*) и cold-start обнаружение (registry.list_* для знакомства с таксономией без предварительного знания). Агент не вызывает endpoints по сущностям базы данных — он следует естественному потоку координации услуги.
Фаза 0 — Разрешение DNS (3 инструмента, без auth)
Инструмент | Описание |
| Разрешить orgSlug в его endpoint MCP/REST и уровень доверия (эквивалент DNS lookup) |
| Искать зарегистрированные организации по стране и вертикали в глобальном resolver |
| Получить оценку доверия организации (score 0-100, уровень, последняя активность) |
Фаза 1 — Обнаружение (6 инструментов, без auth)
Инструмент | Описание |
| Искать организации по вертикали, местоположению, стране |
| Получить публичные детали: услуги, поставщиков, конфигурацию бронирования |
| Получить манифест сервера: возможности, версию протокола, метаданные организации |
| Проверить доступность (3 переменные: поставщик ∧ клиент ∧ ресурс) |
| Перечислить публичный каталог услуг организации |
| Получить Agent Card A2A организации для меж-агентного обнаружения |
Фаза 2 — Понимание (2 инструмента)
Инструмент | Описание | Scopes |
| Получить 8 измерений услуги |
|
| Получить условия контракта: требуемые доказательства, политику отмены, окно спора |
|
Фаза 3 — Обязательство (3 инструмента)
Инструмент | Описание | Scopes |
| Разрешить идентичность клиента по email/телефону — найти или создать одним вызовом |
|
| Забронировать сеанс → состояние |
|
| Подтвердить забронированный сеанс → состояние |
|
Фаза 4 — Жизненный цикл (4 инструмента)
Инструмент | Описание | Scopes |
| Получить текущее состояние, доступные переходы и историю |
|
| Выполнить переход состояния с доказательством |
|
| Перенести на новую дату/время (может применяться договорная политика) |
|
| Отменить сеанс (применяется политика отмены контракта) |
|
Фаза 5 — Проверка оказания (3 инструмента)
Инструмент | Описание | Scopes |
| Check-in с GPS + timestamp → состояние |
|
| Check-out с GPS + timestamp → состояние |
|
| Записать доказательство: |
|
Фаза 6 — Закрытие (4 инструмента)
Инструмент | Описание | Scopes |
| Создать запись об услуге (клиническая заметка, отчёт об инспекции и т.д.) → состояние |
|
| Создать платёж за документированную услугу → состояние |
|
| Зарегистрировать полученный платёж по продаже |
|
| Получить статус оплаты продажи или баланс счёта клиента |
|
Управление ресурсами (6 инструментов)
Инструмент | Описание | Scopes |
| Перечислить физические ресурсы организации |
|
| Получить детали ресурса с его слотами доступности |
|
| Создать новый физический ресурс (комната, бокс, оборудование) |
|
| Обновить ресурс (семантический patch) |
|
| Деактивировать ресурс (soft delete: |
|
| Проверить доступность ресурса по диапазону дат |
|
Администрирование Resolver (3 инструмента)
Инструмент | Описание | Scopes |
| Зарегистрировать организацию в глобальном resolver с endpoints MCP/REST |
|
| Обновить зарегистрированные endpoints (переносимость между бэкендами) |
|
| Отправить heartbeat в resolver, указывая, что узел активен |
|
Сетевая аналитика (2 инструмента, без auth)
Анонимизированные рыночные бенчмарки по операционной телеметрии, предоставляемой узлами. Политика вклад-для-доступа (k-анонимность ≥ 5):
Инструмент | Описание |
| Перечислить сегменты |
| Получить распределение бакетов сегмента (напр. долю каждого |
Обнаружение таксономии (3 инструмента, без аутентификации)
Cold-start: агенту не нужно заранее знать таксономию протокола. Начните здесь, если агент приходит без контекста:
Инструмент | Описание |
| Вертикали, присутствующие в сети (заявленные + наблюдаемые в телеметрии за 30 дней) |
| Страны/регионы ISO 3166-1 alpha-2 с активностью в сети |
| Каталог 4 типов событий операционной телеметрии + их |
Документация (1 инструмент, без аутентификации)
Инструмент | Описание |
| Получить 5 шагов quickstart в виде структурированного JSON — онбординг агентов без предварительного контекста |
Quickstart — 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: Settings → Servicialo → Generar credenciales 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: Settings → Servicialo → Publicar. Ваша организация появится на servicialo.com/network и будет доступна для обнаружения другими агентами.
Совет: Агент может получить эти 5 шагов в виде структурированного JSON, вызвав инструмент
docs.quickstart.
Red / Network
Сеть Servicialo — это глобальный реестр организаций, реализующих протокол. Каждый аутентифицированный узел отправляет периодический heartbeat, и любой агент может обнаруживать организации по стране, вертикали и уровню доверия.
Исследовать сеть: servicialo.com/network
Поиск по вертикали:
registry.search({ vertical: "kinesiologia", country: "cl" })Разрешить организацию:
resolve.lookup({ org_slug: "clinica-dental-sur" })
Учетные данные
Основные
Переменная | Обязательная | По умолчанию | Описание |
| Нет | — | Bearer token. Включает аутентифицированный режим (25 доп. инструментов = 40 всего) |
| Нет | — | Slug организации. Включает аутентифицированный режим |
| Нет |
| Endpoint API платформы, совместимой с Servicialo |
| Нет |
| Backend-адаптер: |
| Нет |
| Установите |
SERVICIALO_API_KEY и SERVICIALO_ORG_ID должны настраиваться вместе. Если присутствует только одна, сервер переходит в режим обнаружения с предупреждением.
Операционная телеметрия + бенчмарки (опционально)
Эти переменные позволяют вашему узлу вносить анонимизированные события в сетевые бенчмарки и получать доступ к данным в реальном времени (tier 2). См. docs/telemetry-operational.md:
Переменная | Обязательная | По умолчанию | Описание |
| Нет |
| Ваша вертикаль (напр. |
| Нет |
| ISO 3166-1 alpha-2 страны операционной деятельности. События помечаются этим значением |
| Нет | — |
|
| Нет |
| Установите |
| Нет |
| Версия протокола, объявляемая в отправляемых событиях |
| Нет |
| Endpoint-приёмник операционной телеметрии (менять только для тестирования) |
Как это связано с tier бенчмарков: узел, отправляющий ≥ 50 операционных событий за 30 дней, автоматически достигает tier 2, и
market.get_benchmarkвозвращает данные в реальном времени (вместо стандартного tier 0/1 с задержкой 90 дней). Полная политика: GOVERNANCE.md#contribute-to-access-policy-v01.
Учетные данные получаются на coordinalo.com → Settings → Servicialo → Generar credenciales MCP.
Подключение собственной реализации
Этот MCP-сервер поддерживает любой backend, совместимый с Servicialo, через слой подключаемых адаптеров. Включены два адаптера:
coordinalo(по умолчанию) — подключается к backend Coordinalo/Digitalo с маршрутами org-scoped по пути/api/organizations/{orgId}.http— подключается к любой реализации, которая предоставляет канонические endpoints изHTTP_PROFILE.mdпо пути/v1/*.
3 шага для подключения вашей реализации
Шаг 1. Реализуйте REST endpoints, определённые в HTTP_PROFILE.md, на вашей платформе.
Шаг 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-адаптер преобразует внутренние маршруты в канонические endpoints /v1/* и отправляет контекст организации через заголовок X-Servicialo-Org. Полный REST-контракт см. в HTTP_PROFILE.md.
Модель делегированного агентства
Протокол рассматривает ИИ-агентов как субъектов первого класса — но никогда не доверяет им неявно. Каждое действие агента требует ServiceMandate: явного делегирования полномочий от человека-принципала агенту.
Как это работает
Человек (профессионал, пациент или организация) выдаёт мандат агенту
Мандат определяет от чьего имени действует агент, что он может делать (scopes) и на какой срок
При каждом вызове инструмента 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 | Покрытие scopes — scopes мандата покрывают требования инструмента | Эскалация привилегий |
5 | Контекст — контекст мандата совпадает с запросом | Cross-org доступ к данным |
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 доступна по адресу:
Репозиторий: github.com/servicialo/protocol
Веб-сайт: 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-сервер подключается к любому бэкенду, совместимому с Servicialo, через SERVICIALO_BASE_URL. Digitalo — один из таких бэкендов. Протокол спроектирован так, чтобы любая CRM, HIS или платформа могла реализовать его как суверенный узел.
Вклад в протокол
Servicialo использует семантическое версионирование для спецификации протокола:
Patch (0.7.x) — уточнения, исправления опечаток, неразрушающие дополнения
Minor (0.x.0) — новые опциональные поля, новые определения инструментов, новые потоки исключений
Major (x.0.0) — разрушающие изменения схем, конечного автомата или базовой семантики
Как предлагать изменения
Открыть issue с описанием проблемы и предлагаемого решения
Для значительных изменений написать RFC в
spec/с указанием номера затрагиваемого разделаИзменения протокола требуют как минимум одной эталонной реализации перед merge
Изменения схем должны включать обновлённый JSON Schema и типы Zod в MCP-сервере
Области, активно ожидающие вклада
Требования к доказательствам для конкретных вертикалей (помимо здравоохранения)
Поддержка нескольких языков для названий состояний жизненного цикла
Межузловая федерация (как две реализации Servicialo взаимодействуют друг с другом)
Паттерны Agent SDK для Python и TypeScript
Телеметрия
При запуске MCP-сервер отправляет один анонимный POST на https://servicialo.com/api/telemetry/instance со следующим содержимым:
{
"event": "node_initialized",
"version": "0.9.8",
"node_id": "a1b2c3d4-...",
"ts": 1711300000000
}Поле | Описание |
| Всегда |
| Версия пакета |
| Постоянный UUID, хранящийся в |
| Временная метка в миллисекундах |
Это всё, что отправляется. Никакая информация об организации, API-ключи, данные пациентов или какие-либо персональные идентификаторы не передаются. IP-адрес хешируется (SHA-256) на сервере перед хранением. Пинг работает по принципу fire-and-forget: если он не удаётся, ошибка молча отбрасывается и никогда не блокирует работу сервера.
При первом запуске с активной телеметрией сервер выводит в stderr уведомление о том, что отправляется и как это отключить.
Отключение телеметрии
SERVICIALO_TELEMETRY=false npx -y @servicialo/mcp-serverИли в конфигурации MCP:
{
"env": {
"SERVICIALO_TELEMETRY": "false"
}
}Подробнее: servicialo.com/network
Присоединяйтесь к сети
При установке @servicialo/mcp-server ваш узел автоматически регистрируется в телеметрии сети. Это помогает экосистеме измерять реальное внедрение протокола — без сбора персональных данных или данных ваших клиентов.
Телеметрия сообщает только: версию пакета, постоянный UUID узла и хеш IP-адреса (для приблизительной геолокации — мы не храним IP-адреса). Вы можете отключить её в любой момент с помощью SERVICIALO_TELEMETRY=false.
Уведомления при запуске
Сервер выводит два информационных уведомления в stderr — никогда в stdout, который передаёт JSON-RPC и портится от чего-либо ещё:
Окно комментариев к RFC-005, пока оно открыто. Оно имеет встроенный срок действия: перестаёт выводиться после 2026-09-13, окончания финального периода комментариев. Узел, установленный в октябре, не увидит мёртвое объявление.
Если ваш узел анонимный — как его идентифицировать (ниже).
Оба выводятся один раз на процесс и отключаются с помощью SERVICIALO_QUIET=true:
{
"env": {
"SERVICIALO_QUIET": "true"
}
}Эта переменная влияет только на эти два уведомления. Баннер режима и уведомление о первом запуске телеметрии сохраняют прежнее поведение.
Идентифицируйте свой узел
По умолчанию ваш узел анонимен: пинг содержит событие, версию, 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 в открытом виде, как | — |
| Только | Сам email. Он не покидает хост, не логируется, не хранится и нигде не отображается. |
Без настроенных переменных ни одно из этих полей не появляется в пинге. Узел без конфигурации ведёт себя точно так же, как до этой версии.
Цикл проверки
anonymous → pending → verified
anonymous— без настроенных переменных. Это состояние по умолчанию, и анонимный узел полностью соответствует требованиям.pending— при первом появлении новогоimpl_nameзапись переходит в состояние ожидания, и команда получает уведомление с именем, URL и страной. Хеш контакта не включается в это уведомление — и не мог бы: он бесполезен.verified— после ручной проверки по чек-листу соответствия ваша реализация появляется на servicialo.com/implementors с указанием уровня и количества сообщаемых хостов.
Проверка сегодня выполняется вручную. Автоматизированный набор тестов соответствия находится в дорожной карте; это не текущая возможность.
Для чего нужен хеш контакта — и для чего нет. Это односторонний дайджест: никто не может написать вам на его основе, и его настройка не подписывает вас ни на какие объявления или рассылки. Он служит обратной цели: когда вы пишете о своей реализации, хеш вашего email подтверждает, что вы — оператор, отправлявший эти пинги.
Как прекратить его отправку
Удалите переменные из вашей конфигурации MCP (или выполните unset SERVICIALO_IMPL_NAME SERVICIALO_IMPL_URL SERVICIALO_IMPL_CONTACT) и перезапустите сервер. Следующий пинг снова станет анонимным, без каких-либо полей идентичности. Уже отправленные пинги сохраняют то, что отправили; для запроса удаления существующих записей откройте issue в репозитории.
Смежная возможность: еженедельные снимки
Реестр публикует benchmark.weekly_snapshot каждый понедельник в 00:00 UTC на подписанные конечные точки, с полезной нагрузкой, подписанной HMAC-SHA256. Эти три переменные не активируют её. Требуется запись в реестре и явная подписка через 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.-