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 App | Transport | Why |
|---|---|---|
| Claude Desktop | stdio | Only supports stdio |
| Claude Code (CLI) | stdio | Local Node.js available |
| Cursor IDE | Either | Supports both, stdio recommended |
| v0 (Vercel) | SSE | Cloud-based, no local process |
| Bolt / Lovable | SSE | Cloud-based, no local process |
| Replit | SSE | Cloud-based, no local process |
| Custom web app | SSE | Browser 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.
Requires: Node.js/npm installed locally
SSE (Server-Sent Events / HTTP)
Direct HTTP connection to our hosted endpoint. Nothing runs locally.
Requires: Network access only
Comparison
| Factor | stdio | SSE |
|---|---|---|
| Setup complexity | Config file + restart | Just paste URL |
| Local dependencies | Needs Node.js | None |
| Latency | Lower (local process) | Slightly higher (HTTP) |
| Offline capability | Partial (process cached) | None |
| Works in browser | No | Yes |
| Resource usage | Spawns background process | None |
| Always latest version | npm update needed | Automatic |
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
https://unicon.sh/api/mcpThis 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/mcpBolt / Lovable
Configure in project settings:
{
"mcpServers": {
"unicon": {
"url": "https://unicon.sh/api/mcp"
}
}
}Custom Integration
For custom MCP clients using the SDK:
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:
| Tool | Description |
|---|---|
| search_icons | AI-powered semantic search |
| get_icon | Get single icon by ID |
| get_multiple_icons | Get multiple icons at once |
| list_libraries | List available icon sources |
| list_categories | List icon categories |
| get_starter_pack | Get 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-IdRate Limits
| Tier | Requests | Window |
|---|---|---|
| Free | 100 | per minute |
| Burst | 10 | per 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.)