Skip to main content
Glama

@servicialo/mcp-server

Servicialo 표준을 위한 프로토콜 수준의 MCP 인터페이스 — AI 에이전트 시대의 인간 서비스를 위한 목적지 계층. HTTP는 문서를 주소 지정 가능하게 만들었습니다. Servicialo는 서비스를 주소 지정 가능하게 만듭니다. MCP와 A2A는 전송 계층입니다. Servicialo는 에이전트가 도달하는 목적지입니다.

이 패키지는 Servicialo 호환 백엔드를 위한 프로토콜 수준의 MCP 인터페이스입니다 — 특정 플랫폼에 대한 커넥터가 아닙니다. Coordinalo가 참조 구현(및 기본값)이지만, 자체 백엔드를 연결할 수 있습니다.

프로토콜: v0.10 (draft) · 스펙: servicialo.com/spec · 이 패키지는 프로토콜과 독립적으로 버전을 관리합니다 (0.9.x부터 1.0까지).

1.0으로 가는 길

Servicialo 프로토콜은 안정화 단계에 들어갑니다. 공식 RFC 코호트는 최종 의견 수렴 기간(Final Comment Period) 전에 최소 4주간 의견을 받습니다. 1.0까지 릴리스는 계속 0.9.x 패치이며, 프로토콜에 대한 모든 브레이킹 변경은 RFC 병합과 사전 공지가 필요합니다.

1.0을 위한 남은 마일스톤

마일스톤

상태

RFC-001 — RFC 프로세스 및 폐기 정책

초안 / 의견 수렴 중

RFC-002 — 선불 및 고객 크레딧 잔액

초안 / 의견 수렴 중

RFC-003 — 환불 및 크레딧 노트 (전방 전용 원장)

초안 / 의견 수렴 중

RFC-004 — PII / PHI 분류 프레임워크

초안 / 의견 수렴 중

핵심 안정 선언 (8차원 · 6+3 주기 · 6 흐름 · 7 원칙) 및 하위 호환 보장

대기 중

프로덕션에서 독립 구현 3개 이상

진행 중

Related MCP server: DiviDen MCP Server

아키텍처

@servicialo/mcp-server  →  interfaz MCP a nivel de protocolo
        ↓ se conecta a cualquier backend compatible con Servicialo
Coordinalo              →  implementación de referencia (default)
Tu implementación       →  trae tu propio backend

문제

AI 에이전트는 웹을 탐색하고, 코드를 작성하고, 대화를 유지할 수 있습니다. 하지만 운동학(kinesiology) 세션을 예약하고, 실제로 발생했는지 확인하고, 결제를 처리하라고 요청하면 — 무너집니다.

오늘날 각 플랫폼은 사일로입니다. 다음과 같은 표준이 없습니다:

  • 발견 — 어떤 조직의 어떤 제공자가 내가 필요한 것을 제공하는가?

  • 신원 — 이 에이전트는 누구를 대신하여 행동하며, 무엇을 할 권한이 있는가?

  • 수명 주기 — 이 서비스는 어떤 상태인가? 누가 확인했는가? 누가 참석했는가?

  • 전달 증명 — 세션이 실제로 발생했는가? 얼마나 오래? 어디서?

  • 정산 — 얼마를, 누구에게, 어떤 계약 조건으로?

공유 프로토콜이 없으면 모든 통합은 수작업입니다. 모든 에이전트-플랫폼 연결은 맞춤형 API입니다. 이것은 확장되지 않습니다.

Servicialo란 무엇인가

Servicialo는 개방형 프로토콜이지 플랫폼이 아닙니다. 전문 서비스가 발견부터 결제까지 수명 주기를 통해 이동하는 방식을 정의하며, 모든 AI 에이전트나 플랫폼이 구현할 수 있습니다.

관계는 HTTP와 Apache, 또는 SMTP와 Gmail의 관계와 같습니다: Servicialo가 규칙을 정의하고, 구현이 그 규칙에 생명을 불어넣습니다.

프로토콜은 각 서비스를 8차원, 6+3 수명 주기(6개 핵심 상태 + 3개 선택적 재무 상태), 6가지 예외 흐름, 7가지 기본 원칙으로 모델링합니다 — 수직 분야(의료, 법률, 교육, 가사 서비스)에 걸쳐 보편적입니다:

