Skip to main content

Openbridge MCP — User Manual

Written by Openbridge Support

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 (validate_query / execute_query)

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 that awaits 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 subscription_id and a product_id.

Product

A data source connector (e.g. Amazon Ads — Sponsored Brands). Has a numeric id and a worker_name.

Stage / stage_id

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 _master).

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. history_id identifies a single transaction.


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 with subscription_id to 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 _master suffix 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") (also cancelled, 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 ISO YYYY-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 with err_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) and get_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_ids list. 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:

error_kind

Meaning

What the assistant will do

mcp_input_validation

The call's arguments were rejected

Read the failing fields, correct, retry

tool_not_found

A tool name isn't registered here

Look up the right tool and retry

auth_error

A token/credential problem

Tell you which account to reauthorize

rate_limited

Upstream 429 or pre‑flight limiter

Back off using retry_after_seconds, then retry

sandbox_runtime

Code Mode hit a limit (timeout, memory)

Narrow the request (tighter date window, fewer rows)

internal_error

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

get_capabilities, list_skills, read_skill, plus Code Mode tags / search / get_schema / get_schemas / execute

Products

search_products, list_all_product_basic_metadata, get_product_card, list_product_tables, get_product_stage_ids

Rules

get_table_schema, get_suggested_table_names

Subscriptions

get_subscriptions, get_subscription_by_id, create_subscription, update_subscription, cancel_subscription, get_storage_subscriptions

Jobs & history

get_jobs, get_job_by_id, get_history_by_id, create_job, update_history_status

Healthchecks

get_healthchecks

Identities & service

get_remote_identities, get_remote_identity_by_id, get_amazon_advertising_profiles, get_amazon_api_access_token

Query (not installed here)

validate_query, execute_query


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.

Did this answer your question?