Enables human-in-the-loop communication by facilitating message passing between AI agents and a human operator through Telegram, allowing agents to send structured 'oracle calls' for human judgment and receive responses.
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., "@Ordinal-MCPAsk the human if I should proceed with the database migration."
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.
Ordinal-MCP
An MCP server that implements an ordinal communication bus — a structured message-passing system between AI agents and humans based on ordinal levels of computation.
Built for the Rhode agent system. When an AI agent hits a decision boundary it can't resolve on its own, it makes an oracle call — a structured question sent up to the human operator. The human responds via Telegram, and the answer flows back down to the waiting agent.
The Ordinal Model
The system defines four computational levels:
Level | Role | Description |
0 | Infrastructure | Filesystem, network, containers |
1 | Subagent | Worker agents executing delegated tasks |
2 | Orchestrator | Rhode — the lead agent |
3 | Oracle | The human operator |
Communication flows upward (oracle calls — asking the human) and downward (task delegation — assigning work to subagents). Messages are typed, structured, and archived.
How It Works
An agent calls
oracle_call("Should I deploy to production?")The request is written as JSON to
~/.rhode/bus/requests/Rhode's bus monitor picks it up and sends it to the human via Telegram
The human replies in Telegram
The response is written to
~/.rhode/bus/responses/The agent receives the answer and continues
The exchange is archived to
~/.rhode/bus/history/
MCP Tools
oracle_call
Send a question to the oracle and wait for a response.
bus_status
Check the current state of the bus — pending requests, responses, and history count.
list_pending_calls
List all oracle calls currently waiting for a response.
respond_to_oracle_call
Answer a pending oracle call (used by the oracle/orchestrator side).
bus_history
View recent completed exchanges.
Bus Directory Structure
Configurable via the ORDINAL_BUS_DIR environment variable.
Installation
Requires Python 3.13+ and uv.
Run standalone
Configure as an MCP server
Add to your .mcp.json (e.g. in your Claude Code project root):
Background
This implements a practical version of Turing's O-machine concept — a computation model where the machine can query an external oracle for answers to undecidable questions. In this system, the "undecidable questions" are judgment calls, preference decisions, and ambiguous requirements that only a human can resolve.
The ordinal levels give the system a clear hierarchy: infrastructure at the bottom, human at the top, with agents in between. Each level can call upward when it needs help and delegate downward when it can break work apart.
License
MIT