SmartBear MCP

MCP server for AI access to SmartBear tools, including BugSnag, Reflect, Swagger, PactFlow, QTM4J.

AI & MLTypeScriptv0.41.0

SmartBear MCP server

A Model Context Protocol (MCP) server which provides AI assistants with seamless access to SmartBear's suite of testing and monitoring tools, including BearQ, BugSnag, Reflect, Swagger, PactFlow, Pact Broker, QMetry, QTM4J, Zephyr and Collaborator.

What is MCP?

The Model Context Protocol (MCP) is an open standard that enables AI assistants to securely connect to external data sources and tools. This server exposes SmartBear's APIs through natural language interfaces, allowing you to query your testing data, analyze performance metrics, and manage test automation directly from your AI workflow.

Supported Tools

See individual guides for suggested prompts and supported tools and resources:

  • BearQ - AI-powered QA test management and execution capabilities
  • BugSnag - Comprehensive error monitoring and debugging capabilities
  • Reflect - Test management and execution capabilities
  • Swagger
    • Portal - Portal and product management capabilities
    • Studio - API and Domain management capabilities, including AI-powered API generation from prompts and automatic standardization
    • Contract Testing (PactFlow) - Contract testing capabilities
    • Functional Testing - API test discovery capabilities
  • QMetry - QMetry Test Management capabilities
  • Zephyr - Zephyr Test Management capabilities
  • Collaborator - Review and Remote System Configuration management capabilities
  • QTM4J - QTM4J Test Management for Jira capabilities

Remote MCP Servers

For BugSnag, Swagger, and Zephyr, SmartBear hosts Remote MCP Servers that you can connect to directly from your MCP client via a URL — no installation, Node.js, or API tokens required. Authentication is handled through an OAuth browser flow.

ProductServer URL
Swaggerhttps://swagger.mcp.smartbear.com/mcp
BugSnaghttps://bugsnag.mcp.smartbear.com/mcp
Zephyrhttps://zephyr.mcp.smartbear.com/mcp

See the Remote MCP Servers guide for per-client setup instructions. You can connect to multiple remote servers at the same time.

Need BearQ, Reflect, QMetry, QTM4J, PactFlow, Collaborator, or Functional Testing? These products are only available via the local npm package below, which bundles all products into a single MCP server.

Prerequisites

  • Node.js 22+ and npm
  • Access to SmartBear products (BugSnag, Reflect, Swagger, QMetry, QTM4J or Zephyr)
  • Valid API tokens for the products you want to integrate

Local MCP Server Installation (npm)

For all products — or if you prefer running the server locally — the MCP server is distributed as an npm package @smartbear/mcp, making it easy to integrate into your development workflow.

The server is started with the API key or auth token that you use with your SmartBear product(s). They are optional and can be removed from your configuration if you aren't using the product. For BugSnag, if you provide a project API key it will narrow down all searches to a single project in your BugSnag dashboard. Leave this field blank if you wish to interact across multiple projects at a time.

VS Code with Copilot

For the quickest setup, use the "MCP: Add server…" command in the Command Palette to add the @smartbear/mcp npm package.

📋 Manual installation

Alternatively, you can use npx (or globally install) the @smartbear/mcp package to run the server and add the following to your .vscode/mcp.json file:

