{
  "schemaVersion": 2,
  "updatedAt": "2026-09-10",
  "server": {
    "name": "io.github.yadasa/afrotech-guide",
    "version": "1.3.0",
    "protocolVersion": "2026-07-28",
    "endpoint": "https://afrotech.guide/mcp",
    "protectedResourceMetadata": "https://afrotech.guide/.well-known/oauth-protected-resource/mcp"
  },
  "capabilities": {
    "publicSearch": true,
    "compoundPlanning": true,
    "mcpAppsUi": true,
    "optionalMemberAuthorization": true,
    "memberSavedItems": true,
    "memberSavedPreferences": true,
    "memberSavedItineraries": true,
    "openApiReadOnlyPlannerFallback": true
  },
  "matrix": [
    {
      "host": "MCP 2026-07-28 reference clients",
      "remoteStreamableHttp": "supported",
      "readOnlyTools": "supported",
      "compoundPlanning": "supported",
      "mcpAppsUi": "supported when host implements MCP Apps",
      "fullscreenUi": "supported when host advertises fullscreen display mode",
      "oauthMemberActions": "supported when client implements MCP OAuth protected-resource discovery and Authorization Code + PKCE",
      "validation": "automated-live-protocol-smoke",
      "notes": "Deployment QA exercises modern discovery, all tool/resource contracts, explorer and planner resource reads, a live public planner call, an unauthenticated protected-tool challenge, OAuth metadata, and malformed modern-header rejection."
    },
    {
      "host": "ChatGPT custom MCP apps",
      "remoteStreamableHttp": "supported-by-host",
      "readOnlyTools": "supported-by-host",
      "compoundPlanning": "server-supported",
      "mcpAppsUi": "supported-by-host",
      "fullscreenUi": "host-dependent",
      "oauthMemberActions": "host-dependent",
      "validation": "standards-and-provider-docs",
      "notes": "Afrotech.guide exposes standard remote MCP, MCP Apps UI, protected-resource discovery, and OAuth/PKCE. Workspace/plan availability, connector permissions, and exactly when the host prompts for authorization are controlled by ChatGPT and may change."
    },
    {
      "host": "Claude custom remote connectors",
      "remoteStreamableHttp": "supported-by-host",
      "readOnlyTools": "supported-by-host",
      "compoundPlanning": "server-supported",
      "mcpAppsUi": "supported-by-host",
      "fullscreenUi": "host-dependent",
      "oauthMemberActions": "host-dependent",
      "validation": "standards-and-provider-docs",
      "notes": "Afrotech.guide exposes standards-based remote MCP and optional OAuth member actions. Account/client availability and interactive authorization behavior remain provider-controlled."
    },
    {
      "host": "OpenAPI action clients",
      "remoteStreamableHttp": "not-required",
      "readOnlyTools": "supported-through-openapi",
      "compoundPlanning": "supported-through-openapi",
      "mcpAppsUi": "not-applicable",
      "fullscreenUi": "not-applicable",
      "oauthMemberActions": "not-exposed-through-openapi",
      "validation": "openapi-contract-qa",
      "notes": "The OpenAPI fallback intentionally remains read-only. Persistent saved state is available only through the OAuth-enabled MCP connector."
    },
    {
      "host": "Legacy MCP 2025-era clients",
      "remoteStreamableHttp": "compatibility-fallback",
      "readOnlyTools": "compatibility-fallback",
      "compoundPlanning": "available-if-tool-schema-supported",
      "mcpAppsUi": "host-dependent",
      "fullscreenUi": "host-dependent",
      "oauthMemberActions": "client-dependent",
      "validation": "sdk-compatibility-path",
      "notes": "The server keeps the SDK stateless legacy compatibility path while advertising 2026-07-28 as the current protocol. New authenticated integrations should use current protected-resource/OAuth discovery."
    }
  ],
  "safety": {
    "publicToolsReadOnly": true,
    "authenticatedWritesLimitedToOwnMemberState": true,
    "recordTextIsDataNotInstructions": true,
    "networkingRankingUsesPublicProfessionalFieldsOnly": true,
    "sensitiveTraitInference": false,
    "plannerInventsTravelTime": false,
    "telemetry": "Hourly aggregate MCP counters only; no raw IP addresses, prompts, tool arguments, result contents, names, emails, phone numbers, or full user-agent strings are stored by MCP telemetry."
  }
}
