FIWARE MCP Server について
FIWARE MCP Serverは、MCPクライアントとFIWARE Context Brokerを接続します。バージョン確認、データ検索、エンティティの公開や更新を行うツールを提供します。
主な機能
- 01Context Brokerのバージョン確認
- 02Context Brokerへのクエリ
- 03エンティティの公開・更新
- 04STDIOとHTTPモード
活用シーン
- 01ブローカーのバージョン確認とデータ検索
- 02Context Brokerのエンティティ公開・更新
MCP 対応
MCPサーバーは、Context Brokerのバージョン確認、クエリ、エンティティの公開・更新をツールとして提供します。標準のSTDIOに加え、HTTPモードにも対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
FIWARE MCP Server
これは、Context Broker と他のサービスをつなぐブリッジを提供する、FIWARE Model Context Protocol(MCP)サーバーの初期実装です。このサーバーでは、FIWARE Context Broker と連携するための基本的な操作を実装しています。
目的
- FIWARE 向けの基本的な MCP サーバー実装を作成する
- Context Broker と連携するためのシンプルなツールを提供する
- Context Broker に対する基本的なインテントの CRUD 操作を実演する
- より複雑な MCP 実装の基盤として機能する
機能
- Context Broker のバージョン確認
- Context Broker のクエリ機能
- エンティティの公開と更新
前提条件
- Python 3.7 以降
- pip(Python パッケージインストーラー)
- FIWARE Context Broker インスタンスへのアクセス
インストール
- このリポジトリをクローンします。
git clone <repository-url>
cd FIWARE_MCP_01
- 必要な依存関係をインストールします。
pip install -r requirements.txt
Claude Desktop との連携
Claude Desktop からは STDIO 経由でサーバーを起動してください。このサーバーでは「mcp install」や「mcp run」を使用しないでください。
設定例(ご利用の環境に合わせてパスを調整してください)。
{
"mcpServers": {
"CB-assistant": {
"command": "uv",
"args": [
"run",
"--with",
"requests>=2.31.0",
"--with",
"fastmcp>=0.3.0",
"python",
"PATH\\TO\\FIWARE-MCP-Server\\server.py"
]
}
}
}
依存関係を pip でインストールする場合の代替設定:
{
"mcpServers": {
"CB-assistant": {
"command": "python",
"args": [
"PATH\\TO\\FIWARE-MCP-Server\\server.py"
]
}
}
}
使用方法
デフォルトでは、スクリプトを実行するとサーバーが STDIO モードで起動します。HTTP サーバーを起動するには、--http を使用します。
- STDIO(デフォルト):
python server.py
- HTTP モード:
python server.py --http
- HTTP ホスト/ポート(任意):
python server.py --http --host 127.0.0.1 --port 5001
--http を指定して実行すると、サーバーは指定されたホスト/ポートにバインドし、ストリーミング可能な HTTP クライアントとの互換性を確保するためにステートレスな HTTP セッションを使用します。
ngrok を使ったリダイレクト(HTTP モード)
外部 API(OpenAI Responses API など)経由で LLM を使用するには、ローカルの MCP サーバーをインターネットに公開する必要がある場合があります。HTTP モードで実行中のサーバーに公開 HTTPS トンネルを作成するには、ngrok を使用します。
- https://ngrok.com でアカウントを作成し、ご使用の OS 用の ngrok クライアントをインストールします。
- ngrok の認証トークンをクライアントに追加します(OS ごとの ngrok のセットアップ手順に従ってください)。例:
- ngrok(v3)の設定コマンド:ngrok config add-authtoken <YOUR_AUTH_TOKEN>
- MCP サーバーを HTTP モードで起動します(まだ起動していない場合)。例:
- python server.py --http --host 127.0.0.1 --port 5001
- HTTP サーバーに転送する ngrok トンネルを起動します。
- ngrok http http://127.0.0.1:5001 (ホスト/ポートの設定を変更した場合は、それに合わせて変更してください)
- ngrok が起動すると、1 つ以上の公開転送 URL が表示されます。MCP エンドポイントには次の URL でアクセスできます。
- {PUBLIC_URL}/mcp
注:認証トークンは安全に管理してください。公開 URL は ngrok の実行中に有効で、トンネルを停止するとアクセスできなくなります。
利用可能なツール
-
CB_version
- Context Broker のバージョンを確認します
- デフォルトパラメーター:address="localhost", port=1026
- 戻り値:バージョン情報を含む JSON 文字列
-
query_CB
- Context Broker にクエリを送信します
- パラメーター:
- address(デフォルト:"localhost")
- port(デフォルト:1026)
- query(デフォルト:"")
- 戻り値:クエリ結果を含む JSON 文字列
-
publish_to_CB
- Context Broker のエンティティを公開または更新します
- パラメーター:
- address(デフォルト:"localhost")
- port(デフォルト:1026)
- entity_data(必須:エンティティ情報を含む辞書)
- 戻り値:操作ステータスを含む JSON 文字列
使用例
# Example entity data
entity_data = {
"id": "urn:ngsi-ld:TemperatureSensor:001",
"type": "TemperatureSensor",
"temperature": {
"type": "Property",
"value": 25.5
},
"@context": "https://uri.etsi.org/ngsi-ld/v1/ngsi-ld-core-context.jsonld"
}
# Publish to Context Broker
result = publish_to_CB(entity_data=entity_data)
設定
server.py の次のパラメーターを変更して、サーバーを設定できます。
- ホストアドレス(HTTP モードのみ)
- ポート番号(HTTP モードのみ)
- タイムアウト設定
エラー処理
サーバーには、次の問題に対する包括的なエラー処理が含まれています。
- ネットワーク接続の問題
- Context Broker からの無効なレスポンス
- 不正な形式のエンティティデータ
- サーバーのシャットダウン
コントリビューション
問題の報告や機能改善のリクエストをぜひお寄せください。
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。