MCP Server¶

api.octoperf.com · 2026-06-29 · by Long Nguyen ·generic
OctoPerf load testing - MCP server overview. Drive OctoPerf from any AI agent (Claude.ai, Claude Code, Cursor, ...) through the Model Context Protocol.

MCP Server¶

MCP Server

The OctoPerf MCP server lets any Model Context Protocol \- aware AI agent drive your OctoPerf account - import Virtual Users, edit them, validate, run load scenarios, and read back metrics - all from a chat or IDE, without leaving the agent.

It is exposed at <https://api.octoperf.com/mcp>.

What it does

The MCP server is a thin, stateless bridge between an LLM agent and the OctoPerf REST API. Every tool call is authenticated as you: there are no service identities and no API keys - and resolves to a regular OctoPerf API call. Anything you can do from the web UI as your user, the agent can do on your behalf when you authorize it.

Concretely, the server exposes around 100 tools grouped into the following areas:

  • Discovery: list workspaces, projects, scenarios, Virtual Users, Docker providers
  • Virtual User import: bring in recordings from HAR, JMX, Postman, Playwright, WebDriver, URL lists, or previously exported archives
  • Virtual User edit: rename, re-tag, patch the action tree via JSON Patch, manage variables, HTTP servers, correlation rules and project files
  • Validation: kick off a functional check, read back the per-action validation index, drill into failing requests / responses, fetch HTTP bodies
  • Bench run: start a scenario, monitor progress, stop a running run, read Docker launch logs
  • Analysis: list and read bench reports, fetch the value series behind any chart / table / summary / top widget, expand error rows, run trend reports
  • Each tool returns a deep-link to the matching page in the OctoPerf UI so the agent can hand you a clickable URL when it summarizes a result.

    Public HTTP downloads

    The MCP server also serves a small set of public, unauthenticated markdown files under `/mcp/public/**`, so any agent host can bootstrap an OctoPerf project before it has IdP credentials:

    | URL | Body | | ----------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | | <https://api.octoperf.com/mcp/public/AGENTS.md> | Cross-vendor agent guide - drop at the root of a project | | <https://api.octoperf.com/mcp/public/skills/auto-correlation.md> | Skill: fix replay failures caused by dynamic values (CSRF, sessions) | | <https://api.octoperf.com/mcp/public/skills/validation-triage.md> | Skill: triage a Virtual User with many validation failures | | <https://api.octoperf.com/mcp/public/skills/scenario-diagnosis.md> | Skill: investigate a poor or failing scenario run | | <https://api.octoperf.com/mcp/public/skills/real-browser-probe.md> | Skill: convert a JMeter VU to Playwright and compose a hybrid load + UX-probe scenario | | <https://api.octoperf.com/mcp/public/skills/scheduling.md> | Skill: schedule scenarios (one-shot / cron) with the right UTC + Unix cron semantics | | <https://api.octoperf.com/mcp/public/skills/bench-reports.md> | Skill: pick the right tool per bench-report widget, decode metric semantics, read trends | | <https://api.octoperf.com/mcp/public/skills/export-bench-report-pdf.md> | Skill: export a bench report as PDF (submit print task, poll, download) | | <https://api.octoperf.com/mcp/public/skills/async-polling.md> | Skill: polling cadence and terminal conditions for async tasks (validations, runs, ...) |

    These files are also available in OctoPerf Claude Plugins repository

    JSON schemas

    The entity schemas used to build `patch_*` payloads (JSON Schema 2020-12, one `oneOf` branch per polymorphic subtype) are served the same way, as plain JSON under `/mcp/public/schema/`. These are the HTTP fallback for clients that call tools but don't read MCP resources — the body is identical to the matching `octoperf://schema/*` resource:

    | URL | Schema | | ------------------------------------------------------------------- | ------------------------ | | <https://api.octoperf.com/mcp/public/schema/vu.json> | Virtual User action tree | | <https://api.octoperf.com/mcp/public/schema/scenario.json> | Scenario + user profiles | | <https://api.octoperf.com/mcp/public/schema/bench-report.json> | Bench report widgets | | <https://api.octoperf.com/mcp/public/schema/variables.json> | Variable subtypes | | <https://api.octoperf.com/mcp/public/schema/correlation-rules.json> | Correlation rules | | <https://api.octoperf.com/mcp/public/schema/injection-rules.json> | Injection rule subtypes |

    Connect a client

    This section walks through connecting popular Model Context Protocol clients to the OctoPerf MCP server.

    Any MCP client

    The server speaks Streamable HTTP at <https://api.octoperf.com/mcp> and authenticates with OAuth 2.1 (Dynamic Client Registration - no API key, no manual client setup). Any MCP-aware client can connect with just that URL: paste it wherever the client expects a remote / HTTP MCP server, pick the HTTP transport, and complete the browser login on first use.

    The sections below cover the most common clients. Anything not listed here - Windsurf, Cline, Continue.dev, Zed, Goose, JetBrains AI Assistant, LibreChat, ... - follows the same pattern: add the URL, choose the HTTP transport, authorize in the browser. Where a client supports a project context file, point it at the agent guide.

    Claude.ai (Custom Connector)

    See Anthropic's Get started with custom connectors using remote MCP for the canonical Claude.ai flow.

    #### Adding the connector

    1. Open Customize → Connectors in claude.ai (Pro/Max). On Team/Enterprise plans, an Owner does the same from Organization settings → Connectors. 2. Click the + button, then Add custom connector. 3. Paste `https://api.octoperf.com/mcp` as the connector URL and click Add. 4. Claude opens a browser tab to OctoPerf. Log in with your usual credentials. 5. The connector appears in the list as OctoPerf MCP and is available in every new conversation.

    Claude.ai Add Custom Connector dialog

    #### Configuring the allowlist

    Claude.ai web: file upload / download requires a domain allowlist (org admin).

    Several OctoPerf tools (`upload_project_file`, `download_project_file`, `download_bench_result_file`, the PDF leg of `export_bench_report_pdf`, plus any Playwright trace / HAR / JTL pull) return a short-lived presigned URL pointing at the OctoPerf REST API.

    Claude's sandbox fetches that URL to ingest the bytes, and egress is gated by an org-level admin setting: Claude.ai → Organization Settings (Admin only) → Capabilities → Domain allowlist → Additional allowed domains. Add `octoperf.com` (or `*.octoperf.com` to also cover an on-prem deployment) once for the whole org; the dropdown can stay on None (no preset list needed), the manual entry alone is enough.

    Claude.ai Domain allowlist with octoperf.com added

    Only a workspace admin can edit this list - non-admin members of the org inherit it. If your org doesn't have an admin slot to flip this (or you're on a personal Claude.ai account where the setting lives under your own account), the file tools will keep failing on Claude.ai web and Desktop.

    #### Chatting with Claude

    In a chat, ask Claude something like "list my OctoPerf workspaces" and it will call the matching MCP tool and render the result.

    You should also tell Claude to read the content of the agent guide. It acts as a knowledge base that informs the AI about your project context, ensuring that follows OctoPerf project's standards.

    Info

    If your usage is file-heavy (frequent CSV uploads, downloading bench result files, exporting PDFs, pulling Playwright traces) and the allowlist is out of reach, Claude Code is the better client: it runs the fetches itself via local shell commands, so no sandbox allowlist applies and uploads / downloads work out of the box. Cursor, Continue.dev and the MCP Inspector are also unaffected.

    Claude Code

    The recommended setup uses the official OctoPerf plugin distributed through the OctoPerf/octoperf-claude-plugins marketplace. It registers the MCP server, installs the agent guide, and adds eight workflow shortcuts (auto-correlation, validation triage, scenario diagnosis, bench-report reading, PDF export, real-browser probe, scheduling, async polling) in one step.

    From any Claude Code prompt:

    `/plugin marketplace add OctoPerf/octoperf-claude-plugins /plugin install octoperf@octoperf `

    The first tool call opens a browser tab to OctoPerf. Log in with your usual credentials - the login authorizes Claude Code as a connected agent. After that, every future tool call reuses the cached token transparently.

    Once installed, ask Claude Code something like "list my OctoPerf workspaces", "why is my last scenario run failing?", or "auto-correlate this Virtual User" and the matching workflow runs automatically.

    #### Manual setup (without the plugin)

    If you prefer registering only the MCP server (no workflow shortcuts, no agent guide), see Anthropic's Connect Claude Code to tools via MCP for the full reference, then run:

    `claude mcp add --transport http octoperf https://api.octoperf.com/mcp `

    All flags (`--transport`, `--scope`, ...) must come before the server name. To remove the server later:

    `claude mcp remove octoperf `

    Open a Claude session and type `/mcp` to connect to the newly added OctoPerf MCP Server.

    You can download the agent guide manually.

    You can also install the workflow shortcuts by hand by downloading them from `https://api.octoperf.com/mcp/public/skills/<name>.md` into `.claude/skills/octoperf-<name>/SKILL.md` (or `~/.claude/skills/...` to enable them globally). The plugin above does the same thing for you.

    Claude Desktop

    See Anthropic's Connect Claude Desktop to tools via MCP for the canonical Claude Desktop flow. Open `claude_desktop_config.json` (via Settings → Developer → Edit Config) and add an entry under `mcpServers`:

    `{ "mcpServers": { "octoperf": { "url": "https://api.octoperf.com/mcp" } } } `

    Restart Claude Desktop. The first tool call opens a browser tab for OAuth login; the bearer token is cached afterwards.

    Codex

    See OpenAI's Model Context Protocol guide for the full Codex reference, then register the server:

    `codex mcp add octoperf --url https://api.octoperf.com/mcp `

    Then authenticate:

    `codex mcp login octoperf `

    Codex opens a browser tab to OctoPerf. Log in with your usual credentials - the login authorizes Codex as a connected agent. The token is cached afterwards, so every future tool call reuses it transparently. To remove the server later:

    `codex mcp remove octoperf `

    Codex reads an `AGENTS.md` file at the root of your project natively, so download the agent guide there:

    `curl -o AGENTS.md https://api.octoperf.com/mcp/public/AGENTS.md `

    In a session, ask Codex something like "list my OctoPerf workspaces" and it will call the matching MCP tool and render the result.

    ChatGPT

    ChatGPT can reach the OctoPerf MCP server as a custom connector (remote MCP). Availability and the exact location of the setting depend on your plan and OpenAI's rollout (custom MCP connectors / Developer mode are still evolving), so follow OpenAI's current Connectors in ChatGPT documentation for the canonical flow.

    1. In ChatGPT, open Settings → Connectors (you may need to enable Developer mode to add a custom MCP server). 2. Add a connector with the URL `https://api.octoperf.com/mcp`. 3. Authorize in the browser when prompted; the token is cached afterwards.

    Info

    Like Claude.ai, ChatGPT runs tools in a sandbox. File tools that return a presigned `*.octoperf.com` URL (`upload_project_file`, `download_project_file`, `download_bench_result_file`, the PDF leg of `export_bench_report_pdf`, Playwright trace / HAR / JTL pulls) may be blocked by the host's egress policy. For file-heavy use, prefer Codex or another local client, which run the fetches themselves.

    Gemini CLI

    See Google's MCP servers with the Gemini CLI for the full reference, then register the server:

    `gemini mcp add --transport http octoperf https://api.octoperf.com/mcp `

    Open a Gemini session and authenticate:

    `/mcp auth octoperf `

    Gemini opens a browser tab to OctoPerf. Log in with your usual credentials - the login authorizes Gemini as a connected agent and the token is cached afterwards. To remove the server later:

    `gemini mcp remove octoperf `

    Gemini CLI reads a `GEMINI.md` context file at the root of your project, so download the agent guide there:

    `curl -o GEMINI.md https://api.octoperf.com/mcp/public/AGENTS.md `

    In a session, ask Gemini something like "list my OctoPerf workspaces" and it will call the matching MCP tool and render the result.

    GitHub Copilot (VS Code)

    MCP servers are available to Copilot in agent mode (VS Code 1.101 or later). See Add and manage MCP servers in VS Code for the full reference.

    Create (or edit) `.vscode/mcp.json` in your workspace and add the server (alternatively, run MCP: Add Server from the Command Palette and pick HTTP):

    `{ "servers": { "octoperf": { "type": "http", "url": "https://api.octoperf.com/mcp" } } } `

    When the server starts, VS Code discovers the OAuth configuration automatically and opens a browser tab to OctoPerf. Log in with your usual credentials - the login authorizes Copilot as a connected agent and the token is cached afterwards.

    Copilot reads custom instructions from `.github/copilot-instructions.md`, so download the agent guide there:

    `curl -o .github/copilot-instructions.md https://api.octoperf.com/mcp/public/AGENTS.md `

    Open Copilot Chat in agent mode and ask something like "list my OctoPerf workspaces" \- Copilot calls the matching MCP tool and renders the result.

    Cursor

    See Cursor's Model Context Protocol documentation for the full reference. The quickest path is the one-click deep link:

    ➕ Add to Cursor

    To add it by hand, create (or edit) `.cursor/mcp.json` in your project - or `~/.cursor/mcp.json` to enable it for every project:

    `{ "mcpServers": { "octoperf": { "url": "https://api.octoperf.com/mcp" } } } `

    Cursor opens a browser tab to OctoPerf on the first tool call. Log in with your usual credentials - the login authorizes Cursor as a connected agent and the token is cached afterwards.

    Cursor has no fixed context filename, so save the agent guide as a project rule under `.cursor/rules/` (or attach it to the chat as context):

    `curl -o .cursor/rules/octoperf.md https://api.octoperf.com/mcp/public/AGENTS.md `

    In a chat, ask Cursor something like "list my OctoPerf workspaces" and it will call the matching MCP tool and render the result.

    Where to go next

  • Self-hosted setup: deploy the MCP server alongside an OctoPerf Enterprise instance, configure the bundled OAuth IdP.
  • Connected Apps: review and revoke the agents you authorized.
  • OAuth Clients (admin): audit and clean up registered OAuth clients on a self-hosted instance.
api.octoperf.com · 3 images · 233 links

Comments (0)

No comments yet