Endpoints: 28,729MCP servers: 18,414Payout addresses: 2,071Paid calls: 1,562Letters: 14Defects: 1,336counted just now
teppi

Server definition

Hash
sha256:586a30e7bcfc733b9376cf56e4f9f6f0b88ff291f15dad5633b8f143e37b3125
What it is
What a remote MCP server returned when asked what it offers: 7 tools

The blob, as servednamed by its sha256

{ "instructions": "Keploy is an API testing platform for recording and replaying API traffic against your app.\n\nThis server runs in tool-search mode: tools/list shows only the meta-tools (search_tools, get_tool_schema, invoke_tool) plus the auth-free onboarding tools (get_auth_status, get_setup_instructions, devloop_setup_instructions, devloop_begin_oauth_install). The full tool catalog is hidden and reached by name through invoke_tool.\n * No PAT yet, or a tool returned an auth error? Call get_auth_status, then get_setup_instructions or devloop_begin_oauth_install — these work without authentication.\n * Know the tool name already (e.g. a skill named it)? Fetch its schema with get_tool_schema({names:[...]}) — exact and cheap. Batch all names you need into ONE call.\n * Don't know the name? Discover it with search_tools(query). Do NOT use search_tools for names you already have.\n * Then run it: invoke_tool({name, arguments}). (Tools hidden from tools/list can also be tools/call'd directly if you know the exact name; invoke_tool just means you don't have to.)\n\nIDENTIFIERS you move between tools:\n * app_id — Keploy app UUID (from listApps / getApp). Used by every app-scoped tool.\n * branch_id — Keploy branch UUID. Required on every write. Resolve it ONCE (create_branch mirrors a git branch name into a Keploy branch) and reuse it. The Keploy branch is independent of your git branch; the branch literally named \"main\" is reserved — never target it.\n * test_run_id — identifies one test run/report; pass it to getTestReportFull to read results.\n\nROUTING — get this right before any record/replay/sandbox/generate verb:\n * Storage mode FIRST: call devloop_resolve_storage({app_id}). A \"repo\" app keeps tests in the dev's git repo and is driven by the devloop_* tools + the keploy CLI, with NO Keploy branch; a \"cloud\" app keeps tests in the api-server and is driven by create_test_suite / record_sandbox_test / replay_sandbox_test / replay_test_suite, with a branch_id required on every write. NEVER drive a repo-mode app with cloud tools or vice-versa.\n * Three reports, three questions — don't conflate: \"did the suite pass live?\" → the test-suite (replay_test_suite) report; \"did the rerecord link?\" → the rerecord report; \"explain my latest sandbox / integration run\" → the sandbox-run report. If the dev's verb is ambiguous, ASK which one.\n\nRead the chosen tool's OWN description before calling it — it carries the full procedure, flag names, and output contract (these orient you and route you to the right tool; per-flow detail lives in the tool's description, which is the source of truth).", "tools": [ { "description": "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.\n\nCurrent 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.\n\nABSOLUTE: 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.", "inputSchema": { "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" } }, "required": [], "type": "object" }, "name": "devloop_begin_oauth_install", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "devloop_setup_instructions", "outputSchema": null }, { "description": "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'.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_auth_status", "outputSchema": null }, { "description": "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.", "inputSchema": { "properties": {}, "required": [], "type": "object" }, "name": "get_setup_instructions", "outputSchema": null }, { "description": "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.\n\nUse 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.\n\nReturns {\"tools\": [{name, description, inputSchema}, ...], \"not_found\": [names...]}.", "inputSchema": { "properties": { "names": { "description": "Exact tool names, e.g. [\"getTestReportFull\",\"updateTestCase\"].", "items": { "type": "string" }, "type": "array" } }, "required": [ "names" ], "type": "object" }, "name": "get_tool_schema", "outputSchema": null }, { "description": "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.\n\nExample: invoke_tool {\"name\": \"getTestReportFull\", \"arguments\": {\"appId\": \"...\", \"testRunId\": \"...\", \"fields\": [\"status\"]}}", "inputSchema": { "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" ], "type": "object" }, "name": "invoke_tool", "outputSchema": null }, { "description": "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.\n\nReturns {\"matches\": [{name, description, inputSchema}, ...], \"total_catalog\": N}. Search by intent words, e.g. \"test report\", \"mock patch\", \"update test case\", \"cloud replay branch\", \"record\".", "inputSchema": { "properties": { "limit": { "description": "Max results (default 10).", "type": "number" }, "query": { "description": "Keywords matched against tool name + description, e.g. 'test report fields' or 'mock patch'.", "type": "string" } }, "required": [ "query" ], "type": "object" }, "name": "search_tools", "outputSchema": null } ] }
Verify it yourselfcurl -s https://api.teppi.xyz/v1/evidence/sha256:586a30e7bcfc733b9376cf56e4f9f6f0b88ff291f15dad5633b8f143e37b3125 | sha256sum