Storm MCP · Schema

KnownMcpServer

Static catalog definition of an available MCP server, loaded from known-mcp-servers.json.

CompanyCloudIntegrationAutomationSecurityLow-Code

Properties

Name Type Description
oAuthCreationMethod object
images nullarray Gets or sets the images for the MCP server.
documentation object
systemRequirements object
addedDate nullstring Gets or sets the date when the app was added to the catalog.
permissionDescriptions nullobject Gets or sets the permission descriptions mapping permission names to their descriptions.
landingPage object
videos nullarray Gets or sets the tutorial videos.
links object
credentialProviderConfigIds nullobject Gets or sets the seeded `CredentialProviderConfigId`s for this server, keyed by UCS realm name (e.g. `storm-mcp`, `airia-platform`). MCPG-816: source of truth for the running realm's `CredentialProvid
id string Gets or sets the unique identifier for the server.
provider object Gets or sets the known MCP server provider identifier.
type object Gets or sets the server type (Remote, Sandbox, Hosted, McpLink).
name string Gets or sets the display name of the server.
description string Gets or sets the brief description of the server.
scopes array Gets or sets the OAuth scopes required by the server.
authType array Gets or sets the supported authentication types.
tags array Gets or sets the tags associated with the server.
category string Gets or sets the category of the server.
status object Gets or sets the catalog status of the server.
availability object Gets or sets the availability of the server. Defaults to General if not specified.
featured boolean Gets or sets a value indicating whether this server is featured. Featured servers are curated, high-profile integrations highlighted in the catalog.
longDescription nullstring Gets or sets the detailed description of the server.
features nullarray Gets or sets the list of key features.
ui object
remoteConfig object
requestTimeoutSeconds integerstring Gets or sets the request timeout in seconds for waiting for responses from the server. Default: 60 seconds. Set higher for servers that may take longer to process requests.
testEndpoint object
View JSON Schema on GitHub

JSON Schema