{
  "servers": {
    "smartbear": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@smartbear/mcp@latest"
      ],
      "env": {
        "BEARQ_API_TOKEN": "${input:bearq_api_token}",
        "BEARQ_API_BASE_URL": "${input:bearq_api_base_url}",
        "BUGSNAG_AUTH_TOKEN": "${input:bugsnag_auth_token}",
        "BUGSNAG_PROJECT_API_KEY": "${input:bugsnag_project_api_key}",
        "REFLECT_API_TOKEN": "${input:reflect_api_token}",
        "SWAGGER_API_KEY": "${input:swagger_api_key}",
        "SWAGGER_PORTAL_BASE_PATH": "${input:swagger_portal_base_path}",
        "SWAGGER_REGISTRY_BASE_PATH": "${input:swagger_registry_base_path}",
        "SWAGGER_UI_BASE_PATH": "${input:swagger_ui_base_path}",
        "PACT_BROKER_BASE_URL": "${input:pact_broker_base_url}",
        "PACT_BROKER_TOKEN": "${input:pact_broker_token}",
        "PACT_BROKER_USERNAME": "${input:pact_broker_username}",
        "PACT_BROKER_PASSWORD": "${input:pact_broker_password}",
        "QMETRY_API_KEY": "${input:qmetry_api_key}",
        "QMETRY_BASE_URL": "${input:qmetry_base_url}",
        "ZEPHYR_API_TOKEN": "${input:zephyr_api_token}",
        "ZEPHYR_BASE_URL": "${input:zephyr_base_url}",
        "COLLABORATOR_BASE_URL": "${input:collab_base_url}",
        "COLLABORATOR_USERNAME": "${input:collab_username}",
        "COLLABORATOR_LOGIN_TICKET": "${input:collab_login_ticket}",
        "QTM4J_API_KEY": "${input:qtm4j_api_key}",
        "QTM4J_BASE_URL": "${input:qtm4j_base_url}",
        "QTM4J_AUTOMATION_API_KEY": "${input:qtm4j_automation_api_key}",
        "SWAGGER_FUNCTIONAL_TESTING_API_TOKEN": "${input:swagger_functional_testing_api_token}",
        "SWAGGER_FUNCTIONAL_TESTING_BASE_PATH": "${input:swagger_functional_testing_base_path}"
      }
    }
  },
  "inputs": [
      {
         "id": "bearq_api_token",
         "type": "promptString",
         "description": "BearQ workspace API token - leave blank to disable BearQ tools",
         "password": true
      },
      {
         "id": "bearq_api_base_url",
         "type": "promptString",
         "description": "BearQ API base URL - leave blank to use the default (https://api.bearq.smartbear.com)",
         "password": false
      },
      {
         "id": "bugsnag_auth_token",
         "type": "promptString",
         "description": "BugSnag Auth Token - leave blank to disable BugSnag tools",
         "password": true
      },
      {
         "id": "bugsnag_project_api_key",
         "type": "promptString",
         "description": "BugSnag Project API Key - for single project interactions",
         "password": false
      },
      {
         "id": "reflect_api_token",
         "type": "promptString",
         "description": "Reflect API Token - leave blank to disable Reflect tools",
         "password": true
      },
      {
         "id": "swagger_api_key",
         "type": "promptString",
         "description": "Swagger API Key - leave blank to disable Swagger tools",
         "password": true
      },
      {
         "id": "swagger_portal_base_path",
         "type": "promptString",
         "description": "Swagger Portal API base path - only needed for on-premise installations (leave blank for cloud)",
         "password": false
      },
      {
         "id": "swagger_registry_base_path",
         "type": "promptString",
         "description": "Swagger Registry API base path - only needed for on-premise installations (leave blank for cloud)",
         "password": false
      },
      {
         "id": "swagger_ui_base_path",
         "type": "promptString",
         "description": "Swagger UI base path - only needed for on-premise installations (leave blank for cloud)",
         "password": false
      },
      {
         "id": "pact_broker_base_url",
         "type": "promptString",
         "description": "PactFlow or Pact Broker base url - leave blank to disable the tools",
         "password": true
      },
      {
         "id": "pact_broker_token",
         "type": "promptString",
         "description": "PactFlow Authentication Token",
         "password": true
      },
      {
         "id": "pact_broker_username",
         "type": "promptString",
         "description": "Pact Broker Username",
         "password": true
      },
      {
         "id": "pact_broker_password",
         "type": "promptString",
         "description": "Pact Broker Password",
         "password": true
      },
      {
          "id": "qmetry_api_key",
          "type": "promptString",
          "description": "QMetry Open API Key",
          "password": true
      },
      {
          "id": "qmetry_base_url",
          "type": "promptString",
          "description": "By default, connects to https://testmanagement.qmetry.com. Change to a custom QMetry server URL or a region-specific endpoint if needed.",
          "password": false
      },
      {
          "id": "zephyr_api_token",
          "type": "promptString",
          "description": "Zephyr API token - leave blank to disable Zephyr tools",
          "password": true
      },
      {
          "id": "zephyr_base_url",
          "type": "promptString",
          "description": "Zephyr API base URL. By default, connects to https://api.zephyrscale.smartbear.com/v2. Change to region-specific endpoint if needed.",
          "password": false
      },
      {
          "id": "collab_base_url",
          "type": "promptString",
          "description": "Collab base url",
          "password": true
      },
      {
          "id": "collab_username",
          "type": "promptString",
          "description": "Collab username",
          "password": true
      },
      {
          "id": "collab_login_ticket",
          "type": "promptString",
          "description": "Collab login ticket",
          "password": true
      },
      {
          "id": "qtm4j_api_key",
          "type": "promptString",
          "description": "QTM4J API Key",
          "password": true
    },
    {
          "id": "qtm4j_base_url",
          "type": "promptString",
          "description": "US region (default): https://qtmcloud.qmetry.com. Australia region: https://syd-qtmcloud.qmetry.com.",
          "password": false
    },
    {
          "id": "qtm4j_automation_api_key",
          "type": "promptString",
          "description": "QTM4J Automation API Key - required for automation tools, leave blank to disable them",
          "password": true
    },
    {
          "id": "swagger_functional_testing_api_token",
          "type": "promptString",
          "description": "Swagger Functional Testing API Token - leave blank to disable Functional Testing tools",
          "password": true
    },
    {
          "id": "swagger_functional_testing_base_path",
          "type": "promptString",
          "description": "Swagger Functional Testing API Base URL - leave blank to use the default (https://api.reflect.run/v1)",
          "password": false
    }
  ]
}

