End-to-end API testing — generate and run tests from OpenAPI, curl, Postman, or real user traffic.
io.github.keploy/mcp — Model Context Protocol (MCP) Server
This MCP server provides end-to-end API testing capabilities: generate and run tests from OpenAPI, curl, Postman, or real user traffic. It is associated with seven tools and is positioned for API test automation and code-quality workflows.
🛠️ Key Features
End-to-end API testing
Test generation from OpenAPI
Test generation from curl
Test generation from Postman
Test generation from real user traffic
Mocking and mock-data generation
Test automation framework support
🚀 Use Cases
Automating API tests from API specifications or request sources
Reproducing scenarios based on real user traffic
Creating mock data for testing flows
Building test automation pipelines for API quality
⚡ Developer Benefits
Faster API test creation than unit-test-centric approaches (per excerpt)
Testing-library and test-automation-framework oriented tooling
Code-quality focused testing-tool usage
⚠️ Limitations
Details beyond the excerpt (e.g., configuration or runtime behavior) are not provided in the supplied data.
Start the Path B agent-walked install for the V1 flow. Returns a playbook the AI walks with the dev to land a kep_* PAT in their editor's MCP config.
Current implementation routes through app.keploy.io/settings/api-keys (the existing PAT-issuance surface). The full auto-provision OAuth round-trip (browser OAuth → /auth/temp-code/exchange → /user/mcp/provision → PAT auto-pasted) lands when the enterprise-ui /auth/cli-install page is built; this tool's interface won't change when that lifts, only the underlying steps will get shorter.
ABSOLUTE: this tool surfaces a public URL. Do NOT print API keys, PATs, or OAuth tokens to the conversation. The dev pastes the secret into their editor config directly; the agent never sees it.
Parameters1
editor
string
optional
Editor the dev is using (cursor / windsurf / claude-code / claude-desktop / vscode / trae). Tailors the config-path hint in the playbook. Omit if unknown.
Raw schema
{
"type": "object",
"properties": {
"editor": {
"description": "Editor the dev is using (cursor / windsurf / claude-code / claude-desktop / vscode / trae). Tailors the config-path hint in the playbook. Omit if unknown.",
"type": "string"
}
}
}
devloop_setup_instructions
Return the V1 "user maintains the flow" install guide — covers Path A (clipboard one-liner), Path B (agent-walked OAuth), and the keploy/api-tests/ on-disk layout V1 creates. Safe to call without authentication; call this when the dev asks 'how do I add Keploy to this repo?' or when a devloop_* tool returns missing-API-key.
Parameters
No parameters.
Raw schema
{
"type": "object"
}
get_auth_status
Check whether the current MCP session has a valid-looking Keploy PAT attached. Returns { authenticated, auth_header_present, hint }. Useful as a first step for an agent to decide whether to call other tools or show setup instructions — differentiates 'no header at all' from 'header present but wrong prefix / unsupported format'.
Parameters
No parameters.
Raw schema
{
"type": "object"
}
get_setup_instructions
Return step-by-step instructions for connecting this MCP server to Cursor, Windsurf, VS Code, Claude Desktop, Claude Code, or Trae. Safe to call without authentication — use this when the user asks 'how do I set up Keploy MCP?' or when a tool call fails with an auth error.
Parameters
No parameters.
Raw schema
{
"type": "object"
}
get_tool_schema
Fetch the exact schema(s) for tool(s) you ALREADY know by name — e.g. names a skill/playbook gave you (getTestReportFull, updateTestCase, listTestReports, getMock, getTestCase, getApp, listApps, ...). Returns ONLY the named tools: no fuzzy matching, no unrelated tools.
Use this instead of search_tools whenever you know the name — it is exact and cheap. Use search_tools only to DISCOVER names you do not already know.
Returns {"tools": [{name, description, inputSchema}, ...], "not_found": [names...]}.
Parameters1
names
array
required
Exact tool names, e.g. ["getTestReportFull","updateTestCase"].
Run any Keploy tool by name. Most tools are hidden from the default list. Know the name from a skill? get its schema with get_tool_schema; don't know the name? discover it with search_tools. Then call invoke_tool with that name and an "arguments" object matching the tool's inputSchema.
Example: invoke_tool {"name": "getTestReportFull", "arguments": {"appId": "...", "testRunId": "...", "fields": ["status"]}}
Parameters2
arguments
object
optional
Arguments object matching the target tool's inputSchema. Omit or pass {} for tools that take no args.
name
string
required
Exact tool name from search_tools, e.g. 'getTestReportFull'.
Raw schema
{
"type": "object",
"properties": {
"arguments": {
"description": "Arguments object matching the target tool's inputSchema. Omit or pass {} for tools that take no args.",
"properties": {},
"type": "object"
},
"name": {
"description": "Exact tool name from search_tools, e.g. 'getTestReportFull'.",
"type": "string"
}
},
"required": [
"name"
]
}
search_tools
DISCOVER tool names you do NOT already know, by keyword. Most Keploy tools are hidden from the default tool list to save context. If you ALREADY know the exact name (e.g. a skill named it), call get_tool_schema instead — it is exact and far cheaper than this fuzzy search.
Returns {"matches": [{name, description, inputSchema}, ...], "total_catalog": N}. Search by intent words, e.g. "test report", "mock patch", "update test case", "cloud replay branch", "record".
Parameters2
limit
number
optional
Max results (default 10).
query
string
required
Keywords matched against tool name + description, e.g. 'test report fields' or 'mock patch'.
⚡️ API tests faster than unit tests, from user traffic ⚡️
🌟 The must-have tool for developers in the AI-Gen era for 90% test coverage 🌟
Keploy is a developer‑centric API and integration testing tool that auto‑generates tests and data‑mocks faster than unit tests.
It records API calls, database queries, and streaming events — then replays them as tests. Under the hood, Keploy uses eBPF to capture traffic at the network layer, but for you it’s completely code‑less and language‑agnostic.
Convert API calls to API tests test cases and Data Mocks using AI
🐰 Fun fact: Keploy uses itself for testing! Check out our swanky coverage badge: Coverage Status
Key Highlights
🎯 No code changes
Just run your app with keploy record. Real API + integration flows are automatically captured as tests and mocks. (Keploy uses eBPF under the hood to capture traffic, so you don’t need to add any SDKs or modify code.)
📹 Record and Replay complex Flows
Keploy can record and replay complex, distributed API flows as mocks and stubs. It's like having a very light-weight time machine for your tests—saving you tons of time!
Unlike tools that only mock HTTP endpoints, Keploy records databases (Postgres, MySQL, MongoDB), streaming/queues (Kafka, RabbitMQ), external APIs, and more.
It replays them deterministically so you can run tests without re‑provisioning infra.
🌐 CI/CD Integration: Run tests with mocks anywhere you like—locally on the CLI, in your CI pipeline (Jenkins, Github Actions..) , or even across a Kubernetes cluster. Read more
🎭 Multi-Purpose Mocks: You can also use Keploy-generated Mocks, as server Tests!
📊 Reporting: Unified reports for API, integration, unit, and e2e coverage with insights directly in your CI or PRs.
🖥️ Console: A developer-friendly console to view, manage, and debug recorded tests and mocks.
⏱️ Time Freezing: Deterministically replay tests by freezing system time during execution. Read more
📚 Mock Registry: Centralized registry to manage, reuse, and version mocks across teams and environments. Read more
Because Keploy intercepts at the network layer (eBPF), it works with any language, framework, or runtime—no SDK required.
Note: Some of the dependencies are not open-source by nature because their protocols and parsings are not open-sourced. It's not supported in Keploy enterprise.