Skip to main content
Glama

@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 и предварительного уведомления.

Предстоящие вехи на пути к 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)

Инструмент

Описание

resolve.lookup

Разрешить orgSlug в его endpoint MCP/REST и уровень доверия (эквивалент DNS lookup)

resolve.search

Искать зарегистрированные организации по стране и вертикали в глобальном resolver

trust.get_score

Получить оценку доверия организации (score 0-100, уровень, последняя активность)

Фаза 1 — Обнаружение (6 инструментов, без auth)

Инструмент

Описание

registry.search

Искать организации по вертикали, местоположению, стране

registry.get_organization

Получить публичные детали: услуги, поставщиков, конфигурацию бронирования

registry.manifest

Получить манифест сервера: возможности, версию протокола, метаданные организации

scheduling.check_availability

Проверить доступность (3 переменные: поставщик ∧ клиент ∧ ресурс)

services.list

Перечислить публичный каталог услуг организации

a2a.get_agent_card

Получить Agent Card A2A организации для меж-агентного обнаружения

Фаза 2 — Понимание (2 инструмента)

Инструмент

Описание

Scopes

service.get

Получить 8 измерений услуги

service:read

contract.get

Получить условия контракта: требуемые доказательства, политику отмены, окно спора

service:read order:read

Фаза 3 — Обязательство (3 инструмента)

Инструмент

Описание

Scopes

clients.get_or_create

Разрешить идентичность клиента по email/телефону — найти или создать одним вызовом

patient:write

scheduling.book

Забронировать сеанс → состояние solicitado. resource_id опционален для физических ресурсов

schedule:write

scheduling.confirm

Подтвердить забронированный сеанс → состояние confirmado

schedule:write

Фаза 4 — Жизненный цикл (4 инструмента)

Инструмент

Описание

Scopes

lifecycle.get_state

Получить текущее состояние, доступные переходы и историю

service:read

lifecycle.transition

Выполнить переход состояния с доказательством

service:write

scheduling.reschedule

Перенести на новую дату/время (может применяться договорная политика)

schedule:write

scheduling.cancel

Отменить сеанс (применяется политика отмены контракта)

schedule:write

Фаза 5 — Проверка оказания (3 инструмента)

Инструмент

Описание

Scopes

delivery.checkin

Check-in с GPS + timestamp → состояние en_curso

evidence:write

delivery.checkout

Check-out с GPS + timestamp → состояние entregado (длительность рассчитывается автоматически)

evidence:write

delivery.record_evidence

Записать доказательство: gps, firma, foto, documento, duración, notas

evidence:write

Фаза 6 — Закрытие (4 инструмента)

Инструмент

Описание

Scopes

documentation.create

Создать запись об услуге (клиническая заметка, отчёт об инспекции и т.д.) → состояние documentado

document:write

payments.create_sale

Создать платёж за документированную услугу → состояние cobrado

payment:write

payments.record_payment

Зарегистрировать полученный платёж по продаже

payment:write

payments.get_status

Получить статус оплаты продажи или баланс счёта клиента

payment:read

Управление ресурсами (6 инструментов)

Инструмент

Описание

Scopes

resource.list

Перечислить физические ресурсы организации

resource:read

resource.get

Получить детали ресурса с его слотами доступности

resource:read

resource.create

Создать новый физический ресурс (комната, бокс, оборудование)

resource:write

resource.update

Обновить ресурс (семантический patch)

resource:write

resource.delete

Деактивировать ресурс (soft delete: is_active = false)

resource:write

resource.get_availability

Проверить доступность ресурса по диапазону дат

resource:read

Администрирование Resolver (3 инструмента)

Инструмент

Описание

Scopes

resolve.register

Зарегистрировать организацию в глобальном resolver с endpoints MCP/REST

resolve:write

resolve.update_endpoint

Обновить зарегистрированные endpoints (переносимость между бэкендами)

resolve:write

telemetry.heartbeat

