MCP server for interacting SmartBear Products
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http · sse
verified
reported
listed in the official MCP registry counts 0 tools · 0 res
· 0 prompts
permission surface via code analysis
No tools enumerated yet for this server.
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed v0.37.0 · analyzer v33 · 6d ago
danger signals2
- suspicious endpoint api.bugsnag.com (telemetry) package/dist/bugsnag/tool/error/list-project-errors.js :54
nextUrl: "https://api.bugsnag.com/projects/515fb9337c1074f6fd000003/errors?base=2025-08-29T13%3A11%3A37Z&direction=desc&filters%5Berror.status%5D%5B%5D%5Btype%5D=eq&filters%5Berror.status%5D%5B%5D%5Bv - suspicious endpoint app.bugsnag.com (telemetry) package/dist/bugsnag/tool/event/get-event-details-from-dashboard-url.js :24
link: "https://app.bugsnag.com/my-org/my-project/errors/6863e2af8c857c0a5023b411?event_id=6863e2af012caf1d5c320000"
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 249
filesystem 2
- fs package/dist/qmetry/client/automation.js :25
const fileBuffer = await fs.readFile(finalPayload.file); - fs (weak) package/dist/qtm4j/tool/test-automation/upload-automation-result.js :1
import { readFile } from "node:fs/promises";
network 33
- net package/dist/bearq/tool/environments/list-environments.js :13
const res = await fetch(`${this.client.getBaseUrl()}/environments`, { - net package/dist/bearq/tool/tasks/chat-with-qa-lead.js :17
const res = await fetch(`${this.client.getBaseUrl()}/tasks`, { - net package/dist/bearq/tool/tasks/delete-test-cases.js :22
const res = await fetch( - net package/dist/bearq/tool/tasks/expand-application-model.js :19
const res = await fetch(`${this.client.getBaseUrl()}/tasks`, { - net package/dist/bearq/tool/tasks/get-task-status.js :15
const res = await fetch( - net package/dist/bearq/tool/tasks/get-task.js :15
const res = await fetch(`${this.client.getBaseUrl()}/tasks/${taskId}`, { - net package/dist/bearq/tool/tasks/run-regression-tests.js :19
const res = await fetch(`${this.client.getBaseUrl()}/tasks`, { - net package/dist/bearq/tool/tasks/run-test-cases.js :24
const res = await fetch(`${this.client.getBaseUrl()}/tasks`, { - net package/dist/bearq/tool/tasks/run-tests-in-functional-areas.js :24
const res = await fetch(`${this.client.getBaseUrl()}/tasks`, { - net package/dist/bearq/tool/tasks/stop-task.js :15
const res = await fetch(`${this.client.getBaseUrl()}/tasks/${taskId}`, { - net package/dist/bearq/tool/tasks/wait-for-task.js :27
const res = await fetch(url, { - net package/dist/bugsnag/client/api/base.js :63
const response = await fetch( - net package/dist/collaborator/client.js :49
const response = await fetch(url, { - net package/dist/common/transport-http.js :2
import { createServer } from "node:http"; - net package/dist/pactflow/client.js :161
const response = await fetch(statusUrl, { - net package/dist/pactflow/client/utils.js :35
const remoteSpec = await fetch(openAPISchema.url, { - net package/dist/qmetry/client/api/client-api.js :48
res = await fetch(url, init); - net package/dist/qmetry/client/automation.js :100
res = await fetch(url, { - net package/dist/qtm4j/http/api-client.js :91
const response = await fetch(this.getUrl(endpoint, params), { - net package/dist/reflect/tool/suites/cancel-suite-execution.js :21
const response = await fetch( - net package/dist/reflect/tool/suites/execute-suite.js :16
const response = await fetch( - net package/dist/reflect/tool/suites/get-suite-execution-status.js :21
const response = await fetch( - net package/dist/reflect/tool/suites/list-suite-executions.js :16
const response = await fetch( - net package/dist/reflect/tool/suites/list-suites.js :12
const response = await fetch(`https://${API_HOSTNAME}/v1/suites`, { - net (weak) package/dist/reflect/tool/tests/definition.js :162
const response = await fetch(`https://${API_HOSTNAME}/v1/${endpoint}`, { - net (weak) package/dist/reflect/tool/tests/get-test-detail.js :17
const response = await fetch( - net (weak) package/dist/reflect/tool/tests/get-test-status.js :18
const response = await fetch( - net (weak) package/dist/reflect/tool/tests/list-segments.js :25
const response = await fetch(url, { - net (weak) package/dist/reflect/tool/tests/list-tests.js :12
const response = await fetch(`https://${API_HOSTNAME}/v1/tests`, { - net (weak) package/dist/reflect/tool/tests/run-test.js :16
const response = await fetch( - net package/dist/swagger/client/api.js :103
const response = await fetch(`${this.config.portalBasePath}/portals`, { - net package/dist/swagger/client/functional-testing-api.js :34
response = await fetch(`${this.baseUrl}/${relativePath}`, init); - net package/dist/zephyr/common/api-client.js :36
const response = await fetch(this.getUrl(endpoint, params), {
secrets 2
- secrets package/dist/index.js :7
const McpServerBugsnagAPIKey = process.env.MCP_SERVER_BUGSNAG_API_KEY; - secrets package/dist/swagger/config-utils.js :2
if (!process.env.SWAGGER_API_KEY && process.env.API_HUB_API_KEY) {
install hooks 1
- prepare package/package.json :44
npm run build
declared dependencies 21
- @modelcontextprotocol/server@^2.0.0-beta.5
- @modelcontextprotocol/node@^2.0.0-beta.5
- @modelcontextprotocol/server-legacy@^2.0.0-beta.5
- @bugsnag/js@^8.8.1
- js-yaml@^4.2.0
- node-cache@^5.1.2
- swagger-client@^3.37.1
- vite@^7.3.1
- ws@^8.19.0
- zod@^4.3.6
- @biomejs/biome@^2.4.8
- @pact-foundation/pact@^17.0.1
- @types/js-yaml@^4.0.9
- @types/node@^22.19.15
- @types/ws@^8.18.1
- @vitest/coverage-v8@^3.2.4
- globals@^16.5.0
- shx@^0.3.4
- typescript@^5.9.3
- vitest@^3.2.4
- vitest-fetch-mock@^0.4.5