Set up MCP

Connect Circumpolar.ai to your AI agent over the Model Context Protocol (MCP). Once connected, Claude, ChatGPT, or Gemini can query our permafrost data and the asset-integrity, wind-fleet, and building-energy demo packs natively β€” your engineer asks in plain language and the agent calls the tools automatically.

01 Β· Quick start

Quick start β€” no account needed

Pick your agent and expand its steps:

β–ΆChatGPTsettings
  1. On chatgpt.com (paid plan required; the desktop/mobile apps don't have this): profile (bottom-left) β–Έ Settings β–Έ Plugins β–Έ View plugins β–Έ the Plugins button at the bottom β–Έ οΌ‹ (top right).
  2. Name it circumpolar and paste this URL:
    url
    https://circumpolar.ai/mcp
  3. For authentication, select No authentication. (Want your stored series and AI reports in ChatGPT? Use the sign-in endpoint instead.)
  4. Open a new chat, press οΌ‹ in the message box, and select circumpolar. (This step matters β€” adding it in settings alone isn't enough.)
β–ΆClaude Desktopsettings
  1. Settings β–Έ Connectors β–Έ Add custom connector.
  2. Name it circumpolar and paste this URL:
    url
    https://circumpolar.ai/mcp
  3. Done β€” the tools are available in every chat.
β–ΆClaude Codeterminal
  1. Open any terminal where Claude Code is installed and run:
    shell
    claude mcp add --transport http circumpolar https://circumpolar.ai/mcp
  2. Start claude and ask away β€” the circumpolar tools load automatically in every session.
β–ΆGemini CLIterminal
  1. If you don't have it (free tier available): npm i -g @google/gemini-cli, then sign in once by running gemini.
  2. Add the server (keep --transport http β€” the default transport won't connect):
    shell
    gemini mcp add --transport http circumpolar https://circumpolar.ai/mcp
  3. Run gemini and ask away.

Then ask: "Which Kelmarsh turbine underperformed the fleet in 2020, and why?"

See it in action β€” a real conversation

You ask in plain language; your agent quietly calls our tools and answers with real numbers. Ask the same question and you'll get the same figures:

Press play to watch a real exchange β€” the numbers are actual outputs from the live tools.

Under the hood (for the technically curious)
what the server actually returned
assess_turbine_performance { "turbine": "KWF3" } β†’
{
  "verdict": "Underperforming",
  "metrics": { "annualEnergyMwh": 5746, "capacityFactorPct": 31.9,
               "energyAvailabilityPct": 95, "powerCurveDeviationPct": -4.1 },
  "summary": "Kelmarsh 3 (Senvion MM92, 2050 kW) produced 5,746 MWh in 2020 …"
}

query_my_series { "name": "pump-3-rms", "op": "estimate_remaining_life", "threshold": 1.5 } β†’
{
  "result": { "currentValue": 1.12, "slopePerStep": 0.0319,
              "trendingTowardThreshold": true, "estimatedStepsToThreshold": 12 }
}

And with the same key, generate_report writes a full assessment across your stored series and any demo subjects β€” every figure numerically audited against the computed data β€” see a real sample report.

03 Β· Setup details

Setup, client by client

1

Connect β€” client-by-client details

No account, key, install, or config file. Give your agent this URL and the tools appear:

url
https://circumpolar.ai/mcp

Claude Desktop / claude.ai β€” Settings β–Έ Connectors β–Έ Add custom connector, paste the URL.

Claude Code β€” one command:

shell
claude mcp add --transport http circumpolar https://circumpolar.ai/mcp

ChatGPT (paid plan required β€” Plus/Pro/Business; web only: the desktop and mobile apps don't show this, and free accounts don't have it) β€” two steps on chatgpt.com:

1. Add it once β€” profile (bottom-left) β–Έ Settings β–Έ Plugins β–Έ View plugins β–Έ the Plugins button at the bottom β–Έ οΌ‹ (top right). Name it circumpolar, paste the URL, and if asked for authentication choose None. (Some accounts show this under Settings β–Έ Connectors β–Έ Advanced β–Έ Developer mode instead.)

2. Enable it per chat β€” open a new chat, press the + button in the message box, and select the circumpolar MCP. Then ask away. (Adding it in settings alone isn't enough β€” it must be turned on in the conversation.) On Business/Enterprise a workspace admin must enable Developer mode first. All tools here are read-only.

Gemini CLI β€” one command (keep --transport http; the default is legacy SSE, which this endpoint doesn't serve):

shell
gemini mcp add --transport http circumpolar https://circumpolar.ai/mcp

Any other MCP client works too β€” this is a standard Streamable-HTTP server; use your client's remote/HTTP server option with the URL above. Need a local stdio server instead (offline or stdio-only client)? Build from source β€” see mcp/README.md in the repo. (An npm package, npx circumpolar-mcp, isn't published yet.)

Demo-only: keyless, on public datasets, separate from the production security model (authenticated access; live customer-system connectors require approved credentials and a security review). The hosted endpoint omits the AI-prose circumpolar_insights tool. See the MCP README for what's real vs demo vs needs-credentials.

2

Ask your agent

Try a prompt like this:

text
You now have the "circumpolar" MCP server connected. It exposes
condition-monitoring tools β€” both dataset-backed and bring-your-own-data. Try:

  Bring your own sensor data (any field β€” vibration, temp, pressure, current…):
  β€’ analyze_timeseries(values) β€” RMS, kurtosis, crest factor, trend
  β€’ detect_anomaly(values, threshold) β€” outliers + changepoint
  β€’ estimate_remaining_life(values, threshold, timestamps?) β€” when a limit is crossed (a date, if you pass timestamps)

  Backed by real public datasets:
  β€’ get_permafrost(lat, lng, date) β€” zone, thaw risk, ground temp, active layer
  β€’ assess_hydrogen_embrittlement(grade, h2_pressure) β€” HEE index + severity
  β€’ assess_creep_life(alloy, temp_c, stress_mpa) β€” Larson-Miller remaining life
  β€’ assess_thermal_fatigue(alloy, strain_range) β€” cycles-to-failure
  β€’ assess_vibration β€” sample rotating-equipment condition (anomaly/severity/action)
  β€’ assess_turbine_performance β€” wind-turbine screening vs its fleet (real SCADA)
  β€’ assess_building_energy β€” office-building baseload/weather screening (real BMS data)

  With an API key, store data once and query it by name (no re-pasting):
  β€’ ingest_series(name, values | csv) β€” accepts a pasted CSV directly; a time column is kept automatically
  β€’ query_my_series(name, op) β€” summarize / anomalies / remaining life

"What's the permafrost risk at 70.32, -148.7?"  or
"Analyze this vibration series [ … ] and flag any anomalies."  or
"Here's my sensor CSV β€” store it as pump-3-rms, then tell me what looks anomalous."
04 Β· API key

Optional: add an API key

The keyless endpoint above is the full demo β€” no key needed. We log request metadata only (tool name, timing, client name/version, your client's user-agent string, and a one-day pseudonymous caller id β€” never your IP); your data and questions are computed at call time, not stored. Adding a key (sign in with Google or GitHub on the dashboard for a free cpol_… key, sent as an Authorization: Bearer header) switches you to plan-based rate limits and enables usage insights β€” keyed tool calls, including their arguments, are recorded to your account. Keys also unlock the REST API and the AI-powered circumpolar_insights endpoint. Using ChatGPT? You can skip the key entirely and sign in instead.

05 Β· ChatGPT sign-in

ChatGPT: sign in instead of pasting a key

ChatGPT's connector settings can't take a pasted cpol_… key β€” its custom connectors authenticate with OAuth. So we run a second endpoint where you sign in with your circumpolar account in the browser (the same Google or GitHub login as the dashboard) and get every account feature: stored series, AI reports, and plan-based limits. Every call on this endpoint β€” including tool arguments β€” is recorded to your account, exactly like keyed calls; the keyless endpoint above is unaffected.

  1. Requirements β€” a paid ChatGPT plan (Plus/Pro/Business/Enterprise; not Free), set up on chatgpt.com in a desktop browser with popups allowed. Once connected it works in the ChatGPT mobile and desktop apps too. On Business/Enterprise an admin must allow custom connectors.
  2. Enable Developer mode β€” Settings β–Έ Apps & Connectors (older builds: Connectors) β–Έ Advanced settings β–Έ toggle Developer mode.
  3. Create the connector β€” name it Circumpolar, paste this URL, set Authentication to OAuth (leave any client-ID field empty), tick the trust confirmation, and click Create:
    url
    https://circumpolar.ai/mcp/oauth
  4. Sign in β€” a circumpolar sign-in popup opens immediately. Continue with Google or GitHub and approve the consent screen; the connector then lists the tools.
  5. Use it in a chat β€” in the message box: οΌ‹ β–Έ More β–Έ Developer mode β–Έ select Circumpolar (per conversation). Reading tools run directly; storing, deleting, and report generation ask for a confirmation click.

Troubleshooting: popup blocked β†’ allow popups for chatgpt.com and reconnect. Tools missing after we ship changes β†’ connector settings β–Έ Refresh. Repeated sign-in prompts or "please re-authenticate" β†’ disconnect and reconnect the connector (a known ChatGPT beta quirk, not your account). Other OAuth-capable MCP clients can use the same URL. Prefer code or the OpenAI API? The API key works there instead.

06 Β· Tools

Available tools

Tools are organized into packages, and every tool's description starts with its package tag ([Core], [Bring your own data], [Arctic], [Demo pack: …], [Stored data Β· API key], [AI report Β· API key]) so agents and readers can route at a glance. Call get_started first.

[Core]orientation & connectivity
get_started()

Overview: the tool packages, demo datasets, data modes, and the keyless demo note. Start here.

list_available_demos()

Demo packs, their public datasets, the bring-your-own-data option, and the data modes.

describe_connector_requirements()

What connecting BeadedCloud to your live system would require (REST/DB/file/OPC-UA-PI/cloud-VPC + credentials + security review). Nothing is connected today.

describe_historian_or_ge_vernova_connector_stub(system)

CONNECTOR STUB (not built): where a real DHS / GE Vernova / OSIsoft integration would plug in + what each requires. Nothing is connected.

[Bring your own data]instant analysis on any pasted series β€” nothing stored
analyze_timeseries(values)

Condition indicators for any numeric series β€” RMS, mean, std, peak, crest factor, skewness, kurtosis (vibration/temp/pressure/current/flow/acoustic/biomedical/IoT).

detect_anomaly(values, threshold)

Z-score outliers + largest mean-shift changepoint.

estimate_remaining_life(values, threshold)

Linear-trend projection: steps until an indicator crosses a threshold.

summarize_dataset(values)

Chart-ready JSON: histogram bins + downsampled sparkline + headline stats.

[Arctic]permafrost intelligence
get_permafrost(lat, lng, date)

Structured permafrost lookup for any Arctic coordinate: zone, thaw-risk, mean annual ground temperature, active-layer thickness, with sources. Deterministic JSON; optional date projects via a warming trend. Circumpolar's core dataset.

circumpolar_insights(question, lat, lon)

Arctic location intelligence: permafrost, sea ice, freeze probability. NOT on the hosted endpoint β€” needs an API key, via the REST API or the local stdio server (it runs a model).

[Stored data Β· API key]your data, kept
ingest_series(name, values | csv, column, unit, mode)

Store (or replace/append) a named series from a number array or pasted CSV β€” pick the CSV column by header name or index.

list_my_series()

Your stored series: name, unit, point count, last update.

query_my_series(name, op, threshold, last_n)

Run summarize / analyze / detect_anomaly / estimate_remaining_life on a stored series without re-pasting it.

delete_my_series(name)

Delete one of your stored series.

[AI report Β· API key]audited narrative reports
generate_report(subjects, title, audience)

Narrative condition-assessment report grounded strictly in computed tool results β€” mix stored series, materials assessments, the vibration demo, and permafrost lookups (up to 8 subjects).

[Demo pack: Asset integrity]materials + rotating equipment on real public datasets
assess_creep_life(alloy, temp_c, stress_mpa)

Larson-Miller creep life (public Alloy 617 data, INL/DOE).

assess_hydrogen_embrittlement(grade,h2_pressure | h2_ppm_series)

Grade β†’ HEE-index severity (public NASA data), OR your gas-analyzer ppm series β†’ uptake trend + embrittlement score.

assess_thermal_fatigue(alloy,strain_range | histogram)

Alloy+strain β†’ cycles-to-failure lookup (public Ni-superalloy data), OR your deflection histogram β†’ Miner's-rule % life.

assess_transient_risk(startups/trips/maintenance_per_year)

Transient-period risk with separate SAFETY / COST / SCHEDULE exposure + dominant dimension.

assess_vibration(asset, detail)

Sample rotating-equipment condition on public run-to-failure data: anomaly flag, severity, likely issue, recommended action; detail=full adds the chart-ready trend.

list_assets()

Sample instrumented rotating-equipment asset(s) available for vibration condition monitoring.

[Demo pack: Wind fleet]fleet performance on real Kelmarsh SCADA (CC-BY-4.0)
list_wind_turbines()

The Kelmarsh 6-turbine demo fleet (real 2020 SCADA): annual energy, capacity factor, availability, power-curve deviation, verdict per turbine.

assess_turbine_performance(turbine)

Fleet-relative screening of one turbine: power-curve deviation vs fleet median, monthly energy, downtime causes from the real status log.

[Demo pack: Building energy]real LBNL Building 59 data (CC0)
get_building_energy_summary()

Three years of a real LBNL office building: annual/monthly energy by end-use, weather, pandemic-era YoY deltas.

assess_building_energy(year)

One-year screening: always-on baseload share, HVAC share, weather sensitivity, days beyond 2.5Οƒ of the weather fit.

07 Β· Try via curl

Try it without a key (plain curl, no agent)

The preview endpoints return the same reports with no authentication, rate-limited per IP (60 req/sec for dataset assessments, 30 for sensor ops) β€” handy for a first look before wiring up the agent.

shell
# Zero-setup demo β€” no key required
# Dataset-backed assessments (GET):
curl "https://circumpolar.ai/api/v1/asset-integrity/preview?assessment=hydrogen&grade=X65&h2_pressure=6.9"
curl "https://circumpolar.ai/api/v1/asset-integrity/preview?assessment=vibration&asset=bearing-r2f-1"

# Bring your own sensor data (POST) β€” works for any field:
curl -X POST "https://circumpolar.ai/api/v1/sensors/preview" \
  -H "Content-Type: application/json" \
  -d '{"op":"analyze","values":[0.1,0.2,5.0,0.15,0.12]}'
07 Β· Data sources
Demo-pack answers are grounded in real public datasets (NASA, DOE/INL, LBNL, Zenodo, Mendeley), cited per pack: asset integrity, wind fleet, building energy. Not connected to your live plant β€” historian/DHS ingestion is a per-deployment step. Field investigation and a certified fitness-for-service assessment are required before any engineering decision.

Full API reference: circumpolar.ai/docs Β· Questions? support@beaded.cloud