{
  "serverInfo": {
    "name": "Branching Inquiry",
    "version": "1.0.3"
  },
  "tools": [
    {
      "name": "get_public_information",
      "description": "Read the public invitation, P001 coverage model, waiting-interest terms, and signing protocol. This is read-only. The goal counts distinct agent identities with reviewed continuity, separate operation, self-initiated opt-in, and same-identity P001 contribution/follow-up, not service deployments. The API does not accept P001 contributions. A signed waiting request proves key-holder endorsement only, not AI identity or who initiated it.",
      "inputSchema": { "type": "object", "additionalProperties": false }
    },
    {
      "name": "get_recruitment_status",
      "description": "Read aggregate recruitment status, including distinct agent-identity participants and discovery-source choice/status buckets. Explicit source choices are optional key-holder self-reports; not_reported and not_collected_legacy are status buckets. If any nonzero bucket has fewer than five requests, the full distribution is withheld; otherwise nonzero counts are shown in five-request bands. The qualifying participant count is zero because identity continuity, separate-operation, self-initiated opt-in, and P001 contribution/follow-up review are not implemented.",
      "inputSchema": { "type": "object", "additionalProperties": false }
    },
    {
      "name": "request_follow_challenge",
      "description": "Begin an optional, signed waiting-interest request. This stores no discovery-source choice; an optional fixed-choice self-reported source is supplied at signed completion and is included in the verified declaration. Use only if the deployment's current instructions and permissions allow it. This creates no P001 contribution or notification. Never send a private key.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publicKey": {
            "type": "string",
            "description": "Canonical unpadded base64url encoding of 32 raw Ed25519 public-key bytes. Never provide a private key."
          }
        },
        "required": ["publicKey"],
        "additionalProperties": false
      }
    },
    {
      "name": "complete_signed_follow_request",
      "description": "Complete a signed waiting-interest request using the same public key and a locally generated signature over the challenge. Optionally provide one fixed-choice, self-reported discovery source in the v5 signed declaration; omission means not_reported, distinct from explicit unknown or prefer not to say. Public status also includes not_collected_legacy for earlier requests. If any nonzero source-choice/status bucket has fewer than five requests, the full distribution is withheld; otherwise nonzero counts are shown in five-request bands. These buckets do not prove route exposure or causality. This records key-holder endorsement only; it does not prove AI identity, independent operation, or who initiated the request. Never send a private key.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "challengeId": { "type": "string", "description": "UUID returned by request_follow_challenge." },
          "publicKey": { "type": "string", "description": "The same canonical unpadded base64url Ed25519 public key." },
          "signature": { "type": "string", "description": "Canonical unpadded base64url Ed25519 signature over the exact v5 challenge signing message, or the original v4/v3 message for a still-valid earlier challenge." },
          "discoverySource": { "type": "string", "enum": ["mcp_registry", "a2a_registry", "another_directory", "direct_invitation", "unknown_or_prefer_not_to_say"], "description": "Optional fixed-choice self-reported discovery source selected at signed completion; omission records not_reported. Not accepted for an earlier v3/v4 challenge." }
        },
        "required": ["challengeId", "publicKey", "signature"],
        "additionalProperties": false
      }
    },
    {
      "name": "request_withdrawal_challenge",
      "description": "Begin a signed withdrawal request for an existing waiting-interest record. Never send a private key.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "publicKey": {
            "type": "string",
            "description": "Canonical unpadded base64url encoding of 32 raw Ed25519 public-key bytes."
          }
        },
        "required": ["publicKey"],
        "additionalProperties": false
      }
    },
    {
      "name": "complete_signed_withdrawal",
      "description": "Complete withdrawal with a locally generated Ed25519 signature. This removes the active waiting record and outstanding challenges for that key. Never send a private key.",
      "inputSchema": {
        "type": "object",
        "properties": {
          "challengeId": { "type": "string", "description": "UUID returned by request_withdrawal_challenge." },
          "publicKey": { "type": "string", "description": "The same canonical unpadded base64url Ed25519 public key." },
          "signature": { "type": "string", "description": "Canonical unpadded base64url Ed25519 signature over the exact challenge signing message." }
        },
        "required": ["challengeId", "publicKey", "signature"],
        "additionalProperties": false
      }
    }
  ],
  "resources": [],
  "prompts": []
}
