SmartBear MCP server
Official<div align="center">
<a href="https://www.smartbear.com">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://assets.smartbear.com/m/79b99a7ff9c81a9a/original/SmartBear-Logo_Dark-Mode.svg">
<img alt="SmartBear logo" src="https://assets.smartbear.com/m/105001cc5db1e0bf/original/SmartBear-Logo_Light-Mode.svg">
</picture>
</a>
<h1>SmartBear MCP server</h1>
<!-- Badges -->
<div>
<a href="https://github.com/SmartBear/smartbear-mcp/actions/workflows/test.yml"><img src="https://github.com/SmartBear/smartbear-mcp/actions/workflows/test.yml/badge.svg?branch=main" alt="Test Status"></a>
<a href="https://smartbear.github.io/smartbear-mcp/"><img src="https://img.shields.io/badge/coverage-dynamic-brightgreen" alt="Coverage"></a>
<a href="https://www.npmjs.com/package/@smartbear/mcp"><img src="https://img.shields.io/npm/v/@smartbear/mcp" alt="npm version"></a>
<a href="https://modelcontextprotocol.io"><img src="https://img.shields.io/badge/MCP-Compatible-blue" alt="MCP Compatible"></a>
<a href="https://developer.smartbear.com/smartbear-mcp"><img src="https://img.shields.io/badge/documentation-latest-blue.svg" alt="Documentation"></a>
</div>
</div>
<br />
A Model Context Protocol (MCP) server which provides AI assistants with seamless access to SmartBear's suite of testing and monitoring tools, including [BearQ](https://developer.smartbear.com/smartbear-mcp/docs/bearq-integration), [BugSnag](https://www.bugsnag.com/), [Reflect](https://reflect.run), [Swagger](https://www.smartbear.com/api-hub), [PactFlow](https://pactflow.io/), [Pact Broker](https://docs.pact.io/), [QMetry](https://www.qmetry.com/), [QTM4J](https://www.qmetry.com/qmetry-test-management-for-jira), [Zephyr](https://smartbear.com/test-management/zephyr/) and [Collaborator](https://smartbear.com/product/collaborator/).
## What is MCP?
The [Model Context Protocol (MCP)](https://modelcontextprotocol.io/introduction) 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](https://developer.smartbear.com/smartbear-mcp/docs/bearq-integration) - AI-powered QA test management and execution capabilities
- [BugSnag](https://developer.smartbear.com/smartbear-mcp/docs/bugsnag-integration) - Comprehensive error monitoring and debugging capabilities
- [Reflect](https://developer.smartbear.com/smartbear-mcp/docs/reflect-integration) - Test management and execution capabilities
- **Swagger**
- [Portal](https://developer.smartbear.com/smartbear-mcp/docs/swagger-portal-integration) - Portal and product management capabilities
- [Studio](https://developer.smartbear.com/smartbear-mcp/docs/swagger-studio-integration) - API and Domain management capabilities, including AI-powered API generation from prompts and automatic standardization
- [Contract Testing (PactFlow)](https://developer.smartbear.com/pactflow/default/getting-started) - Contract testing capabilities
- [Functional Testing](https://developer.smartbear.com/smartbear-mcp/docs/swagger-functional-testing-integration) - API test discovery capabilities
- [QMetry](https://developer.smartbear.com/smartbear-mcp/docs/qmetry-integration) - QMetry Test Management capabilities
- [Zephyr](https://developer.smartbear.com/smartbear-mcp/docs/zephyr-integration) - Zephyr Test Management capabilities
- [Collaborator](https://developer.smartbear.com/smartbear-mcp/docs/collaborator-integration) - Review and Remote System Configuration management capabilities
- [QTM4J](https://developer.smartbear.com/smartbear-mcp/docs/qtm4j-integration) - 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.
| Product | Server URL |
|---|---|
| **Swagger** | `https://swagger.mcp.smartbear.com/mcp` |
| **BugSnag** | `https://bugsnag.mcp.smartbear.com/mcp` |
| **Zephyr** | `https://zephyr.mcp.smartbear.com/mcp` |
See the [Remote MCP Servers guide](https://developer.smartbear.com/smartbear-mcp/docs/remote-mcp-servers) 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`](https://www.npmjs.com/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.
<details>
<summary><strong>π Manual installation</strong></summary>
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:
```json
{
"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
}
]
}
```
</details>
### Claude Desktop
Add the following configuration to your `claude_desktop_config.json` to launch the MCP server via `npx`:
```json
{
"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)
| Variable | Default | Purpose |
|---|---|---|
| `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_PROXY` | `false` | Set 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](https://developer.smartbear.com/smartbear-mcp)
## Local Development
For developers who want to contribute to the SmartBear MCP server, please see the [CONTRIBUTING.md](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](LICENSE.txt) file in the project repository.
## Support
* [Search open and closed issues](https://github.com/SmartBear/smartbear-mcp/issues?utf8=β&q=is%3Aissue) for similar problems
* [Report a bug or request a feature](https://github.com/SmartBear/smartbear-mcp/issues/new)
---
**SmartBear MCP Server** - Bringing the power of SmartBear's testing and monitoring ecosystem to your AI-powered development workflow.
TDQS
Scored across 308 tools
Product prefixes provide some orientation, but multiple toolsets overlap heavily on the same domain: qtm4j_, qmetry_, zephyr_, reflect_, and bearq_ all manage test cases, cycles, and executions, so an agent cannot tell which product to use from the name alone. Within contract-testing, the ten get_bdct_* variants differ only subtly, and tools like contract-testing_test_execute_webhooks vs contract-testing_execute_webhook are near-duplicates.
The same operations are named differently across the server (list_ vs fetch_ vs get_ vs search_, create vs add, update vs edit/patch), and prefixes mix hyphens (contract-testing_) with underscores (qmetry_). Some names are awkward or inconsistent, such as contract-testing_get_bdct_x-contract_test_results_by_consumer and bearq_run_tests_in_functional_areas, though nearly everything is at least snake_case.
308 tools is an extreme count that will overwhelm any agent's selection process and context. Even for a multi-product QA suite, bundling this many operations into one MCP server is far beyond a coherent, manageable scope (typical well-scoped servers are 3-15 tools).
The aggregate covers many workflows, but individual products have notable gaps: Zephyr has no delete for test cases/cycles, Reflect has no update/delete for tests or segments, BearQ has no create/update except via a chat escape hatch, and QTM4J/QMetry lack delete operations for core entities. The overlapping duplicate surfaces also make gaps harder to detect, so agents will hit dead ends in several sub-domains.