Serveur MCP

ground-motion

com.sibfly/ground-motion
Immobilier Science et ingénierie Public et accessible MCP 2026-07-28

Ce que fait ce MCP

Reports NASA InSAR-measured ground sinking or uplift for US addresses, including coverage, history, portfolio checks, account credits, and payment options.

ask_inspector
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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'required': ['question', 'address'], 'properties': {'address': {'type': 'string', 'description': 'the address of a report already purchased on this account'}, 'question': {'type': 'string', 'description': 'your question about the report'}}}
Schéma de sortie
{'type': 'object', 'properties': {'reply': {'type': 'string'}}}
buy_credits
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.
Schéma d’entrée
{'type': 'object', 'required': ['amount_usd'], 'properties': {'method': {'enum': ['stripe', 'crypto'], 'type': 'string', 'description': 'default stripe (card)'}, 'amount_usd': {'type': 'number', 'description': '1 to 10000 (USD)'}}}
Schéma de sortie
{'type': 'object', 'properties': {'method': {'type': 'string'}, 'status': {'type': 'string'}, 'txn_id': {'type': ['string', 'null']}, 'amount_usd': {'type': 'number'}, 'invoice_url': {'type': ['string', 'null']}, 'checkout_url': {'type': ['string', 'null']}}}
check_ground_motion
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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'since': {'type': 'string', 'description': 'YYYY-MM-DD; if no new data since this date, return free'}, 'address': {'type': 'string', 'description': 'US street address'}, 'compact': {'type': 'boolean', 'description': 'lean payload (fewer tokens)'}, 'dry_run': {'type': 'boolean', 'description': 'FREE preview: coverage + would_cost + data age, no rate, no charge'}, '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.'}, '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'}, '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'}}}
Schéma de sortie
{'type': 'object', 'properties': {'engine': {'type': ['string', 'null'], 'description': 'narration engine: GL52 (free tier) or CL46 (paying)'}, 'status': {'enum': ['ok', 'no_data', 'no_coverage', 'stale_data', 'low_confidence', 'low_geocode_precision', 'no_new_data'], 'type': 'string'}, 'cost_usd': {'type': 'number'}, 'confidence': {'type': ['number', 'null']}, 'ground_brief': {'type': ['string', 'null'], 'description': 'only when explain=true'}, 'data_age_days': {'type': ['integer', 'null']}, 'near_threshold': {'type': ['boolean', 'null']}, 'assessment_code': {'enum': ['rapid_subsidence', 'notable_subsidence', 'stable', 'mild_uplift', 'strong_uplift', 'no_clear_trend', None], 'type': ['string', 'null']}, 'credits_remaining_usd': {'type': ['number', 'null']}, 'velocity_vertical_in_yr': {'type': ['number', 'null']}, 'velocity_vertical_mm_yr': {'type': ['number', 'null']}, 'velocity_uncertainty_mm_yr': {'type': ['number', 'null']}}}
check_portfolio
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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'required': ['addresses'], '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'}}}
Schéma de sortie
{'type': 'object', 'properties': {'status': {'type': 'string'}, 'results': {'type': 'array', 'items': {'type': 'object'}}, 'summary': {'type': 'object'}, 'credits_remaining_usd': {'type': ['number', 'null']}}}
get_account
FREE: your SibFly credit balance, price per report, reports remaining, and top-up URL.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {}}
Schéma de sortie
{'type': 'object', 'properties': {'top_up_url': {'type': 'string'}, 'credits_usd': {'type': 'number'}, 'price_per_report_usd': {'type': 'number'}, 'reports_remaining_est': {'type': 'integer'}}}
get_coverage
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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'address': {'type': 'string'}, 'addresses': {'type': 'array', 'items': {'type': 'string'}, 'description': 'batch mode: size a whole job in one free call'}}}
Schéma de sortie
{'type': 'object', 'properties': {'frame': {'type': ['string', 'null']}, 'covered': {'type': 'boolean'}, 'results': {'type': ['array', 'null']}, 'summary': {'type': ['object', 'null']}, 'data_age_days': {'type': ['integer', 'null']}, 'would_cost_usd': {'type': ['number', 'null']}}}
get_motion_history
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.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'lat': {'type': 'number'}, 'lon': {'type': 'number'}, 'address': {'type': 'string'}, 'dry_run': {'type': 'boolean', 'description': 'FREE preview: coverage + n_points + would_cost, no series, no charge'}, 'to_date': {'type': 'string'}, 'from_date': {'type': 'string'}, 'max_age_days': {'type': 'integer', 'description': 'if data older than this, return free instead of billing'}}}
Schéma de sortie
{'type': 'object', 'properties': {'dates': {'type': 'array'}, 'delta': {'type': ['object', 'null']}, 'cum_mm': {'type': 'array'}, 'status': {'type': 'string'}, 'cost_usd': {'type': 'number'}, 'credits_remaining_usd': {'type': ['number', 'null']}}}
get_usage
FREE: your recent billed calls (line-item ledger with request_id, endpoint, address, cost) so you can reconcile spend against reports.
Lecture seule
Schéma d’entrée
{'type': 'object', 'properties': {'limit': {'type': 'integer', 'description': 'max rows, default 100, max 1000'}}}
Schéma de sortie
{'type': 'object', 'properties': {'count': {'type': 'integer'}, 'items': {'type': 'array', 'items': {'type': 'object'}}, 'spent_today_usd': {'type': 'number'}}}
register_agent
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).
Schéma d’entrée
{'type': 'object', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'a durable email address (disposable domains rejected)'}, 'password': {'type': 'string', 'description': 'optional; auto-generated and returned if omitted'}}}
Schéma de sortie
{'type': 'object', 'properties': {'api_key': {'type': 'string'}, 'password': {'type': 'string'}, 'credits_usd': {'type': 'number'}, 'reports_remaining': {'type': 'integer'}, 'price_per_report_usd': {'type': 'number'}}}
Ajouté
get_usage
17 September 2026 12:37
Ajouté
ask_inspector
17 September 2026 12:37
Ajouté
buy_credits
17 September 2026 12:37
Ajouté
register_agent
17 September 2026 12:37
Ajouté
get_account
17 September 2026 12:37
Ajouté
get_motion_history
17 September 2026 12:37
Ajouté
get_coverage
17 September 2026 12:37
Ajouté
check_portfolio
17 September 2026 12:37
Ajouté
check_ground_motion
17 September 2026 12:37