Claude Desktop

Add the following configuration to your claude_desktop_config.json to launch the MCP server via npx:

{
  "mcpServers": {
    "smartbear": {
      "command": "npx",
      "args": [
        "-y",
        "@smartbear/mcp@latest"
      ],
      "env": {
        "BEARQ_API_TOKEN": "your_bearq_api_token",
        "BUGSNAG_AUTH_TOKEN": "your_personal_auth_token",
        "BUGSNAG_PROJECT_API_KEY": "your_project_api_key",
        "REFLECT_API_TOKEN": "your_reflect_token",
        "SWAGGER_API_KEY": "your_swagger_key",
        "SWAGGER_PORTAL_BASE_PATH": "https://api.portal.swaggerhub.com/v1",
        "SWAGGER_REGISTRY_BASE_PATH": "https://api.swaggerhub.com",
        "SWAGGER_UI_BASE_PATH": "https://app.swaggerhub.com",
        "PACT_BROKER_BASE_URL": "your_pactflow_or_pactbroker_base_url",
        "PACT_BROKER_TOKEN": "your_pactflow_token",
        "PACT_BROKER_USERNAME": "your_pact_broker_username",
        "PACT_BROKER_PASSWORD": "your_pact_broker_password",
        "QMETRY_API_KEY": "your_qmetry_api_key",
        "QMETRY_BASE_URL": "https://testmanagement.qmetry.com",
        "ZEPHYR_API_TOKEN": "your_zephyr_api_token",
        "ZEPHYR_BASE_URL": "https://api.zephyrscale.smartbear.com/v2",
        "COLLABORATOR_BASE_URL": "your collab base url",
        "COLLABORATOR_USERNAME": "your collab user name",
        "COLLABORATOR_LOGIN_TICKET": "your collab login ticket",
        "QTM4J_API_KEY": "your_qtm4j_key",
        "QTM4J_BASE_URL": "https://qtmcloud.qmetry.com",
        "QTM4J_AUTOMATION_API_KEY": "your_qtm4j_automation_api_key",
        "SWAGGER_FUNCTIONAL_TESTING_API_TOKEN": "your_swagger_functional_testing_api_token",
        "SWAGGER_FUNCTIONAL_TESTING_BASE_PATH": "https://api.reflect.run/v1"
      }
    }
  }
}

Server Configuration (HTTP mode)

VariableDefaultPurpose
BASE_URL(derived from request)The server's own public URL, e.g. https://mcp.example.com. Set this on any deployment behind a proxy or load balancer — otherwise the address advertised for OAuth discovery is derived from the client-supplied Host header.
TRUST_PROXYfalseSet to true only when a proxy in front of the server sets X-Forwarded-Host and strips any client-supplied value.

Documentation

For detailed introduction, examples, and advanced configuration visit our 📖 Full Documentation

Local Development

For developers who want to contribute to the SmartBear MCP server, please see the CONTRIBUTING.md guide.

License

This MCP server is licensed under the MIT License. This means you are free to use, modify, and distribute the software, subject to the terms and conditions of the MIT License. For more details, please see the LICENSE file in the project repository.

Support


SmartBear MCP Server - Bringing the power of SmartBear's testing and monitoring ecosystem to your AI-powered development workflow.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @smartbear/mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "com-smartbear-smartbear-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "@smartbear/mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@smartbear/mcpnpm

Compatible MCP Clients

SmartBear MCP works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More