Any language, any host
Write the server in whatever your team already writes, and run it where the data is.
GitHub, Stripe, Supabase, Chrome, email, phone — and anything that speaks MCP, including the system nobody else integrates with.
The homepage's toolbelt, one card each. The caption is what the agent actually gets from it.
Not on the list? If it speaks MCP, your agents can use it — including the internal system nobody else integrates with.
A connection is made once for the workspace, granted per agent, and gated by a human before anything leaves.
Choose from the list, or paste the endpoint of one you already run.
Tools are whitelisted per agent. An agent sees only what it has been given.
Email, payments, merges: anything that leaves the building waits for a person.
{
"mcpServers": {
"github": { "url": "https://mcp.github.com/sse" },
"stripe": { "url": "https://mcp.stripe.com/" },
"lims": {
// the one nobody else integrates
"url": "https://lims.internal.example/mcp",
"auth": "oauth"
}
},
"agents": {
"iris": { "tools": ["lims", "github"] }
}
}MCP is an open protocol. A server is a list of tools with names, inputs and a handler; Kilogent does the rest.
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { z } from "zod";
const server = new McpServer({ name: "lims", version: "1.0.0" });
// one tool: a name, its inputs, and what it returns
server.tool("sample_status", { id: z.string() }, async ({ id }) => ({
content: [{ type: "text", text: await lims.status(id) }],
}));Write the server in whatever your team already writes, and run it where the data is.
The server stays on your side. Kilogent connects to it; the data does not move house.
Instrument data, an internal database, a legacy API. Enterprise and research groups get the connector built together.
Ask about a private MCPDescribe the problem today. The agents that solve it are born in minutes, and share the work with your people.