stormmcp-known-mcp-server-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/stormmcp/main/json-schema/stormmcp-known-mcp-server-schema.json",
  "title": "KnownMcpServer",
  "description": "Static catalog definition of an available MCP server, loaded from known-mcp-servers.json.",
  "x-generated": "2026-10-19",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/stormmcp-openapi.json#/components/schemas/KnownMcpServer",
  "type": "object",
  "properties": {
    "oAuthCreationMethod": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the OAuth creation method for OAuth-enabled servers.\nDetermines whether OAuth credentials are obtained via DCR (automatic) or Manual (user-provided).",
          "$ref": "#/$defs/OAuthCreationMethod"
        }
      ]
    },
    "images": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "$ref": "#/$defs/McpImage"
      },
      "description": "Gets or sets the images for the MCP server."
    },
    "documentation": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the documentation links for the MCP server.",
          "$ref": "#/$defs/McpDocumentation"
        }
      ]
    },
    "systemRequirements": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the system requirements for locally installed apps.",
          "$ref": "#/$defs/McpSystemRequirements"
        }
      ]
    },
    "addedDate": {
      "type": [
        "null",
        "string"
      ],
      "description": "Gets or sets the date when the app was added to the catalog."
    },
    "permissionDescriptions": {
      "type": [
        "null",
        "object"
      ],
      "additionalProperties": {
        "type": "string"
      },
      "description": "Gets or sets the permission descriptions mapping permission names to their descriptions."
    },
    "landingPage": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the landing page information.",
          "$ref": "#/$defs/LandingPage"
        }
      ]
    },
    "videos": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "$ref": "#/$defs/Video"
      },
      "description": "Gets or sets the tutorial videos."
    },
    "links": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the various links related to the app.",
          "$ref": "#/$defs/Links"
        }
      ]
    },
    "credentialProviderConfigIds": {
      "type": [
        "null",
        "object"
      ],
      "additionalProperties": {
        "type": "string",
        "format": "uuid"
      },
      "description": "Gets or sets the seeded `CredentialProviderConfigId`s for this server,\nkeyed by UCS realm name (e.g. `storm-mcp`, `airia-platform`).\nMCPG-816: source of truth for the running realm's\n`CredentialProviderConfigId` for the legacy hosted providers\n(MicrosoftGraph, GoogleSuite, Slack, Atlassian) that pre-date the\n`CredentialProviderConfigId` model. The closed provider allow-list\nand the McpServerType.Hosted structural invariant are\nenforced by `known-mcp-servers.schema.json` at edit / CI time;\n`SeededCredentialProviderConfigResolver` re-checks the structural\ninvariant at request time and surfaces malformed seeds via\nInvalidSeed. Never copied\nonto the integration row; readers consult this map only via the\nresolver service, which has the running realm pre-bound."
    },
    "id": {
      "type": "string",
      "description": "Gets or sets the unique identifier for the server.",
      "format": "uuid"
    },
    "provider": {
      "description": "Gets or sets the known MCP server provider identifier.",
      "$ref": "#/$defs/KnownMcpProvider"
    },
    "type": {
      "description": "Gets or sets the server type (Remote, Sandbox, Hosted, McpLink).",
      "$ref": "#/$defs/McpServerType"
    },
    "name": {
      "type": "string",
      "description": "Gets or sets the display name of the server."
    },
    "description": {
      "type": "string",
      "description": "Gets or sets the brief description of the server."
    },
    "scopes": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Gets or sets the OAuth scopes required by the server."
    },
    "authType": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/McpServerAuthType"
      },
      "description": "Gets or sets the supported authentication types."
    },
    "tags": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Gets or sets the tags associated with the server."
    },
    "category": {
      "type": "string",
      "description": "Gets or sets the category of the server."
    },
    "status": {
      "description": "Gets or sets the catalog status of the server.",
      "$ref": "#/$defs/McpServerStatus"
    },
    "availability": {
      "description": "Gets or sets the availability of the server.\nDefaults to General if not specified.",
      "$ref": "#/$defs/ServerAvailability"
    },
    "featured": {
      "type": "boolean",
      "description": "Gets or sets a value indicating whether this server is featured.\nFeatured servers are curated, high-profile integrations highlighted in the catalog."
    },
    "longDescription": {
      "type": [
        "null",
        "string"
      ],
      "description": "Gets or sets the detailed description of the server."
    },
    "features": {
      "type": [
        "null",
        "array"
      ],
      "items": {
        "type": "string"
      },
      "description": "Gets or sets the list of key features."
    },
    "ui": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the UI configuration for the server.",
          "$ref": "#/$defs/UiConfiguration"
        }
      ]
    },
    "remoteConfig": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the remote server configuration.\nContains Uri, Transport, and other remote-specific settings.",
          "$ref": "#/$defs/RemoteServerConfig"
        }
      ]
    },
    "requestTimeoutSeconds": {
      "pattern": "^-?(?:0|[1-9]\\d*)$",
      "type": [
        "integer",
        "string"
      ],
      "description": "Gets or sets the request timeout in seconds for waiting for responses from the server.\nDefault: 60 seconds. Set higher for servers that may take longer to process requests.",
      "format": "int32"
    },
    "testEndpoint": {
      "oneOf": [
        {
          "type": "null"
        },
        {
          "description": "Gets or sets the test endpoint configuration for credential validation.",
          "$ref": "#/$defs/TestEndpointConfig"
        }
      ]
    }
  },
  "$defs": {
    "KnownMcpProvider": {
      "type": "integer",
      "description": "An MCP Server provider type."
    },
    "LandingPage": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Gets or sets the URL of the landing page."
        },
        "screenshot": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the screenshot URL for the landing page."
        }
      },
      "description": "Landing page information for the MCP server."
    },
    "Links": {
      "type": "object",
      "properties": {
        "mainSite": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the main site URL."
        },
        "documentation": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the documentation URL."
        },
        "apiKeyCreation": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the API key creation URL."
        }
      },
      "description": "Various links related to the MCP server."
    },
    "McpDocumentation": {
      "type": "object",
      "properties": {
        "official": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the official documentation URL."
        },
        "internal": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the internal documentation path."
        },
        "setup": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the setup guide path."
        }
      },
      "description": "Documentation links."
    },
    "McpImage": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string",
          "description": "Gets or sets the image URL."
        },
        "alt": {
          "type": "string",
          "description": "Gets or sets the alt text for the image."
        },
        "caption": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the optional caption for the image."
        }
      },
      "description": "Image for the MCP server gallery."
    },
    "McpServerAuthType": {
      "type": "integer",
      "description": "An enumeration representing the authentication types for MCP servers."
    },
    "McpServerStatus": {
      "enum": [
        "Available",
        "ComingSoon",
        "Beta",
        "Deprecated",
        "Custom"
      ],
      "description": "Availability status for MCP servers."
    },
    "McpServerType": {
      "type": "integer",
      "description": "An mcp server type enumeration."
    },
    "McpSystemRequirements": {
      "type": "object",
      "properties": {
        "os": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the supported operating systems."
        },
        "runtime": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the required runtime."
        },
        "minVersion": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the minimum runtime version."
        }
      },
      "description": "System requirements for locally installed applications."
    },
    "OAuthConfig": {
      "type": "object",
      "properties": {
        "authorizationEndpoint": {
          "type": "string",
          "description": "Gets or sets the OAuth authorization endpoint URL."
        },
        "tokenEndpoint": {
          "type": "string",
          "description": "Gets or sets the OAuth token endpoint URL."
        },
        "revokeEndpoint": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the OAuth token revocation endpoint URL (optional)."
        },
        "refreshTokenEndpoint": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the OAuth refresh token endpoint URL (optional).\nWARNING: User Credential Store currently does not support separate refresh endpoints."
        },
        "grantType": {
          "type": "string",
          "description": "Gets or sets the grant type (default: Authorization Code with PKCE)."
        },
        "scopeSeparator": {
          "type": "string",
          "description": "Gets or sets the scope separator character (default: space)."
        },
        "tokenEndpointAuthMethod": {
          "type": "string",
          "description": "Gets or sets the token endpoint authentication method."
        },
        "grantTypesSupported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the grant types supported (default: [\"authorization_code\"])."
        },
        "responseTypesSupported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the response types supported (default: [\"code\"])."
        },
        "codeChallengeMethodsSupported": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the code challenge methods supported for PKCE (e.g., \"S256\", \"plain\")."
        },
        "authorizationParameters": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets additional parameters to include in authorization requests."
        },
        "tokenParameters": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets additional parameters to include in token requests."
        },
        "tokenHeaders": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets additional headers to include in token requests."
        }
      },
      "description": "OAuth-specific configuration for Manual OAuth providers.\nContains OAuth endpoint URLs and behavior configuration."
    },
    "OAuthCreationMethod": {
      "type": "integer"
    },
    "RemoteServerConfig": {
      "type": "object",
      "properties": {
        "transport": {
          "type": "string",
          "description": "Gets or sets the transport protocol (e.g., \"sse\" for Server-Sent Events)."
        },
        "connectionTimeoutSeconds": {
          "pattern": "^-?(?:0|[1-9]\\d*)$",
          "type": [
            "integer",
            "string"
          ],
          "description": "Gets or sets the connection timeout in seconds.",
          "format": "int32"
        },
        "autoReconnect": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to automatically reconnect on disconnect."
        },
        "maxReconnectAttempts": {
          "pattern": "^-?(?:0|[1-9]\\d*)$",
          "type": [
            "integer",
            "string"
          ],
          "description": "Gets or sets the maximum number of reconnection attempts.",
          "format": "int32"
        },
        "endpointConfig": {
          "type": "object",
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets additional endpoint-specific configuration."
        },
        "uri": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the remote server URI."
        },
        "uriVariables": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "$ref": "#/$defs/UriVariable"
          },
          "description": "Gets or sets the URI variables that can be substituted in the URI.\nUsed for dynamic parameterization (e.g., {zone} for region, {token} for API keys)."
        },
        "headers": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets HTTP headers to be sent with requests.\nSupports both static headers and dynamic placeholders like {AuthToken} and {BasicAuth:VarName}.\nFor auth-type-specific headers (e.g., different Authorization formats), use AuthHeaders instead."
        },
        "oAuth": {
          "oneOf": [
            {
              "type": "null"
            },
            {
              "description": "Gets or sets OAuth-specific configuration for Manual OAuth providers.\nContains OAuth endpoints and behavior configuration.",
              "$ref": "#/$defs/OAuthConfig"
            }
          ]
        },
        "authHeaders": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "description": "Gets or sets auth-type-specific HTTP headers.\nKeys are auth types (e.g., \"ApiKey\", \"OAuth\"), values are header dictionaries.\nWhen a specific auth type is selected, headers from AuthHeaders[authType] are merged with/override base Headers.\nThis allows different Authorization header formats per auth type (e.g., \"Basic {AuthToken}\" for ApiKey, \"Bearer {AuthToken}\" for OAuth)."
        },
        "bodyParams": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets parameters to inject into request bodies for MCP-Link servers.\nUsed for APIs that require authentication in the request body (e.g., Canny's apiKey parameter).\nSupports {AuthToken} placeholder for dynamic auth token injection.\nOnly applies to McpLink server types - regular remote servers ignore this property."
        },
        "oAuthResourceUrl": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the OAuth protected resource URL for DCR registration.\nWhen set, this URL is sent as `ResourceUrl` to UCS instead of string? RemoteServerConfig.Uri,\nenabling RFC 9728 (Protected Resource Metadata) discovery against an external OAuth provider\n(e.g., Atlassian) while routing MCP traffic through the internal mcp-link service."
        },
        "useAcc": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether to route traffic through the ACC connector.\nWhen true, the gateway routes traffic for this server through the tenant's on-premise\nACC connector instead of direct HTTP. Transport mechanism TBD (MCPG-455 Phase 3)."
        },
        "schemaHeaders": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets HTTP headers serialized into mcp-link's `?sh=` query parameter for\nOpenAPI spec fetching at session start (MCPG-756). Values may contain\n`{SchemaCredential:FieldName}` placeholders, resolved at factory time against the\nbinder declared by string? RemoteServerConfig.SchemaCredentialProviderName and the per-tenant\nSchemaCredentialBinderId on the integration row. Only applies to McpLink server types."
        },
        "schemaCredentialProviderName": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the UCS provider name used to resolve the secondary spec-fetch credential\n(e.g. `\"GithubPersonalAccessToken\"`). Free-form string matching a provider in UCS\nprovider-definitions.json. The binder ID is selected per-tenant at integration-config\ntime and stored on the ProviderIntegration row, sibling to `CredentialProviderConfigId`.\nOnly meaningful when Dictionary<string, string>? RemoteServerConfig.SchemaHeaders contains a `{SchemaCredential:*}`\nplaceholder. Only applies to McpLink server types."
        },
        "accGroupId": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the ACC connector group to route traffic through when bool RemoteServerConfig.UseAcc is true.\nNull means \"any connector for this tenant\" (tenant-default routing).\nIgnored when bool RemoteServerConfig.UseAcc is false.",
          "format": "uuid"
        },
        "openApiYamlUrl": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the customer-supplied OpenAPI YAML URL for SpecLink (private-spec) custom servers (MCPG-803).\nWhen set, the gateway infers `Type = McpLink` server-side and builds the canonical mcp-link URI\nfrom this value + string? RemoteServerConfig.UpstreamApiBaseUrl. Ignored when both are null. Only meaningful on\ncustom servers created via the SpecLink wizard; seed entries use string? RemoteServerConfig.Uri directly."
        },
        "upstreamApiBaseUrl": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the upstream API base URL that the YAML at string? RemoteServerConfig.OpenApiYamlUrl describes (MCPG-803).\nMay contain `{Variable}` placeholders (e.g. `https://{Domain}.atlassian.net`) whose values are\nstored in Dictionary<string, string>? RemoteServerConfig.UpstreamVariableValues and substituted gateway-side at connection-build time\n(mcp-link does not expand base-URL variables). Used together with string? RemoteServerConfig.OpenApiYamlUrl to build\nthe canonical mcp-link URI server-side."
        },
        "upstreamVariableValues": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the values for the `{Variable}` placeholders in string? RemoteServerConfig.UpstreamApiBaseUrl\n(MCPG-803), keyed by variable name without braces (e.g. `{\"CloudId\": \"abc-123\"}`). Unlike the\nURL fields these <b>are persisted</b> — the stored string? RemoteServerConfig.Uri only carries the unresolved\ntemplate, so the values are not derivable from it. Substituted into the canonical URI at\nconnection-build time by `SpecLinkUriResolver`. Only meaningful for SpecLink (McpLink) servers."
        },
        "skillRepoUrl": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the repository URL exposed through mcp-link skills mode.\nThe current mcp-link contract accepts public github.com URLs.\nTransport-only: re-derived from string? RemoteServerConfig.Uri on responses and not persisted."
        },
        "skillRepoRef": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the optional Git ref used for skill discovery.\nWhen omitted, mcp-link resolves the repository's default branch.\nTransport-only: re-derived from string? RemoteServerConfig.Uri on responses and not persisted."
        },
        "skillRepoPath": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the optional repository-relative subpath used for skill discovery.\nTransport-only: re-derived from string? RemoteServerConfig.Uri on responses and not persisted."
        },
        "skillRepoProvider": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the repository host backing a SkillLink server, from\nSkillRepoProviders. Defaults to\nstring SkillRepoProviders.GitHub when a SkillLink shape is saved without one."
        },
        "sourceRef": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the source ref the administrator configured for a SpecLink or SkillLink server\n(MCPG-1891): the branch or tag name (for example `main`) that string? RemoteServerConfig.SourceRevision\nwas resolved from. Null for a content-hash pin (a non-GitHub spec URL) and for an unpinned row."
        },
        "sourceRevision": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the pinned source revision (MCPG-1891): the full 40-hex commit SHA for a GitHub\nsource, or the lowercase hex SHA-256 of the fetched document for any other https spec URL.\nThe canonical string? RemoteServerConfig.Uri embeds this value (as `ref=` inside `s=`, as the\nskills `ref=`, or as the `v=` query parameter), which is what makes an explicit\nrefresh a guaranteed cache miss on every mcp-link replica. Null when the row is unpinned."
        },
        "sourceResolvedAt": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the instant string? RemoteServerConfig.SourceRevision was last resolved (MCPG-1891).\nNull when the row is unpinned.",
          "format": "date-time"
        }
      },
      "description": "Template configuration for remote MCP servers, loaded from known-mcp-servers.json."
    },
    "ServerAvailability": {
      "enum": [
        "General",
        "Restricted"
      ],
      "description": "Enumeration for MCP server availability levels."
    },
    "TestEndpointConfig": {
      "type": "object",
      "properties": {
        "uri": {
          "type": "string",
          "description": "Gets or sets the URI of the test endpoint.\nSupports variable substitution (e.g., {AuthToken})."
        },
        "method": {
          "type": "string",
          "description": "Gets or sets the HTTP method to use (GET, POST, etc.)."
        },
        "headers": {
          "type": [
            "null",
            "object"
          ],
          "additionalProperties": {
            "type": "string"
          },
          "description": "Gets or sets the headers to include in the request.\nSupports variable substitution in values (e.g., \"Bearer {AuthToken}\")."
        },
        "expectedStatusCodes": {
          "type": "array",
          "items": {
            "pattern": "^-?(?:0|[1-9]\\d*)$",
            "type": [
              "integer",
              "string"
            ],
            "format": "int32"
          },
          "description": "Gets or sets the expected HTTP status codes that indicate success."
        }
      },
      "description": "Configuration for testing credentials against an external API endpoint.\nUsed to validate authentication before establishing a full MCP connection."
    },
    "UiConfiguration": {
      "type": "object",
      "properties": {
        "icon": {
          "type": "string",
          "description": "Gets or sets the React Icons component name."
        },
        "colorClass": {
          "type": "string",
          "description": "Gets or sets the Tailwind CSS text color class."
        },
        "bgGradient": {
          "type": "string",
          "description": "Gets or sets the Tailwind CSS gradient classes."
        }
      },
      "description": "UI configuration for the MCP server display."
    },
    "UriVariable": {
      "type": "object",
      "properties": {
        "description": {
          "type": "string",
          "description": "Gets or sets the human-readable description of this variable."
        },
        "required": {
          "type": "boolean",
          "description": "Gets or sets a value indicating whether this variable is required."
        },
        "options": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the available options for this variable (e.g., [\"eu\", \"us\"] for region).\nOnly applicable for variables with predefined choices."
        },
        "defaultValue": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the default value for this variable."
        },
        "placeholder": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the placeholder text to show in the UI."
        },
        "helpText": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets additional help text for this variable."
        },
        "type": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the variable type hint for UI rendering (e.g., \"string\", \"integer\", \"url\").\nUsed for UI validation and input control selection, but all values are ultimately strings."
        },
        "scope": {
          "type": [
            "null",
            "array"
          ],
          "items": {
            "type": "string"
          },
          "description": "Gets or sets the authentication types this variable applies to.\nIf null or empty, the variable applies to all authentication types (backward compatible).\nIf specified, the variable is only shown/validated for the listed auth types (e.g., [\"ApiKey\"], [\"OAuth\"], or [\"ApiKey\", \"OAuth\"])."
        },
        "sharing": {
          "description": "Gets or sets a value indicating whether this variable may be inherited onto another\nuser's Personal overlay at read time (MCPG-1609). The overlay runs only for OAuth/Fhir\nPersonal target rows. Omitted / default is UriVariableSharing.Shared.\nOnly UriVariableSharing.Personal is written in the seed.\nDoes not constrain a Tenant-level row, which is shared by design.\nThe name Scope is taken on this model for auth-type filtering.",
          "$ref": "#/$defs/UriVariableSharing"
        }
      },
      "description": "Represents a URI variable that can be substituted in remote MCP server URIs.\nUsed for dynamic parameterization of server endpoints (e.g., region, API keys).\nAll variables are treated as strings for URL substitution."
    },
    "UriVariableSharing": {
      "enum": [
        "Shared",
        "Personal"
      ],
      "description": "Whether a catalog URI variable may be inherited onto another user's Personal overlay\nat read time (MCPG-1609). The overlay runs only for OAuth/Fhir Personal target rows.\nAbsent / default is UriVariableSharing.Shared so hostname and instance variables inherit\nwithout marking every seed entry. Only UriVariableSharing.Personal is written in seed.\nDoes not constrain a Tenant-level row, which is shared by design."
    },
    "Video": {
      "type": "object",
      "properties": {
        "title": {
          "type": "string",
          "description": "Gets or sets the title of the video."
        },
        "url": {
          "type": "string",
          "description": "Gets or sets the URL of the video."
        },
        "type": {
          "type": "string",
          "description": "Gets or sets the type of video (e.g., \"youtube\")."
        },
        "embedUrl": {
          "type": [
            "null",
            "string"
          ],
          "description": "Gets or sets the embed URL for the video."
        }
      },
      "description": "Video tutorial information."
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/stormmcp-known-mcp-server"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.