Invoice Demo with Temporal + MCP
Video:
Prerequisites:
- Python3+
uv(curl -LsSf https://astral.sh/uv/install.sh | sh)- Temporal Local Setup Guide
- Claude for Desktop
1. Clone & install
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
2. Launch Temporal locally
temporal server start-dev
3. Start the worker
python worker.py [--fail-validate] [--fail-payment]
Quick demo boot
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
Claude for Desktop Instructions (Sonnet 4)
1. Follow steps 1-3 above
2. Edit your Claude Config (Claude > Settings > Developer > Edit Config)
{
"mcpServers": {
"invoice_processor": {
"command": "/Path/To/Your/Install/Of/uv",
"args": [
"--directory",
"/Path/To/temporal-invoice-mcp",
"run",
"server.py"
]
}
}
}
3. Restart Claude for Desktop after editing your config
- If successful you'll see
invoice_processorunder 'Search & Tools'
4. To kick off processing the mock invoice, run:
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.
5. Results
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:
What's Cool About This:
- Agents and applications connected by MCP can provide a powerful way for humans to interact with processes and applications
- (as long as the applications have an API to interact with)
- MCP tools don't have to be just one API call - you can get process status and even send it more information as it proceeds
- Temporal makes modeling a long-running, durable, interactive transaction simple to integrate with MCP
Metadata
Release files for iflow-mcp_aslan11-temporal-invoice-mcp 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz | 895.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.8 MB
Release files / iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz
| Download URL | iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz |
|---|---|
| Size | 895.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6d12493b479bbda4c1e3cdb8ee2c4443618861b15fc454f859d644811f45c6cf
|
|
BLAKE2b-256 checksum How to use checksums |
b7617c24ab470e7967f20687b4d246e521aed56a9c4e32738c6d27bf7b6ac3f4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl
| Download URL | iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl |
|---|---|
| Size | 902.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
82b772ed99b526009b159ebe9257b2fe92927ebd659b6cd736f623d118f06e7e
|
|
BLAKE2b-256 checksum How to use checksums |
d92f2985a8ff180600fd7d0aec40d91feac8f7ce8668a8220b552f327489fff5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.10.0 {"installer":{"name":"uv","version":"0.10.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|