MCP Server Tester
Paste the URL of a remote MCP server. You see whether it answers, which tools it offers and how well they are described, and you get the curl commands for the same test.
The tester sends exactly two requests from our server: initialize and tools/list, the same handshake Claude, ChatGPT, Cursor or VS Code do when you add a connector. It never calls a tool, so it cannot change anything on the server. It works with Streamable HTTP endpoints over HTTPS, with JSON or SSE responses and with or without an Mcp-Session-Id.
What the result tells you
- Works: the server answered tools/list without credentials. You can paste the URL into any MCP client.
- Needs a sign-in or API key: HTTP 401 or 403. That is normal for servers with OAuth; your client opens the login when you add it.
- Not working: wrong path (many servers live at
/mcp), the server is offline, the certificate is invalid, or it only speaks the older SSE transport.
Live status badge for your README
After a successful test you get a badge like , ready to paste into a README or docs page. It shows whether the server answers and how many tools it lists, re-checked about once an hour:
[](https://shortformkit.com/mcp-server-tester/?url=YOUR_URL_ENCODED)
The tools table also counts how many parameters carry a description. Assistants choose tools from these texts, so a server with undocumented parameters gets picked less often and called wrong more often.
Test an MCP server with curl
The same test by hand. Step 1 opens the session; if the response headers contain Mcp-Session-Id, send it with every following request. Stateless servers do not send one, then leave the header out.
curl -s -D - https://shortformkit.com/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}'
Step 2 lists the tools:
curl -s https://shortformkit.com/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}'
Step 3 calls one tool with its arguments:
curl -s https://shortformkit.com/mcp \
-H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"youtube_channel_id","arguments":{"query":"@mkbhd"}}}'
If a server answers with text/event-stream, the JSON is in the data: line of the response. The Accept header must list both types, or many servers reply with 406. Looking for servers to try? See the free remote MCP servers we tested, or add ours.
How it works
- Paste the endpoint URL The full https:// address, usually ending in /mcp.
- Run the test We send initialize and tools/list, nothing else.
- Read the result Status, tools, parameter coverage and ready-made curl commands.
FAQ
How do I test an MCP server online?
Paste its HTTPS endpoint into the MCP Server Tester on this page. It runs the initialize handshake and tools/list and shows the tools the server offers, without installing anything.
How do I list the tools of an MCP server with curl?
Send a POST with a JSON-RPC initialize request, then a POST with the method tools/list to the same URL, both with the headers Content-Type: application/json and Accept: application/json, text/event-stream. The exact commands are above.
Why does my MCP server return 406?
The Accept header is missing a type. Streamable HTTP servers expect Accept: application/json, text/event-stream.
Does the tester call my tools?
No. It only sends initialize, the initialized notification and tools/list. No tool is ever executed.
Can it test servers on localhost?
No. For safety it only connects to public HTTPS addresses. For a local server use the curl commands above or the official MCP Inspector.