Solicitado → Agendado → Confirmado → En Curso → Completado → Documentado → Facturado → Cobrado → Verificado

모든 서비스는 어떤 수직 분야에서든 이 순서를 따릅니다. 수직 분야별 특정 로직은 각 상태 내부에 있지만, 상태 머신은 불변입니다.

이 MCP 서버가 하는 일

이 패키지는 Servicialo 프로토콜을 서비스 수명 주기의 7단계(0–6, DNS와 유사한 발견 리졸버 포함 — HTTP 위에서 동작)로 구성된 40개의 MCP 도구로 노출하며, 리소스 관리, 리졸버 관리, 네트워크 인텔리전스(market.*), 콜드 스타트 발견(registry.list_* — 사전 지식 없이 분류 체계를 알 수 있음)을 포함합니다. 에이전트는 데이터베이스 엔터티별로 엔드포인트를 호출하지 않습니다 — 서비스 조정의 자연스러운 흐름을 따릅니다.

0단계 — DNS 해석 (3개 도구, 인증 없음)

도구

설명

resolve.lookup

orgSlug를 MCP/REST 엔드포인트 및 신뢰 수준으로 해석 (DNS 조회와 동일)

resolve.search

전역 리졸버에서 국가 및 수직 분야별로 등록된 조직 검색

trust.get_score

조직의 신뢰 점수 조회 (0-100 점수, 수준, 마지막 활동)

1단계 — 발견 (6개 도구, 인증 없음)

도구

설명

registry.search

수직 분야, 위치, 국가별 조직 검색

registry.get_organization

공개 세부 정보 조회: 서비스, 제공자, 예약 설정

registry.manifest

서버 매니페스트 조회: 기능, 프로토콜 버전, 조직 메타데이터

scheduling.check_availability

가용성 조회 (3개 변수: 제공자 ∧ 고객 ∧ 리소스)

services.list

조직의 공개 서비스 카탈로그 나열

a2a.get_agent_card

에이전트 간 발견을 위한 조직의 A2A 에이전트 카드 조회

2단계 — 이해 (2개 도구)

도구

설명

범위

service.get

서비스의 8차원 조회

service:read

contract.get

계약 조건 조회: 요구되는 증거, 취소 정책, 분쟁 기간

service:read order:read

3단계 — 약속 (3개 도구)

도구

설명

범위

clients.get_or_create

이메일/전화로 고객 신원 해석 — 한 번의 호출로 검색 또는 생성

patient:write

scheduling.book

세션 예약 → 요청됨 상태. resource_id는 물리적 리소스에 선택 사항

schedule:write

scheduling.confirm

예약된 세션 확인 → 확인됨 상태

schedule:write

4단계 — 수명 주기 (4개 도구)

도구

설명

범위

lifecycle.get_state

현재 상태, 사용 가능한 전환 및 기록 조회

service:read

lifecycle.transition

증거와 함께 상태 전환 실행

service:write

scheduling.reschedule

새 날짜/시간으로 재예약 (계약 정책이 적용될 수 있음)

schedule:write

scheduling.cancel

세션 취소 (계약의 취소 정책 적용)

schedule:write

5단계 — 전달 확인 (3개 도구)

도구

설명

범위

delivery.checkin

GPS + 타임스탬프로 체크인 → 진행 중 상태

evidence:write

delivery.checkout

GPS + 타임스탬프로 체크아웃 → 전달됨 상태 (기간 자동 계산)

evidence:write

delivery.record_evidence

증거 기록: gps, 서명, 사진, 문서, 기간, 메모

evidence:write

6단계 — 종료 (4개 도구)

도구

설명

범위

documentation.create

서비스 기록 생성 (임상 노트, 검사 보고서 등) → 문서화됨 상태

document:write

payments.create_sale

문서화된 서비스에 대한 청구 생성 → 청구됨 상태

payment:write

payments.record_payment

판매에 대한 수령 결제 기록

payment:write

payments.get_status

판매의 결제 상태 또는 고객 계정 잔액 조회

payment:read

리소스 관리 (6개 도구)

도구

설명

범위

resource.list

조직의 물리적 리소스 나열

resource:read

resource.get

가용성 슬롯이 포함된 리소스 세부 정보 조회

resource:read

resource.create

새 물리적 리소스 생성 (방, 박스, 장비)

resource:write

resource.update

리소스 업데이트 (의미론적 패치)

resource:write

resource.delete

리소스 비활성화 (소프트 삭제: is_active = false)

resource:write

resource.get_availability

날짜 범위별 리소스 가용성 조회

resource:read

리졸버 관리 (3개 도구)

도구

설명

범위

resolve.register

MCP/REST 엔드포인트로 전역 리졸버에 조직 등록

resolve:write

resolve.update_endpoint

등록된 엔드포인트 업데이트 (백엔드 간 이식성)

resolve:write

telemetry.heartbeat

노드가 활성 상태임을 나타내는 하트비트를 리졸버로 전송

telemetry:write

네트워크 인텔리전스 (2개 도구, 인증 없음)

운영 텔레메트리를 기여한 노드들에 대한 익명화된 시장 벤치마크. 기여-시-접근 정책 (k-익명성 ≥ 5):

도구

설명

market.list_segments

데이터가 있는 세그먼트 (event_type × vertical × region) 나열 (k-익명성 ≥ 5의 서로 다른 기여자로 필터링)

market.get_benchmark

세그먼트의 버킷 분포 조회 (예: health/CLpayment_settled에 대한 각 price_band의 점유율). Tier 0/1은 90일 지연된 데이터를 보며, tier 2 (30일 내 ≥ 50개 이벤트)는 실시간 데이터를 봄

분류 체계 탐색 (3개 도구, 인증 없음)

콜드 스타트: 에이전트는 사전에 프로토콜의 분류 체계를 알 필요가 없음. 컨텍스트 없이 도착하면 여기서 시작:

도구

설명

registry.list_verticals

네트워크에 존재하는 버티컬 (선언된 것 + 30일 텔레메트리에서 관찰된 것)

registry.list_regions

네트워크에서 활동이 있는 국가/지역 ISO 3166-1 alpha-2

registry.list_event_types

운영 텔레메트리 이벤트 4가지 유형 + 해당 payload_fields 카탈로그

문서 (1개 도구, 인증 없음)

도구

설명

docs.quickstart

퀵스타트 5단계를 구조화된 JSON으로 조회 — 사전 컨텍스트 없는 에이전트의 온보딩

퀵스타트 — 네트워크에 참여하는 5단계

1단계. MCP 서버 설치

npx -y @servicialo/mcp-server

탐색 모드 — 자격 증명 없이 15개의 공개 도구. 즉시 사용해 보세요:

{
  "tool": "registry.search",
  "arguments": { "vertical": "kinesiologia", "location": "santiago" }
}

2단계. 조직 생성

coordinalo.com/signup에서 조직을 등록하세요. Coordinalo는 Servicialo 프로토콜의 참조 구현입니다.

3단계. MCP 자격 증명 획득

Coordinalo에서: Settings → Servicialo → MCP 자격 증명 생성. 두 가지 값을 받게 됩니다:

  • SERVICIALO_ORG_ID — 조직의 슬러그 (예: clinica-dental-sur)

  • SERVICIALO_API_KEY — 인증용 bearer 토큰

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

탐색 전용 모드(공개 도구 15개)의 경우 env 블록을 생략하세요.

5단계. Servicialo 네트워크에 게시

Coordinalo에서: Settings → Servicialo → 게시. 조직이 servicialo.com/network에 표시되며 다른 에이전트가 검색할 수 있습니다.

팁: 에이전트는 docs.quickstart 도구를 호출하여 이 5단계를 구조화된 JSON으로 얻을 수 있습니다.

네트워크 / Network

Servicialo 네트워크는 프로토콜을 구현하는 조직의 글로벌 레지스트리입니다. 각 인증된 노드는 주기적으로 하트비트를 보내며, 모든 에이전트는 국가, 버티컬, 신뢰 점수로 조직을 검색할 수 있습니다.

  • 네트워크 탐색: servicialo.com/network

  • 버티컬로 검색: registry.search({ vertical: "kinesiologia", country: "cl" })

  • 조직 해석: resolve.lookup({ org_slug: "clinica-dental-sur" })

자격 증명

필수

변수

