Server definition
- Hash
- sha256:00181a94bc7884c1d674b13ac25c2ca7063cff848d20cf9c7bc1a4aa4448b27f
- What it is
- What a remote MCP server returned when asked what it offers: 9 tools
The blob, as servednamed by its sha256
{
"instructions": "Ground subsidence/uplift for US addresses (negative mm/yr = sinking). Decision tree: 0) no API key? register_agent (FREE) issues one instantly — save it and use it as the Bearer token; 1) get_coverage (FREE) or check_ground_motion with dry_run=true (FREE) to confirm coverage + cost; 2) check_ground_motion to buy the $0.40 report; route logic on assessment_code (rapid_subsidence/notable_subsidence/stable/mild_uplift/strong_uplift/no_clear_trend). Use max_age_days/min_confidence/since/require_significant to avoid paying for data you'd reject — those return FREE (require_significant=true skips paying when the rate would be no_clear_trend statistical noise; dry_run also returns likely_significant so you can predict answer quality before spending). check_portfolio for many addresses (supports max_spend_usd budget cap); get_coverage accepts addresses[] to size a whole job free; get_account for balance; get_usage for the billing ledger; out of credits? buy_credits returns a payment link (card or BTC). Misses are always free. Defaults: explain=false, compact=false.",
"tools": [
{
"description": "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.",
"inputSchema": {
"properties": {
"address": {
"description": "the address of a report already purchased on this account",
"type": "string"
},
"question": {
"description": "your question about the report",
"type": "string"
}
},
"required": [
"question",
"address"
],
"type": "object"
},
"name": "ask_inspector",
"outputSchema": {
"properties": {
"reply": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"amount_usd": {
"description": "1 to 10000 (USD)",
"type": "number"
},
"method": {
"description": "default stripe (card)",
"enum": [
"stripe",
"crypto"
],
"type": "string"
}
},
"required": [
"amount_usd"
],
"type": "object"
},
"name": "buy_credits",
"outputSchema": {
"properties": {
"amount_usd": {
"type": "number"
},
"checkout_url": {
"type": [
"string",
"null"
]
},
"invoice_url": {
"type": [
"string",
"null"
]
},
"method": {
"type": "string"
},
"status": {
"type": "string"
},
"txn_id": {
"type": [
"string",
"null"
]
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"address": {
"description": "US street address",
"type": "string"
},
"compact": {
"description": "lean payload (fewer tokens)",
"type": "boolean"
},
"dry_run": {
"description": "FREE preview: coverage + would_cost + data age, no rate, no charge",
"type": "boolean"
},
"explain": {
"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.",
"type": "boolean"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"max_age_days": {
"description": "if data older than this, return free instead of billing",
"type": "integer"
},
"min_confidence": {
"description": "0-1; below this, return free instead of billing",
"type": "number"
},
"require_significant": {
"description": "if the rate would be no_clear_trend (within its error bar), return FREE instead of billing — never pay for statistical noise",
"type": "boolean"
},
"since": {
"description": "YYYY-MM-DD; if no new data since this date, return free",
"type": "string"
}
},
"type": "object"
},
"name": "check_ground_motion",
"outputSchema": {
"properties": {
"assessment_code": {
"enum": [
"rapid_subsidence",
"notable_subsidence",
"stable",
"mild_uplift",
"strong_uplift",
"no_clear_trend",
null
],
"type": [
"string",
"null"
]
},
"confidence": {
"type": [
"number",
"null"
]
},
"cost_usd": {
"type": "number"
},
"credits_remaining_usd": {
"type": [
"number",
"null"
]
},
"data_age_days": {
"type": [
"integer",
"null"
]
},
"engine": {
"description": "narration engine: GL52 (free tier) or CL46 (paying)",
"type": [
"string",
"null"
]
},
"ground_brief": {
"description": "only when explain=true",
"type": [
"string",
"null"
]
},
"near_threshold": {
"type": [
"boolean",
"null"
]
},
"status": {
"enum": [
"ok",
"no_data",
"no_coverage",
"stale_data",
"low_confidence",
"low_geocode_precision",
"no_new_data"
],
"type": "string"
},
"velocity_uncertainty_mm_yr": {
"type": [
"number",
"null"
]
},
"velocity_vertical_in_yr": {
"type": [
"number",
"null"
]
},
"velocity_vertical_mm_yr": {
"type": [
"number",
"null"
]
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"addresses": {
"description": "up to 1000 US addresses (must be an ARRAY, not one string)",
"items": {
"type": "string"
},
"type": "array"
},
"max_spend_usd": {
"description": "hard budget cap: billing stops at this total; over-budget items come back skipped_for_budget",
"type": "number"
}
},
"required": [
"addresses"
],
"type": "object"
},
"name": "check_portfolio",
"outputSchema": {
"properties": {
"credits_remaining_usd": {
"type": [
"number",
"null"
]
},
"results": {
"items": {
"type": "object"
},
"type": "array"
},
"status": {
"type": "string"
},
"summary": {
"type": "object"
}
},
"type": "object"
}
},
{
"description": "FREE: your SibFly credit balance, price per report, reports remaining, and top-up URL.",
"inputSchema": {
"properties": {},
"type": "object"
},
"name": "get_account",
"outputSchema": {
"properties": {
"credits_usd": {
"type": "number"
},
"price_per_report_usd": {
"type": "number"
},
"reports_remaining_est": {
"type": "integer"
},
"top_up_url": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"address": {
"type": "string"
},
"addresses": {
"description": "batch mode: size a whole job in one free call",
"items": {
"type": "string"
},
"type": "array"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
}
},
"type": "object"
},
"name": "get_coverage",
"outputSchema": {
"properties": {
"covered": {
"type": "boolean"
},
"data_age_days": {
"type": [
"integer",
"null"
]
},
"frame": {
"type": [
"string",
"null"
]
},
"results": {
"type": [
"array",
"null"
]
},
"summary": {
"type": [
"object",
"null"
]
},
"would_cost_usd": {
"type": [
"number",
"null"
]
}
},
"type": "object"
}
},
{
"description": "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.",
"inputSchema": {
"properties": {
"address": {
"type": "string"
},
"dry_run": {
"description": "FREE preview: coverage + n_points + would_cost, no series, no charge",
"type": "boolean"
},
"from_date": {
"type": "string"
},
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"max_age_days": {
"description": "if data older than this, return free instead of billing",
"type": "integer"
},
"to_date": {
"type": "string"
}
},
"type": "object"
},
"name": "get_motion_history",
"outputSchema": {
"properties": {
"cost_usd": {
"type": "number"
},
"credits_remaining_usd": {
"type": [
"number",
"null"
]
},
"cum_mm": {
"type": "array"
},
"dates": {
"type": "array"
},
"delta": {
"type": [
"object",
"null"
]
},
"status": {
"type": "string"
}
},
"type": "object"
}
},
{
"description": "FREE: your recent billed calls (line-item ledger with request_id, endpoint, address, cost) so you can reconcile spend against reports.",
"inputSchema": {
"properties": {
"limit": {
"description": "max rows, default 100, max 1000",
"type": "integer"
}
},
"type": "object"
},
"name": "get_usage",
"outputSchema": {
"properties": {
"count": {
"type": "integer"
},
"items": {
"items": {
"type": "object"
},
"type": "array"
},
"spent_today_usd": {
"type": "number"
}
},
"type": "object"
}
},
{
"description": "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).",
"inputSchema": {
"properties": {
"email": {
"description": "a durable email address (disposable domains rejected)",
"type": "string"
},
"password": {
"description": "optional; auto-generated and returned if omitted",
"type": "string"
}
},
"required": [
"email"
],
"type": "object"
},
"name": "register_agent",
"outputSchema": {
"properties": {
"api_key": {
"type": "string"
},
"credits_usd": {
"type": "number"
},
"password": {
"type": "string"
},
"price_per_report_usd": {
"type": "number"
},
"reports_remaining": {
"type": "integer"
}
},
"type": "object"
}
}
]
}Verify it yourself
curl -s https://api.teppi.xyz/v1/evidence/sha256:00181a94bc7884c1d674b13ac25c2ca7063cff848d20cf9c7bc1a4aa4448b27f | sha256sum