Integrations
Three ways in, all free and open source: an MCP server for editors and agents, an Ollama-compatible router for local-AI apps, and an OpenAI-compatible gateway for SDKs and frameworks. Nothing here routes your prompts through OpenNodes: discovery is metadata, invocation goes straight to the node.
Any MCP host gets four tools — recommend, search_offerings, get_offering, estimate — from one stdio server. The advisor extracts features from your prompt locally and sends only those to the registry; the prompt itself never leaves your machine.
One command:
claude mcp add --scope user opennodes -- npx -y @opennodes/cli mcp
Add to claude_desktop_config.json (Settings → Developer → Edit Config):
{ "mcpServers": { "opennodes": { "command": "npx", "args": ["-y", "@opennodes/cli", "mcp"] } } }
Add to ~/.cursor/mcp.json (or Settings → MCP → Add new server):
{ "mcpServers": { "opennodes": { "command": "npx", "args": ["-y", "@opennodes/cli", "mcp"] } } }
Add to .vscode/mcp.json in the workspace, or the user mcp.json:
{ "servers": { "opennodes": { "type": "stdio", "command": "npx", "args": ["-y", "@opennodes/cli", "mcp"] } } }
Add to ~/.codeium/windsurf/mcp_config.json:
{ "mcpServers": { "opennodes": { "command": "npx", "args": ["-y", "@opennodes/cli", "mcp"] } } }
The hosted registry is itself an MCP server (streamable HTTP, stateless) — no install at all:
https://registry.opennodes.io/mcpPoint LangGraph, the OpenAI Agents SDK, n8n, or any MCP-capable agent at it to give the agent discovery, task-based recommendation and enforceable pre-pricing as tools.
npx @opennodes/ollama-router starts an Ollama-compatible endpoint on port 11435 whose model list spans your local Ollama, other machines on your LAN, and verified public nodes — plus auto, auto-cheap, auto-fast, auto-quality and auto-private (never leaves your network). Every app below works unchanged: it only needs the Ollama address.
npx @opennodes/ollama-router
export OLLAMA_HOST=127.0.0.1:11435 # PowerShell: $env:OLLAMA_HOST="127.0.0.1:11435"
ollama list
ollama run auto-private "summarize this confidential note …"
Admin Panel → Settings → Connections → Ollama API: set the URL to the router. From Docker, use the host alias:
http://host.docker.internal:11435Or, as an OpenAI connection, use the gateway (below) with its token as the key.
In config.yaml:
models:
- name: OpenNodes auto
provider: ollama
model: auto
apiBase: http://localhost:11435
In settings.json:
{ "language_models": { "ollama": { "api_url": "http://localhost:11435" } } }
Wherever the app asks for the Ollama host or URL, enter http://localhost:11435. The merged model list appears in the app's picker; choose auto-private for anything that must stay on your machines.
npx @opennodes/cli gateway --port 4141 --token dev-secret runs a local OpenAI-compatible server over discovered nodes. Models are concrete offerings (node_id/offering_id), your aliases, query-defined virtual models, and the advisor-routed onp/auto family. Every call is pinned to a card revision, policy-checked, receipted and logged; a price change is recovered transparently.
from openai import OpenAI
client = OpenAI(base_url="http://127.0.0.1:4141/v1", api_key="dev-secret")
r = client.chat.completions.create(model="onp/auto", messages=[{"role": "user", "content": "Hello"}])
print(r.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "http://127.0.0.1:4141/v1", apiKey: "dev-secret" });
const r = await client.chat.completions.create({ model: "onp/auto-cheap", messages: [{ role: "user", content: "Hello" }] });
Use their OpenAI provider with the base URL http://127.0.0.1:4141/v1 and the gateway token as the key; pick onp/auto or a concrete offering as the model name. LiteLLM: openai/onp/auto with api_base set to the gateway.
Read the ledger at any time:
curl http://127.0.0.1:4141/gateway/receipts # total cost, per-call receipts
curl http://127.0.0.1:4141/gateway/advice # why onp/auto picked what it pickedImported catalog providers (OpenRouter, Hugging Face) need your own key for that host: --key openrouter.ai=sk-or-….
registry.opennodes.io: catalog with hardware and measured performance, model and node pages, the advisor, a playground, and a multi-model chat (compare, jury, pipeline, iterative) that talks straight from your browser to the nodes — scenarios save locally and share by link, no account.
A desktop client that spans both layers — models through OpenNodes, tools through MCP — with the advisor, verified receipts under every reply, a spend policy, and a one-click private mode. Pre-release: Windows installer, source on GitHub (Apache-2.0).
pipx install onp-node
onp-node init --engine http://127.0.0.1:11434/v1 --id org.example.ai --public-url https://ai.example.org
onp-node serve && onp-node check && onp-node register https://registry.opennodes.ioThe node id is the reverse of the host that serves it; registration proves control of that host, then the automated battery earns the tier.
npx @opennodes/registry # web app + API + MCP on http://127.0.0.1:4300Production recipe (Postgres, TLS, backups, re-imports): deploy/registry. Point any client above at it with ONP_REGISTRY.