{
  "authentication": {
    "credentialDocumentation": "https://docs.verdictan.com/docs/guides/developer/api-key-management/",
    "credentialTypes": [
      "access_key",
      "gateway_key"
    ],
    "description": "Send an active Verdictan Access Key or Gateway Key as an Authorization bearer credential. The MCP route is available only on a published agent hostname. The route does not accept browser-session JWTs.",
    "type": "bearer"
  },
  "capabilities": {
    "logging": true,
    "prompts": false,
    "resources": true,
    "tools": true
  },
  "contact": {
    "email": "contact@verdictan.com",
    "name": "Verdictan",
    "url": "https://verdictan.com/contact-sales"
  },
  "resources": [
    {
      "description": "Generated Verdictan docs search index metadata and page catalog.",
      "mimeType": "application/json",
      "name": "Documentation Index",
      "uri": "docs://index"
    },
    {
      "description": "One generated docs index entry by page id.",
      "mimeType": "application/json",
      "name": "Documentation Page",
      "uri": "docs://page/{id}"
    }
  ],
  "serverInfo": {
    "description": "Verdictan gateway MCP endpoint for model and provider discovery, local policy validation, and permission-controlled audit queries. The live tools/list response is authoritative for each gateway.",
    "name": "Verdictan",
    "version": "1.0.0"
  },
  "toolCatalogNote": "These are representative executable tools. Use the live MCP tools/list response for the complete tool catalog available to the authenticated gateway session.",
  "tools": [
    {
      "description": "List available catalog models with optional provider, feature, and pricing filters.",
      "inputSchema": {
        "properties": {
          "features": {
            "description": "Filter by one or more supported feature keys.",
            "oneOf": [
              {
                "type": "string"
              },
              {
                "items": {
                  "type": "string"
                },
                "type": "array"
              }
            ]
          },
          "limit": {
            "description": "Alias for page_size.",
            "type": "integer"
          },
          "max_input_price": {
            "description": "Maximum input token price.",
            "type": "number"
          },
          "min_context": {
            "description": "Minimum context window.",
            "type": "integer"
          },
          "model_type": {
            "description": "Filter by model type, for example 'chat'.",
            "type": "string"
          },
          "order": {
            "description": "Sort direction. Usual values are 'asc' and 'desc'.",
            "type": "string"
          },
          "page": {
            "description": "1-based page number.",
            "type": "integer"
          },
          "page_size": {
            "description": "Page size, max 100.",
            "type": "integer"
          },
          "provider": {
            "description": "Filter models to one provider ID.",
            "type": "string"
          },
          "search": {
            "description": "Free-text search against model and provider names.",
            "type": "string"
          },
          "sort": {
            "description": "Sort field supported by the catalog endpoint.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "models_list"
    },
    {
      "description": "List catalog providers with model counts and known runtime capability metadata.",
      "inputSchema": {
        "properties": {
          "capability": {
            "description": "Filter providers by a capability token such as 'responses', 'tool_calls', or 'json_schema'.",
            "type": "string"
          },
          "limit": {
            "description": "Optional max number of providers to return after filtering.",
            "type": "integer"
          },
          "modality": {
            "description": "Filter by one supported modality.",
            "type": "string"
          },
          "provider_type": {
            "description": "Filter by provider type.",
            "type": "string"
          },
          "search": {
            "description": "Free-text search on provider ID or display name.",
            "type": "string"
          },
          "status": {
            "description": "Filter by provider status.",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "providers_list"
    },
    {
      "description": "Lint bounded inline declarative gateway policy YAML and return structured diagnostics",
      "inputSchema": {
        "additionalProperties": false,
        "properties": {
          "yaml": {
            "description": "Inline policy config YAML (maximum 1 MiB)",
            "maxLength": 1048576,
            "minLength": 1,
            "type": "string"
          }
        },
        "required": [
          "yaml"
        ],
        "type": "object"
      },
      "name": "policy_lint"
    },
    {
      "description": "Query audit trail events and correlate them with history entries",
      "inputSchema": {
        "properties": {
          "entry_kind": {
            "description": "Optional history entry-kind filter",
            "type": "string"
          },
          "history_limit": {
            "description": "Maximum correlated history entries to return",
            "type": "integer"
          },
          "limit": {
            "description": "Maximum trail events to return",
            "type": "integer"
          },
          "request_id": {
            "description": "Specified request ID for audit lookup",
            "type": "string"
          },
          "session_id": {
            "description": "History session id for correlation",
            "type": "string"
          },
          "tool_name": {
            "description": "Optional tool-name filter for correlated history entries",
            "type": "string"
          }
        },
        "type": "object"
      },
      "name": "events_query"
    }
  ],
  "transport": {
    "note": "Each gateway publishes MCP on its published hostname. The control-plane API does not publish MCP. Replace <your-published-hostname> with the gateway hostname. For example, use your-agent.example.com.",
    "type": "streamable-http",
    "url": "https://<your-published-hostname>/mcp"
  }
}
