Node Api について
Node APIは、AIエージェントや開発者向けの空間データ処理APIです。形式変換、ジオメトリ操作、ベクタータイル生成に対応し、ローカルのstdioまたはリモートSSE経由で処理機能をMCPツールとして公開します。
主な機能
- 01GeoJSON、Shapefile、GeoPackage、KML間の変換
- 02ジオメトリの再投影、検証、修復
- 03単一レイヤーと2レイヤーの地理処理
- 04DXFジオメトリの抽出とベクタータイル生成
- 05Webhook通知付き非同期ジョブ
活用シーン
- 01対応形式間での空間データ変換
- 02ジオメトリファイルの再投影や修復
- 03空間レイヤーのクリップ、バッファー、交差、結合
- 04空間データからのベクタータイル生成
MCP 対応
ローカルstdioとリモートSSEを通じて、空間処理エンドポイントをMCPツールとして公開します。READMEには変換、再投影、検証、修復、地理処理、料金のツールが記載されています。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://nodeapi.ai/mcp/sseclaude mcp add --transport http node-api https://nodeapi.ai/mcp/sse{"mcpServers":{"node-api":{"type":"http","url":"https://nodeapi.ai/mcp/sse"}}}Cursor で開く{"servers":{"node-api":{"type":"http","url":"https://nodeapi.ai/mcp/sse"}}}VS Code で開く{"mcpServers":{"node-api":{"type":"http","url":"https://nodeapi.ai/mcp/sse"}}}{"mcpServers":{"node-api":{"serverUrl":"https://nodeapi.ai/mcp/sse"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Node API
バージョン: 0.5.2
ステータス: フェーズ 3 — 公開
公開先: nodeapi.ai | API ドキュメント | MCP
AI エージェントや開発者向けの、機械ネイティブな空間データ処理です。エンドポイントは 25 個です。Solana で、1 回の操作につき 0.01 USDC をお支払いください。アカウント、API キー、サブスクリプションは不要です。
クイックスタート
# 1. Send a request — get a 402 with payment details
curl -X POST https://nodeapi.ai/v1/validate \
-F "[email protected]"
# → 402: { "recipient": "D8m8C9amSawdqSgEdXWkMZ3M86qsVQuDJswG1wZYkezP", "amount_usd": "0.01", ... }
# 2. Send 0.01 USDC to the recipient on Solana Mainnet
# Get the transaction signature from your wallet
# 3. Retry with the transaction signature
curl -X POST https://nodeapi.ai/v1/validate \
-F "[email protected]" \
-H "X-PAYMENT: <your_solana_tx_signature>"
# → 200: { "total_features": 1204, "valid_count": 1204, ... }
お支払い
有料エンドポイントではすべて、Solana Mainnet 上の USDC を使用する Solana Pay を利用します。
| プロトコル | Solana Pay |
| ネットワーク | Solana Mainnet |
| 資産 | USDC (EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v) |
| 価格 | 1 回の操作につき一律 $0.01 |
| 受取先 | D8m8C9amSawdqSgEdXWkMZ3M86qsVQuDJswG1wZYkezP |
手順:
- 任意のエンドポイントを呼び出す → Solana Pay の URL と受取先を含む
402を受け取ります - Solana Mainnet で 0.01 USDC を送金します(メモに
nodeapi:<operation>を含めます) X-PAYMENT: <transaction_signature>を付けて再試行します- 処理済みデータを受け取ります
エンドポイント
すべてのエンドポイントは /v1/<path>(推奨)と /<path>(旧形式。引き続きサポート)で利用できます。
情報(無料)
| メソッド | パス | 説明 |
|---|---|---|
| GET | /v1/health | サービスの稼働状況 |
| GET | /v1/pricing | 料金一覧 |
形式と検査
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/convert | GeoJSON、Shapefile、GeoPackage、KML 間で変換します |
| POST | /v1/reproject | 任意の EPSG に投影または再投影します(割り当てと変換を自動判別) |
| POST | /v1/validate | ジオメトリを検証し、JSON レポートを返します |
| POST | /v1/repair | 無効なジオメトリを修復します(make_valid) |
| POST | /v1/schema | フィールドスキーマ、CRS、bbox、フィーチャ数を抽出します |
| POST | /v1/dxf | DXF/CAD ファイルからジオメトリを抽出します |
ジオプロセシング(入力 1 件)
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/clip | バウンディングボックスまたはポリゴンマスクで切り抜きます |
| POST | /v1/buffer | 距離(メートル単位)を指定してフィーチャをバッファー処理します |
| POST | /v1/erase | すべてのフィーチャを削除し、空のスキーマを保持します |
| POST | /v1/dissolve | 属性フィールドでフィーチャをディゾルブします |
| POST | /v1/feature-to-point | ジオメトリを重心点に変換します |
| POST | /v1/feature-to-line | ポリゴンの境界をラインとして抽出します |
| POST | /v1/feature-to-polygon | 閉じたラインをポリゴンに変換します |
| POST | /v1/multipart-to-singlepart | マルチパートジオメトリを分割します |
| POST | /v1/add-field | 新しい属性列を追加します |
ジオプロセシング(入力 2 件)
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/union | 2 つのレイヤーのすべてのフィーチャを結合します |
| POST | /v1/intersect | 2 つのレイヤーの空間的な交差を求めます |
| POST | /v1/difference | レイヤー A から、レイヤー B との重複部分を差し引きます |
| POST | /v1/append | レイヤー B のフィーチャをレイヤー A のスキーマに追加します |
| POST | /v1/merge | すべてのフィールドを保持して 2 つのレイヤーをマージします |
| POST | /v1/spatial-join | 空間的な関係に基づいて属性を結合します |
タイル
| メソッド | パス | 説明 |
|---|---|---|
| POST | /v1/vectorize | .mbtiles ベクタータイルパッケージを生成します(tippecanoe) |
ジョブ
| メソッド | パス | 説明 |
|---|---|---|
| GET | /v1/jobs/{id} | 非同期ジョブのステータスをポーリングします |
| GET | /v1/jobs/{id}/download | 完了したジョブの結果をダウンロードします |
対応入力形式: GeoJSON、Shapefile (.zip)、GeoPackage (.gpkg)、KML、GDB(読み取り)、DXF
MCP 連携
Node API は 25 個すべてのエンドポイントを MCP ツールとして公開しており、Claude、GPT-4o、および MCP 対応のあらゆるエージェントと互換性があります。
リモート(インストール不要)
https://nodeapi.ai/mcp/sse
この SSE エンドポイントに任意の MCP クライアントを接続できます。認証は不要です。
Claude Desktop(ローカル)
~/Library/Application Support/Claude/claude_desktop_config.json に追加します:
{
"mcpServers": {
"node-api": {
"command": "/path/to/venv/bin/python",
"args": ["-m", "app.mcp_server"],
"cwd": "/path/to/node-api"
}
}
}
22 個の MCP ツール: convert、reproject、validate、repair、schema、clip、dxf、buffer、union、intersect、difference、erase、dissolve、feature-to-point、feature-to-line、feature-to-polygon、multipart-to-singlepart、add-field、append、merge、spatial-join、pricing
Webhook
非同期ジョブ(DXF 変換、大容量ファイルなど)では、ポーリングの代わりに、完了時に POST を受け取るための webhook_url を渡します。
curl -X POST https://nodeapi.ai/v1/dxf \
-F "[email protected]" \
-F "output_format=geojson" \
-F "webhook_url=https://your-agent.com/callback" \
-H "X-PAYMENT: <tx_signature>"
Webhook のペイロード:
{
"job_id": "abc-123",
"operation": "dxf",
"status": "done",
"result_url": "https://nodeapi.ai/v1/jobs/abc-123/download",
"result_filename": "output.geojson",
"size_bytes": 48291
}
検証用に、X-Webhook-Signature: sha256=<HMAC> で署名されています。
アーキテクチャ
- FastAPI — 非同期、OpenAPI 仕様は
/docs - GeoPandas + GDAL — 200 種類以上のベクター形式に対応
- Shapely 2.x — ジオメトリ操作
- pyproj — CRS の再投影
- tippecanoe 2.79 — ベクタータイルの生成
- PostgreSQL — 操作ログ + ジョブキュー
- Solana Pay — Solana Mainnet 上での USDC マイクロペイメント
- MCP SDK — stdio(ローカル)+ SSE(リモート)トランスポート
- Cloudflare Tunnel —
nodeapi.ai→ API サーバー
開発環境のセットアップ
git clone https://github.com/eianray/node-api
cd node-api
python3 -m venv venv
venv/bin/pip install -r requirements.txt
cp .env.example .env
# Leave SOLANA_WALLET_ADDRESS=YOUR_SOLANA_WALLET_ADDRESS for dev mode (bypasses payment)
venv/bin/uvicorn app.main:app --reload --port 8100
ロードマップ
- フェーズ 1 ✅ — 変換、再投影、検証、修復、スキーマ、クリップ
- フェーズ 2 ✅ — DXF/CAD、バッファー、トポロジー(union/intersect/difference)、リモート MCP SSE
- フェーズ 3 ✅(2026 年 3 月 4 日) — 11 個の新しいジオプロセシングエンドポイント、Solana Pay、Webhook、ベクタータイル、API バージョニング、22 個の MCP ツール
- フェーズ 4 — Hetzner への移行、CDN キャッシュ、バッチ API、エージェントディレクトリーへの掲載
nodeapi.ai — エージェント経済圏のための空間処理インフラストラクチャ。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。