ground-motion

Measured ground motion per US address (NASA InSAR). Self-register, $0.40/report, misses free.

使うべきか

品質と安全性

A
説明の品質
97%
スキーマの完全性
84%
命名の品質
93%
ポイズニングのリスク
100%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(1)

  • LOWTool 'get_account' description lacks action verbget_account 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~2,090トークン数(ツール定義)
~1.7 KB一般的なレスポンスサイズ
注意への影響は中程度(128k コンテキストの 1.63%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

{
  "mcpServers": {
    "ground-motion": {
      "url": "https://sibfly.com/mcp"
    }
  }
}

リモートエンドポイント

https://sibfly.com/mcpstreamable-http

できること

ツール一覧

ツール(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.

入力スキーマ

{
  "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)"
    }
  }
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
  ]
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
    }
  }
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
    }
  }
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "type": "object",
  "properties": {}
}

出力スキーマ

{
  "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).

入力スキーマ

{
  "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"
  ]
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
  ]
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "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"
  ]
}

出力スキーマ

{
  "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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "description": "max rows, default 100, max 1000"
    }
  }
}

出力スキーマ

{
  "type": "object",
  "properties": {
    "count": {
      "type": "integer"
    },
    "spent_today_usd": {
      "type": "number"
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object"
      }
    }
  }
}

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 9 件
検証済みバージョンは記録されていませんツール 9 件