Skip to main content
Glama

GeoServer MCP Server

MIT License
33
  • Linux
  • Apple

GeoServer MCP サーバー

アルファ

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

🎥 デモ

📋 目次

🚀 機能

  • 🔍 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ファイルを参照してください。

🔗 関連プロジェクト

📞 サポート

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

🏆 バッジ

Related MCP Servers

  • -
    security
    A
    license
    -
    quality
    A server that enables Large Language Models to discover and interact with REST APIs defined by OpenAPI specifications through the Model Context Protocol.
    Last updated -
    1,641
    136
    TypeScript
    MIT License
    • Apple
  • A
    security
    A
    license
    A
    quality
    A Model Context Protocol server that provides Google Maps API integration, allowing users to search locations, get place details, geocode addresses, calculate distances, obtain directions, and retrieve elevation data through LLM processing capabilities.
    Last updated -
    7
    983
    63
    TypeScript
    MIT License
  • A
    security
    F
    license
    A
    quality
    A Model Context Protocol server that enables large language models to interact with Apache Superset databases through REST API, supporting database queries, table lookups, field information retrieval, and SQL execution.
    Last updated -
    4
    4
    TypeScript
  • A
    security
    A
    license
    A
    quality
    A customizable Model Context Protocol server implementation that enables AI models to interact with external tools including weather queries, Google search, and camera control functionality.
    Last updated -
    1
    13
    Python
    Apache 2.0
    • Linux
    • Apple

View all related MCP servers

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