Skip to main content
Glama
mahdin75

GeoServer MCP Server

GeoServer MCP サーバー

アルファ

バージョン0.4.0(アルファ版)は現在開発中で、まもなくリリースされます。皆様からの貢献を歓迎しており、このプロジェクトの構築にご参加いただける開発者を歓迎いたします。

🎥 デモ

Related MCP server: MCP Google Map Server

📋 目次

🚀 機能

  • 🔍 GeoServer のワークスペース、レイヤー、スタイルをクエリして操作する

  • 🗺️ ベクターデータに対して空間クエリを実行する

  • 🎨 マップの視覚化を生成する

  • 🌐 OGC準拠のWebサービス(WMS、WFS)にアクセスする

  • 🛠️ MCP 対応クライアントとの簡単な統合

📋 前提条件

  • Python 3.10以上

  • REST API を有効にして GeoServer インスタンスを実行する

  • MCP 互換クライアント (Claude Desktop や Cursor など)

  • パッケージインストールのためのインターネット接続

🛠️ インストール

ニーズに最適なインストール方法を選択してください。

🛠️ インストール (Docker)

Dockerインストールは、GeoServer MCPサーバーを実行するための最も迅速で隔離された方法です。以下の用途に最適です。

  • 迅速なテストと評価

  • 本番環境への導入

  • Pythonへの依存を避けたい環境

  • 異なるシステム間での一貫した展開

  1. geoserver-mcp を実行します:

docker pull mahdin75/geoserver-mcp docker run -d mahdin75/geoserver-mcp
  1. クライアントを構成します。

Claude Desktopを使用している場合は、 claude_desktop_config.jsonを編集します。Cursorを使用している場合は、 .cursor/mcp.jsonを作成します。

{ "mcpServers": { "geoserver-mcp": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "GEOSERVER_URL=http://localhost:8080/geoserver", "-e", "GEOSERVER_USER=admin", "-e", "GEOSERVER_PASSWORD=geoserver", "-p", "8080:8080", "mahdin75/geoserver-mcp" ] } } }

🛠️ インストール (pip)

pipによるインストールは、システム上で直接サーバーを実行したいほとんどのユーザーに推奨されます。この方法は以下の場合に最適です。

  • ローカルでサーバーを実行したい一般ユーザー

  • Python 3.10以降がインストールされているシステム

  • サーバー構成をカスタマイズしたいユーザー

  • 開発およびテスト目的

  1. uv パッケージ マネージャーをインストールします。

pip install uv
  1. 仮想環境を作成する (Python 3.10+):

Linux/Mac:

uv venv --python=3.10

Windows PowerShell:

uv venv --python=3.10
  1. pip を使用してパッケージをインストールします。

uv pip install geoserver-mcp
  1. GeoServer 接続を構成します。

Linux/Mac:

export GEOSERVER_URL="http://localhost:8080/geoserver" export GEOSERVER_USER="admin" export GEOSERVER_PASSWORD="geoserver"

Windows PowerShell:

$env:GEOSERVER_URL="http://localhost:8080/geoserver" $env:GEOSERVER_USER="admin" $env:GEOSERVER_PASSWORD="geoserver"
  1. サーバーを起動します。

Claudeデスクトップを使用する場合は、この手順は不要です。カーソルまたは独自のカスタムクライアントを使用する場合は、次のコードを実行してください。

リナックス:

source .venv/bin/activate geoserver-mcp

または

source .venv/bin/activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

.\.venv\Scripts\activate geoserver-mcp

または

.\.venv\Scripts\activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug
  1. クライアントを構成する:

Claude Desktopを使用している場合は、 claude_desktop_config.jsonを編集します。Cursorを使用している場合は、 .cursor/mcp.jsonを作成します。

ウィンドウズ:

{ "mcpServers": { "geoserver-mcp": { "command": "C:\\path\\to\\geoserver-mcp\\.venv\\Scripts\\geoserver-mcp", "args": [ "--url", "http://localhost:8080/geoserver", "--user", "admin", "--password", "geoserver" ] } } }

リナックス:

{ "mcpServers": { "geoserver-mcp": { "command": "/path/to/geoserver-mcp/.venv/bin/geoserver-mcp", "args": [ "--url", "http://localhost:8080/geoserver", "--user", "admin", "--password", "geoserver" ] } } }

🛠️ 開発インストール

開発インストールは、コードベースを変更したい貢献者や開発者向けに設計されています。この方法は以下の場合に適しています。

  • プロジェクトに貢献する開発者

  • ソースコードを変更する必要があるユーザー

  • 新機能のテスト

  • デバッグと開発目的

  1. uv パッケージ マネージャーをインストールします。

pip install uv
  1. 仮想環境を作成する (Python 3.10+):

