GeoCroissant MCP Server
GeoCroissant MCP Server
Model Context Protocol (MCP) サーバーです。GeoCroissant とその地理空間拡張のためのサーバー。
機能
EO データセットの検出 - ライブの Element84 Earth Search API (
https://earth-search.aws.element84.com/v1、AWS Open Data) に対する STAC コレクションのキーワード / トピック検索と、シーンの空間検索 (bbox + datetime + 雲量) を行います。センサーのモダリティ分類 (optical / radar / elevation) とテーマのショートカット (flood、wildfire、ndvi、dem、...) を備えています。
STAC -> GeoCroissant 生成 - ライブ検索結果を検証済みの GeoCroissant ドキュメントに変換します。schema.org のカバレッジ、CRS、バンド構成、
eo:bandsから導出されたスペクトルメタデータ (マイクロメートルからナノメートルに変換)、アセット URL を直接参照する distribution の FileObject、シーンごとに 1 行を埋め込む RecordSet などを生成します。公式バリデータをツールとして提供 -
mlcroissant(mlcroissant validateと同じエンジン) によるエラーと警告を含む、構造化された pass/fail レポートを返します。深い検査 - コアメタデータとすべての GeoCroissant プロパティを検査します: CRS、空間 / 時間解像度、バンド構成、スペクトルバンドのメタデータ、レコードエンドポイント、空間インデックス / バイアス / サンプリング戦略。
構造化グラフの抽出 - ライブラリが内部で構築する有向多重グラフを公開します (Metadata / FileObject / FileSet / RecordSet / Field ノード、source / join / containment エッジ)。
レコードのマテリアライズ - 実際の操作グラフ (ダウンロード、抽出、変換) を実行し、Python の
Dataset.records(...)とまったく同様に実際のレコードをプレビューします。検証済みスキャフォールディング - 構造化されたパラメータから標準準拠の GeoCroissant JSON-LD を生成し、実際のバリデータでチェックします。
組み込み仕様リファレンス - 名前空間、ドメイン / カーディナリティ付きのすべての
geocr:プロパティ、正規の@context、サンプルドキュメント、Python API。
Related MCP server: Copernicus Earth Observation MCP Server
ツール
ツール | 説明 |
| 登録済みの EO STAC カタログ (Earth Search) を、モダリティ、厳選されたコレクション、トピックキーワードとともに一覧表示します。 |
| Earth Search コレクションのトピック / キーワード検索 - |
| bbox 内の空間 / 時間 / 雲量のシーン検索。シーンごとの ID、日付、雲量、ネイティブ EPSG、アセットキーを返します。 |
| エンドツーエンドのパイプライン: ライブ STAC 検索 -> 検証済み GeoCroissant JSON-LD (カバレッジ、CRS、バンドとスペクトルメタデータ、distribution URL、インラインシーンレコード) を生成します。必要に応じてディスクに書き込みます。 |
| Croissant / GeoCroissant ドキュメント (ファイルパス、URL、インライン JSON) を検証します。 |
| ドキュメントの構造化サマリー: メタデータ、 |
| ライブラリ内部の構造グラフのノードと有向エッジ - 系統と依存関係の解析。 |
| @id、キー、インラインレコード / サンプル数、ネストされたフィールドのサマリーを持つ RecordSet を一覧表示します。 |
| RecordSet の先頭 N 件のレコードをマテリアライズします (フィルタリング可)。Python API と同様にダウンロード / 変換を実行します。 |
| distribution からダウンロード可能な URL を抽出します: |
| パラメータから検証済み GeoCroissant ドキュメントを生成します (ネットワーク不要)。必要に応じてディスクに書き込みます。 |
| 仕様リファレンス: |
カタログの追加
レジストリは データ駆動 です (src/geocr_mcp_server/config/catalogs.yaml)。各カタログは、STAC URL、モダーティごとの厳選されたコレクション、共有の topics とモダリティのキーワードヒントを持つエントリです。コードを変更せずに別のカタログを登録するには:
YAML を任意の場所にコピーし、
catalogsの下にカタログを追加します (テーマのマッピングはtopicsの下にも追加します)。次の環境変数をそのファイルに設定します:
"env": { "GEOCR_CATALOGS_CONFIG": "/path/to/catalogs.yaml" }ローダーは、トピック参照がどこかのカタログのコレクションリストに存在するかを検証するため、タイプミスは起動時にすぐに失敗します。
推奨されるエージェントワークフロー
discovery: list_eo_catalogs -> search_eo_datasets("burn scar", modality=optical)
-> search_eo_scenes(bbox=[...], datetime_range=...)
metadata: create_geocroissant_from_stac(...) # validated output + optional file
consuming: inspect_geocroissant -> get_records_preview -> extract_distribution_urls
authoring: create_geocroissant_scaffold -> edit -> validate_croissantインストール
クローンは不要です。pip / uvx が geocr-mcp と mlcroissant 依存機能の両方を GitHub から直接取得します。クローンが必要なのは開発時のみです。
pip
pip install git+https://github.com/HarshShinde0/geocr_mcp.git@main唯一の依存である mlcroissant は、GeoCr FROM`フォークから自動的に取得されます:
pip install git+https://github.com/HarshShinde0/croissant.git@main#subdirectory=python/mlcroissantuv / uvx (クライアントに推奨)
uvx --from "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main" geocr-mcp-serverDocker
docker build -t geocr-mcp-server .
# stdio (local clients):
docker run -i --rm geocr-mcp-server
# hosted (HTTP transports):
docker run -p 8000:8000 geocr-mcp-server --transport streamable-http --host 0.0.0.0 --port 8000クライアント設定
クローンは必要ありません。クライアントは uvx を介して両パッケージを GitHub から直接インストール (およびキャッシュ) します。
{
"mcpServers": {
"geocr": {
"command": "uvx",
"args": [
"--from", "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main",
"geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}{
"mcp": {
"servers": {
"geocr": {
"command": "uvx",
"args": [
"--from", "geocr-mcp @ git+https://github.com/HarshShinde0/geocr_mcp.git@main",
"geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
}
}
}
}
}サーバーコード自体を反復する場合にのみ必要です:
git clone https://github.com/HarshShinde0/geocr_mcp.git # or this monorepo{
"mcpServers": {
"geocr": {
"command": "uv",
"args": [
"--directory", "/path/to/geocr_mcp",
"run", "geocr-mcp-server"
],
"env": {
"FASTMCP_LOG_LEVEL": "ERROR"
},
"disabled": false,
"autoApprove": []
}
}
}共有 / リモートクラウド利用のために、同じサーバーを HTTP トランスポートで実行します:
geocr-mcp-server --transport streamable-http --host 0.0.0.0 --port $PORTRender へのデプロイ (1-Click Blueprint)
このリポジトリには render.yaml の blueprint が含まれています:
Render Dashboard にログインします。
New + -> Blueprint をクリックし、リポジトリ
HarshShinde0/geocr_mcpを接続します。Apply をクリックします。Render がコンテナを自動的にビルドし、サーバーをデプロイルします。
ライブエンドポイント: https://geocr-mcp-server.onrender.com/mcp
ホスト型 MCP へのクライアント接続
AI クライアント、IDE、またはエージェントの設定 (mcpServers) で:
{
"mcpServers": {
"geocr-remote": {
"url": "https://geocr-mcp-server.onrender.com/mcp"
}
}
}カスタムリバースプロキシの背後では、プロキシで TLS を終端し、GEOCR_HOST=0.0.0.0 と GEOCR_TRANSPORT=streamable-http を設定してください。
環境変数
変数 | デフォルト | 説明 |
|
| stderr ログのログレベル ( |
| システムの一時ディレクトリ | 生成されたファイルが書き込まれるディレクトリ (ファイル名はベース名にサニタライズされます)。 |
| 同梱の YAML | 代替のカタログレジストリファイルのパス - コードを変更せずにカタログ / トピックを追加できます。 |
|
| SSE / streamable-http トランスポートのバインドアドレス (CLI フラグでも設定可能)。 |
セキュリティに関する考慮事項
サーバーは、ツール入力が URL を参照する場合、またはリモートの distribution からレコードをマテリア時の (
get_records_preview) 場合のみネットワークリクエストを行います。信頼できないコンテキストではlimitを小さく保ってください。生成されたファイルは常に
GEOCR_OUTPUT_DIR内に書き込まれます。パストラバーサルは、ファイル名をベスト名に短縮することで防がれます。コンテナは non-root で実行してください (提供されている Dockerfile はすでにそうなっています)。
開発
cd geocr_mcp
uv venv && uv sync --all-groups # or: python -m pip install -e ".[dev]"
uv run pytest --cov --cov-branch # unit tests (no network required)
uv run ruff check src tests # lint (same rules as awslabs/mcp)
npx @modelcontextprotocol/inspector geocr-mcp-server # interactive debuggingMaintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityAmaintenanceEnables AI assistants to search and access geospatial datasets through STAC (SpatioTemporal Asset Catalog) APIs. Supports querying satellite imagery, weather data, and other geospatial assets with spatial, temporal, and attribute filters.1113MIT
- AlicenseBqualityDmaintenanceProvides tools to search, download, and manage satellite imagery from all Copernicus Sentinel missions via the Copernicus Data Space ecosystem. It enables advanced geospatial queries, temporal coverage analysis, and automated data management for Earth observation tasks.133LGPL 3.0
- FlicenseAqualityDmaintenanceProvides access to the OpenLandMap STAC catalog, offering over 100 global environmental datasets including soil, climate, and vegetation data. It enables AI agents to discover, search, and retrieve Cloud-Optimized GeoTIFFs for global geospatial analysis.27
- AlicenseNot gradedqualityCmaintenanceProvides geospatial data intelligence tools for inspecting, querying, and converting geospatial data using DuckDB Spatial.1MIT
Related MCP Connectors
Create, browse, remix, collaborate on, and run durable AI workflow nodes from MCP hosts.
Create, validate, edit, export (markdown/svg/png/mermaid), and search JSON Canvas files.
GIS tools for AI agents: 65 free tools + 8 paid (hazard/site-scouting/GeoJSON export)
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/HarshShinde0/geocr_mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server