We use Google Analytics and a Meta advertising pixel on our public site only — never on the clinical application. You can opt out at any time via “Cookie settings” in the footer. See our privacy policy.

CardioBridge API

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:

MCP client 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 Code
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.

Both modes
submit_ecg

Submit 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_status

Check the status of a submission. Client mode: by reference. Patient mode: by order_id and upload_ticket.

get_report

Fetch 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_pricing

Return the standard per-ECG rate.

Patient mode only
create_ecg_order

Create 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_order

Poll the order until it reports paid. Also re-issues a lost upload_ticket if you pass the same email.

A consultant always signs the report
The agent's job is to submit and track work. Consultant-led reporting; every report is signed by the reporting doctor — an AI never issues an interpretation.

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.

  1. create_ecg_order with the patient's email. You get back an order_id, a checkout_url and an upload_ticket. Keep the ticket — it is issued only here and it is what authorises the upload.
  2. 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.
  3. Poll check_order until it reports paid. If you lost the ticket, call it again with the same email and a replacement is issued.
  4. submit_ecg with the order_id and upload_ticket, then track it with check_status and get_report using the same pair.
What the patient should know
One order covers exactly one ECG, and an unused order expires without an automatic refund. Submitting also creates a CardioBridge account for that email address so the patient can sign in and see the ECG and its report themselves — there's no password, they request a sign-in link. Cancelling before the report is issued earns a refund less a proportionate charge; see the terms and privacy policy.

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.
MCP client config
{
  "mcpServers": {
    "cardiobridge": {
      "url": "https://api.cardiobridge.teqdr.com/functions/v1/mcp",
      "headers": {
        "Authorization": "Bearer <YOUR_API_KEY>"
      }
    }
  }
}
tools/call · submit_ecg
curl -X POST https://api.cardiobridge.teqdr.com/functions/v1/mcp \
  -H "Authorization: Bearer <YOUR_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'