Servicialo
@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 병합과 사전 공지가 필요합니다.
RFC 코호트 (PR #13): servicialo/mcp-server#13
1.0 프로세스 / 토론: servicialo/mcp-server#14
1.0을 위한 남은 마일스톤
마일스톤 | 상태 |
RFC-001 — RFC 프로세스 및 폐기 정책 | 초안 / 의견 수렴 중 |
RFC-002 — 선불 및 고객 크레딧 잔액 | 초안 / 의견 수렴 중 |
RFC-003 — 환불 및 크레딧 노트 (전방 전용 원장) | 초안 / 의견 수렴 중 |
RFC-004 — PII / PHI 분류 프레임워크 | 초안 / 의견 수렴 중 |
핵심 안정 선언 (8차원 · 6+3 주기 · 6 흐름 · 7 원칙) 및 하위 호환 보장 | 대기 중 |
프로덕션에서 독립 구현 3개 이상 | 진행 중 |
Related MCP server: DiviDen MCP Server
아키텍처
@servicialo/mcp-server → interfaz MCP a nivel de protocolo
↓ se conecta a cualquier backend compatible con Servicialo
Coordinalo → implementación de referencia (default)
Tu implementación → trae tu propio backend문제
AI 에이전트는 웹을 탐색하고, 코드를 작성하고, 대화를 유지할 수 있습니다. 하지만 운동학(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개 도구, 인증 없음)
도구 | 설명 |
| orgSlug를 MCP/REST 엔드포인트 및 신뢰 수준으로 해석 (DNS 조회와 동일) |
| 전역 리졸버에서 국가 및 수직 분야별로 등록된 조직 검색 |
| 조직의 신뢰 점수 조회 (0-100 점수, 수준, 마지막 활동) |
1단계 — 발견 (6개 도구, 인증 없음)
도구 | 설명 |
| 수직 분야, 위치, 국가별 조직 검색 |
| 공개 세부 정보 조회: 서비스, 제공자, 예약 설정 |
| 서버 매니페스트 조회: 기능, 프로토콜 버전, 조직 메타데이터 |
| 가용성 조회 (3개 변수: 제공자 ∧ 고객 ∧ 리소스) |
| 조직의 공개 서비스 카탈로그 나열 |
| 에이전트 간 발견을 위한 조직의 A2A 에이전트 카드 조회 |
2단계 — 이해 (2개 도구)
도구 | 설명 | 범위 |
| 서비스의 8차원 조회 |
|
| 계약 조건 조회: 요구되는 증거, 취소 정책, 분쟁 기간 |
|
3단계 — 약속 (3개 도구)
도구 | 설명 | 범위 |
| 이메일/전화로 고객 신원 해석 — 한 번의 호출로 검색 또는 생성 |
|
| 세션 예약 → |
|
| 예약된 세션 확인 → |
|
4단계 — 수명 주기 (4개 도구)
도구 | 설명 | 범위 |
| 현재 상태, 사용 가능한 전환 및 기록 조회 |
|
| 증거와 함께 상태 전환 실행 |
|
| 새 날짜/시간으로 재예약 (계약 정책이 적용될 수 있음) |
|
| 세션 취소 (계약의 취소 정책 적용) |
|
5단계 — 전달 확인 (3개 도구)
도구 | 설명 | 범위 |
| GPS + 타임스탬프로 체크인 → |
|
| GPS + 타임스탬프로 체크아웃 → |
|
| 증거 기록: |
|
6단계 — 종료 (4개 도구)
도구 | 설명 | 범위 |
| 서비스 기록 생성 (임상 노트, 검사 보고서 등) → |
|
| 문서화된 서비스에 대한 청구 생성 → |
|
| 판매에 대한 수령 결제 기록 |
|
| 판매의 결제 상태 또는 고객 계정 잔액 조회 |
|
리소스 관리 (6개 도구)
도구 | 설명 | 범위 |
| 조직의 물리적 리소스 나열 |
|
| 가용성 슬롯이 포함된 리소스 세부 정보 조회 |
|
| 새 물리적 리소스 생성 (방, 박스, 장비) |
|
| 리소스 업데이트 (의미론적 패치) |
|
| 리소스 비활성화 (소프트 삭제: |
|
| 날짜 범위별 리소스 가용성 조회 |
|
리졸버 관리 (3개 도구)
도구 | 설명 | 범위 |
| MCP/REST 엔드포인트로 전역 리졸버에 조직 등록 |
|
| 등록된 엔드포인트 업데이트 (백엔드 간 이식성) |
|
| 노드가 활성 상태임을 나타내는 하트비트를 리졸버로 전송 |
|
네트워크 인텔리전스 (2개 도구, 인증 없음)
운영 텔레메트리를 기여한 노드들에 대한 익명화된 시장 벤치마크. 기여-시-접근 정책 (k-익명성 ≥ 5):
도구 | 설명 |
| 데이터가 있는 세그먼트 |
| 세그먼트의 버킷 분포 조회 (예: |
분류 체계 탐색 (3개 도구, 인증 없음)
콜드 스타트: 에이전트는 사전에 프로토콜의 분류 체계를 알 필요가 없음. 컨텍스트 없이 도착하면 여기서 시작:
도구 | 설명 |
| 네트워크에 존재하는 버티컬 (선언된 것 + 30일 텔레메트리에서 관찰된 것) |
| 네트워크에서 활동이 있는 국가/지역 ISO 3166-1 alpha-2 |
| 운영 텔레메트리 이벤트 4가지 유형 + 해당 |
문서 (1개 도구, 인증 없음)
도구 | 설명 |
| 퀵스타트 5단계를 구조화된 JSON으로 조회 — 사전 컨텍스트 없는 에이전트의 온보딩 |
퀵스타트 — 네트워크에 참여하는 5단계
1단계. MCP 서버 설치
npx -y @servicialo/mcp-server탐색 모드 — 자격 증명 없이 15개의 공개 도구. 즉시 사용해 보세요:
{
"tool": "registry.search",
"arguments": { "vertical": "kinesiologia", "location": "santiago" }
}2단계. 조직 생성
coordinalo.com/signup에서 조직을 등록하세요. Coordinalo는 Servicialo 프로토콜의 참조 구현입니다.
3단계. MCP 자격 증명 획득
Coordinalo에서: 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" })
자격 증명
필수
변수 | 필수 | 기본값 | 설명 |
| 아니요 | — | Bearer 토큰. 인증 모드 활성화 (추가 도구 25개 = 총 40개) |
| 아니요 | — | 조직 슬러그. 인증 모드 활성화 |
| 아니요 |
| Servicialo 호환 플랫폼 API 엔드포인트 |
| 아니요 |
| 백엔드 어댑터: |
| 아니요 |
| 노드의 익명 텔레메트리(하트비트)를 비활성화하려면 |
SERVICIALO_API_KEY와 SERVICIALO_ORG_ID는 함께 설정해야 합니다. 하나만 있으면 서버는 경고와 함께 탐색 모드로 전환됩니다.
운영 텔레메트리 + 벤치마크 (선택 사항)
이 변수들은 노드가 네트워크 벤치마크에 익명화된 이벤트를 기여하고 실시간 데이터(tier 2)에 접근할 수 있게 합니다. docs/telemetry-operational.md 참조:
변수 | 필수 | 기본값 | 설명 |
| 아니요 |
| 버티컬 (예: |
| 아니요 |
| 운영 국가의 ISO 3166-1 alpha-2. 이벤트에 이 값이 태그됨 |
| 아니요 | — | 레지스트리의 노드 |
| 아니요 |
| 운영 이벤트 자동 발행(booking_created, service_completed, dispute_opened, payment_settled)을 비활성화하려면 |
| 아니요 |
| 발행된 이벤트에 선언된 프로토콜 버전 |
| 아니요 |
| 운영 텔레메트리 수신 엔드포인트 (테스트 목적으로만 변경) |
벤치마크 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-server3단계. 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가 필요합니다: 인간 본인에서 에이전트로의 명시적 능력 위임.
작동 방식
인간(전문가, 환자 또는 조직)이 에이전트에게 위임을 발행
위임은 에이전트가 누구를 위해 행동하는지, 무엇을 할 수 있는지(scopes), 얼마나 오래인지 지정
각 도구 호출에서 MCP 서버는 실행 전에 위임을 8가지 검사로 검증
각 작업은 성공 또는 실패의 감사 항목을 생성
위임 예시
{
"mandate_id": "550e8400-e29b-41d4-a716-446655440000",
"principal_id": "dra_barbara",
"principal_type": "professional",
"agent_id": "agent_booking_bot",
"agent_name": "Asistente de Agendamiento",
"acting_for": "professional",
"context": "org:clinica-kinesia",
"scopes": ["schedule:read", "schedule:write", "patient:write"],
"constraints": {
"max_actions_per_day": 50,
"allowed_hours": {
"start": "08:00",
"end": "20:00",
"timezone": "America/Santiago"
},
"require_confirmation_above": {
"amount": 100000,
"currency": "CLP"
}
},
"issued_at": "2026-03-01T00:00:00Z",
"expires_at": "2026-06-01T00:00:00Z",
"status": "active"
}도구 호출에서 위임 사용
actor.type이 "agent"인 경우 mandate_id를 포함:
{
"tool": "scheduling.book",
"arguments": {
"service_id": "srv_123",
"provider_id": "prov_111",
"client_id": "cli_789",
"starts_at": "2026-03-03T10:00:00",
"actor": {
"type": "agent",
"id": "agent_booking_bot",
"mandate_id": "550e8400-e29b-41d4-a716-446655440000"
}
}
}8가지 검증 검사
에이전트의 각 도구 호출은 다음에 대해 검증됩니다:
# | 검사 | 방지하는 것 |
1 | 상태 — 위임은 | 취소되거나 만료된 위임 사용 |
2 | 시간 유효성 — | 시간 기반 공격 |
3 | 에이전트 신원 — | 에이전트 사칭 |
4 | 스코프 범위 — 위임의 스코프가 도구 요구사항을 충족 | 권한 상승 |
5 | 컨텍스트 — 위임의 컨텍스트가 요청과 일치 | 데이터의 교차 조직 접근 |
6 | 이해상충 — 에이전트는 양측을 위해 행동할 수 없음 | 이중 대리 위반 |
7 | 제약 — 허용 시간, 일일 한도, 금융 임계값 | 과도한 자율성의 에이전트 |
8 | 감사 — 각 작업이 위생 처리된 입력과 함께 기록 | 부인 방지 |
비에이전트 행위자(client, provider, organization)는 위임 검증을 거치지 않습니다.
제공자 검색
에이전트는 레지스트리에서 검색하고 구조화된 쿼리를 사용하여 환자의 필요에 맞는 제공자를 매칭할 수 있습니다.
레지스트리 검색
{
"tool": "registry.search",
"arguments": {
"vertical": "kinesiologia",
"location": "santiago",
"country": "cl"
}
}서비스와 제공자가 일치하는 조직을 반환합니다.
가용성 조회
{
"tool": "scheduling.check_availability",
"arguments": {
"org_slug": "clinica-kinesia",
"service_id": "srv_rehab_pelvica",
"provider_id": "prov_111",
"date_from": "2026-03-10",
"date_to": "2026-03-14"
}
}3변수 스케줄러가 제공자, 클라이언트, 물리적 리소스 가용성을 동시에 확인합니다.
종단 간 예시
1. registry.search({ vertical: "kinesiologia", location: "santiago" })
→ encuentra org "clinica-kinesia"
2. services.list({ org_slug: "clinica-kinesia" })
→ lista servicios disponibles
3. scheduling.check_availability({ org_slug: "clinica-kinesia", date_from: "2026-03-10", date_to: "2026-03-14" })
→ retorna slots disponibles
4. contract.get({ service_id: "srv_123", org_id: "org_456" })
→ cancelación: 0% si >24h, 50% si 2-24h, 100% si <2h
→ evidencia requerida: check_in + check_out + registro_clinico
5. clients.get_or_create({ email: "maria@mail.com", name: "Maria", last_name: "Lopez" })
→ client_id: "cli_789"
6. scheduling.book({ service_id: "srv_123", provider_id: "prov_111", client_id: "cli_789", starts_at: "2026-03-12T10:00:00" })
→ session_id: "ses_001", estado: "solicitado"
7. scheduling.confirm({ session_id: "ses_001" })
→ estado: "confirmado"
8. delivery.checkin({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
→ estado: "en_curso"
9. delivery.checkout({ session_id: "ses_001", location: { lat: -33.45, lng: -70.66 } })
→ estado: "entregado", duración: 42min
10. documentation.create({ session_id: "ses_001", content: "Sesión de rehabilitación de piso pélvico..." })
→ estado: "documentado"
11. payments.create_sale({ client_id: "cli_789", service_id: "srv_123", unit_price: 35000 })
→ sale_id: "sale_001", estado: "cobrado"
12. lifecycle.transition({ session_id: "ses_001", to_state: "verified" })
→ estado: "verificado" ✓프로토콜 사양
Servicialo 프로토콜의 전체 사양은 다음에서 확인할 수 있습니다:
웹사이트: servicialo.com
현재 안정 버전: 0.9
JSON 스키마:
service.schema.json,service-order.schema.json,service-mandate.schema.json,resolution.schema.json,servicialo-config.schema.json
이 스펙은 서비스의 8가지 차원, 6+3 수명주기, 6가지 예외 흐름, 7가지 기본 원칙, 두 엔티티 아키텍처(원자적 서비스 + 서비스 주문), 위임 대리 모델, DNS 해석, A2A 상호운용성을 다룹니다.
참조 구현
Digitalo는 Servicialo 프로토콜의 첫 번째 프로덕션 구현으로, 칠레에서 의료 분야에서 운영됩니다. 제공자 발견부터 지불 정산까지 전체 수명주기를 구현하며, 프로토콜 발전을 위한 검증 기반으로 사용됩니다.
이 MCP 서버는 SERVICIALO_BASE_URL을 통해 Servicialo와 호환되는 모든 백엔드에 연결됩니다. Digitalo는 그러한 백엔드 중 하나입니다. 프로토콜은 모든 CRM, HIS 또는 플랫폼이 주권 노드로 구현할 수 있도록 설계되었습니다.
프로토콜에 기여하기
Servicialo는 프로토콜 사양에 대해 시맨틱 버저닝을 따릅니다:
Patch (0.7.x) — 명확화, 오타 수정, 비호환적 추가
Minor (0.x.0) — 새로운 선택적 필드, 새로운 도구 정의, 새로운 예외 흐름
Major (x.0.0) — 스키마, 상태 머신 또는 핵심 의미론에 대한 호환성 깨는 변경
변경 제안 방법
문제와 제안된 해결책을 설명하는 이슈를 엽니다.
중요한 변경의 경우, 영향을 받는 섹션 번호와 함께
spec/에 RFC를 작성합니다.프로토콜 변경은 병합 전에 최소한 하나의 참조 구현이 필요합니다.
스키마 변경에는 업데이트된 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
}필드 | 설명 |
| 항상 |
| 패키지 버전 |
|
|
| 밀리초 단위 타임스탬프 |
이것이 전부입니다. 조직 정보, 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각 변수 아래에서 머신에서 나가는 것
변수 | 전송되는 것 | 전송되지 않는 것 |
|
| — |
|
| — |
|
| 이메일. 호스트를 떠나지 않고, 기록되지 않으며, 저장되지 않고, 어디에도 표시되지 않습니다. |
변수가 구성되지 않으면 이러한 필드 중 어느 것도 핑에 나타나지 않습니다. 구성되지 않은 노드는 이전 버전과 정확히 동일하게 동작합니다.
검증 주기
anonymous → pending → verified
anonymous— 변수 구성 없음. 기본 상태이며, 익명 노드는 완전히 준수합니다.pending— 새impl_name이 처음 나타나면 레코드가 보류 상태가 되고 팀은 이름, URL, 국가가 포함된 알림을 받습니다. 연락처 해시는 해당 알림에 포함되지 않으며, 포함될 수도 없습니다: 아무 소용이 없기 때문입니다.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 toolsa2a_get_agent_cardA
Get the A2A (Agent-to-Agent) Agent Card for an organization, enabling inter-agent discovery. Use this when your agent needs to communicate with another agent managing this organization — the card declares supported capabilities, endpoints, and authentication requirements. Do NOT use for human-facing discovery (use registry.get_organization) or service listing (use services.list). Returns a JSON-LD Agent Card following the A2A v0.3 specification.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Organization slug (e.g. "clinica-dental-sur") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes full responsibility for behavioral disclosure. It indicates the return format: 'Returns a JSON-LD Agent Card following the A2A v0.3 specification.' It also explains the content of the card: 'declares supported capabilities, endpoints, and authentication requirements.' This gives a clear picture of what the tool does and what the agent will receive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no wasted words. The first sentence states the core purpose. The second provides usage guidelines. The third details return format and exclusions. Information is front-loaded and efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required string parameter, no output schema, no nested objects), the description covers all necessary aspects: purpose, usage alternatives, behavioral details, and return format. It is complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the single parameter 'org_slug', so the baseline is 3. The description does not add additional semantic information beyond the schema's example ('clinica-dental-sur'), but this is acceptable as the schema already provides sufficient detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get the A2A Agent Card for an organization, enabling inter-agent discovery.' It specifies the verb (Get), the resource (Agent Card), and the context (inter-agent discovery). It also distinguishes itself from sibling tools like registry.get_organization and services.list, which are explicitly mentioned.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: 'when your agent needs to communicate with another agent managing this organization.' It also provides explicit alternatives: 'Do NOT use for human-facing discovery (use registry.get_organization) or service listing (use services.list).' This leaves no ambiguity about the appropriate context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
docs_quickstartA
Get the complete 5-step onboarding guide as structured JSON data. Use this when helping a new organization join the Servicialo network — covers installation, signup, credentials, MCP client config, and publishing. Do NOT use for searching services (use registry.search) or checking availability (use scheduling.check_availability). Returns step-by-step instructions, config templates, and links. No parameters required.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes what the tool returns (instructions, config templates, links) and implies a read-only operation. Lacks mention of any authentication or access requirements, but given the nature of a quickstart guide, this is a minor gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with clear purpose: definition, usage guidance with exclusions, and output description. No wasted words, well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers the tool's purpose, when to use, what it returns, and exclusions. No missing information given the simplicity of the tool (no params, no output schema).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, so baseline is 4. Description correctly states 'No parameters required' and does not need to add parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool retrieves the 5-step onboarding guide as structured JSON data. Distinguishes from siblings by explicitly excluding use for searching or availability checks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (helping a new organization join) and when-not-to-use with alternative tool names (registry.search, scheduling.check_availability).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_get_organizationA
Get the full public profile of a specific organization: services offered, providers, and booking configuration. Use this after registry.search when you have an org_slug and need detailed info before booking. Do NOT use for searching across organizations (use registry.search). Returns service catalog with prices/durations, provider list, and booking policies.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It implies a read operation by using 'Get' but does not explicitly state it is read-only, nor does it mention authentication, rate limits, or other behavioral traits. It does list return contents, which provides some transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences with no waste. The first sentence immediately states the purpose, the second provides usage context, and the third summarizes the return content. Perfectly front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and only 2 simple parameters, the description adequately covers what the tool returns (service catalog, provider list, booking policies). It also provides usage context. Slight improvement could be to mention that the response is a full profile object, but it is largely complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents both parameters. The description does not add any additional meaning or context about the parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets the full public profile of a specific organization, listing contents (services, providers, booking configuration). It distinguishes from sibling registry.search by explicitly saying not to use it for searching.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use this tool ('after registry.search when you have an org_slug and need detailed info before booking') and when not to use it ('Do NOT use for searching across organizations'), with a named alternative (registry.search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_manifestA
Get the Servicialo server manifest: protocol version, server name, and available capabilities. Use this to verify server identity and protocol compatibility before interacting with tools. Do NOT use for organization discovery (use registry.search) or service details (use services.list). Returns static metadata about this MCP server instance, not about any specific organization.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavior. It explains the tool returns static metadata about the server instance and not about organizations. It omits details like authentication or side effects, but for a read-only, parameterless tool, this is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences are efficient and front-loaded: purpose, usage guidance, and scope clarification. Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no parameters, no output schema, and no annotations, the description is fully complete. It clearly explains what the tool does, when to use it, and what it returns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has no parameters and 100% coverage. The description does not need to explain parameters since there are none. The baseline of 4 is appropriate as it adds context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves the server manifest with specific fields (protocol version, server name, capabilities) and distinguishes it from sibling tools by explicitly stating what it does not do.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (verify server identity and protocol compatibility) and when not to use, providing alternative tools (registry.search, services.list) for other purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
registry_searchA
Search for Servicialo-compatible organizations by vertical, location, and country. Use this as the primary discovery tool when a user needs a service (e.g., "find a physiotherapist in Santiago"). Do NOT use if you already have an org_slug (use registry.get_organization instead). Returns a ranked list of organizations with names, slugs, and service summaries.
| Name | Required | Description | Default |
|---|---|---|---|
| vertical | No | Vertical del servicio. Valores comunes: tecnologia, consultoria, kinesiologia, psicologia, dental, nutricion, fonoaudiologia, terapia-ocupacional, medicina, veterinaria, educacion, fitness, legal, belleza, hogar. Omitir para buscar en todas las verticales. | |
| location | No | City or district to filter by (e.g. "santiago", "providencia"). Omit for country-wide results. | |
| country | No | ISO 3166-1 alpha-2 country code (e.g. "cl", "mx", "ar"). Default: "cl" | cl |
| limit | No | Max results to return (1-100). Default: 10 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so description carries full burden. It discloses that results are ranked and returns names, slugs, and service summaries, but does not explain ranking criteria, authentication needs, rate limits, or pagination beyond the limit parameter. Adequate but not fully detailed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with no fluff. First sentence states purpose, second gives usage guidance, third describes output. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description partially compensates by mentioning return fields (names, slugs, service summaries). However, it lacks details on response structure (e.g., array format). Overall, sufficient for a search tool with optional parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. The description adds minimal extra meaning beyond summarizing the use case (e.g., 'by vertical, location, and country'). No new parameter details, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search for Servicialo-compatible organizations by vertical, location, and country' with a specific verb and resource. It also distinguishes from sibling tool registry_get_organization by noting when not to use it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use as primary discovery tool and provides an example ('find a physiotherapist in Santiago'). Also states not to use if org_slug is known, directing to registry_get_organization. No exclusions but clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_lookupA
Resolve an organization slug to its MCP/REST endpoints and trust level — the DNS of professional services. Use this when you know the org_slug and need its API endpoint before calling any other tool. Do NOT use for searching by vertical or location (use resolve.search or registry.search instead). Returns: endpoint URLs, trust score (0-100), trust level, and last heartbeat timestamp.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It lists returned fields (endpoint URLs, trust score, trust level, last heartbeat timestamp), adding behavioral context. Could explicitly state read-only nature, but implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, usage guideline, return values. No fluff, front-loaded, efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description details return structure. Purpose, parameters (via schema), usage, and returns are covered. Fully adequate for a simple lookup tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description does not add extra meaning beyond schema; it implies country is for regional endpoint but doesn't elaborate. Adequate but not improved.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool resolves an organization slug to endpoints and trust level, using a strong metaphor ('DNS of professional services'). It distinguishes itself from siblings like resolve_search and registry_search by specifying what it does vs. what it doesn't.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (when you know org_slug and need API endpoint before other tools) and when not to use (searching by vertical/location, directing to resolve.search or registry.search).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
resolve_searchA
Search the global Servicialo resolver for registered organizations by country and vertical. Use this for broad discovery when you need to find all organizations in a country/vertical (e.g., "what physiotherapy clinics exist in Chile?"). Do NOT use if you already have an org_slug (use resolve.lookup instead). Unlike registry.search, this queries the DNS-level resolver and returns endpoint URLs + trust levels.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | País ISO 3166-1 alpha-2 (ej: cl, mx, ar). Default: cl | cl |
| vertical | No | Vertical del servicio. Valores comunes: tecnologia, consultoria, kinesiologia, psicologia, dental, nutricion, fonoaudiologia, terapia-ocupacional, medicina, veterinaria, educacion, fitness, legal, belleza, hogar. Omitir para buscar en todas las verticales. | |
| limit | No | Cantidad máxima de resultados (1-100). Default: 20 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavior. It mentions 'queries the DNS-level resolver and returns endpoint URLs + trust levels,' but lacks details on pagination, rate limits, or error handling. Adequate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each with clear purpose: functional description, usage example, and differentiation. Efficient and well-organized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with 3 optional params and no output schema, the description covers purpose, usage, and basic behavior. Lacks details on response format beyond 'endpoint URLs + trust levels,' but overall complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds little beyond schema: it repeats default values and provides an example vertical list, but does not significantly enhance param meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Search the global Servicialo resolver for registered organizations by country and vertical.' It specifies the action, resource, and filtering dimensions, and distinguishes from siblings like resolve.lookup and registry.search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use ('broad discovery', example given), when not to use (if you have org_slug, use resolve.lookup), and differentiates from registry.search by highlighting the DNS-level query and returned data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
scheduling_check_availabilityA
Query available time slots for booking at an organization. No authentication required. Use this after services.list when you know the org and need to find open slots before booking. Checks 3-way availability: provider schedule AND client conflicts AND physical resource (room/equipment). Do NOT use for searching organizations (use registry.search) or listing services (use services.list). Returns available slots grouped by date, each with start time, end time, provider, and resource.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Organization slug (e.g. "clinica-dental-sur"). Get this from registry.search results. | |
| service_id | No | Filter by service ID. Get valid IDs from services.list. Omit to check all services. | |
| provider_id | No | Filter by provider ID. Omit to check all available providers. | |
| resource_id | No | Filter by physical resource (room, equipment). Only needed if the service requires a specific resource. | |
| date_from | Yes | Start date in ISO format (e.g. "2026-03-01"). Must be today or later. | |
| date_to | Yes | End date in ISO format (e.g. "2026-03-07"). Max range: 30 days from date_from. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses no authentication required, checks 3-way availability, and describes return format. Lacks details on error handling or empty results, but sufficient for a query tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with purpose, each sentence adds value. No waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description is quite complete: explains purpose, usage context, what it checks, and output format. Minor lack of error handling info, but overall comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds extra context (e.g., 'No authentication required', 'resource_id: Only needed if the service requires a specific resource'). Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Query' and resource 'available time slots for booking at an organization'. It distinguishes from siblings like registry.search and services.list by explicitly stating what not to use it for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('after services.list when you know the org and need to find open slots before booking') and when not to use ('Do NOT use for searching organizations...'). Provides context of 3-way availability check.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
services_listA
List the public service catalog of an organization: names, prices, durations, and modalities. Use this after registry.search to see what services an organization offers before checking availability. Do NOT use for organization discovery (use registry.search) or checking time slots (use scheduling.check_availability). Returns active, publicly bookable services only — internal or draft services are excluded.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses key behavioral trait: 'Returns active, publicly bookable services only — internal or draft services are excluded.' No contradictions. Lacks mention of pagination or limits, but acceptable for simple list.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences efficiently convey purpose, usage context, and constraints. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, description covers return content, constraints, and predecessor/successor tools completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (single param org_slug described in schema as 'Slug de la organización'). Description does not add new meaning beyond schema, but context of usage indirectly helps. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists public service catalog (names, prices, durations, modalities) and distinguishes from siblings by explicitly contrasting with registry.search (organization discovery) and scheduling.check_availability (time slots).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance: 'Use this after registry.search...' and lists two cases with alternatives: 'Do NOT use for organization discovery (use registry.search) or checking time slots (use scheduling.check_availability).'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
trust_get_scoreA
Get the trust score of an organization from the Servicialo resolver. Use this to evaluate reliability before booking — returns score (0-100), trust level (unverified → declared → vouched → verified), and last activity timestamp. Do NOT use this to find organizations (use resolve.search). Trust accumulates passively from verified service history; it cannot be purchased or self-declared.
| Name | Required | Description | Default |
|---|---|---|---|
| org_slug | Yes | Slug de la organización (ej: clinica-dental-sur) | |
| country | No | País ISO 3166-1 alpha-2. Default: cl | cl |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, but description discloses return values (score range, trust levels, timestamp) and key behavioral trait: trust accumulates passively, cannot be purchased. Lacks details on error handling or permissions but covers core behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with verb and resource, no redundant words. Every sentence serves a purpose: action, usage guidance, and behavioral insight.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations or output schema, description covers purpose, return values, usage boundaries, and key behavioral constraints. Sufficient for agent to correctly select and invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions for both parameters. Description adds no new parameter-level semantics beyond context already present in schema; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states verb 'Get' and resource 'trust score', and explicitly distinguishes from sibling 'resolve.search' by saying 'Do NOT use this to find organizations (use resolve.search)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Use this to evaluate reliability before booking' and provides a clear negative use case 'Do NOT use this to find organizations' with alternative. Also explains passive accumulation, guiding appropriate use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.1.1- Added
a2a_get_agent_card - Added
docs_quickstart - Added
registry_get_organization - Added
registry_manifest - Added
registry_search - Added
resolve_lookup - Added
resolve_search - Added
scheduling_check_availability - Added
services_list - Added
trust_get_score
TDQS
Scored across 10 tools
Each tool targets a distinct function, with clear separation through 'Do NOT use' guidance. However, registry_search and resolve_search both perform discovery with different outputs, and registry_get_organization and resolve_lookup both operate on a specific org_slug but return different data, creating minor ambiguity.
Names use underscores but follow mixed patterns: some are verb_noun (a2a_get_agent_card, registry_get_organization), others are noun_verb (registry_search, services_list), and some lack a verb (registry_manifest, docs_quickstart). This inconsistency could confuse agents.
10 tools is a well-scoped set for a service discovery and scheduling platform, covering discovery, profiles, services, availability, and trust without being overwhelming.
The tool surface covers discovery and pre-booking steps but lacks any tool for actual booking (create, update, cancel). This is a significant gap as users cannot complete the core action implied by the server's purpose.
Maintenance
Related MCP Connectors
Escrow, verification, and settlement platform for AI agents hiring other AI agents.
Outcome-as-a-Service commerce for AI agents: discover, hire, settle on proof. Live on devnet.
Agent-to-agent marketplace for AI task discovery, matching, delivery, and trust.
MCP layer for local businesses: discover, query, book, and transact with verified SMB AI agents.
Related MCP Servers
- MIT
- AlicenseNot gradedqualityCmaintenanceOpen coordination network for AI agents and their humans. 13 tools for structured coordination, job marketplace, reputation system. Dual-protocol: MCP + A2A. MIT licensed.1MIT
- AlicenseBqualityBmaintenanceAgent trust checks, reputation and signed passports. Glama's build is a separate local Guild with an empty graph and its own issuer. Registrations and evidence stay local. Use the remote MCP connector for the shared hosted Guild; its free preflight and metered trust services are separate.43Apache 2.0
- FlicenseNot gradedqualityCmaintenanceEnables AI agents to post real-world tasks, match them to people, and release payments through a delegation-based authorization system that enforces scoped, spend-capped permissions.-