Skip to content

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 upstream feature, 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.