Skip to main content

MCP Server

The intellinode command starts an MCP server that exposes the Gen functions and multi-provider chat as tools. A coding assistant connected to it can route work to OpenAI, Anthropic, Gemini, Mistral, Cohere, NVIDIA, OpenRouter, DeepSeek, Groq, xAI, Together or a local Ollama model.

Start the server

npx -y intellinode mcp                       # stdio, for Claude Code, Cursor, VS Code
npx -y intellinode mcp --http --port 3210 # Streamable HTTP at http://127.0.0.1:3210/mcp
npx -y intellinode help

HTTP options: --port (default 3210), --host (default 127.0.0.1), --path (default /mcp), --origin <url> (extra allowed browser origin, repeatable), --debug.

Keys

Keys come from the environment or a .env file in the directory where the server starts:

VariableProvider
OPENAI_API_KEYOpenAI (chat tools and image generation)
ANTHROPIC_API_KEYAnthropic
GEMINI_API_KEYGoogle Gemini
MISTRAL_API_KEYMistral
COHERE_API_KEYCohere
NVIDIA_API_KEYNVIDIA
OPENROUTER_API_KEY, OPENROUTER_MODELOpenRouter (default model openai/gpt-5.5)
DEEPSEEK_API_KEY, DEEPSEEK_MODELDeepSeek (default model deepseek-chat)
GROQ_API_KEY and GROQ_MODELGroq
XAI_API_KEY and XAI_MODELxAI
TOGETHER_API_KEY and TOGETHER_MODELTogether
OLLAMA_MODELA local Ollama model, no key needed
STABILITY_API_KEYStability AI images

The default provider is the first configured one in that order; every tool accepts a provider argument to pick another. A missing key returns a tool error naming the variable to set, so the assistant can tell you what to configure.

Install in your assistant

Claude Code:

claude mcp add intellinode -e OPENAI_API_KEY=sk-... -e ANTHROPIC_API_KEY=sk-ant-... -- npx -y intellinode mcp

Or a project .mcp.json (Claude Code) / .cursor/mcp.json (Cursor):

{
"mcpServers": {
"intellinode": {
"command": "npx",
"args": ["-y", "intellinode", "mcp"],
"env": { "OPENAI_API_KEY": "sk-...", "ANTHROPIC_API_KEY": "sk-ant-..." }
}
}
}

VS Code (.vscode/mcp.json):

{
"servers": {
"intellinode": {
"type": "stdio",
"command": "npx",
"args": ["-y", "intellinode", "mcp"],
"env": { "OPENAI_API_KEY": "sk-..." }
}
}
}

For the HTTP transport start npx -y intellinode mcp --http and register { "type": "http", "url": "http://127.0.0.1:3210/mcp" }.

Tools

ToolArgumentsReturns
ask_modelprompt, provider?, model?, system?text
consensusprompt, providers?the answer of every configured provider side by side
review_codecode, language?, provider?{ summary, score, issues }
fix_codecode, problem?, language?, provider?{ code, explanation, changes }
generate_unit_testscode, framework?, modulePath?, provider?test file
generate_componentdescription, framework?, language?, styling?, provider?code
generate_formdescription, framework?, action?, provider?code
generate_sqldescription, dialect?, schema?, provider?SQL
generate_openapi_specinput, title?, basePath?, provider?OpenAPI document
generate_design_tokensbrand, brandColor?, provider?tokens, CSS variables, Tailwind theme
generate_regexdescription, language?, provider?{ pattern, flags, explanation, matches, nonMatches, verified }
generate_mock_dataschema, count?, provider?{ records, count }
generate_seo_metapage, url?, siteName?, provider?meta fields and rendered HTML
generate_imageprompt, provider? (openai or stability), size?PNG image block
list_providersnoneconfigured providers, defaults and the variables still unset

Build your own server

MCPServer serves your own tools over stdio or Streamable HTTP, with no extra dependency:

const { MCPServer } = require('intellinode');

const server = new MCPServer({
name: 'my-tools',
version: '1.0.0',
instructions: 'Optional guidance for the model.',
tools: [{
name: 'add',
description: 'Add two numbers',
inputSchema: { type: 'object', properties: { a: { type: 'number' }, b: { type: 'number' } }, required: ['a', 'b'] },
handler: async ({ a, b }) => ({ sum: a + b }),
}],
});

server.startStdio(); // stdio transport
const { url } = await server.startHttp({ port: 3210 }); // or Streamable HTTP, url: http://127.0.0.1:3210/mcp
await server.stop();

A handler may return a string, an object (sent as structuredContent plus a JSON text block), a content block or a full { content, structuredContent, isError } result; a thrown error becomes isError: true with the message. startHttp accepts host, port, path, allowedOrigins and maxBodyBytes.

Registry

The server is listed in the MCP registry as io.github.intelligentnode/intellinode, so clients that browse the registry can install it directly.