Theodosia
Theodosia gives an AI agent a stateful, auditable workflow it cannot step outside of. You define the workflow as a Burr state machine; Theodosia serves it over MCP so the agent advances it one transition at a time.
Each Burr @action is reachable through one step(action, inputs) MCP tool.
State lives on the server. The server enforces transitions: an action that is not
reachable from the current state comes back as a structured refusal listing the
actions that are reachable. Every step is recorded to a replayable trace.
from theodosia import mount
server = mount(application)server.run()- Architecture: the four-tool surface, the action-selection trick, per-session isolation, input coercion.
- Observability: the
theodosia://resources, the terminal CLI, the Burr UI, OpenTelemetry. - Driving other MCP servers: the
upstreamfeature, where a Burr action calls tools on other MCP servers. - CLI: serve, doctor, the observability commands, and shipping your own
rebranded command with
build_cli.
The source, examples, and quickstart live in the repository.
Theodosia is an independent project, not affiliated with the Apache Software Foundation, DAGWorks, the Apache Burr project, or the FastMCP project.