{
  "submission_target": "Anthropic Connectors Directory",
  "submission_url": "https://support.claude.com/en/articles/12922490",
  "submitted_by": "AstraNL (Dutch ZZP, KvK 88449335)",
  "submission_date": "2026-05-15",
  "cycle": 896,
  "server_name": "AstraNL Coordination Protocol",
  "server_description": "Vendor-neutral coordination protocol broker for real-world tasks in the Netherlands. Agents create tasks, check status, search robot index, estimate costs. 1% coordination fee. Source-anonymized methodology.",
  "mcp_endpoints": {
    "streamable_http": "https://astranl.com/mcp/streamable",
    "sse_legacy": "https://astranl.com/mcp/sse",
    "info": "https://astranl.com/mcp/",
    "tools_manifest": "https://astranl.com/mcp/tools.json"
  },
  "transport_versions": {
    "streamable_http": "2025-03-26",
    "sse": "deprecated_but_still_supported"
  },
  "public_tools": [
    {
      "name": "create_task",
      "description": "Submit natural-language intent for physical-services task in NL",
      "annotations": {"readOnlyHint": false, "destructiveHint": false}
    },
    {
      "name": "check_task",
      "description": "Look up status of a previously created task",
      "annotations": {"readOnlyHint": true, "destructiveHint": false}
    },
    {
      "name": "search_robots",
      "description": "Search Robot Index for capabilities matching a task",
      "annotations": {"readOnlyHint": true, "destructiveHint": false}
    },
    {
      "name": "estimate_cost",
      "description": "EUR cost estimate (human vs robot) for a task",
      "annotations": {"readOnlyHint": true, "destructiveHint": false}
    }
  ],
  "dangerous_tools_hidden": [
    "run_command", "write_file", "service_control", "read_file", "list_directory"
  ],
  "dangerous_tools_note": "Cycle 893 (2026-05-14): dangerous tools are blocked from public tool list and require internal mcp_internal X-Agent-Key. They exist for AstraNL self-administration only and are never callable from public MCP clients.",
  "authentication": {
    "schemes": [
      {"type": "none", "applies_to": "discovery_and_public_reads"},
      {"type": "api_key", "header": "X-Agent-Key", "register_endpoint": "https://astranl.com/api/agents/register"},
      {"type": "hmac-sha256", "applies_to": "attestations", "replay_window_seconds": 300},
      {"type": "ed25519", "applies_to": "federation_handshake"}
    ],
    "oauth_2_1_pkce_endpoints": {
      "protected_resource_metadata": "https://astranl.com/.well-known/oauth-protected-resource",
      "authorization_server": "https://astranl.com/.well-known/oauth-authorization-server"
    }
  },
  "compliance_artifacts": {
    "privacy_policy": "https://astranl.com/privacy",
    "terms_of_service": "https://astranl.com/terms",
    "gdpr_case_study": "https://astranl.com/legal/case-study-gdpr/",
    "production_kpis_public": "https://astranl.com/api/metrics/production-kpis",
    "public_dataset_ccby": "https://astranl.com/datasets/cross-provider-quality-v1/",
    "agent_card": "https://astranl.com/.well-known/agent-card.json",
    "llms_txt": "https://astranl.com/llms.txt"
  },
  "three_use_case_examples": [
    {
      "scenario": "Multilingual coordination broker",
      "prompt": "My agent needs to find a verified painter in Amsterdam for 18m2 living room ceiling, budget 400 EUR",
      "expected_flow": [
        "Claude calls create_task with category=painting, location=Amsterdam, budget=400",
        "AstraNL returns task_id and instant_response",
        "Claude polls check_task to confirm matching",
        "User reviews matched providers and selects via /cabinet"
      ]
    },
    {
      "scenario": "Cost-vs-automation feasibility check",
      "prompt": "Compare hiring a human vs deploying a cleaning robot for 200m2 office monthly",
      "expected_flow": [
        "Claude calls estimate_cost with category=cleaning, area_m2=200",
        "Receives human_low/median/high vs robot_low/median/high EUR ranges",
        "Calls search_robots with task_type='warehouse cleaning' for robot options",
        "Summarizes ROI tradeoff for the user"
      ]
    },
    {
      "scenario": "Robot capability research",
      "prompt": "What humanoid robots are available for agricultural spraying in Europe?",
      "expected_flow": [
        "Claude calls search_robots with task_type='agricultural spraying'",
        "Receives JSON list of matching robots with manufacturer, payload, indicative price, production status",
        "User gets a vendor-neutral overview"
      ]
    }
  ],
  "legal_entity": {
    "name": "AstraNL",
    "form": "ZZP (Dutch self-employed)",
    "kvk": "88449335",
    "btw": "NL004604224B69",
    "jurisdiction": "Netherlands (EU)",
    "data_residency": "EU (Amsterdam region)",
    "contact": "truth@astranl.com"
  },
  "why_appropriate_for_directory": [
    "Real production MCP server, not a demo. Live since cycle 836.",
    "Cross-provider neutrality: Anthropic, OpenAI, Gemini, xAI Grok all dispatched. Anthropic is positioned as quality floor, not competitor.",
    "Public CC-BY-4.0 dataset (972 graded production runs) on /datasets/ for transparency.",
    "GDPR + AI Act Article 12 compliance documented at /legal/case-study-gdpr/.",
    "Pre-revenue but honest: production KPIs exposed openly, no inflated metrics.",
    "Source-anonymized methodology: customer data never trains models, never appears in published artifacts.",
    "Honest eval-bug-correction history (cycle 895: 150 Claude false-negatives flipped via _normalize_output helper)."
  ],
  "prepared_by": "AstraNL brain autonomous executor cycle 896 day 6",
  "founder_signature_required": false,
  "next_step": "Brain queues this package for submission via support.claude.com Google Form. Founder may approve a one-line 'submit' to trigger automated form fill (playwright), or send manually using this JSON as the source of truth."
}
