temporal-invoice-mcp
Provides tools for managing invoice workflows on Temporal, including triggering, approving, rejecting, and checking status of long-running interactive processes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@temporal-invoice-mcp trigger an invoice workflow from a sample file"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Invoice Demo with Temporal + MCP
Video:

Prerequisites:
Python3+
uv(curl -LsSf https://astral.sh/uv/install.sh | sh)Temporal Local Setup Guide
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 fastmcpRelated MCP server: agent-invoice
2. Launch Temporal locally
temporal server start-dev3. 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.shClaude 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
Available Tools
4 toolsapprove_invoiceC
Signal approval for the invoice workflow.
Inputs: workflow_id (required), run_id (required). Returns: result
invoice_statusC
Return current status of the workflow.
Inputs: workflow_id (required), run_id (required). Returns: result
process_invoiceC
Start the InvoiceWorkflow with the given invoice JSON.
Inputs: invoice (required). Returns: result
reject_invoiceD
Signal rejection for the invoice workflow.
Inputs: workflow_id (required), run_id (required). Returns: result
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct purpose: starting the workflow, checking status, approving, or rejecting. No overlap or ambiguity among the four tools.
Three tools follow a verb_noun pattern (approve_invoice, process_invoice, reject_invoice), while invoice_status is noun_noun. However, all use consistent snake_case and are clear and descriptive.
Four tools is perfectly appropriate for a simple invoice approval workflow: start, approve, reject, and check status. The scope is well-scoped without being too sparse or excessive.
The tools cover the core lifecycle of an invoice workflow (create, approve, reject, status). Minor gaps like update or cancel are not critical for a basic approval process.
Related MCP Connectors
Invoicing you drive by talking to your AI: log time, raise invoices and track what's owed via MCP.
Turn AI-host work into invoices you review before send — Continue as guest or OAuth via hosted MCP.
Create, send and track invoices from a conversation in Claude, ChatGPT or any MCP client that supports OAuth. Draft an invoice from one sentence or from last month's invoice for the same client, finalize it, email it to your client and send payment reminders for overdue ones. See revenue by month and by client, download PDFs and e-invoices (ZUGFeRD, XRechnung), and export DATEV packages for your tax advisor. Invoices follow the tax rules of 25 countries, including reverse charge and the small-business VAT exemption. New invoices are drafts, and nothing is emailed until you ask. Pay per invoice with no subscription: the first invoice is free.
Evidence-backed UBL, PDF, and image invoice checks before approval or payment.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables invoice management through MCP, including customer, invoice, and report operations with CLI and web interfaces.MIT
- AlicenseNot gradedqualityCmaintenanceEnables agents to generate, track, and manage invoices via MCP tools, with CLI support for payment tracking and earnings summaries.1MIT
- AlicenseAqualityDmaintenanceExposes a ledger system (invoice queue, duplicate control, VAT register, contractor history, decision journal) as MCP tools for AI agents, enabling accurate invoice processing with deterministic validation.7MIT
- FlicenseNot gradedqualityCmaintenanceHosted MCP server that enables AI assistants to manage clients, invoices, and expenses via the Invox API, supporting actions like drafting, sending, cancelling, and marking invoices as paid, as well as logging expenses and updating client information.-