MCP client and MCP server
Call itfirst.
Call an MCP server’s tools yourself, before an agent does. Discover what it offers, call a tool with arguments from its schema, and read the exact JSON-RPC that came back.
Calls 0
Not a screenshot.
Pick a tool, hit Call
Pick a tool and hit Call
Test an MCP server
Every call, readable.
Point Kurlo at the server’s endpoint. Everything below works the same for a server you are writing on localhost and for a hosted one.
No. 01
Discover
Press Discover and Kurlo shows the server’s name, version, tools, resources and prompts. It only asks for the capabilities the server declares.
No. 02
Call tools
tools/call, resources/read and prompts/get. Picking a tool fills the Arguments editor from its input schema, and arguments that are not a JSON object are stopped before they are sent.
No. 03
Raw exchange
The JSON-RPC envelope exactly as it arrived, frame by frame when the server streams its answer. This is the view that makes a failing tool call readable.
No. 04
Notifications
The progress and log notifications a streamed answer carried before its result.
No. 05
Spec checks
A tool whose structuredContent does not match its own outputSchema is flagged, and a tool whose x-mcp-header annotations the specification forbids is named with the reason instead of quietly hidden.
No. 06
Old and new servers
Kurlo tries the stateless 2026-07-28 revision first. Servers on 2025-11-25, 2025-06-18 or 2025-03-26 get a session with initialize and Mcp-Session-Id, and the panel names the revision.
No. 07
Saved like any request
An MCP call lives in your collection as YAML in Git, with environment variables, pm.* pre-request and test scripts, auth, proxy and client certificates.
And the other way round
Kurlo is a server too.
kurlo mcp gives your agent your saved API requests. It runs them with their auth and tests and adds new ones to the collection you see in the app. It ships as @kurlo/cli on npm and is listed in the official MCP Registry as dev.kurlo/kurlo.
- Claude Code
- Codex
- Cursor
- VS Code
- Windsurf
- Gemini CLI
- Claude Desktop
A real run, sped up 4×. Claude Code gets one prompt, writes the tests over kurlo mcp, finds that the order total ignores quantity and fixes the server. The tests appear in Kurlo as they are saved.
Read
list_requests, get_request, list_environments, and list_history with get_history_entry for the requests you just sent from the app. diagnose_last_failure says why one failed.
Run
run_request and run_collection with their auth, scripts and tests, and send_request for a one-off call with your environment’s variables.
Write
create_collection, save_request, delete_request, save_example and set_variable change the same YAML files the app writes. generate_tests turns a response into status and JSON schema tests.
Prompts
sync_collection adds a request with tests for every route in your code the collection lacks, cover_endpoint does it for one, and debug_last_failure explains your last failed request.
Guardrails
Secrets reach your API but come back to the model as [secret]. Environments marked protected are refused, and --read-only leaves out every write tool.
Protocol support
What it speaks.
Every revision a server is likely to run today, and the parts that are still missing.
| Part | Details | Status |
|---|---|---|
| 2026-07-28 | Stateless. Tried first. | Yes |
| 2025-11-25 | Session with initialize and Mcp-Session-Id. | Yes |
| 2025-06-18 | Session with initialize and Mcp-Session-Id. | Yes |
| 2025-03-26 | Session with initialize and Mcp-Session-Id. | Yes |
| Streamed answers | Frame by frame, with progress and log notifications. | Yes |
| stdio | Servers started as a local command, such as npx some-server. | Not yet |
| 2024-11-05 | The old HTTP+SSE transport. | Not yet |
| Subscriptions | subscriptions/listen. | Not yet |
| Sampling | Declined. Kurlo has no model and is not going to grow one. | No |
FAQ
Fair questions.
What is an MCP client?
A program that talks to Model Context Protocol servers. AI agents such as Claude Code or Cursor are MCP clients that call tools on their own. Kurlo is one you drive by hand, so you can see each call and its answer before an agent depends on them.
How do I test an MCP server I am building?
Run it on a local port, put its endpoint in a new MCP request, press Discover and call each tool. Save the calls in a collection and add pm.test checks, and the same calls tell you when a change breaks a tool.
Does it work with servers made with the official SDKs or FastMCP?
Yes. Those servers mostly speak the session-based revisions, and Kurlo opens the session for them.
How do I give my agent my API requests?
Run npx -y @kurlo/cli mcp install once. It adds kurlo mcp to the AI clients it finds, and the agent works with the same collection you see in the app.
Is it free?
Yes. Kurlo is MIT licensed, with no account, no paid plan and no telemetry.
MCP client and server · Free
Call it.
Test the server you are building, then hand your agent the requests that prove it works.
macOS 12+ · Windows 10+ · Ubuntu 22.04+ · x64 and Arm64

