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.
Pick your agent and expand its steps:
https://circumpolar.ai/mcphttps://circumpolar.ai/mcpclaude mcp add --transport http circumpolar https://circumpolar.ai/mcpclaude and ask away β the circumpolar tools load automatically in every session.npm i -g @google/gemini-cli, then sign in once by running gemini.--transport http β the default transport won't connect):gemini mcp add --transport http circumpolar https://circumpolar.ai/mcpgemini and ask away.Then ask: "Which Kelmarsh turbine underperformed the fleet in 2020, and why?"
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.
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.
No account, key, install, or config file. Give your agent this URL and the tools appear:
https://circumpolar.ai/mcpClaude Desktop / claude.ai β Settings βΈ Connectors βΈ Add custom connector, paste the URL.
Claude Code β one command:
claude mcp add --transport http circumpolar https://circumpolar.ai/mcpChatGPT (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):
gemini mcp add --transport http circumpolar https://circumpolar.ai/mcpAny 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.
Try a prompt like this:
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."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.
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.
https://circumpolar.ai/mcp/oauthTroubleshooting: 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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
# 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]}'Full API reference: circumpolar.ai/docs Β· Questions? support@beaded.cloud