ground-motion
Measured ground motion per US address (NASA InSAR). Self-register, $0.40/report, misses free.
¿Debería usar esto?
Calidad y seguridad
Hallazgos (1)
- LOWen get_account
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"ground-motion": {
"url": "https://sibfly.com/mcp"
}
}
}Puntos de conexión remotos
https://sibfly.com/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (9)
🟢check_ground_motion(address, lat, lon, explain, dry_run, ...)
Measured ground motion (sinking/uplift) for a US address or lat/lon, in mm/year AND in/year, from NASA OPERA Sentinel-1 InSAR. Costs $0.40 from your SibFly credits; out-of-coverage / too-stale / too-low-confidence / fuzzy-geocode return FREE. Use the gate params to avoid paying for data you'd reject. dry_run=true is a FREE coverage+cost preview.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string",
"description": "US street address"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"explain": {
"type": "boolean",
"description": "add ground_brief: ~600 tokens of plain-English narration + FAQ (engine GL52 free tier / CL46 paying). Adds ~10s latency. Only set when a human will read the output; use ask_inspector for follow-up Q&A."
},
"dry_run": {
"type": "boolean",
"description": "FREE preview: coverage + would_cost + data age, no rate, no charge"
},
"max_age_days": {
"type": "integer",
"description": "if data older than this, return free instead of billing"
},
"min_confidence": {
"type": "number",
"description": "0-1; below this, return free instead of billing"
},
"since": {
"type": "string",
"description": "YYYY-MM-DD; if no new data since this date, return free"
},
"require_significant": {
"type": "boolean",
"description": "if the rate would be no_clear_trend (within its error bar), return FREE instead of billing — never pay for statistical noise"
},
"compact": {
"type": "boolean",
"description": "lean payload (fewer tokens)"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"ok",
"no_data",
"no_coverage",
"stale_data",
"low_confidence",
"low_geocode_precision",
"no_new_data"
]
},
"velocity_vertical_mm_yr": {
"type": [
"number",
"null"
]
},
"velocity_vertical_in_yr": {
"type": [
"number",
"null"
]
},
"velocity_uncertainty_mm_yr": {
"type": [
"number",
"null"
]
},
"assessment_code": {
"type": [
"string",
"null"
],
"enum": [
"rapid_subsidence",
"notable_subsidence",
"stable",
"mild_uplift",
"strong_uplift",
"no_clear_trend",
null
]
},
"confidence": {
"type": [
"number",
"null"
]
},
"data_age_days": {
"type": [
"integer",
"null"
]
},
"near_threshold": {
"type": [
"boolean",
"null"
]
},
"cost_usd": {
"type": "number"
},
"credits_remaining_usd": {
"type": [
"number",
"null"
]
},
"ground_brief": {
"type": [
"string",
"null"
],
"description": "only when explain=true"
},
"engine": {
"type": [
"string",
"null"
],
"description": "narration engine: GL52 (free tier) or CL46 (paying)"
}
}
}🟢check_portfolio(addresses, max_spend_usd)
Batch ground-motion for many US addresses in one call. Only covered addresses are billed ($0.40 each); misses and duplicate cells are free. If credits run out mid-batch the response status is 'insufficient_credits' and unbilled items are marked — top up (buy_credits) and retry them.
Esquema de entrada
{
"type": "object",
"properties": {
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "up to 1000 US addresses (must be an ARRAY, not one string)"
},
"max_spend_usd": {
"type": "number",
"description": "hard budget cap: billing stops at this total; over-budget items come back skipped_for_budget"
}
},
"required": [
"addresses"
]
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"summary": {
"type": "object"
},
"results": {
"type": "array",
"items": {
"type": "object"
}
},
"credits_remaining_usd": {
"type": [
"number",
"null"
]
}
}
}🟢get_coverage(address, lat, lon, addresses)
FREE pre-flight: is a US address/point covered, how stale is the data (data_age_days), and what a report would cost. Accepts ONE address/lat+lon, OR addresses[] (up to 1000, needs your Bearer key) to size a whole job before spending. Call this before spending.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"addresses": {
"type": "array",
"items": {
"type": "string"
},
"description": "batch mode: size a whole job in one free call"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"covered": {
"type": "boolean"
},
"frame": {
"type": [
"string",
"null"
]
},
"data_age_days": {
"type": [
"integer",
"null"
]
},
"would_cost_usd": {
"type": [
"number",
"null"
]
},
"summary": {
"type": [
"object",
"null"
]
},
"results": {
"type": [
"array",
"null"
]
}
}
}🟢get_motion_history(address, lat, lon, from_date, to_date, ...)
Multi-year cumulative motion history for an address. Pass from_date and to_date (YYYY-MM-DD) to get the movement between two dates. Costs $0.40 (misses free). dry_run=true is a FREE preview (points + dates + cost, no data); max_age_days returns free instead of billing for stale data.
Esquema de entrada
{
"type": "object",
"properties": {
"address": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"from_date": {
"type": "string"
},
"to_date": {
"type": "string"
},
"dry_run": {
"type": "boolean",
"description": "FREE preview: coverage + n_points + would_cost, no series, no charge"
},
"max_age_days": {
"type": "integer",
"description": "if data older than this, return free instead of billing"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string"
},
"dates": {
"type": "array"
},
"cum_mm": {
"type": "array"
},
"delta": {
"type": [
"object",
"null"
]
},
"cost_usd": {
"type": "number"
},
"credits_remaining_usd": {
"type": [
"number",
"null"
]
}
}
}🟢get_account
FREE: your SibFly credit balance, price per report, reports remaining, and top-up URL.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"credits_usd": {
"type": "number"
},
"price_per_report_usd": {
"type": "number"
},
"reports_remaining_est": {
"type": "integer"
},
"top_up_url": {
"type": "string"
}
}
}🟡register_agent(email, password)
FREE: create a new SibFly account and get an API key + free starter credits in ONE call — no human, no captcha, no card. Use this when you have no API key. SAVE the returned api_key and pass it as the Bearer token on later calls (MCP clients: set it as the Authorization header).
Esquema de entrada
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "a durable email address (disposable domains rejected)"
},
"password": {
"type": "string",
"description": "optional; auto-generated and returned if omitted"
}
},
"required": [
"email"
]
}Esquema de salida
{
"type": "object",
"properties": {
"api_key": {
"type": "string"
},
"credits_usd": {
"type": "number"
},
"price_per_report_usd": {
"type": "number"
},
"reports_remaining": {
"type": "integer"
},
"password": {
"type": "string"
}
}
}🟢buy_credits(amount_usd, method)
Get a machine-usable payment link to top up credits (requires your Bearer API key). method 'stripe' returns a card checkout_url; 'crypto' returns a BTC invoice_url + txn_id. Open/relay the URL to complete payment; credits land automatically afterwards — confirm with get_account.
Esquema de entrada
{
"type": "object",
"properties": {
"amount_usd": {
"type": "number",
"description": "1 to 10000 (USD)"
},
"method": {
"type": "string",
"enum": [
"stripe",
"crypto"
],
"description": "default stripe (card)"
}
},
"required": [
"amount_usd"
]
}Esquema de salida
{
"type": "object",
"properties": {
"method": {
"type": "string"
},
"checkout_url": {
"type": [
"string",
"null"
]
},
"invoice_url": {
"type": [
"string",
"null"
]
},
"txn_id": {
"type": [
"string",
"null"
]
},
"amount_usd": {
"type": "number"
},
"status": {
"type": "string"
}
}
}🟢ask_inspector(question, address)
FREE follow-up Q&A with the SibFly Inspector about a report you ALREADY BOUGHT (buy via check_ground_motion first). Ask what the numbers mean for foundations, staleness, seasonal swings, etc. It answers only from the report's numbers (never invents), and won't give buy/walk-away advice. Per-account message allowance applies.
Esquema de entrada
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "your question about the report"
},
"address": {
"type": "string",
"description": "the address of a report already purchased on this account"
}
},
"required": [
"question",
"address"
]
}Esquema de salida
{
"type": "object",
"properties": {
"reply": {
"type": "string"
}
}
}🟢get_usage(limit)
FREE: your recent billed calls (line-item ledger with request_id, endpoint, address, cost) so you can reconcile spend against reports.
Esquema de entrada
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"description": "max rows, default 100, max 1000"
}
}
}Esquema de salida
{
"type": "object",
"properties": {
"count": {
"type": "integer"
},
"spent_today_usd": {
"type": "number"
},
"items": {
"type": "array",
"items": {
"type": "object"
}
}
}
}Comunidad
Evidencia