If your agent speaks MCP, you can give it satellite-measured ground motion for any US address without writing an SDK wrapper. SibFly runs a hosted MCP server, and it's listed in the official MCP registry as com.sibfly/ground-motion.
"Ground motion" here means the real thing: how far the ground has physically moved — sinking or rising, in mm/year — measured from NASA's OPERA Sentinel-1 InSAR dataset. Negative = subsiding. Measured, not modeled.
Connect
The server is Streamable HTTP with Bearer auth:
https://sibfly.com/mcp
Get a key (free starter credits) at sibfly.com, or let the agent self-register:
curl -X POST https://sibfly.com/api/v1/autonomous/register \
-H "Content-Type: application/json" -d '{"email":"you@example.com"}'
In a Claude Desktop / Claude Code style config:
{
"mcpServers": {
"sibfly": {
"type": "http",
"url": "https://sibfly.com/mcp",
"headers": { "Authorization": "Bearer sf_live_..." }
}
}
}
The tools
The initialize response ships a decision tree, and there are five tools:
-
check_ground_motion— the measured reading for an address/point ($0.40 if covered; free if not) -
check_coverage— free: is a point covered, how stale, and what would it cost -
check_portfolio— many addresses at once -
get_motion_history— cumulative motion between two dates -
get_account— credit balance
The pattern that keeps it cheap
Misses are free — out-of-coverage, no-data, too-stale, and low-confidence all come back at cost_usd: 0. So the agent-friendly flow is: preflight free, then buy.
> check_coverage for "200 N Spring St, Los Angeles, CA"
covered: true, data ~304 days old, would_cost_usd: 0.40
> check_ground_motion for "200 N Spring St, Los Angeles, CA"
velocity_vertical_mm_yr: -1.7 (±3.5)
assessment_code: "stable"
confidence: 1.0
cost_usd: 0.40
You can also make the paid call refuse to pay for data you'd reject, with dry_run, max_age_days, and min_confidence — each returns free instead of billing when the bar isn't met.
Route your logic on assessment_code (rapid_subsidence, notable_subsidence, stable, mild_uplift, strong_uplift), not the human-readable string.
Why an agent wants this
Ground subsidence is invisible on a normal map and quietly destroys foundations. For any workflow that reasons about a physical US address — property diligence, insurance triage, infrastructure siting, site selection — a fast, cheap, measured motion check is a useful ground-truth signal your model can't get from its training data. It's a screening tool, not a geotechnical survey, and the API is honest about that: every reading carries an uncertainty, a confidence, and a neighbor_consistent flag so a single noisy pixel doesn't read as "your building is collapsing."
Not on MCP?
There are native packages too:
- Python / LangChain:
pip install langchain-sibfly - LlamaIndex:
pip install llama-index-tools-sibfly - n8n: community node
n8n-nodes-sibfly - Anything else: plain REST at
https://sibfly.com/api/v1/motion(OpenAPI at/openapi.json, machine schema at/api/v1/schema, agent docs at/llms.txt).
Top comments (0)