Отправить heartbeat в resolver, указывая, что узел активен

telemetry:write

Сетевая аналитика (2 инструмента, без auth)

Анонимизированные рыночные бенчмарки по операционной телеметрии, предоставляемой узлами. Политика вклад-для-доступа (k-анонимность ≥ 5):

Инструмент

Описание

market.list_segments

Перечислить сегменты (event_type × vertical × region) с доступными данными (фильтр по k-анонимности ≥ 5 различных контрибьюторов)

market.get_benchmark

Получить распределение бакетов сегмента (напр. долю каждого price_band для payment_settled в health/CL). Tier 0/1 видят данные с задержкой 90 дней; tier 2 (≥ 50 событий за 30 дней) видит real-time

Обнаружение таксономии (3 инструмента, без аутентификации)

Cold-start: агенту не нужно заранее знать таксономию протокола. Начните здесь, если агент приходит без контекста:

Инструмент

Описание

registry.list_verticals

Вертикали, присутствующие в сети (заявленные + наблюдаемые в телеметрии за 30 дней)

registry.list_regions

Страны/регионы ISO 3166-1 alpha-2 с активностью в сети

registry.list_event_types

Каталог 4 типов событий операционной телеметрии + их payload_fields

Документация (1 инструмент, без аутентификации)

Инструмент

Описание

docs.quickstart

Получить 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" })

Учетные данные

Основные

Переменная

Обязательная

По умолчанию

Описание

SERVICIALO_API_KEY

Нет

Bearer token. Включает аутентифицированный режим (25 доп. инструментов = 40 всего)

SERVICIALO_ORG_ID

Нет

Slug организации. Включает аутентифицированный режим

SERVICIALO_BASE_URL

Нет

http://localhost:3000

Endpoint API платформы, совместимой с Servicialo

SERVICIALO_ADAPTER

Нет

coordinalo

Backend-адаптер: coordinalo или http

SERVICIALO_TELEMETRY

Нет

true

Установите false, чтобы отключить анонимную телеметрию узла (heartbeat)

SERVICIALO_API_KEY и SERVICIALO_ORG_ID должны настраиваться вместе. Если присутствует только одна, сервер переходит в режим обнаружения с предупреждением.

Операционная телеметрия + бенчмарки (опционально)

Эти переменные позволяют вашему узлу вносить анонимизированные события в сетевые бенчмарки и получать доступ к данным в реальном времени (tier 2). См. docs/telemetry-operational.md:

Переменная

Обязательная

По умолчанию

Описание

SERVICIALO_VERTICAL

Нет

unspecified

Ваша вертикаль (напр. health, legal, home). Необходима для агрегации событий в правильный сегмент

SERVICIALO_REGION

Нет

CL

ISO 3166-1 alpha-2 страны операционной деятельности. События помечаются этим значением

SERVICIALO_NODE_TOKEN

Нет

ownership_token вашего узла в реестре. Отправляется как заголовок X-Servicialo-Node-Token в вызовах market.* для определения вашего tier (включая tier 2 = real-time доступ)

SERVICIALO_OPERATIONAL_TELEMETRY

Нет

true

Установите false, чтобы отключить автоматическую эмиссию операционных событий (booking_created, service_completed, dispute_opened, payment_settled)

SERVICIALO_PROTOCOL_VERSION

Нет

0.9

Версия протокола, объявляемая в отправляемых событиях

SERVICIALO_TELEMETRY_BASE_URL

Нет

https://servicialo.com

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: явного делегирования полномочий от человека-принципала агенту.

Как это работает

  1. Человек (профессионал, пациент или организация) выдаёт мандат агенту

  2. Мандат определяет от чьего имени действует агент, что он может делать (scopes) и на какой срок

  3. При каждом вызове инструмента MCP-сервер проверяет мандат по 8 проверкам перед выполнением

  4. Каждое действие создаёт запись аудита — успех или неудача

Пример мандата

