Connecting Your MCP Server

MCPRadar supports all three MCP transport types. This guide walks you through connecting each one.

MCPRadar v1 · Last updated March 2026

Understanding MCP Transports

MCP servers communicate with clients using one of three transport mechanisms. The transport determines how data flows between MCPRadar and your server.

Choosing the wrong transport is the most common reason connections fail — so identifying yours correctly is the first step.

>_

stdio

Local only

Your server runs as a local process. Communication happens via standard input/output pipes.

Best for: Claude Desktop configs, local development servers, servers distributed as npm/pip packages
// Your server code ends with:
const transport = new StdioServerTransport()
await server.connect(transport)

SSE

HTTP · Legacy

Server-Sent Events. Your server runs an HTTP server that streams events to clients. This was the original MCP HTTP transport — now superseded by Streamable HTTP but still widely used.

Best for: Older MCP servers, servers built before mid-2024, some hosted services
// Your server code ends with:
const transport = new SSEServerTransport(
  '/sse', response
)
await server.connect(transport)
🔄

Streamable HTTP

Recommended

The modern MCP transport. A single HTTP endpoint handles all communication. Supports sessions via the mcp-session-id header. This is the recommended transport for all new MCP servers.

Best for: New servers, production deployments, remote hosted servers, anything built after mid-2024
// Your server listens on an HTTP port:
app.post('/mcp', handleMcpRequest)
app.listen(3001)

Streamable HTTP

The recommended transport for modern MCP servers

1

Start your server

Run your MCP server locally or deploy it to a hosting provider. Your server should be listening on an HTTP port.

# Start your server
node server.js
# → MCP server running on http://localhost:3001
2

Get your server URL

Your MCP endpoint URL is the base URL of your server plus the path where MCP requests are handled. This is usually /mcp.

# Local development:
http://localhost:3001/mcp

# Production:
https://your-server.railway.app/mcp
3

Connect in MCPRadar

In MCPRadar's connection panel:

  1. Paste your server URL
  2. Select HTTP transport (or leave on AUTO)
  3. Click Connect
4

Verify connection

If connected successfully:

  • Tool list appears in the left panel
  • Status shows ● Online
  • Security scan runs automatically

If connection fails — see Troubleshooting below.

⚠️ Important: If your server uses sessions, make sure it returns the mcp-session-id header on all responses. MCPRadar's security scanner will flag this if it's missing. See the P3 check in our scoring docs.

SSE (Server-Sent Events)

Legacy transport — still widely supported

1

Start your server

# Start your SSE server
node server.js
# → SSE server running on http://localhost:3001
2

Identify your SSE endpoint

SSE servers typically expose two endpoints:

  • GET /sse — the event stream endpoint
  • POST /messages — where clients send requests

Your connection URL should be the base URL, not the /sse path directly.

# Connect using base URL:
http://localhost:3001

# NOT:
http://localhost:3001/sse  ← don't do this
3

Connect in MCPRadar

In MCPRadar's connection panel:

  1. Paste your base server URL
  2. Select SSE transport explicitly (AUTO may not detect SSE correctly on all servers)
  3. Click Connect

⚠️ Common mistake: SSE servers are often confused with Streamable HTTP because both use HTTP. The key difference: SSE uses GET for the event stream, Streamable HTTP uses POST for everything. If AUTO mode fails, try selecting SSE explicitly.

stdio

For locally running servers and Claude Desktop configurations

1

Find your server command

stdio servers are launched with a shell command. This is the same command you'd put in your Claude Desktop config.

# Examples of stdio server commands:

# Node.js server:
node /path/to/your/server.js

# npm package:
npx @modelcontextprotocol/server-filesystem

# Python server:
python /path/to/server.py

# With uv:
uvx mcp-server-git
2

Connect in MCPRadar

In MCPRadar's connection panel:

  1. Select stdio transport
  2. Enter the full command to run your server
  3. Add any environment variables your server needs (API keys etc.)
  4. Click Connect

The connection will launch your server locally and communicate via stdin/stdout.

3

Environment variables

Most stdio servers need API keys or config via environment variables. Add them in the ENV section of the connection panel.

# Example env vars for common servers:

# GitHub MCP server:
GITHUB_TOKEN=ghp_xxxxxxxxxxxx

# Filesystem server:
# No env vars needed — pass paths as args

# Custom server:
DATABASE_URL=postgresql://...
API_KEY=sk-...

🔒 Security note: Environment variables you enter in MCPRadar are only used for that session and are never stored or sent anywhere outside your local machine. For production use, set env vars in your deployment environment directly.

Troubleshooting Connection Issues

Still stuck?

💬

MCP Discord

The official MCP community Discord has 11,000+ members. Search for your error or ask in #help.

Join Discord →
🐛

Open a GitHub Issue

Found a bug in MCPRadar or something that should work but doesn't? Open an issue and we'll look into it.

Open Issue →
📖

MCP Official Docs

The official Model Context Protocol documentation covers the full spec, SDK references, and architecture.

Read Docs →