Temporal Invoice
STDIOMCP server demo integrating Temporal workflows with invoice processing capabilities
MCP server demo integrating Temporal workflows with invoice processing capabilities
uv (curl -LsSf https://astral.sh/uv/install.sh | sh) git clone https://github.com/your-org/temporal-mcp-invoice-demo.git
 cd temporal-mcp-invoice-demo
 uv venv
 source .venv/bin/activate
 uv pip install temporalio fastmcp
 temporal server start-dev
 python worker.py [--fail-validate] [--fail-payment]
Instead of starting the server and worker manually you can launch them in a
tmux session using the boot-demo.sh helper script:
 ./boot-demo.sh
{ "mcpServers": { "invoice_processor": { "command": "/Path/To/Your/Install/Of/uv", "args": [ "--directory", "/Path/To/temporal-invoice-mcp", "run", "server.py" ] } } }
invoice_processor under 'Search & Tools'trigger <paste: samples/invoice_acme.json>
Use your MCP client (e.g., Claude Desktop) to call the trigger, approve,
reject, and status tools. The trigger tool now returns both the
workflow_id and run_id of the started workflow. Pass these values to the
approve, reject, and status tools. The sample invoice lives at
samples/invoice_acme.json. Inspect Temporal Web at http://localhost:8233.
Kill and restart the worker at any time to observe deterministic replay.
Claude submits the invoice workflow:
It can get status:
Claude + MCP can send inputs and updates to the process workflow such as approvals, or even do a combination of actions - all agentically, explaining in human analogies what's going on if you ask it to:
