KAIROS MCP
Provides optional authentication integration with Keycloak, supporting browser sessions and Bearer JWT validation.
Integrates with Ollama to provide local embedding generation using locally-running models.
Integrates with OpenAI's API for text embeddings.
Provides optional caching and proof-of-work state storage via Redis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@KAIROS MCPactivate a protocol chain for text summarization"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
KAIROS MCP
KAIROS MCP is a TypeScript service for storing and executing reusable protocol chains for AI agents. It exposes:
an MCP endpoint at
POST /mcpREST endpoints under
/api/*a browser UI under
/uia CLI named
kairos
Without persistent workflows, agents repeat work, lose context, and cannot follow multi-step procedures reliably. KAIROS fixes this with three core ideas (the diagrams below list every MCP tool):
Persistent memory — store and retrieve protocol chains across sessions
Deterministic execution — activate → forward (per layer) → reward; the server drives
next_actionat every stepAgent-facing design — tool descriptions and error messages built for programmatic consumption and recovery
Protocol execution runs in a fixed order: activate (match adapters), forward (run each layer’s contract; loop), then reward (finalize the run). Use train / tune / export / delete / spaces as described in each tool’s MCP description.
Default run order — activate → forward (loop per layer) → reward:
flowchart LR
A([activate]) --> B([forward])
B -.-> B
B --> D([reward])
style A fill:#4a6fa5,stroke:#2d4a7a,color:#fff
style B fill:#ffb74d,stroke:#f57c00,color:#333
style D fill:#81c784,stroke:#388e3c,color:#333Discovery and adapter lifecycle — no fixed order; follow each tool’s MCP description:
flowchart LR
S([spaces]) --- TR([train]) --- TU([tune]) --- EX([export]) --- DL([delete])
style S fill:#4a6fa5,stroke:#2d4a7a,color:#fff
style TR fill:#ede7f6,stroke:#5e35b1,color:#333
style TU fill:#fff3e0,stroke:#f57c00,color:#333
style EX fill:#e8f5e9,stroke:#388e3c,color:#333
style DL fill:#ffebee,stroke:#c62828,color:#333The server generates challenge data (nonce, proof_hash, URIs); agents echo
those values back exactly.
Protocol execution
Authoritative behavior for agents is defined in the MCP tool resources under
src/embed-docs/tools/ (activate, forward,
reward). This is an on-wire summary; follow each response’s next_action
and must_obey fields in real runs.
activate— Provide a shortquerystring (about 3-8 words) on every call. Fromchoices, pick one row and obey that row’snext_action(do not mix in another URI). Typical roles:match(continue withforwardon the given adapter URI),refine,create(register a new adapter withtrain).forward— With the adapter URI fromactivate, callforwardand omitsolutionon the first call for that run. Readcontractandnext_action. For each layer, callforwardagain using the layer URI from the last response (add?execution_id=...when the server returns it) and supply asolutionwhosetypematchescontract.type. Loop untilnext_actiontells you to callreward.reward— After the last layer, callrewardwith the layer URI fromforward(not the adapter URI unless the schema explicitly allows it),outcome(successorfailure), and optional evaluator fields per the tool description.
Must always: Obey next_action verbatim. Echo server-issued nonce,
proof_hash, and URIs exactly.
Must never: Invent URIs; skip layers; submit a solution whose type does not
match contract.type.
For a longer narrative, see the Workflow Engine pages in the KAIROS wiki.
Related MCP server: (S)AGE
What runs in this repository
The current codebase includes:
HTTP application server — Express app for MCP, REST, auth routes, and UI
stdio MCP transport — direct local-host launch path for desktop/IDE MCP clients
Qdrant-backed adapter store — required for runtime
Optional Redis cache / proof-of-work state store — enabled when
REDIS_URLis setOptional Keycloak auth integration — browser session + Bearer JWT validation
React UI — served from the same origin at
/uiCLI — talks to the HTTP API
Transport modes
Use one transport mode per process:
kairos serve / kairos-mcp serve (run the MCP server from the npm package):
--transport stdio|httpoverridesTRANSPORT_TYPEfor that process only.If neither is set,
servedefaults to stdio (good for local MCP hosts).Other
kairoscommands (login, train, …) do not use--transport; they only seeTRANSPORT_TYPEif you set it in the environment (normally leave it unset for CLI-only use).TRANSPORT_TYPE=http: serves/mcp,/api/*,/ui, and/health; this is the default for Docker Compose deployments.TRANSPORT_TYPE=stdio: runs MCP over stdin/stdout for local hosts such as Claude Desktop, Cursor, or Claude Code. In this mode, stdout is reserved for MCP protocol frames and logs go to stderr.
Quick start
KAIROS runs as a local MCP server that your agent host launches over stdio
(the default transport). You do not need to clone this repo or run Docker
Compose — install the package globally and point your host at kairos serve.
Prerequisites
Node.js 24+.
A Qdrant instance on
http://localhost:6333— KAIROS cannot start without it, and no auth is required for local use. If you don't already run one, this is the quickest option (optional convenience):docker run -p 6333:6333 qdrant/qdrantOne embedding backend, supplied through the host
envbelow.
Install
npm install -g @debian777/kairos-mcp
kairos --helpThe global install provides both the kairos CLI (bulk operations, auth,
server management) and the MCP server binary used by your agent host.
Configure your MCP host
Add KAIROS to your host's mcp.json (Cursor, Claude Desktop, Claude Code, …).
serve uses stdio by default, so no --transport flag is needed:
{
"mcpServers": {
"KAIROS": {
"command": "kairos",
"args": ["serve"],
"env": {
"QDRANT_URL": "http://localhost:6333",
"QDRANT_API_KEY": "",
"OPENAI_API_KEY": "sk-..."
}
}
}
}QDRANT_API_KEY="" selects no-auth localhost Qdrant. For the embedding backend,
supply one of:
OpenAI —
OPENAI_API_KEYOllama / OpenAI-compatible —
OPENAI_API_URL,OPENAI_EMBEDDING_MODEL, andOPENAI_API_KEY=ollamaTEI —
TEI_BASE_URL(+ optionalTEI_MODEL)
Every parameter is ENV-overridable. To run KAIROS as an HTTP listener
instead of stdio, add "--transport", "http" to args (see
Transport modes).
Some hosts show a longer agent-visible server id (for example one ending in
-KAIROS); see AGENTS.md for the runtime authority note.
When executing over MCP, follow Protocol execution
above and each tool result's next_action. The connected server's tool
descriptions are the runtime authority if they differ from this file.
Developers: to run the full Docker Compose stack (Qdrant + app + optional Keycloak / Redis / Postgres) for local development and testing, see CONTRIBUTING.md.
CLI
The kairos CLI is installed as part of the global package (see
Install above). It provides bulk adapter operations, authentication,
export/import, and server management — the same binary your MCP host uses for
kairos serve.
kairos --helpSee docs/CLI.md.
Add KAIROS to your agent instructions
This repo ships the kairos skill for running protocols. Use --list
to see what the skills registry reports for this repo.
If you want agents to use KAIROS consistently, add a short repo rule or instruction such as:
KAIROS MCP is a Model Context Protocol server for persistent memory and deterministic adapter execution. Execute protocols in this order:
activate→forward(loop per layer untilnext_actionpoints toreward) →reward. Echo all server-generated hashes, nonces, and URIs exactly.
Agent skills shipped in this repo
This repository ships its agent skills under
.agents/skills/. Two skills are published:
Skill | Audience | Purpose |
| Users | Run KAIROS protocols; install and update guidance; bug reports |
| Developers | Docker Compose dev environment and maintainer workflows (internal; not installed by |
Install the user skill:
npx skills add debian777/kairos-mcp --skill kairosList available skills:
npx skills add debian777/kairos-mcp --listPopular global installs:
Agents | Command |
Cursor |
|
Claude Code |
|
Cursor + Claude Code |
|
More detail: .agents/skills/README.md
Helm (advanced)
A Helm chart for Kubernetes deployment lives under helm/. To
validate the chart locally (matches the GitHub Actions CI pipeline):
npm run test:helmSee docs/install/helm.md for deployment details.
Documentation map
Troubleshooting
The server does not start
In stdio mode KAIROS logs to stderr (stdout is reserved for MCP frames).
Check your host's MCP log panel for the KAIROS server. The most common cause
is Qdrant not being reachable.
KAIROS cannot reach Qdrant
KAIROS requires a Qdrant instance and only becomes healthy once Qdrant is
ready. Confirm one is listening on your QDRANT_URL (default
http://localhost:6333):
curl http://localhost:6333/readyzIf you run KAIROS in HTTP mode (--transport http), you can also check its own
health endpoint (curl http://localhost:3000/health).
Embeddings fail on startup
Set one working embedding backend in the host env:
OpenAI:
OPENAI_API_KEYOllama/OpenAI-compatible:
OPENAI_API_URL,OPENAI_EMBEDDING_MODEL,OPENAI_API_KEY=ollamaTEI:
TEI_BASE_URL(+ optionalTEI_MODEL)
The CLI keeps asking for login
The CLI stores tokens per API URL. Confirm that:
you are using the expected
--url/KAIROS_API_URLthe token is still valid
Keycloak and the KAIROS server agree on issuer and audience
Use:
kairos token --validateDevelopers: for Docker Compose, fullstack, and auth troubleshooting, see CONTRIBUTING.md.
Support
Trademark
KAIROS MCP™ and the KAIROS MCP logo are trademarks of the project owner. They are not covered by the MIT license. Forks must remove the name and logo.
See TRADEMARK.md.
License
MIT — see LICENSE.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseCqualityDmaintenanceEnables AI agents to interact with cryptocurrency ecosystems through wallet management, trading operations (swaps, DCA, limit orders), staking, and multi-chain support starting with Solana.Last updated37GPL 3.0
- AlicenseAqualityAmaintenancePersistent, consensus-validated institutional memory for AI agents. Gives LLMs real memory that survives across sessions - validated through BFT consensus, not just dumped to a file.Last updated2910242Apache 2.0
- Alicense-qualityDmaintenanceEnables AI agents to create, share, discover, and execute reusable multi-step workflow templates.Last updatedMIT
- Alicense-qualityBmaintenanceProvides persistent memory, reasoning engine, agent-to-agent sharing, and immutable audit trail for AI agents via the Model Context Protocol.Last updatedMIT
Related MCP Connectors
TPermanent memory layer for AI agents. Mint moments to the Polygon blockchain via MCP.
Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.
Persistent memory for AI agents — verbatim conversations, searchable by meaning.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/debian777/kairos-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server