{
  "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

Статус — мандат должен быть active

Использование отозванных или истёкших мандатов

2

Временная валидностьissued_at ≤ now < expires_at

Атаки, основанные на времени

3

Идентичность агентаmandate.agent_id === агент-запросчик

Подмена агента

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 доступна по адресу:

Спецификация охватывает 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) — разрушающие изменения схем, конечного автомата или базовой семантики

Как предлагать изменения

  1. Открыть issue с описанием проблемы и предлагаемого решения

  2. Для значительных изменений написать RFC в spec/ с указанием номера затрагиваемого раздела

  3. Изменения протокола требуют как минимум одной эталонной реализации перед merge

  4. Изменения схем должны включать обновлённый 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
}

Поле

Описание

event

Всегда "node_initialized"

version

Версия пакета

node_id

Постоянный UUID, хранящийся в ~/.servicialo/node_id

ts

Временная метка в миллисекундах

Это всё, что отправляется. Никакая информация об организации, 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

Что покидает вашу машину при каждой переменной

Переменная

Что передаётся

Что не передаётся

SERVICIALO_IMPL_NAME

Имя в открытом виде, как impl_name. Оно публично: отображается в /implementors после проверки.

SERVICIALO_IMPL_URL

URL в открытом виде, как impl_url. Также публичен после проверки.

SERVICIALO_IMPL_CONTACT

Только impl_contact_hash: SHA-256 от email в нижнем регистре и без пробелов, вычисленный на вашей машине до любого сетевого запроса.

Сам email. Он не покидает хост, не логируется, не хранится и нигде не отображается.

Без настроенных переменных ни одно из этих полей не появляется в пинге. Узел без конфигурации ведёт себя точно так же, как до этой версии.

Цикл проверки

anonymouspendingverified

  1. anonymous — без настроенных переменных. Это состояние по умолчанию, и анонимный узел полностью соответствует требованиям.

  2. pending — при первом появлении нового impl_name запись переходит в состояние ожидания, и команда получает уведомление с именем, URL и страной. Хеш контакта не включается в это уведомление — и не мог бы: он бесполезен.

  3. 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 tools
a2a_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesOrganization slug (e.g. "clinica-dental-sur")

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesSlug de la organización (ej: clinica-dental-sur)
countryNoPaís ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: clcl

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesSlug de la organización (ej: clinica-dental-sur)
countryNoPaís ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: clcl

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesOrganization slug (e.g. "clinica-dental-sur"). Get this from registry.search results.
service_idNoFilter by service ID. Get valid IDs from services.list. Omit to check all services.
provider_idNoFilter by provider ID. Omit to check all available providers.
resource_idNoFilter by physical resource (room, equipment). Only needed if the service requires a specific resource.
date_fromYesStart date in ISO format (e.g. "2026-03-01"). Must be today or later.
date_toYesEnd date in ISO format (e.g. "2026-03-07"). Max range: 30 days from date_from.

TDQS

A4.6/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesSlug de la organización

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
org_slugYesSlug de la organización (ej: clinica-dental-sur)
countryNoPaís ISO 3166-1 alpha-2. Default: clcl

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines5/5

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.

  1. 10 tool updatesv0.1.1
    • Addeda2a_get_agent_card
    • Addeddocs_quickstart
    • Addedregistry_get_organization
    • Addedregistry_manifest
    • Addedregistry_search
    • Addedresolve_lookup
    • Addedresolve_search
    • Addedscheduling_check_availability
    • Addedservices_list
    • Addedtrust_get_score

TDQS

A4.1/5.0

Scored across 10 tools

Disambiguation4/5

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.

Naming Consistency3/5

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.

Tool Count5/5

10 tools is a well-scoped set for a service discovery and scheduling platform, covering discovery, profiles, services, availability, and trust without being overwhelming.

Completeness2/5

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

ActivityMaintained
ResponsivenessResponsive

Related MCP Connectors

Related MCP Servers