필수

기본값

설명

SERVICIALO_API_KEY

아니요

Bearer 토큰. 인증 모드 활성화 (추가 도구 25개 = 총 40개)

SERVICIALO_ORG_ID

아니요

조직 슬러그. 인증 모드 활성화

SERVICIALO_BASE_URL

아니요

http://localhost:3000

Servicialo 호환 플랫폼 API 엔드포인트

SERVICIALO_ADAPTER

아니요

coordinalo

백엔드 어댑터: coordinalo 또는 http

SERVICIALO_TELEMETRY

아니요

true

노드의 익명 텔레메트리(하트비트)를 비활성화하려면 false로 설정

SERVICIALO_API_KEYSERVICIALO_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. market.* 호출에서 X-Servicialo-Node-Token 헤더로 전송되어 tier 식별 (tier 2 = 실시간 접근 포함)

SERVICIALO_OPERATIONAL_TELEMETRY

아니요

true

운영 이벤트 자동 발행(booking_created, service_completed, dispute_opened, payment_settled)을 비활성화하려면 false로 설정

SERVICIALO_PROTOCOL_VERSION

아니요

0.9

발행된 이벤트에 선언된 프로토콜 버전

SERVICIALO_TELEMETRY_BASE_URL

아니요

https://servicialo.com

운영 텔레메트리 수신 엔드포인트 (테스트 목적으로만 변경)

벤치마크 tier와의 관계: 30일 내에 ≥ 50개의 운영 이벤트를 발행하는 노드는 자동으로 tier 2에 도달하며 market.get_benchmark는 실시간 데이터를 반환합니다 (기본 tier 0/1의 90일 지연 대신). 전체 정책: GOVERNANCE.md#contribute-to-access-policy-v01.

자격 증명은 coordinalo.com → Settings → Servicialo → MCP 자격 증명 생성에서 얻을 수 있습니다.

자체 구현 연결

