A guide to driving the Openbridge data‑pipeline platform through the Openbridge MCP server. This manual is written for end users who interact with the MCP through an AI assistant (Claude or any MCP‑enabled client), and for developers who want to understand the tool surface underneath.
The Openbridge MCP URL is: https://mcp.openbridge.com/mcp
The Openbridge MCP is designed to be an AI enabled interface to Openbridge. Nearly everything you would otherwise do by clicking through the Openbridge web console — inspecting pipelines, scheduling backfills, diagnosing failed loads, browsing the tables your data lands in, checking connected accounts — you can do here by asking in plain language. The sections below explain what the server can do, how requests flow, and how to use it as your day‑to‑day control surface.
1. What this server is
Openbridge runs your data pipelines. A subscription (also called a pipeline) pulls data from a product (a connector such as Amazon SP‑API, Amazon Ads, Shopify, Google Analytics) into your storage (BigQuery, Snowflake, Redshift, S3, and others).
Each product exposes one or more stages — specific reports or payloads — and each stage lands as a table in your warehouse. The platform also tracks healthchecks (did each load succeed?), jobs / history transactions (each scheduled or one‑off run), remote identities (the external accounts a pipeline authenticates with), and rules (the schema/contract for every table).
The MCP server exposes all of that as a set of tools an AI assistant can call on your behalf. You talk to the assistant in natural language; the assistant translates your intent into the right tool calls, reads the results, and reports back.
How the server is running right now
This instance reports the following at the time of writing (you can always re‑check by asking the assistant to "get Openbridge capabilities"):
Setting | Value |
Tools enabled | 26 of 28 declared |
Code Mode | Enabled (recommended surface) |
SQL query tools ( | Not installed on this instance |
LLM‑assisted SQL validation | Off (heuristic‑only when query tools are present) |
Error‑envelope contract | v1 |
The two SQL query tools are part of the platform's overall surface but are not enabled here, so direct SQL‑against‑warehouse requests will not run on this deployment. Everything else — pipelines, jobs, healthchecks, products, tables/rules, identities — is live.
2. How you interact with it
There are two layers. Most users only need the first.
Layer 1 — Natural language (recommended)
Just describe what you want. You do not need to know tool names, IDs, or schemas. Good requests name the thing and the intent:
"List my active Amazon Ads pipelines." "Why did the Shopify subscription fail last night?" "Backfill the SP‑API orders subscription for the first week of January." "What tables does my SQP pipeline produce, and what columns are in the campaigns table?" "Which of my connected accounts are invalid and need reauthorizing?"
The assistant figures out which tools to call, in what order, and chains them together. When something is ambiguous (which of several pipelines? which date range?), it will ask.
Layer 2 — Code Mode (the mechanism underneath)
The server runs in Code Mode, which means the assistant doesn't see 26 individual tools. It sees four meta‑tools and composes calls inside a small Python sandbox:
tags()— list the tool families available.search(query)— find the right tool by intent, e.g.search("create historical job").get_schema(tool_name)/get_schemas([...])— fetch a tool's exact input schema before calling it.execute(code)— run async Python thatawaits the individual Openbridge tools and returns a result.
A single execute() block can chain "find product → list tables → get schema" without round‑tripping for each step. As an end user you never write this code yourself — but it's why a single request like "what columns are in my campaigns table?" can resolve in one turn.
Authentication
The server authenticates as you via a refresh token (or OAuth, depending on deployment) that's already configured for your session. You never paste credentials into requests, and the assistant will never print tokens back to you. If a connected upstream account (a remote identity) has expired, that surfaces as an auth_error and the assistant will tell you which account needs reauthorizing — it cannot silently refresh an external login on your behalf.
3. The mental model in one table
Keep these terms straight and every request below makes sense:
Term | What it is |
Subscription / pipeline | One connector instance pulling data for you. Has a |
Product | A data source connector (e.g. Amazon Ads — Sponsored Brands). Has a numeric id and a |
Stage / | A specific report or payload within a product. A subscription enables a subset of stages. |
Table / payload | The landing table for a stage in your warehouse (often suffixed |
Rules document | The schema/contract for a table — fields, types, allowed filters. |
Storage subscription | The destination warehouse a pipeline writes to. |
Remote identity | A linked external account (Amazon, Google, Shopify…) a pipeline uses to authenticate upstream. |
Healthcheck | One ingestion event row — status, error code, file path, timestamps. |
Job / history transaction | A scheduled or one‑off ingest run. |
4. Surface areas (the tool families)
The server groups its tools into seven families. Below, each family lists what it's for, the kinds of things you can ask, and the underlying tools (useful if you're a developer or want to be precise).
Capabilities & skills (meta)
Tells you what the server can do right now.
Ask "what can the Openbridge MCP do?" or "is SQL querying enabled?" and the assistant calls get_capabilities() to report the live tool list, enabled features, and envelope version.
The server can also publish its own usage skills via list_skills() / read_skill(uri).
Products & tables
Discover what connectors exist and what data they produce. This is your catalog browser.
Find a connector: "search products for Amazon Ads" →
search_products(query).Browse everything: "list all available Openbridge products" →
list_all_product_basic_metadata().Connector details: "what does product X require to set up?" →
get_product_card(product_id)(required identity type, stages, scheduling).List a product's tables: "what tables does Sponsored Brands produce?" →
list_product_tables(product_id), or scope to one pipeline withsubscription_idto see only the stages you've enabled.Stage IDs for scheduling:
get_product_stage_ids(product_id).
Rules / table schemas
The contract for any table — what fields it has and how it's shaped.
"What columns are in
amzn_ads_sb_campaigns?" →get_table_schema(table_name)(the_mastersuffix is added/stripped automatically)."What's the exact table name for campaigns?" →
get_suggested_table_names(query)for fuzzy name lookup.
Subscriptions (pipelines)
Your pipeline inventory and lifecycle management. This is the most‑used family.
Inventory: "list my active pipelines" →
get_subscriptions(status="active")(alsocancelled,all).Inspect one: "show me subscription 128853" →
get_subscription_by_id(id)(product, status, stages, storage).Storage destinations: "where do my pipelines write?" →
get_storage_subscriptions().Create:
create_subscription(attributes)— product‑specific payload; the assistant reads the schema first.Update:
update_subscription(id, attributes)— changes only the fields you specify.Cancel:
cancel_subscription(id). (Destructive — see Section 7.)
Jobs & history
Schedule data pulls and inspect individual runs. This is how you backfill and re‑run.
Schedule a backfill: "backfill orders for Jan 1–7" →
create_job(subscription_id, date_start, date_end, stage_ids). Dates are ISOYYYY-MM-DD; the server creates one job per (date × stage).List jobs:
get_jobs(subscription_id, status, primary).One job:
get_job_by_id(job_id).One transaction:
get_history_by_id(history_id)— full record witherr_msg,error_code,file_path,transaction_id.Clear a stuck transaction:
update_history_status(history_id, status). (Destructive — see Section 7.)
Healthchecks
Did the data load? This is your monitoring and triage surface.
"Show errors for subscription 128853 over the last 7 days" →
get_healthchecks(subscription_id, last_days, filter_date, page). Always scope it — an unfiltered call spans the whole account.
Remote identities & service
The external accounts your pipelines authenticate with, plus a couple of Amazon‑Ads service helpers.
"List my connected accounts" →
get_remote_identities()(optionally filter by type)."Details on identity 6163" →
get_remote_identity_by_id(id).Amazon Ads helpers:
get_amazon_advertising_profiles(remote_identity_id)andget_amazon_api_access_token(remote_identity_id).
5. Types of requests, by intent
A quick map from "what you want" to "what the MCP does." Phrase requests like the left column.
You want to… | Say something like | Family |
See your pipelines | "list my active subscriptions" | Subscriptions |
Understand one pipeline | "show me subscription 128853" | Subscriptions |
Find a connector | "search products for Shopify" | Products |
See what data a connector produces | "what tables does Sponsored Brands have?" | Products / Rules |
Inspect a table's columns | "what's the schema of the campaigns table?" | Rules |
Backfill / re‑run history | "backfill orders for last week" | Jobs |
Find out why a load failed | "why did the SP‑API pipeline fail last night?" | Healthchecks → Jobs |
Clear a stuck load | "cancel the stuck transaction 424242" | Jobs (destructive) |
Audit connected accounts | "which remote identities are invalid?" | Identities |
Change a pipeline | "point subscription X at storage Y" | Subscriptions (destructive) |
Stand up a new pipeline | "create a Sponsored Brands pipeline for account Z" | Subscriptions |
Know what the server can do | "what Openbridge tools are available?" | Capabilities |
6. Using the MCP as your primary interface — worked examples
These show the MCP doing, end to end, what you'd otherwise do by hand in the console. You type the request on the left; the assistant runs the tool chain on the right and reports a clean answer.
Morning health check across the account
You: "Quick status — any pipelines erroring in the last 24 hours, and any connected accounts that went invalid?"
Behind the scenes the assistant lists your subscriptions and remote identities, pulls recent healthchecks, groups failures by error_code, and flags identities marked invalid. You get back a short list of what's broken and why — no console tabs, no scrolling.
"What's in my data, and is it fresh?"
You: "What tables does my SQP pipeline land, and when did the search‑terms table last load successfully?"
The assistant resolves the subscription, lists its enabled tables (list_product_tables scoped to the subscription), and checks recent healthchecks for that stage to report the last good load. One question, one answer.
Targeted backfill, safely
You: "Re‑pull the orders and order‑items stages for that pipeline for March 1–7."
The assistant confirms the subscription is active, looks up the exact stage_ids for only those two stages (never a wildcard), reads back the plan — "14 jobs: 2 stages × 7 days against subscription 128853" — and waits for your go‑ahead before creating the jobs. Then it can monitor the resulting healthchecks for you.
Triage a specific failure
You: "Subscription 128853 had a red load yesterday. What happened?"
It scopes healthchecks to that subscription and day, finds the failing row, drills into the transaction with get_history_by_id, and reports the error_code, message, and file path — the exact identifiers Openbridge support needs if you have to escalate.
The pattern in all four: you express intent once, the MCP composes the multi‑step tool sequence, and you stay in a conversation instead of a dashboard. That's what makes it viable as the primary control surface rather than a sidecar.
7. Safety, confirmations, and good habits
The MCP is happy to read anything, but it deliberately pauses before changing your production pipelines.
Actions that always get a read‑back and an explicit "yes" first:
create_job— scheduling ingest runs (and the assistant will confirm the stage list and the resulting job count).create_subscription,update_subscription,cancel_subscription— anything that creates, alters, or stops a pipeline.update_history_status— cancelling or changing a transaction.
Built‑in guardrails worth knowing:
No wildcard backfills. Jobs are created with an explicit
stage_idslist. Backfilling "every stage" by accident is what burns upstream rate budget, so the MCP won't do it unless you clearly ask.Scoped healthchecks. Monitoring calls are filtered by subscription and date so you get a usable answer, not a wall of rows.
Tokens stay secret. Refresh tokens and access tokens are never printed back to you.
IDs in every report. When something fails, expect the
subscription_id,history_id,error_code, and table name — quote those when contacting support.
Habits that make requests resolve faster: name the pipeline or product if you know it; give a concrete date range for backfills (ISO dates); and when you mean a specific run, the history_id or subscription_id removes all ambiguity.
8. What failures look like
Every hard error comes back in a stable v1 envelope, so the assistant can explain failures consistently. The field that matters is error_kind:
| Meaning | What the assistant will do |
| The call's arguments were rejected | Read the failing fields, correct, retry |
| A tool name isn't registered here | Look up the right tool and retry |
| A token/credential problem | Tell you which account to reauthorize |
| Upstream 429 or pre‑flight limiter | Back off using |
| Code Mode hit a limit (timeout, memory) | Narrow the request (tighter date window, fewer rows) |
| Server‑side bug | Report it; not safe to blind‑retry |
You don't need to memorize these — but if the assistant says "that pipeline's Amazon login has expired" or "we're being rate‑limited, retrying in a moment," this is where that comes from.
9. Limits to keep in mind
Code Mode sandbox: ~30‑second execution and ~50 MB memory per step. Very large pulls are paged or aggregated rather than dumped wholesale — ask for a summary or a tighter window if a request is too broad.
Subscription listing is internally capped (around 10 pages). On large accounts, filter by status or product for a complete view.
Healthchecks must be scoped. Always include a subscription and/or a date window.
SQL querying is off here. See Section 4 — use your warehouse directly or have an admin enable the query tools.
The MCP can't reauthorize external logins. Expired remote identities have to be reconnected through Openbridge; the MCP will tell you which ones.
10. Quick reference — enabled tools
Family | Tools |
Meta |
|
Products |
|
Rules |
|
Subscriptions |
|
Jobs & history |
|
Healthchecks |
|
Identities & service |
|
Query (not installed here) |
|
To confirm any of the above against the live server at any time, ask your assistant to "get Openbridge capabilities" — it returns the current tool list, enabled features, and contract version.
