How to Integrate OmniRoute with Other Tools: 4 Integration Methods Explained
OmniRoute exposes four distinct integration surfaces—an OpenAI-compatible HTTP API, MCP server, A2A server, and CLI/Electron UI—that allow any client to route requests through 250+ AI providers using a unified core routing engine.
OmniRoute is a unified AI proxy and router that consolidates access to over 250 providers through a single interface. Understanding how to integrate OmniRoute with other tools requires knowing which of its four standardized surfaces best fits your architecture, as each is built on the common core routing logic found in open-sse/services/combo.ts. Whether you are connecting a CLI script, IDE plugin, or autonomous agent, all integration methods share the same provider registry (open-sse/config/providerRegistry.ts) and guardrails, ensuring consistent behavior across surfaces.
HTTP API Integration (OpenAI-Compatible)
The HTTP API provides unified /v1/* endpoints that translate standard OpenAI schema requests to any registered provider. This surface is ideal for CLI tools, CI pipelines, and custom backends that already implement the OpenAI specification.
Endpoint Configuration
All chat, embedding, image, and audio endpoints are available under the /v1 path. According to the source code in src/app/api/v1/chat/completions/route.ts, OmniRoute validates incoming requests against the OpenAI schema, translates them to the target provider format, and returns standardized responses.
Authentication is controlled via the REQUIRE_API_KEY environment variable. When enabled, pass your key in the Authorization header.
Node.js Integration Example
const response = await fetch('http://localhost:3000/v1/chat/completions', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer my-api-key'
},
body: JSON.stringify({
model: 'gpt-4o-mini',
messages: [{ role: 'user', content: 'Summarize the Omniverse.' }],
max_tokens: 200
})
});
const data = await response.json();
console.log(data);
MCP Server Integration
The Model Context Protocol (MCP) server exposes 37 management tools—including routing, cache, compression, memory, and provider controls—accessible via stdio, SSE, or HTTP transports.
Tool Scopes and Transport
As implemented in open-sse/mcp-server/server.ts, the MCP server supports fine-grained access control through the OMNIROUTE_MCP_SCOPES environment variable. This allows you to restrict which tools clients can invoke, making it safe to embed in IDE plugins like Claude Desktop or Cursor.
Python SDK Integration
from omniroute.mcp import McpClient
client = McpClient(base_url='http://localhost:3000')
tools = client.list_tools() # Returns 37 available tools
# Query available routing combinations
combo = client.call('list_combos')
print(combo)
A2A (Agent-to-Agent) Server Integration
The A2A server enables autonomous agent communication through JSON-RPC 2.0 endpoints, exposing six built-in skills: smart-routing, quota-management, provider-discovery, cost-analysis, health-report, and list-capabilities.
Endpoints and Skills
Enable A2A mode using omniroute --a2a to expose /api/a2a/status (agent card) and /api/a2a (JSON-RPC handler). Custom skills can be registered in src/lib/a2a/skills/ to extend functionality for LangChain or custom orchestration frameworks. Documentation for extending A2A capabilities is available in src/lib/a2a/README.md.
LangChain Integration Example
from langchain.llms import BaseLLM
from omniroute_a2a import OmniRouteA2A
llm = OmniRouteA2A(endpoint='http://localhost:20128')
response = llm.generate('Write a poem about AI routers.')
print(response)
CLI and Desktop Integration
The omniroute binary bundles the server, MCP, A2A, and a system-tray dashboard into a single executable. This surface requires no code changes—use built-in commands to manage providers, combos, and tools directly from the terminal.
Start the server with MCP support:
omniroute --mcp
Or enable A2A mode:
omniroute --a2a
Summary
- HTTP API: Best for existing OpenAI-compatible clients; endpoints defined in
src/app/api/v1/chat/completions/route.tsand siblings. - MCP Server: Ideal for IDE plugins and automation scripts; provides 37 tools via
open-sse/mcp-server/server.tswith scope-based security controlled byOMNIROUTE_MCP_SCOPES. - A2A Server: Designed for agent-to-agent communication; exposes JSON-RPC skills at
/api/a2awith extensible skill definitions insrc/lib/a2a/skills/. - CLI/Desktop: Provides immediate local access without code changes; bundles all server modes into the
omniroutebinary and runs on Windows, macOS, and Linux.
Frequently Asked Questions
Can OmniRoute replace my existing OpenAI client?
Yes. OmniRoute exposes OpenAI-compatible endpoints at /v1/*, allowing you to change only the base URL and API key in your existing client. The request validation logic in src/app/api/v1/chat/completions/route.ts ensures full compatibility with standard chat completion schemas while routing to 250+ underlying providers.
What is the difference between MCP and A2A integration?
MCP (Model Context Protocol) provides 37 administrative tools for managing routing, cache, and providers, making it suitable for IDE plugins and operational scripts. A2A (Agent-to-Agent) exposes JSON-RPC 2.0 skills for autonomous agent communication, designed for LangChain integrations and multi-agent orchestration where one AI needs to delegate tasks to another through the omniroute --a2a interface.
How do I secure my OmniRoute API endpoints?
For HTTP API access, set REQUIRE_API_KEY=true to enforce bearer token authentication. For MCP connections, configure the OMNIROUTE_MCP_SCOPES environment variable to restrict which of the 37 tools clients can access. Both mechanisms are enforced by the core routing engine in open-sse/services/combo.ts.
Where do I configure provider routing rules?
Provider routing rules are managed through the provider registry at open-sse/config/providerRegistry.ts and can be manipulated via the MCP server's set_routing_strategy tool or the CLI dashboard. Changes made through any integration surface immediately affect all connected clients, as they share the same underlying combo service.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →