Invoice processing demo using Temporal workflows and MCP (Model Context Protocol)
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz.
File metadata
- Download URL: iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz
- Upload date:
- Size: 895.7 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d12493b479bbda4c1e3cdb8ee2c4443618861b15fc454f859d644811f45c6cf
|
|
| MD5 |
380c6a4f8c21dd6741c99d627931cc60
|
|
| BLAKE2b-256 |
b7617c24ab470e7967f20687b4d246e521aed56a9c4e32738c6d27bf7b6ac3f4
|
File details
Details for the file iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl.
File metadata
- Download URL: iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl
- Upload date:
- Size: 902.4 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
82b772ed99b526009b159ebe9257b2fe92927ebd659b6cd736f623d118f06e7e
|
|
| MD5 |
76656bf4d44c1f7891bbb79d7223e840
|
|
| BLAKE2b-256 |
d92f2985a8ff180600fd7d0aec40d91feac8f7ce8668a8220b552f327489fff5
|