MCP Transport: stdio vs SSE

Unicon MCP supports two connection methods. This guide helps you choose the right one.

Quick Decision

Use the app you're using to decide:

Your AppTransportWhy
Claude DesktopstdioOnly supports stdio
Claude Code (CLI)stdioLocal Node.js available
Cursor IDEEitherSupports both, stdio recommended
v0 (Vercel)SSECloud-based, no local process
Bolt / LovableSSECloud-based, no local process
ReplitSSECloud-based, no local process
Custom web appSSEBrowser environment

TL;DR: Desktop apps → stdio. Cloud/browser apps → SSE.

What's the Difference?

stdio (Standard I/O)

A local Node.js process runs on your machine. Your AI app talks to it via pipes.

Your App ←→ Local Process (npx) ←→ Unicon API

Requires: Node.js/npm installed locally

SSE (Server-Sent Events / HTTP)

Direct HTTP connection to our hosted endpoint. Nothing runs locally.

Your App ←→ unicon.sh/api/mcp

Requires: Network access only

Comparison

FactorstdioSSE
Setup complexityConfig file + restartJust paste URL
Local dependenciesNeeds Node.jsNone
LatencyLower (local process)Slightly higher (HTTP)
Offline capabilityPartial (process cached)None
Works in browserNoYes
Resource usageSpawns background processNone
Always latest versionnpm update neededAutomatic

The Bottom Line

Both give you the exact same tools and results. The only difference is how your app connects to Unicon.

If your app supports both, stdio is marginally faster but SSE is simpler to set up. For most users, the difference is imperceptible.


SSE Endpoint URL

MCP Endpoint
https://unicon.sh/api/mcp

This is a Streamable HTTP endpoint that supports both SSE and standard HTTP responses.

How It Works

ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│   v0 / Cloud IDE / Agent    │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
           │ MCP Protocol (Streamable HTTP)
           │
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā–¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ unicon.sh/api/mcp │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜

The endpoint handles MCP protocol messages directly over HTTP. No local installation required.

Configuration Examples

v0 (Vercel)

Add Unicon as an MCP server in v0's settings:

https://unicon.sh/api/mcp

Bolt / Lovable

Configure in project settings:

mcp.json
{
  "mcpServers": {
    "unicon": {
      "url": "https://unicon.sh/api/mcp"
    }
  }
}

Custom Integration

For custom MCP clients using the SDK:

TypeScript
import { Client } from "@modelcontextprotocol/sdk/client/index.js";
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";

const transport = new StreamableHTTPClientTransport(
  new URL("https://unicon.sh/api/mcp")
);

const client = new Client({
  name: "my-app",
  version: "1.0.0"
}, {
  capabilities: {}
});

await client.connect(transport);

// Now you can call tools
const result = await client.callTool({
  name: "search_icons",
  arguments: { query: "dashboard", limit: 10 }
});

Available Tools

The SSE endpoint provides the same tools as the stdio transport:

ToolDescription
search_iconsAI-powered semantic search
get_iconGet single icon by ID
get_multiple_iconsGet multiple icons at once
list_librariesList available icon sources
list_categoriesList icon categories
get_starter_packGet curated icon collections

CORS Support

The endpoint supports CORS for browser-based integrations:

Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, POST, DELETE, OPTIONS
Access-Control-Allow-Headers: Content-Type, Accept, Mcp-Session-Id, Mcp-Protocol-Version, Last-Event-Id

Rate Limits

TierRequestsWindow
Free100per minute
Burst10per second

Troubleshooting

Connection Issues

  • 1. Verify the URL is exactly https://unicon.sh/api/mcp
  • 2. Check that your client supports Streamable HTTP transport
  • 3. Ensure network allows outbound HTTPS connections

Slow Responses

First requests may be slower due to cold starts. Subsequent requests are fast due to edge caching.

Tool Not Found

Verify you're using the correct tool names (search_icons, get_icon, etc.)