Fledge MCP Server について
Fledge MCP ServerはFledgeインスタンスをCursor AIに接続し、自然言語でセンサーデータの照会やサービス管理を行うためのサーバーです。フロントエンド生成、リアルタイム購読、API検証のツールも備えています。
主な機能
- 01センサーデータの取得と絞り込み
- 02センサーとプラグインの一覧表示
- 03サービスの開始・停止と設定更新
- 04センサー更新の購読
- 05Reactの可視化コンポーネント生成
- 06API接続の検証とモックデータ生成
活用シーン
- 01Cursor AIでFledgeのセンサー値を照会
- 02サービス状態の確認と設定の調整
- 03センサーデータのReactチャート生成
- 04APIリクエストのテストやモックデータ作成
MCP 対応
Cursor AIなどのクライアントに、Fledgeのデータアクセス、サービス制御、フロントエンド生成、デバッグ用ツールを提供します。標準モードとAPIキー認証モードに対応し、WebSocket経由のJSON-RPC 2.0を実装しています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Fledge MCP サーバー
これは、Fledge の機能を Cursor AI に接続し、自然言語のコマンドを介して AI が Fledge インスタンスとやり取りできるようにする Model Context Protocol(MCP)サーバーです。
前提条件
- Fledge がローカルにインストールされているか、API 経由でアクセスできること(デフォルト:https://localhost:8081)
- Cursor AI がインストールされていること
- Python 3.8 以降
インストール
- このリポジトリをクローンします:
git clone https://github.com/Krupalp525/fledge-mcp.git
cd fledge-mcp
- 依存関係をインストールします:
pip install -r requirements.txt
サーバーの実行
- Fledge が実行中であることを確認します:
fledge start
- MCP サーバーを起動します:
python mcp_server.py
API キー認証を使用して安全に運用する場合:
python secure_mcp_server.py
- ヘルスエンドポイントにアクセスして、正常に動作していることを確認します:
curl http://localhost:8082/health
応答として「Fledge MCP Server is running」が返されます。
Cursor への接続
-
Cursor で、Settings > MCP Servers に移動します
-
新しいサーバーを追加します:
- URL:http://localhost:8082/tools
- Tools ファイル:付属の tools.json をアップロードするか、ローカルパスを指定します
-
セキュアサーバーでは、セキュアサーバーの起動時に生成される api_key.txt ファイル内の値を使って、「X-API-Key」ヘッダーを設定します。
-
テストします:Cursor の Composer(Ctrl+I)を開き、「Check if Fledge API is reachable」と入力すると、AI が
validate_api_connectionツールを呼び出します。
利用可能なツール
データへのアクセスと管理
- get_sensor_data:時間範囲と件数を任意に指定して、Fledge からセンサーデータを取得します
- list_sensors:Fledge で利用可能なすべてのセンサーを一覧表示します
- ingest_test_data:件数を任意に指定して、テストデータを Fledge に取り込みます
サービス制御
- get_service_status:すべての Fledge サービスのステータスを取得します
- start_stop_service:種類を指定して Fledge サービスを開始または停止します
- update_config:Fledge の設定パラメーターを更新します
フロントエンドコードの生成
- generate_ui_component:Fledge のデータ可視化用の React コンポーネントを生成します
- fetch_sample_frontend:さまざまなフレームワークのフロントエンドテンプレートのサンプルを取得します
- suggest_ui_improvements:UI コードを改善するための AI による提案を取得します
リアルタイムデータストリーミング
- subscribe_to_sensor:センサーデータの更新を購読するように設定します
- get_latest_reading:特定のセンサーから最新の測定値を取得します
デバッグと検証
- validate_api_connection:Fledge API に接続できるか確認します
- simulate_frontend_request:さまざまなメソッドとペイロードで API リクエストをテストします
ドキュメントとスキーマ
- get_api_schema:利用可能な Fledge API エンドポイントの情報を取得します
- list_plugins:利用可能な Fledge プラグインを一覧表示します
高度な AI 支援機能
- generate_mock_data:テスト用に現実的なモックセンサーデータを生成します
API のテスト
付属のテストスクリプトを使ってサーバーをテストできます:
# For standard server
python test_mcp.py
# For secure server with API key
python test_secure_mcp.py
セキュリティオプション
セキュアサーバー(secure_mcp_server.py)では、API キー認証が追加されます:
- 初回実行時に、api_key.txt に保存される API キーが生成されます
- すべてのリクエストに、このキーを含む X-API-Key ヘッダーが必要です
- ヘルスチェックエンドポイントは、認証なしで引き続きアクセスできます
API リクエストの例
# Validate API connection
curl -X POST -H "Content-Type: application/json" -d '{"name": "validate_api_connection"}' http://localhost:8082/tools
# Generate mock data
curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_mock_data", "parameters": {"sensor_id": "temp1", "count": 5}}' http://localhost:8082/tools
# Generate React chart component
curl -X POST -H "Content-Type: application/json" -d '{"name": "generate_ui_component", "parameters": {"component_type": "chart", "sensor_id": "temp1"}}' http://localhost:8082/tools
# For secure server, add API key header
curl -X POST -H "Content-Type: application/json" -H "X-API-Key: YOUR_API_KEY" -d '{"name": "list_sensors"}' http://localhost:8082/tools
サーバーの拡張
ツールを追加するには:
tools.jsonにツール定義を追加しますmcp_server.pyとsecure_mcp_server.pyにツールハンドラーを実装します
本番環境での考慮事項
本番環境にデプロイする場合:
- HTTPS を使用します
- Nginx などのリバースプロキシの背後にデプロイします
- より堅牢な認証(JWT、OAuth)を実装します
- レート制限を追加します
- 購読用の永続データストレージを設定します
Smithery.ai へのデプロイ
Fledge MCP Server は、スケーラビリティと可用性を高めるために Smithery.ai にデプロイできます。デプロイするには、次の手順に従ってください。
-
前提条件
- ローカルマシンに Docker がインストールされていること
- Smithery.ai アカウント
- Smithery CLI ツールがインストールされていること
-
ビルドとデプロイ
# Build the Docker image docker build -t fledge-mcp . # Deploy to Smithery.ai smithery deploy -
設定
smithery.jsonファイルには、デプロイの設定が含まれています。- ポート 8082 での WebSocket トランスポート
- 設定可能な Fledge API URL
- ツールの定義とパラメーター
- タイムアウト設定
-
環境変数 Smithery.ai ダッシュボードで、次の環境変数を設定してください。
FLEDGE_API_URL:Fledge API エンドポイントAPI_KEY:安全な API キー(セキュアモードを使用する場合)
-
検証 デプロイ後、サーバーが稼働していることを確認してください。
smithery status fledge-mcp -
監視 Smithery.ai ダッシュボードでデプロイを監視します。
- リアルタイムログ
- パフォーマンス指標
- エラー追跡
- リソース使用量
-
更新 デプロイを更新するには、次の手順に従ってください。
# Build new image docker build -t fledge-mcp . # Deploy updates smithery deploy --update
JSON-RPC プロトコルのサポート
サーバーは WebSocket 上の JSON-RPC 2.0 を使用して、Model Context Protocol(MCP)を実装しています。次のメソッドをサポートしています。
-
initialize
{ "jsonrpc": "2.0", "method": "initialize", "params": {}, "id": "1" }応答:
{ "jsonrpc": "2.0", "result": { "serverInfo": { "name": "fledge-mcp", "version": "1.0.0", "description": "Fledge Model Context Protocol (MCP) Server", "vendor": "Fledge", "capabilities": { "tools": true, "streaming": true, "authentication": "api_key" } }, "configSchema": { "type": "object", "properties": { "fledge_api_url": { "type": "string", "description": "Fledge API URL", "default": "http://localhost:8081/fledge" } } } }, "id": "1" } -
tools/list
{ "jsonrpc": "2.0", "method": "tools/list", "params": {}, "id": "2" }応答:利用可能なツールとそのパラメーターの一覧を返します。
-
tools/call
{ "jsonrpc": "2.0", "method": "tools/call", "params": { "name": "get_sensor_data", "parameters": { "sensor_id": "temp1", "limit": 10 } }, "id": "3" }
エラーコード
サーバーは標準的な JSON-RPC 2.0 エラーコードに準拠しています。
- -32700:解析エラー
- -32600:無効なリクエスト
- -32601:メソッドが見つかりません
- -32602:パラメーターが無効です
- -32000:サーバーエラー
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。