uv venv --python=3.10
  1. pip を使用してパッケージをインストールします。

uv pip install -e .
  1. GeoServer 接続を構成します。

Linux/Mac:

export GEOSERVER_URL="http://localhost:8080/geoserver" export GEOSERVER_USER="admin" export GEOSERVER_PASSWORD="geoserver"

Windows PowerShell:

$env:GEOSERVER_URL="http://localhost:8080/geoserver" $env:GEOSERVER_USER="admin" $env:GEOSERVER_PASSWORD="geoserver"
  1. サーバーを起動します。

Claudeデスクトップを使用する場合は、この手順は不要です。カーソルまたは独自のカスタムクライアントを使用する場合は、次のコードを実行してください。

リナックス:

source .venv/bin/activate geoserver-mcp

または

source .venv/bin/activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug

Windows PowerShell:

.\.venv\Scripts\activate geoserver-mcp

または

.\.venv\Scripts\activate geoserver-mcp --url http://localhost:8080/geoserver --user admin --password geoserver --debug
  1. クライアントを構成する:

Claude Desktopを使用している場合は、 claude_desktop_config.jsonを編集します。Cursorを使用している場合は、 .cursor/mcp.jsonを作成します。

ウィンドウズ:

{ "mcpServers": { "geoserver-mcp": { "command": "C:\\path\\to\\geoserver-mcp\\.venv\\Scripts\\geoserver-mcp", "args": [ "--url", "http://localhost:8080/geoserver", "--user", "admin", "--password", "geoserver" ] } } }

リナックス:

{ "mcpServers": { "geoserver-mcp": { "command": "/path/to/geoserver-mcp/.venv/bin/geoserver-mcp", "args": [ "--url", "http://localhost:8080/geoserver", "--user", "admin", "--password", "geoserver" ] } } }

🛠️ 利用可能なツール

🛠️ ワークスペースとレイヤーの管理

道具

説明

list_workspaces

利用可能なワークスペースを取得する

create_workspace

新しいワークスペースを作成する

get_layer_info

詳細なレイヤーメタデータを取得する

list_layers

ワークスペース内のレイヤーを一覧表示する

create_layer

新しいレイヤーを作成する

delete_resource

リソースを削除する

🛠️ データ操作

道具

説明

query_features

ベクターデータに対してCQLクエリを実行する

update_features

フィーチャ属性を変更する

delete_features

基準に基づいて機能を削除する

🛠️ 視覚化

道具

説明

generate_map

スタイル設定された地図画像を作成する

create_style

新しいSLDスタイルを定義する

apply_style

既存のスタイルをレイヤーに適用する

🛠️ クライアント開発

GeoServer MCPサーバーと連携する独自のクライアントを開発する予定の場合は、 examples/client.pyにあるクライアント実装例を参考にしてください。この例では、以下の点が示されています。

  • MCPサーバーとの接続を確立する方法

  • リクエストの送信方法とレスポンスの処理方法

  • 基本的なエラー処理と接続管理

  • さまざまなツールと操作の使用例

サンプル クライアントは、プロトコルを理解し、独自のクライアント アプリケーションを実装するための良い出発点となります。

また、使用例は次のとおりです。

ワークスペースの一覧

Tool: list_workspaces Parameters: {} Response: ["default", "demo", "topp", "tiger", "sf"]

レイヤー情報を取得する

Tool: get_layer_info Parameters: { "workspace": "topp", "layer": "states" }

クエリ機能

Tool: query_features Parameters: { "workspace": "topp", "layer": "states", "filter": "PERSONS > 10000000", "properties": ["STATE_NAME", "PERSONS"] }

マップを生成

Tool: generate_map Parameters: { "layers": ["topp:states"], "styles": ["population"], "bbox": [-124.73, 24.96, -66.97, 49.37], "width": 800, "height": 600, "format": "png" }

🔮 計画されている機能

  • [ ] カバレッジとラスターデータの管理

  • [ ] セキュリティとアクセス制御

  • [ ] 高度なスタイリング機能

  • [ ] WPS処理操作

  • [ ] GeoWebCache統合

🤝 貢献する

皆様のご寄付をお待ちしております!ご協力いただける方法は以下の通りです。

  1. リポジトリをフォークする

  2. 機能ブランチを作成する ( git checkout -b feature/AmazingFeature )

  3. 変更をコミットします( git commit -m 'Add some AmazingFeature'

  4. ブランチにプッシュする ( git push origin feature/AmazingFeature )

  5. プルリクエストを開く

PRの説明には、問題と解決策を明確に記載してください。該当する場合は、関連する問題番号も含めてください。

📄 ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

🔗 関連プロジェクト

📞 サポート

サポートが必要な場合は、問題を報告してください

🏆 バッジ

Latest Blog Posts

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/mahdin75/geoserver-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server