ToolCairn is transport-agnostic. Use the MCP server in any MCP client, or skip MCP and hit the HTTP API directly — both paths return the same recommendations.
Option A — MCP client
Spawn @neurynae/toolcairn-mcp and connect over stdio:
mcp-client.ts
ts
// Node.js — spawning the MCP server over stdio
import { spawn } from 'node:child_process';
import { MCPClient } from '@modelcontextprotocol/sdk/client';
const proc = spawn('npx', ['-y', '@neurynae/toolcairn-mcp'], {
stdio: ['pipe', 'pipe', 'inherit'],
});
const client = new MCPClient({ transport: proc });
await client.connect();
const result = await client.callTool('get_stack', {
use_case: 'real-time collaborative whiteboard',
});The server boots in auth-gate mode on first run. Call the toolcairn_auth tool to walk the user through device sign-in, then restart the process.
Reference: MCP specification, tool reference.
Option B — HTTP API
Grab an API key, then call any /v1/* endpoint:
Register
bash
curl -X POST https://api.neurynae.com/v1/register \
-H "Content-Type: application/json" \
-d '{ "email": "you@example.com" }'
# → { "token": "eyJ...", "tier": "free", "expires_at": "..." }Call get_stack
bash
curl -X POST https://api.neurynae.com/v1/graph/stack \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $TOOLCAIRN_TOKEN" \
-d '{
"use_case": "real-time collaborative whiteboard",
"sub_needs": [
{ "sub_need_type": "framework",
"keyword_sentence": "react, canvas, websockets" },
{ "sub_need_type": "sync",
"keyword_sentence": "crdt, yjs, liveblocks" }
],
"limit": 4
}'For auth details, rate limits, and the full endpoint list, see HTTP API.
Next steps
- MCP Tools reference — every tool and its schema.
- HTTP API authentication — keys vs JWT.
- Rate limits — free vs pro tier.