{"type":"api","title":"List MCP servers","meta":{"id":"/apps/pubhub/media/ai-defense-management-api/5e02ab7415425725ff5bd941112be2bb3794df69/262737b2-b3c2-32cd-b07b-fdbdcd23918f","info":{"title":"API for Cisco AI Defense platform services","description":"API for Cisco AI Defense platform services","version":"1.1.0","contact":{"name":"API Support","url":"https://www.cisco.com/site/us/en/products/security/ai-defense/index.html"},"license":{"name":"Apache 2.0","url":"http://www.apache.org/licenses/LICENSE-2.0.html"}},"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Policies","description":"API endpoints for AI Defense policy management"},{"name":"Applications","description":"API endpoints for AI Defense application management"},{"name":"Connections","description":"API endpoints for AI Defense connection management"},{"name":"Events","description":"API endpoints for AI Defense runtime events management"},{"name":"AiValidationAPI"},{"name":"AwsCredentialsService"},{"name":"ScanManagerAPI"},{"name":"MCP Registry (Beta)"},{"name":"Resource Connections (Beta)","description":"API endpoints for AI Defense resource connection management"}],"x-parser-conf":{"overview":{"markdownPath":"reference/overview.md"}},"swagger":"2.0","host":"api.security.cisco.com","basePath":"/api/ai-defense/v1","schemes":["https"],"securityDefinitions":{"ApiKeyAuth":{"type":"apiKey","description":"API key for tenant authentication","name":"X-Cisco-AI-Defense-Tenant-API-Key","in":"header"}}},"spec":{"summary":"List MCP servers","description":"List all the MCP servers you've registered in AI Defense.","operationId":"McpRegistryService_ListMCPServers","responses":{"200":{"description":"A successful response.","schema":{"type":"object","example":{"mcpServers":{"items":[{"id":"e02c2b1a-0d9e-4c8b-9a7f-6e5d4c3b2e02","name":"Example MCP Server","url":"https://mcp.example.com","description":"Example remote MCP server","connection_type":"SSE","created_at":"2026-01-29T18:10:00Z","onboarding_status":"COMPLETED","scan_enabled":true,"auth_type":"API_KEY","repository_url":"https://github.com/example/mcp-server","source_identifier":"github","subfolder":"server"}],"paging":{"offset":0,"count":1,"total":1}}},"properties":{"mcpServers":{"description":"The mcpServers object","type":"object","example":{"items":[{"id":"e01c2b1a-0d9e-4c8b-9a7f-6e5d4c3b2e01","name":"Example MCP Server","url":"https://mcp.example.com","description":"Example remote MCP server","connection_type":"SSE","created_at":"2026-01-29T18:10:00Z","onboarding_status":"COMPLETED","scan_enabled":true,"auth_type":"API_KEY","repository_url":"https://github.com/example/mcp-server","source_identifier":"github","subfolder":"server"}],"paging":{"offset":0,"count":1,"total":1}},"properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"The id string"},"name":{"type":"string","description":"The name string"},"url":{"type":"string","description":"The url string"},"description":{"type":"string","description":"The description string"},"connectionType":{"description":"The connectionType object","type":"string","enum":["TRANSPORT_TYPE_UNSPECIFIED","SSE","STREAMABLE","STDIO"],"default":"TRANSPORT_TYPE_UNSPECIFIED","$$ref":"#/definitions/v1TransportType"},"createdAt":{"type":"string","format":"date-time","description":"The createdAt string"},"onboardingStatus":{"description":"The onboardingStatus object","type":"string","enum":["ONBOARDING_STATUS_UNSPECIFIED","INPROGRESS","FAILED","COMPLETED"],"default":"ONBOARDING_STATUS_UNSPECIFIED","$$ref":"#/definitions/v1OnboardingStatus"},"capabilities":{"description":"The capabilities object","type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"capabilityType":{"title":"Unspecified not allowed","type":"string","enum":["CAPABILITY_KIND_UNSPECIFIED","TOOL","PROMPT","RESOURCE"],"default":"CAPABILITY_KIND_UNSPECIFIED","description":"Schema for v1CapabilityType","$$ref":"#/definitions/v1CapabilityType"},"tool":{"description":"The tool object","type":"object","properties":{"id":{"type":"string","title":"internal id of the tool","description":"internal id of the tool"},"name":{"type":"string","title":"name of the tool","description":"name of the tool"},"description":{"type":"string","title":"tool description","description":"tool description"},"title":{"type":"string","title":"optional title of the tool","description":"optional title of the tool"},"inputSchema":{"title":"input schema of the tool","type":"object","properties":{"arguments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","title":"Name of the argument parameter (e.g., \"date\", \"participants\", \"title\")","description":"Name of the argument parameter (e.g., \"date\", \"participants\", \"title\")"},"description":{"type":"string","title":"Human-readable description explaining what this argument is for","description":"Human-readable description explaining what this argument is for"},"type":{"type":"string","title":"Data type of the argument (e.g., \"string\", \"number\", \"boolean\", \"array\")","description":"Data type of the argument (e.g., \"string\", \"number\", \"boolean\", \"array\")"},"required":{"type":"boolean","title":"Whether this argument is mandatory for the tool to function","description":"Whether this argument is mandatory for the tool to function"}},"title":"Argument definition for tool input schemas\nDefines individual parameters that a tool accepts as input","description":"Schema for v1Argument","$$ref":"#/definitions/v1Argument"},"title":"List of arguments/parameters that this tool accepts\nCan be empty for tools that don't require input parameters","description":"List of arguments/parameters that this tool accepts\nCan be empty for tools that don't require input parameters"}},"description":"Schema for v1ToolInputSchema","$$ref":"#/definitions/v1ToolInputSchema"},"outputSchema":{"title":"optional output schema of the tool","type":"object","properties":{"arguments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","title":"Name of the argument parameter (e.g., \"date\", \"participants\", \"title\")","description":"Name of the argument parameter (e.g., \"date\", \"participants\", \"title\")"},"description":{"type":"string","title":"Human-readable description explaining what this argument is for","description":"Human-readable description explaining what this argument is for"},"type":{"type":"string","title":"Data type of the argument (e.g., \"string\", \"number\", \"boolean\", \"array\")","description":"Data type of the argument (e.g., \"string\", \"number\", \"boolean\", \"array\")"},"required":{"type":"boolean","title":"Whether this argument is mandatory for the tool to function","description":"Whether this argument is mandatory for the tool to function"}},"title":"Argument definition for tool input schemas\nDefines individual parameters that a tool accepts as input","description":"Schema for v1Argument","$$ref":"#/definitions/v1Argument"},"title":"List of arguments/parameters that this tool returns\nCan be empty for tools that don't return output parameters","description":"List of arguments/parameters that this tool returns\nCan be empty for tools that don't return output parameters"}},"description":"Schema for v1ToolOutputSchema","$$ref":"#/definitions/v1ToolOutputSchema"},"annotations":{"type":"object","additionalProperties":{"type":"string"},"description":"optional annotation, not filled up now, just future proofing our code with this."}},"$$ref":"#/definitions/v1Tool"},"prompt":{"description":"The prompt object","type":"object","properties":{"id":{"type":"string","title":"internal id of the prompt","description":"internal id of the prompt"},"name":{"type":"string","title":"Name of the prompt","description":"Name of the prompt"},"description":{"type":"string","title":"Detailed description of what the prompt does and its intended use case","description":"Detailed description of what the prompt does and its intended use case"},"title":{"type":"string","title":"Optional human-readable title for display purposes","description":"Optional human-readable title for display purposes"},"inputSchema":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","title":"Name of the prompt template (e.g., \"summarize\", \"translate\", \"analyze\")","description":"Name of the prompt template (e.g., \"summarize\", \"translate\", \"analyze\")"},"description":{"type":"string","title":"Human-readable description of what the prompt template does\nExplains the purpose and expected output of the prompt","description":"Human-readable description of what the prompt template does\nExplains the purpose and expected output of the prompt"},"required":{"type":"boolean","title":"Whether this argument is mandatory for the prompt to function","description":"Whether this argument is mandatory for the prompt to function"}},"title":"Prompt input schema (no arguments)\nDefines the input structure for prompt templates that generate text responses","description":"Schema for v1PromptInputSchema","$$ref":"#/definitions/v1PromptInputSchema"},"title":"Schema defining the input parameters this prompt accepts","description":"Schema defining the input parameters this prompt accepts"}},"$$ref":"#/definitions/v1Prompt"},"resource":{"description":"The resource object","type":"object","properties":{"id":{"type":"string","title":"Internal id of the resource","description":"Internal id of the resource"},"name":{"type":"string","title":"Name of the resource","description":"Name of the resource"},"description":{"type":"string","title":"Detailed description of what the resource contains and its purpose","description":"Detailed description of what the resource contains and its purpose"},"title":{"type":"string","title":"Optional human-readable title for display purposes","description":"Optional human-readable title for display purposes"},"uri":{"type":"string","title":"URI or path to access the resource (e.g., file path, URL, database reference)","description":"URI or path to access the resource (e.g., file path, URL, database reference)"},"mimeType":{"type":"string","title":"MIME type of the resource content (e.g., \"text/plain\", \"application/json\", \"image/png\")\nUsed to indicate the format and how the resource should be processed","description":"MIME type of the resource content (e.g., \"text/plain\", \"application/json\", \"image/png\")\nUsed to indicate the format and how the resource should be processed"}},"$$ref":"#/definitions/mcp_commonv1Resource"}},"description":"Schema for v1Capability","$$ref":"#/definitions/v1Capability"},"description":"The items array"}},"$$ref":"#/definitions/v1Capabilities"},"scanEnabled":{"type":"boolean","description":"The scanEnabled boolean"},"scanPeriodically":{"type":"boolean","description":"The scanPeriodically boolean"},"authType":{"description":"The authType object","type":"string","enum":["NO_AUTH","API_KEY","OAUTH"],"default":"NO_AUTH","$$ref":"#/definitions/v1AuthType"},"statusInfo":{"description":"The statusInfo object","type":"object","properties":{"message":{"type":"string","title":"Human-readable summary of what went wrong","description":"Human-readable summary of what went wrong"},"errorMessage":{"type":"string","title":"raw error message, we may or may not expose this to end users","description":"raw error message, we may or may not expose this to end users"},"remediationTips":{"type":"array","items":{"type":"string"},"title":"Clear remediation steps or tips customers can follow to resolve the issue","description":"Clear remediation steps or tips customers can follow to resolve the issue"},"occurredAt":{"type":"string","format":"date-time","title":"When the error occurred","description":"When the error occurred"},"contextObject":{"title":"Optional id of the related object (Server, Scan workflow, Registry, etc.)","type":"object","properties":{"id":{"type":"string","title":"Unique identifier for the object","description":"Unique identifier for the object"},"name":{"type":"string","title":"Name of the object if applicable","description":"Name of the object if applicable"},"objectType":{"title":"Type of the object","type":"string","enum":["CONTEXT_OBJECT_TYPE_UNSPECIFIED","MCP_SERVER","MCP_REGISTRY","MCP_SCAN_WORKFLOW"],"default":"CONTEXT_OBJECT_TYPE_UNSPECIFIED","description":"Schema for v1ContextObjectType","$$ref":"#/definitions/v1ContextObjectType"}},"description":"Schema for v1ContextObject","$$ref":"#/definitions/v1ContextObject"},"metadata":{"type":"object","additionalProperties":{"type":"string"},"title":"Additional arbitrary metadata (e.g., internal trace ids, error context)","description":"Additional arbitrary metadata (e.g., internal trace ids, error context)"}},"title":"ErrorInfo message to capture error details","$$ref":"#/definitions/v1ErrorInfo"},"authConfig":{"description":"The authConfig object","type":"object","properties":{"authType":{"description":"The authType object","type":"string","enum":["NO_AUTH","API_KEY","OAUTH"],"default":"NO_AUTH","$$ref":"#/definitions/v1AuthType"},"oauth":{"description":"The oauth object","type":"object","properties":{"clientId":{"type":"string","description":"The clientId string"},"clientSecret":{"type":"string","description":"The clientSecret string"},"authServerUrl":{"type":"string","description":"The authServerUrl string"},"scope":{"type":"string","description":"The scope string"}},"$$ref":"#/definitions/v1OAuthConfig"},"apiKey":{"title":"no_auth doesn't need additional configuration","type":"object","properties":{"headerName":{"type":"string","description":"The headerName string"},"apiKey":{"type":"string","description":"The apiKey string"}},"description":"Schema for v1ApiKeyConfig","$$ref":"#/definitions/v1ApiKeyConfig"}},"$$ref":"#/definitions/v1AuthConfig"},"useSharedAuth":{"type":"boolean","description":"The useSharedAuth boolean"},"sharedAuthConfigId":{"type":"string","description":"The sharedAuthConfigId string"},"repositoryUrl":{"type":"string","description":"The repositoryUrl string"},"sourceIdentifier":{"type":"string","description":"The sourceIdentifier string"},"subfolder":{"type":"string","description":"The subfolder string"},"type":{"type":"array","items":{"type":"string","enum":["MCP_SERVER_NONE","MCP_SERVER_CODE","MCP_SERVER_REMOTE"],"default":"MCP_SERVER_NONE","description":"Schema for v1MCPServerType","$$ref":"#/definitions/v1MCPServerType"},"description":"The type array"},"threatSummary":{"description":"The threatSummary object","type":"object","properties":{"criticalCount":{"type":"integer","format":"int64","title":"Number of critical threats found","description":"Number of critical threats found"},"highCount":{"type":"integer","format":"int64","title":"Number of high severity threats found","description":"Number of high severity threats found"},"mediumCount":{"type":"integer","format":"int64","title":"Number of medium severity threats found","description":"Number of medium severity threats found"},"lowCount":{"type":"integer","format":"int64","title":"Number of low severity threats found","description":"Number of low severity threats found"}},"title":"Summary of threats found during an MCP server scan","$$ref":"#/definitions/v1ScanThreatSummary"}},"description":"Schema for v1MCPServer","$$ref":"#/definitions/v1MCPServer"},"description":"The items array"},"paging":{"description":"The paging object","type":"object","example":{"offset":0,"count":10,"total":50},"properties":{"offset":{"type":"integer","format":"int64","title":"the offset from which the list starts","description":"the offset from which the list starts"},"count":{"type":"integer","format":"int64","title":"the number of items in the list","description":"the number of items in the list"},"total":{"type":"integer","format":"int64","title":"the total number of items in the backend","description":"the total number of items in the backend"}},"title":"Paging","$$ref":"#/definitions/ai_defenseconfig_mgr_public_rest_typesv1Paging"}},"title":"MCPServers","$$ref":"#/definitions/v1MCPServers"}},"description":"Response containing a list of MCP servers.","title":"ListMCPServersResponse","$$ref":"#/definitions/v1ListMCPServersResponse"}},"default":{"description":"An unexpected error response.","schema":{"type":"object","properties":{"code":{"type":"integer","format":"int32","description":"The code integer"},"message":{"type":"string","description":"The message string"},"details":{"type":"array","items":{"type":"object","properties":{"@type":{"type":"string","description":"The @type string"}},"additionalProperties":true,"description":"Contains additional error details specific to the operation","$$ref":"#/definitions/AdditionalErrorDetails"},"description":"The details array"}},"description":"Details about API errors including code, message, and additional details","example":{"code":13,"message":"Internal","details":[]},"$$ref":"#/definitions/ErrorDetails"}}},"parameters":[{"name":"limit","description":"Maximum number of servers to return in response","in":"query","required":false,"type":"integer","format":"int32"},{"name":"offset","description":"Number of servers to skip before starting to return results","in":"query","required":false,"type":"integer","format":"int32"},{"name":"expanded","description":"Deprecated: Whether to return expanded server details","in":"query","required":false,"type":"boolean"},{"name":"serverNameSubstr","description":"Filter for MCP server name substring match","in":"query","required":false,"type":"string"},{"name":"onboardingStatus","description":"Filter by onboarding status values","in":"query","required":false,"type":"array","items":{"type":"string","enum":["ONBOARDING_STATUS_UNSPECIFIED","INPROGRESS","FAILED","COMPLETED"]},"collectionFormat":"multi"},{"name":"transportType","description":"Filter by transport type values","in":"query","required":false,"type":"array","items":{"type":"string","enum":["TRANSPORT_TYPE_UNSPECIFIED","SSE","STREAMABLE","STDIO"]},"collectionFormat":"multi"},{"name":"severity","description":"Filter by threat severity levels","in":"query","required":false,"type":"array","items":{"type":"string","enum":["SEVERITY_UNKNOWN","SAFE","LOW","MEDIUM","HIGH"]},"collectionFormat":"multi"},{"name":"creationDate","description":"Filter by server creation date","in":"query","required":false,"type":"string","format":"date-time"},{"name":"registryId","description":"Optional registry filter to return servers associated with the registry","in":"query","required":false,"type":"string"}],"tags":["MCP Registry (Beta)"],"__originalOperationId":"McpRegistryService_ListMCPServers","consumes":["application/json"],"produces":["application/json"],"security":[{"ApiKeyAuth":[]}],"method":"get","path":"/mcp/servers"}}