Connect an AI agent
CardioBridge exposes a hosted MCP server so any MCP-compatible agent — Claude Code, Claude Desktop, or your own client — can submit an ECG for consultant-cardiologist interpretation and track it. Everything below is copy-paste.
1. Connect the server
Add CardioBridge as a remote MCP server in your client's config:
{
"mcpServers": {
"cardiobridge": {
"url": "https://api.cardiobridge.teqdr.com/functions/v1/mcp",
"headers": {
"Authorization": "Bearer <YOUR_API_KEY>"
}
}
}
}Or, on the Claude Code CLI, one command:
claude mcp add --transport http cardiobridge \
https://api.cardiobridge.teqdr.com/functions/v1/mcp \
--header "Authorization: Bearer <YOUR_API_KEY>"The endpoint is https://api.cardiobridge.teqdr.com/functions/v1/mcp. It speaks JSON-RPC 2.0 over Streamable HTTP and supports the standard initialize, tools/list and tools/call methods, so you can also POST to it directly.
2. Pick a mode
Client mode — send a CardioBridge client API key as Authorization: Bearer <key>. Create one in the app under Integrations → API keys. The organisation is billed automatically and each submission lands in the consultant worklist for the reporting doctor to sign.
Patient mode — send no key at all. The agent creates a paid order, the patient pays for their own ECG through a hosted Stripe Checkout link, and the ECG is submitted against that order. Use this when you're acting for an individual rather than a clinic. See step 4.
3. Use the tools
Once connected, your agent can call these tools. tools/list returns all six in both modes — which ones apply depends on whether you sent a key.
submit_ecgSubmit an ECG (file + patient detail) for consultant review. Client mode: the org is billed. Patient mode: requires a paid order_id and upload_ticket.
check_statusCheck the status of a submission. Client mode: by reference. Patient mode: by order_id and upload_ticket.
get_reportFetch the interpretation once a report is signed. In patient mode the report is returned inline, because the patient owns it and there is no EMR to deliver it into; in client mode it goes to your organisation's configured channel.
get_pricingReturn the standard per-ECG rate.
create_ecg_orderCreate a paid order for one ECG from the patient's email alone. Returns a Stripe Checkout link, an order_id and a single-use upload_ticket.
check_orderPoll the order until it reports paid. Also re-issues a lost upload_ticket if you pass the same email.
4. Patient mode, step by step
With no API key the flow is pay first, upload second. Nothing about the patient is collected or stored until there is a paid order behind it.
create_ecg_orderwith the patient's email. You get back anorder_id, acheckout_urland anupload_ticket. Keep the ticket — it is issued only here and it is what authorises the upload.- Give the patient the
checkout_url. Card authentication is required by law and must happen in their own browser, so an agent cannot complete this step for them. - Poll
check_orderuntil it reportspaid. If you lost the ticket, call it again with the same email and a replacement is issued. submit_ecgwith theorder_idandupload_ticket, then track it withcheck_statusandget_reportusing the same pair.
Other ways in
- MCP server reference — methods, the tool schema and raw JSON-RPC examples.
- Agent skill — a portable, stdlib-only skill that wraps the same server for shell or agent runtimes.
- REST API — if you'd rather integrate over plain HTTP with an
x-api-key. - Chrome extension — send an ECG straight from a patient's Semble record.