openapi: 3.1.0 info: title: APIContext MCP Monitors API description: API for the APImetrics platform This document is the 'MCP Monitors' slice of the APIContext (APImetrics) platform OpenAPI published at https://client.apimetrics.io/openapi.json. version: v2026-09-02 contact: name: APIContext Support url: https://apicontext.io/ email: support@apicontext.com license: name: Apache 2.0 url: https://www.apache.org/licenses/LICENSE-2.0.html termsOfService: http://apimetrics.io/tos/ servers: - url: https://client.apimetrics.io description: APIContext (APImetrics) platform API tags: - name: MCP Monitors description: ' Manage MCP Monitors. MCP Monitors test MCP servers by running a configurable sequence of steps (e.g. listing tools, calling a tool) against a target HTTP(S) URL. ' paths: /api/3/monitors/mcp/: get: tags: - MCP Monitors summary: List all MCP Monitors for a project operationId: list-mcp-monitors security: - OAuth2: [] - ApiKey: [] parameters: - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/McpTestSetupListResults' examples: list: summary: A project's MCP monitors value: results: - id: ahJzfmFwaW1ldHJpY3MtcHJvZHIWCxILTWNwVGVzdFNldHVwGICAgICA meta: monitor_type: mcp name: Check tools endpoint tags: [] domain: mcp.example.com created: '2025-01-15T10:00:00Z' last_update: '2025-01-15T10:00:00Z' owner: ahJzfmFwaW1ldHJpY3MtcHJvZHILCxIEVXNlchhiAgI workspace: global setup: url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' post: tags: - MCP Monitors summary: Create a new MCP Monitor operationId: create-mcp-monitor security: - OAuth2: [] - ApiKey: [] parameters: - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api3__monitors__mcp__api_models__CreateRequest' examples: list_tools: summary: Monitor that lists available tools value: name: Check tools endpoint tags: [] workspace: global url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools call_tool: summary: Monitor that calls a specific tool value: name: Echo health check tags: [] workspace: global url: https://mcp.example.com/sse overall_timeout_ms: 60000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools - timeout_ms: 15000 wait_ms: 0 step_type: call_tool tool_name: echo parameters: message: ping responses: '201': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/McpTestSetupRepr' examples: list_tools: summary: Monitor that lists available MCP tools value: id: ahJzfmFwaW1ldHJpY3MtcHJvZHIWCxILTWNwVGVzdFNldHVwGICAgICA meta: monitor_type: mcp name: Check tools endpoint tags: [] domain: mcp.example.com created: '2025-01-15T10:00:00Z' last_update: '2025-01-15T10:00:00Z' owner: ahJzfmFwaW1ldHJpY3MtcHJvZHILCxIEVXNlchhiAgI workspace: global setup: url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' /api/3/monitors/mcp/{monitor_id}: get: tags: - MCP Monitors summary: Read an MCP Monitor by ID operationId: read-mcp-monitor security: - OAuth2: [] - ApiKey: [] parameters: - name: monitor_id in: path required: true schema: type: string pattern: ^[A-Za-z0-9_-]+$ title: MCP Monitor ID - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/McpTestSetupRepr' examples: list_tools: summary: Monitor that lists available MCP tools value: id: ahJzfmFwaW1ldHJpY3MtcHJvZHIWCxILTWNwVGVzdFNldHVwGICAgICA meta: monitor_type: mcp name: Check tools endpoint tags: [] domain: mcp.example.com created: '2025-01-15T10:00:00Z' last_update: '2025-01-15T10:00:00Z' owner: ahJzfmFwaW1ldHJpY3MtcHJvZHILCxIEVXNlchhiAgI workspace: global setup: url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' put: tags: - MCP Monitors summary: Update an existing MCP Monitor operationId: update-mcp-monitor security: - OAuth2: [] - ApiKey: [] parameters: - name: monitor_id in: path required: true schema: type: string pattern: ^[A-Za-z0-9_-]+$ title: MCP Monitor ID - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api3__monitors__mcp__api_models__CreateRequest' examples: list_tools: summary: Monitor that lists available tools value: name: Check tools endpoint tags: [] workspace: global url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools call_tool: summary: Monitor that calls a specific tool value: name: Echo health check tags: [] workspace: global url: https://mcp.example.com/sse overall_timeout_ms: 60000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools - timeout_ms: 15000 wait_ms: 0 step_type: call_tool tool_name: echo parameters: message: ping responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/McpTestSetupRepr' examples: list_tools: summary: Monitor that lists available MCP tools value: id: ahJzfmFwaW1ldHJpY3MtcHJvZHIWCxILTWNwVGVzdFNldHVwGICAgICA meta: monitor_type: mcp name: Check tools endpoint tags: [] domain: mcp.example.com created: '2025-01-15T10:00:00Z' last_update: '2025-01-15T10:00:00Z' owner: ahJzfmFwaW1ldHJpY3MtcHJvZHILCxIEVXNlchhiAgI workspace: global setup: url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' patch: tags: - MCP Monitors summary: Patch an existing MCP Monitor operationId: patch-mcp-monitor security: - OAuth2: [] - ApiKey: [] parameters: - name: monitor_id in: path required: true schema: type: string pattern: ^[A-Za-z0-9_-]+$ title: MCP Monitor ID - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/api3__monitors__mcp__api_models__UpdateRequest' examples: rename: summary: Rename the monitor value: name: Updated monitor name replace_steps: summary: Replace steps with a tool call sequence value: steps: - timeout_ms: 10000 wait_ms: 0 - timeout_ms: 15000 wait_ms: 0 tool_name: echo parameters: message: ping responses: '200': description: Successful Response content: application/json: schema: $ref: '#/components/schemas/McpTestSetupRepr' examples: list_tools: summary: Monitor that lists available MCP tools value: id: ahJzfmFwaW1ldHJpY3MtcHJvZHIWCxILTWNwVGVzdFNldHVwGICAgICA meta: monitor_type: mcp name: Check tools endpoint tags: [] domain: mcp.example.com created: '2025-01-15T10:00:00Z' last_update: '2025-01-15T10:00:00Z' owner: ahJzfmFwaW1ldHJpY3MtcHJvZHILCxIEVXNlchhiAgI workspace: global setup: url: https://mcp.example.com/sse overall_timeout_ms: 30000 steps: - timeout_ms: 10000 wait_ms: 0 step_type: list_tools '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' delete: tags: - MCP Monitors summary: Delete an existing MCP Monitor operationId: delete-mcp-monitor security: - OAuth2: [] - ApiKey: [] parameters: - name: monitor_id in: path required: true schema: type: string pattern: ^[A-Za-z0-9_-]+$ title: MCP Monitor ID - name: apimetrics-project-id in: header required: false schema: anyOf: - type: string - type: 'null' title: Apimetrics-Project-Id responses: '204': description: Successful Response '422': description: Validation Error content: application/json: schema: $ref: '#/components/schemas/HTTPValidationError' components: securitySchemes: OAuth2: type: oauth2 flows: authorizationCode: scopes: openid: OpenID Connect identity profile: User profile email: User email address authorizationUrl: https://auth.apimetrics.io/authorize?audience=https://client.apimetrics.io tokenUrl: https://auth.apimetrics.io/oauth/token ApiKey: type: apiKey in: header name: X-Api-Key schemas: HTTPValidationError: properties: detail: items: $ref: '#/components/schemas/ValidationError' type: array title: Detail type: object title: HTTPValidationError McpCallToolStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: call_tool title: Step Type default: call_tool tool_name: type: string title: Tool Name description: Name of the tool to call parameters: anyOf: - additionalProperties: true type: object - type: 'null' title: Parameters description: Arguments to provide for the tool call additionalProperties: false type: object required: - timeout_ms - wait_ms - tool_name title: McpCallToolStepRepr McpGetPromptStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: get_prompt title: Step Type default: get_prompt prompt_name: type: string title: Prompt Name description: Name of the prompt to get parameters: anyOf: - additionalProperties: true type: object - type: 'null' title: Parameters description: Arguments to provide to the prompt template additionalProperties: false type: object required: - timeout_ms - wait_ms - prompt_name title: McpGetPromptStepRepr McpListPromptsStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: list_prompts title: Step Type default: list_prompts additionalProperties: false type: object required: - timeout_ms - wait_ms title: McpListPromptsStepRepr McpListResourceTemplatesStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: list_resource_templates title: Step Type default: list_resource_templates additionalProperties: false type: object required: - timeout_ms - wait_ms title: McpListResourceTemplatesStepRepr McpListResourcesStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: list_resources title: Step Type default: list_resources additionalProperties: false type: object required: - timeout_ms - wait_ms title: McpListResourcesStepRepr McpListToolsStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: list_tools title: Step Type default: list_tools additionalProperties: false type: object required: - timeout_ms - wait_ms title: McpListToolsStepRepr McpReadResourceStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: read_resource title: Step Type default: read_resource resource_uri: type: string title: Resource Uri description: URI of the resource to read additionalProperties: false type: object required: - timeout_ms - wait_ms - resource_uri title: McpReadResourceStepRepr McpTestSetupListResults: properties: results: items: $ref: '#/components/schemas/McpTestSetupRepr' type: array title: Results type: object required: - results title: McpTestSetupListResults McpTestSetupRepr: properties: id: type: string title: Id meta: $ref: '#/components/schemas/models__mcp_test_setup___MetaRepr' setup: $ref: '#/components/schemas/models__mcp_test_setup___SetupRepr' type: object required: - id - meta - setup title: McpTestSetupRepr McpWaitStepRepr: properties: timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Timeout Ms description: Step timeout (milliseconds) wait_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Wait Ms description: Time to wait after finishing step (milliseconds) step_type: type: string const: wait title: Step Type default: wait additionalProperties: false type: object required: - timeout_ms - wait_ms title: McpWaitStepRepr ValidationError: properties: loc: items: anyOf: - type: string - type: integer type: array title: Location msg: type: string title: Message type: type: string title: Error Type input: title: Input ctx: type: object title: Context type: object required: - loc - msg - type title: ValidationError api3__monitors__mcp__api_models__CreateRequest: properties: name: type: string title: Name description: Display name for the monitor description: anyOf: - type: string - type: 'null' title: Description description: Optional description for the monitor tags: items: type: string type: array title: Tags description: Tags to apply to the monitor for grouping or advanced features workspace: type: string title: Workspace description: Workspace to assign the monitor to default: global url: type: string title: Url description: Target URL for the monitor overall_timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Overall Timeout Ms description: Session timeout for the monitor (milliseconds) default: 30000 steps: items: oneOf: - $ref: '#/components/schemas/McpListToolsStepRepr' - $ref: '#/components/schemas/McpCallToolStepRepr' - $ref: '#/components/schemas/McpListResourcesStepRepr' - $ref: '#/components/schemas/McpListResourceTemplatesStepRepr' - $ref: '#/components/schemas/McpReadResourceStepRepr' - $ref: '#/components/schemas/McpListPromptsStepRepr' - $ref: '#/components/schemas/McpGetPromptStepRepr' - $ref: '#/components/schemas/McpWaitStepRepr' discriminator: propertyName: step_type mapping: call_tool: '#/components/schemas/McpCallToolStepRepr' get_prompt: '#/components/schemas/McpGetPromptStepRepr' list_prompts: '#/components/schemas/McpListPromptsStepRepr' list_resource_templates: '#/components/schemas/McpListResourceTemplatesStepRepr' list_resources: '#/components/schemas/McpListResourcesStepRepr' list_tools: '#/components/schemas/McpListToolsStepRepr' read_resource: '#/components/schemas/McpReadResourceStepRepr' wait: '#/components/schemas/McpWaitStepRepr' type: array minItems: 1 title: Steps description: Steps to execute during MCP session auth_id: anyOf: - type: string - type: 'null' title: Auth Id description: Auth Settings to use with the monitor token_id: anyOf: - type: string - type: 'null' title: Token Id description: Auth Token to use with the monitor type: object required: - name - url title: CreateRequest api3__monitors__mcp__api_models__UpdateRequest: properties: name: anyOf: - type: string - type: 'null' title: Name description: Display name for the monitor description: anyOf: - type: string - type: 'null' title: Description description: Optional description for the monitor tags: anyOf: - items: type: string type: array - type: 'null' title: Tags description: Tags to apply to the monitor for grouping or advanced features workspace: type: string title: Workspace description: Workspace to assign the monitor to default: global url: anyOf: - type: string - type: 'null' title: Url description: Target URL for the monitor overall_timeout_ms: anyOf: - type: integer maximum: 120000.0 minimum: 0.0 - type: 'null' title: Overall Timeout Ms description: Session timeout for the monitor in milliseconds steps: anyOf: - items: oneOf: - $ref: '#/components/schemas/McpListToolsStepRepr' - $ref: '#/components/schemas/McpCallToolStepRepr' - $ref: '#/components/schemas/McpListResourcesStepRepr' - $ref: '#/components/schemas/McpListResourceTemplatesStepRepr' - $ref: '#/components/schemas/McpReadResourceStepRepr' - $ref: '#/components/schemas/McpListPromptsStepRepr' - $ref: '#/components/schemas/McpGetPromptStepRepr' - $ref: '#/components/schemas/McpWaitStepRepr' discriminator: propertyName: step_type mapping: call_tool: '#/components/schemas/McpCallToolStepRepr' get_prompt: '#/components/schemas/McpGetPromptStepRepr' list_prompts: '#/components/schemas/McpListPromptsStepRepr' list_resource_templates: '#/components/schemas/McpListResourceTemplatesStepRepr' list_resources: '#/components/schemas/McpListResourcesStepRepr' list_tools: '#/components/schemas/McpListToolsStepRepr' read_resource: '#/components/schemas/McpReadResourceStepRepr' wait: '#/components/schemas/McpWaitStepRepr' type: array minItems: 1 - type: 'null' title: Steps description: Steps to execute during MCP session auth_id: anyOf: - type: string - type: 'null' title: Auth Id description: Auth Settings to use with the monitor token_id: anyOf: - type: string - type: 'null' title: Token Id description: Auth Token to use with the monitor type: object title: UpdateRequest models__mcp_test_setup___MetaRepr: properties: monitor_type: type: string enum: - api - www - mcp title: Monitor Type default: mcp name: type: string title: Name description: Display name for the monitor description: anyOf: - type: string - type: 'null' title: Description description: Optional description for the monitor tags: items: type: string type: array title: Tags description: Tags to apply to the monitor for grouping or advanced features domain: type: string title: Domain description: Domain of the target URL for this monitor created: type: string format: date-time title: Created last_update: type: string format: date-time title: Last Update owner: type: string title: Owner workspace: type: string title: Workspace type: object required: - name - tags - domain - created - last_update - owner - workspace title: _MetaRepr models__mcp_test_setup___SetupRepr: properties: url: type: string title: Url description: Target URL for this monitor overall_timeout_ms: type: integer maximum: 120000.0 minimum: 0.0 title: Overall Timeout Ms description: Session timeout for the monitor (milliseconds) steps: items: oneOf: - $ref: '#/components/schemas/McpListToolsStepRepr' - $ref: '#/components/schemas/McpCallToolStepRepr' - $ref: '#/components/schemas/McpListResourcesStepRepr' - $ref: '#/components/schemas/McpListResourceTemplatesStepRepr' - $ref: '#/components/schemas/McpReadResourceStepRepr' - $ref: '#/components/schemas/McpListPromptsStepRepr' - $ref: '#/components/schemas/McpGetPromptStepRepr' - $ref: '#/components/schemas/McpWaitStepRepr' discriminator: propertyName: step_type mapping: call_tool: '#/components/schemas/McpCallToolStepRepr' get_prompt: '#/components/schemas/McpGetPromptStepRepr' list_prompts: '#/components/schemas/McpListPromptsStepRepr' list_resource_templates: '#/components/schemas/McpListResourceTemplatesStepRepr' list_resources: '#/components/schemas/McpListResourcesStepRepr' list_tools: '#/components/schemas/McpListToolsStepRepr' read_resource: '#/components/schemas/McpReadResourceStepRepr' wait: '#/components/schemas/McpWaitStepRepr' type: array minItems: 1 title: Steps description: Steps to execute during MCP session auth_id: anyOf: - type: string - type: 'null' title: Auth Id description: Auth Settings to use with the monitor token_id: anyOf: - type: string - type: 'null' title: Token Id description: Auth Token to use with the monitor type: object required: - url - overall_timeout_ms - steps title: _SetupRepr