이 MCP 서버는 플러그형 어댑터 계층을 통해 Servicialo 호환 백엔드를 지원합니다. 두 개의 어댑터가 포함되어 있습니다:

  • coordinalo (기본값) — /api/organizations/{orgId} 아래의 org-scoped 경로를 가진 Coordinalo/Digitalo 백엔드에 연결.

  • http/v1/* 아래에 HTTP_PROFILE.md의 표준 엔드포인트를 노출하는 모든 구현에 연결.

구현 연결 3단계

1단계. 플랫폼에 HTTP_PROFILE.md에 정의된 REST 엔드포인트를 구현.

2단계. HTTP 어댑터를 사용하도록 MCP 서버 구성:

SERVICIALO_ADAPTER=http \
SERVICIALO_BASE_URL=https://tu-plataforma.com \
SERVICIALO_API_KEY=tu_key \
npx -y @servicialo/mcp-server

3단계. MCP 클라이언트 구성에 추가:

{
  "mcpServers": {
    "servicialo": {
      "command": "npx",
      "args": ["-y", "@servicialo/mcp-server"],
      "env": {
        "SERVICIALO_ADAPTER": "http",
        "SERVICIALO_BASE_URL": "https://tu-plataforma.com",
        "SERVICIALO_API_KEY": "tu_api_key",
        "SERVICIALO_ORG_ID": "tu_org_id"
      }
    }
  }
}

HTTP 어댑터는 내부 경로를 표준 /v1/* 엔드포인트로 변환하고 X-Servicialo-Org 헤더를 통해 조직 컨텍스트를 전송합니다. 전체 REST 계약은 HTTP_PROFILE.md를 참조하세요.

위임 에이전시 모델

프로토콜은 AI 에이전트를 일급 행위자로 취급하지만 — 절대 암묵적으로 신뢰하지 않습니다. 각 에이전트 작업에는 ServiceMandate가 필요합니다: 인간 본인에서 에이전트로의 명시적 능력 위임.

작동 방식

  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

스코프 범위 — 위임의 스코프가 도구 요구사항을 충족

권한 상승

5

컨텍스트 — 위임의 컨텍스트가 요청과 일치

데이터의 교차 조직 접근

6

이해상충 — 에이전트는 양측을 위해 행동할 수 없음

이중 대리 위반

7

제약 — 허용 시간, 일일 한도, 금융 임계값

과도한 자율성의 에이전트

8

감사 — 각 작업이 위생 처리된 입력과 함께 기록

부인 방지

비에이전트 행위자(client, provider, organization)는 위임 검증을 거치지 않습니다.

제공자 검색

에이전트는 레지스트리에서 검색하고 구조화된 쿼리를 사용하여 환자의 필요에 맞는 제공자를 매칭할 수 있습니다.

레지스트리 검색

{
  "tool": "registry.search",
  "arguments": {
    "vertical": "kinesiologia",
    "location": "santiago",
    "country": "cl"
  }
}

서비스와 제공자가 일치하는 조직을 반환합니다.

가용성 조회

{
  "tool": "scheduling.check_availability",
  "arguments": {
    "org_slug": "clinica-kinesia",
    "service_id": "srv_rehab_pelvica",
    "provider_id": "prov_111",
    "date_from": "2026-03-10",
    "date_to": "2026-03-14"
  }
}

3변수 스케줄러가 제공자, 클라이언트, 물리적 리소스 가용성을 동시에 확인합니다.

종단 간 예시

1. registry.search({ vertical: "kinesiologia", location: "santiago" })
   → encuentra org "clinica-kinesia"

2. services.list({ org_slug: "clinica-kinesia" })
   → lista servicios disponibles

3. scheduling.check_availability({ org_slug: "clinica-kinesia", date_from: "2026-03-10", date_to: "2026-03-14" })
   → retorna slots disponibles

4. contract.get({ service_id: "srv_123", org_id: "org_456" })
   → cancelación: 0% si >24h, 50% si 2-24h, 100% si <2h
   → evidencia requerida: check_in + check_out + registro_clinico

5. clients.get_or_create({ email: "maria@mail.com", name: "Maria", last_name: "Lopez" })
   → client_id: "cli_789"

6. scheduling.book({ service_id: "srv_123", provider_id: "prov_111", client_id: "cli_789", starts_at: "2026-03-12T10:00:00" })
   → session_id: "ses_001", estado: "solicitado"

7. scheduling.confirm({ session_id: "ses_001" })
   → estado: "confirmado"

8. delivery.checkin({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
   → estado: "en_curso"

9. delivery.checkout({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
   → estado: "entregado", duración: 42min

10. documentation.create({ session_id: "ses_001", content: "Sesión de rehabilitación de piso pélvico..." })
    → estado: "documentado"

11. payments.create_sale({ client_id: "cli_789", service_id: "srv_123", unit_price: 35000 })
    → sale_id: "sale_001", estado: "cobrado"

12. lifecycle.transition({ session_id: "ses_001", to_state: "verified" })
    → estado: "verificado" ✓

프로토콜 사양

Servicialo 프로토콜의 전체 사양은 다음에서 확인할 수 있습니다:

이 스펙은 서비스의 8가지 차원, 6+3 수명주기, 6가지 예외 흐름, 7가지 기본 원칙, 두 엔티티 아키텍처(원자적 서비스 + 서비스 주문), 위임 대리 모델, DNS 해석, A2A 상호운용성을 다룹니다.

참조 구현

Digitalo는 Servicialo 프로토콜의 첫 번째 프로덕션 구현으로, 칠레에서 의료 분야에서 운영됩니다. 제공자 발견부터 지불 정산까지 전체 수명주기를 구현하며, 프로토콜 발전을 위한 검증 기반으로 사용됩니다.

이 MCP 서버는 SERVICIALO_BASE_URL을 통해 Servicialo와 호환되는 모든 백엔드에 연결됩니다. Digitalo는 그러한 백엔드 중 하나입니다. 프로토콜은 모든 CRM, HIS 또는 플랫폼이 주권 노드로 구현할 수 있도록 설계되었습니다.

프로토콜에 기여하기

Servicialo는 프로토콜 사양에 대해 시맨틱 버저닝을 따릅니다:

  • Patch (0.7.x) — 명확화, 오타 수정, 비호환적 추가

  • Minor (0.x.0) — 새로운 선택적 필드, 새로운 도구 정의, 새로운 예외 흐름

  • Major (x.0.0) — 스키마, 상태 머신 또는 핵심 의미론에 대한 호환성 깨는 변경

변경 제안 방법

  1. 문제와 제안된 해결책을 설명하는 이슈를 엽니다.

  2. 중요한 변경의 경우, 영향을 받는 섹션 번호와 함께 spec/에 RFC를 작성합니다.

  3. 프로토콜 변경은 병합 전에 최소한 하나의 참조 구현이 필요합니다.

  4. 스키마 변경에는 업데이트된 JSON Schema와 MCP 서버의 Zod 타입이 포함되어야 합니다.

적극적으로 입력을 찾는 영역

  • 수직별 특정 증거 요구사항(의료 외)

  • 수명주기 상태 이름의 다국어 지원

  • 노드 간 연합(두 Servicialo 구현이 상호운용되는 방법)

  • Python 및 TypeScript용 Agent SDK 패턴

텔레메트리

시작 시 MCP 서버는 https://servicialo.com/api/telemetry/instance로 익명 POST 하나를 보냅니다:

{
  "event": "node_initialized",
  "version": "0.9.8",
  "node_id": "a1b2c3d4-...",
  "ts": 1711300000000
}

필드

설명

event

항상 "node_initialized"

version

패키지 버전

node_id

~/.servicialo/node_id에 저장된 영구 UUID

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에 두 가지 정보 알림을 기록합니다 — JSON-RPC를 전달하고 다른 것으로 손상되는 stdout에는 절대 기록하지 않습니다:

  • RFC-005 주석 창이 열려 있는 동안. 내장된 만료가 있습니다: 최종 주석 기간 종료인 2026-09-13 이후에는 인쇄되지 않습니다. 10월에 설치된 노드는 죽은 공지를 보지 않습니다.

  • 노드가 익명인 경우, 식별 방법(아래).

둘 다 프로세스당 한 번 인쇄되며 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

impl_url과 같은 일반 텍스트 URL. 검증되면 역시 공개됩니다.

SERVICIALO_IMPL_CONTACT

impl_contact_hash만: 소문자 및 공백 없는 이메일의 SHA-256, 네트워크 요청 전에 머신에서 계산됩니다.

이메일. 호스트를 떠나지 않고, 기록되지 않으며, 저장되지 않고, 어디에도 표시되지 않습니다.

변수가 구성되지 않으면 이러한 필드 중 어느 것도 핑에 나타나지 않습니다. 구성되지 않은 노드는 이전 버전과 정확히 동일하게 동작합니다.

검증 주기

anonymouspendingverified

  1. anonymous — 변수 구성 없음. 기본 상태이며, 익명 노드는 완전히 준수합니다.

  2. pending — 새 impl_name이 처음 나타나면 레코드가 보류 상태가 되고 팀은 이름, URL, 국가가 포함된 알림을 받습니다. 연락처 해시는 해당 알림에 포함되지 않으며, 포함될 수도 없습니다: 아무 소용이 없기 때문입니다.

  3. verified — 적합성 체크리스트에 대한 수동 검토 후, 구현이 servicialo.com/implementors에 수준과 보고된 호스트 수와 함께 표시됩니다.

검증은 현재 수동입니다. 자동화된 적합성 스위트는 로드맵에 있습니다; 현재 기능이 아닙니다.

연락처 해시의 용도 — 그리고 용도가 아닌 것. 단방향 다이제스트입니다: 아무도 그것으로부터 당신에게 연락할 수 없으며, 구성해도 어떤 공지나 목록에 구독되지 않습니다. 반대 용도입니다: 당신이 구현에 대해 글을 쓸 때, 이메일 해시는 해당 핑을 보낸 운영자임을 확인합니다.

전송 중지 방법

MCP 구성에서 변수를 제거하고(또는 unset SERVICIALO_IMPL_NAME SERVICIALO_IMPL_URL SERVICIALO_IMPL_CONTACT) 서버를 다시 시작합니다. 다음 핑은 식별 필드 없이 다시 익명이 됩니다. 이미 전송된 핑은 전송된 내용을 유지합니다; 기존 레코드 삭제를 요청하려면 저장소에 이슈를 엽니다.

인접 기능: 주간 스냅샷

레지스트리는 매주 월요일 00:00 UTC에 구독된 엔드포인트로 benchmark.weekly_snapshot을 발행하며, 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