Skip to main content

Invoice processing demo using Temporal workflows and MCP (Model Context Protocol)

Project description

Invoice Demo with Temporal + MCP

Video:

Watch the demo

Prerequisites:

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_processor under '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:

Claude MCP Invoice Submission

It can get status:

Claude MCP 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:

Claude MCP Combo

What's Cool About This:

  1. 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)
  2. 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
  3. Temporal makes modeling a long-running, durable, interactive transaction simple to integrate with MCP
Interactive Agentic Applications Powered By Workflows

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz (895.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

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

Hashes for iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6d12493b479bbda4c1e3cdb8ee2c4443618861b15fc454f859d644811f45c6cf
MD5 380c6a4f8c21dd6741c99d627931cc60
BLAKE2b-256 b7617c24ab470e7967f20687b4d246e521aed56a9c4e32738c6d27bf7b6ac3f4

See more details on using hashes here.

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

Hashes for iflow_mcp_aslan11_temporal_invoice_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 82b772ed99b526009b159ebe9257b2fe92927ebd659b6cd736f623d118f06e7e
MD5 76656bf4d44c1f7891bbb79d7223e840
BLAKE2b-256 d92f2985a8ff180600fd7d0aec40d91feac8f7ce8668a8220b552f327489fff5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page