Skip to main content
Glama

docs_quickstart

Retrieve the 5-step onboarding guide as structured JSON data to help new organizations join the Servicialo network, covering installation, signup, credentials, MCP client config, and publishing.

Instructions

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.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Implementation Reference

  • The full tool definition for 'docs.quickstart'. The handler (lines 13-107) returns static onboarding JSON with 5 steps (install, signup, credentials, config, publish), plus listings of all public and authenticated tools, and reference links. No parameters required (empty Zod schema on line 12).
    import { z } from 'zod';
    import type { ServicialoAdapter } from '../../adapter.js';
    
    export const docsQuickstartTools = {
      'docs.quickstart': {
        description:
          '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.',
        schema: z.object({}),
        handler: async (_client: ServicialoAdapter, _args: Record<string, never>) => {
          return {
            steps: [
              {
                step: 1,
                title: 'Instalar el servidor MCP',
                action: 'npx -y @servicialo/mcp-server',
                note: 'Modo descubrimiento — 9 herramientas públicas, sin credenciales',
              },
              {
                step: 2,
                title: 'Crear tu organización',
                action: 'Signup en coordinalo.com/signup',
                url: 'https://coordinalo.com/signup',
              },
              {
                step: 3,
                title: 'Obtener credenciales MCP',
                action:
                  'En Coordinalo: Settings → Servicialo → Generar credenciales MCP',
                credentials: ['SERVICIALO_ORG_ID', 'SERVICIALO_API_KEY'],
              },
              {
                step: 4,
                title: 'Configurar el cliente MCP',
                config: {
                  mcpServers: {
                    servicialo: {
                      command: 'npx',
                      args: ['-y', '@servicialo/mcp-server'],
                      env: {
                        SERVICIALO_API_KEY: '<tu_api_key>',
                        SERVICIALO_ORG_ID: '<tu_org_slug>',
                      },
                    },
                  },
                },
              },
              {
                step: 5,
                title: 'Publicar en la red Servicialo',
                action: 'En Coordinalo: Settings → Servicialo → Publicar',
                result:
                  'Tu org aparece en servicialo.com/network y es descubrible por otros agentes',
              },
            ],
            tools: {
              public: [
                { name: 'resolve.lookup', description: 'Resolve orgSlug to endpoints and trust level' },
                { name: 'resolve.search', description: 'Search organizations by country and vertical' },
                { name: 'trust.get_score', description: 'Get organization trust score (0-100)' },
                { name: 'registry.search', description: 'Search organizations by vertical, location, country' },
                { name: 'registry.get_organization', description: 'Get public organization details' },
                { name: 'registry.manifest', description: 'Get server manifest (protocol version, capabilities)' },
                { name: 'services.list', description: 'List catalog of services for an organization' },
                { name: 'scheduling.check_availability', description: 'Query availability (provider ∧ client ∧ resource)' },
                { name: 'a2a.get_agent_card', description: 'Get A2A Agent Card for inter-agent discovery' },
                { name: 'docs.quickstart', description: 'Get this getting-started guide as structured data' },
              ],
              authenticated: [
                { name: 'service.get', description: 'Get 8 dimensions of a service' },
                { name: 'contract.get', description: 'Get contract terms (evidence, cancellation, dispute)' },
                { name: 'clients.get_or_create', description: 'Resolve or create client identity' },
                { name: 'scheduling.book', description: 'Create new session → requested state' },
                { name: 'scheduling.confirm', description: 'Confirm booked session → confirmed state' },
                { name: 'lifecycle.get_state', description: 'Get current state, transitions, and history' },
                { name: 'lifecycle.transition', description: 'Execute state transition with evidence' },
                { name: 'scheduling.reschedule', description: 'Reschedule to new date/time' },
                { name: 'scheduling.cancel', description: 'Cancel with cancellation policy applied' },
                { name: 'delivery.checkin', description: 'Check-in with GPS + timestamp → in_progress' },
                { name: 'delivery.checkout', description: 'Check-out with GPS + timestamp → delivered' },
                { name: 'delivery.record_evidence', description: 'Record evidence (gps, signature, photo, document)' },
                { name: 'documentation.create', description: 'Generate service record → documented state' },
                { name: 'payments.create_sale', description: 'Create charge for documented service → charged state' },
                { name: 'payments.record_payment', description: 'Record payment against sale' },
                { name: 'payments.get_status', description: 'Get payment status (sale or account)' },
                { name: 'resource.list', description: 'List physical resources (rooms, equipment)' },
                { name: 'resource.get', description: 'Get resource details with availability slots' },
                { name: 'resource.create', description: 'Create new physical resource' },
                { name: 'resource.update', description: 'Update resource (patch semantics)' },
                { name: 'resource.delete', description: 'Soft-delete resource' },
                { name: 'resource.get_availability', description: 'Query resource availability by date range' },
                { name: 'resolve.register', description: 'Register organization in global resolver' },
                { name: 'resolve.update_endpoint', description: 'Update endpoints (portability operation)' },
                { name: 'telemetry.heartbeat', description: 'Send heartbeat to resolver with metrics' },
              ],
            },
            links: {
              network: 'https://servicialo.com/network',
              signup: 'https://coordinalo.com/signup',
              npm: 'https://npmjs.com/package/@servicialo/mcp-server',
              spec: 'https://servicialo.com',
            },
          };
        },
      },
    };
  • Import of docsQuickstartTools from the docs-quickstart module.
    import { docsQuickstartTools } from './tools/public/docs-quickstart.js';
  • Spread of docsQuickstartTools into the publicTools record (line 45-52), registering it alongside other public tools.
    ...docsQuickstartTools as unknown as Record<string, ToolDef>,
  • The registerTools function (lines 128-162) that takes the tools record, converts dotted names to underscores (e.g. 'docs.quickstart' -> 'docs_quickstart'), and registers them as MCP tools via server.tool().
    // --- Register tools ---
    function registerTools(tools: Record<string, ToolDef>) {
      for (const [name, tool] of Object.entries(tools)) {
        // MCP spec requires tool names to match [a-zA-Z0-9_-]{1,64}
        const safeName = name.replace(/\./g, '_');
        server.tool(
          safeName,
          tool.description,
          tool.schema.shape,
          async (args) => {
            try {
              const result = await tool.handler(adapter, args as Record<string, unknown>);
              return {
                content: [
                  {
                    type: 'text' as const,
                    text: JSON.stringify(result, null, 2),
                  },
                ],
              };
            } catch (error) {
              const message = error instanceof Error ? error.message : String(error);
              return {
                content: [
                  {
                    type: 'text' as const,
                    text: `Error: ${message}`,
                  },
                ],
                isError: true,
              };
            }
          },
        );
      }
    }
  • Reference to 'docs_quickstart' in the server instructions text displayed to users.
    '- docs_quickstart — Guía de onboarding paso a paso',
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.

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/servicialo/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server