MCP EV Assistant Server について
電気自動車での移動を支援するMCPサーバーです。充電ステーション検索、ルート計画、文書リソース管理を備え、充電を考慮した移動計画やEV関連PDFの利用に向いています。
主な機能
- 01場所・距離・コネクター種別で充電ステーションを検索
- 02充電スポットを含むEVルートの計画
- 03航続距離と現在の充電量を考慮した経路計画
- 04PDFの管理とテキスト抽出
- 05充電時間推定とルート計画のプロンプト
活用シーン
- 01距離とコネクター種別を指定して充電スポットを検索
- 02航続距離と充電停車を考慮した移動計画
- 03EVのマニュアルやガイドの内容を参照
- 04現在量から目標量までの充電時間を推定
MCP 対応
充電ステーション検索とルート計画のツール、対話型プロンプト、購読可能なPDFリソースをMCPクライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP EV アシスタントサーバー
電気自動車(EV)の充電ステーション、旅行計画、リソース管理を行う強力なサーバー実装です。このサーバーは、EV 関連サービス向けの包括的なツールと API を提供します。
目次
機能
1. EV 充電ステーションサービス
- 充電ステーションの検索:場所と希望条件に基づいて、近くの EV 充電ステーションを検索します
- ソケットタイプによる絞り込み:特定の充電ソケットタイプ(CCS、CHAdeMO、Type 2 など)を検索します
- 距離による検索:充電ステーションを検索する範囲を指定します
2. 旅行計画
- ルート計画:EV に適した場所間のルートを計画します
- 充電停止地点の組み込み:必要な充電停止地点を自動的に組み込みます
- 航続距離の考慮:車両の航続距離と現在の充電レベルを考慮します
3. リソース管理
- PDF ドキュメント管理:EV 関連の PDF ドキュメント(ユーザーガイド、マニュアルなど)を処理します
- リソースの購読:リアルタイム更新のためのリソース購読をサポートします
- 自動テキスト抽出:フォールバック機能を備えた PDF テキスト抽出を行います
4. インタラクティブなプロンプト
- 充電ステーション検索:充電ステーションを検索するためのインタラクティブなプロンプト
- 充電時間の見積もり:さまざまなパラメーターに基づいて充電時間を計算します
- ルート計画の支援:充電を考慮したインタラクティブなルート計画
インストール
1. リポジトリをクローンする
git clone https://github.com/Abiorh001/mcp_ev_assistant_server.git
cd mcp_ev_assistant_server
2. 仮想環境を設定する(推奨)
python -m venv .venv
source .venv/bin/activate # On Linux/Mac
# or
.venv\\Scripts\\activate # On Windows
3. 依存関係をインストールする
uv sync
設定
1. 環境変数
プロジェクトのルートに .env ファイルを作成し、次の変数を設定します:
OPENCHARGE_MAP_API_KEY=your_opencharge_map_api_key
GOOGLE_MAP_API_KEY=your_google_map_api_key
2. サーバー設定
servers_config.json を作成または更新します:
{
"mcpServers": {
"ev_assistant": {
"command": "/home/$USER/path/mcp_learning/.venv/bin/python",
"args": ["/home/$USER/path/mcp_ev_assistant_server/ev_assistant_server.py"],
"env": {
"OPENCHARGE_MAP_API_KEY": "your_opencharge_map_api_key",
"GOOGLE_MAP_API_KEY": "your_google_map_api_key"
}
}
}
}
3. ディレクトリ構造
mcp_ev_assistant_server/
├── ev_assistant_server.py
├── .env
├── servers_config.json
├── Data/ # PDF resources directory
├── agentTools/ # Tool implementations
│ ├── charge_station_locator.py
│ └── ev_trip_planner.py
└── core/ # Core functionality
├── schemas.py
└── logger.py
使用方法
サーバーの起動
# Method 1: Direct Python execution
python ev_assistant_server.py
API の例
- 充電ステーションを検索する:
result = await client.call_tool("charge_points_locator", {
"address": "London, UK",
"max_distance": 10,
"socket_type": "CCS"
})
- 旅行を計画する:
result = await client.call_tool("ev_trip_planner", {
"user_address": "Manchester, UK",
"user_destination_address": "Liverpool, UK",
"socket_type": "Type 2"
})
API リファレンス
ツール
-
charge_points_locator
- 目的:場所の近くにある EV 充電ステーションを検索します
- パラメーター:
address:検索する場所(文字列、必須)max_distance:検索半径(キロメートル、整数、必須)socket_type:充電ソケットのタイプ(文字列、必須)
-
ev_trip_planner
- 目的:EV に適したルートを計画します
- パラメーター:
user_address:出発地(文字列、必須)user_destination_address:目的地(文字列、必須)socket_type:希望する充電ソケットのタイプ(文字列、必須)
プロンプト
-
find-charging-stations
- 必須:
location:検索する場所
- 任意:
radius:検索半径(km)socket_type:充電ソケットのタイプ
- 必須:
-
charging-time-estimate
- 必須:
vehicle_model:EV のメーカーとモデルcurrent_charge:現在のバッテリー残量(パーセント)target_charge:目標とするバッテリー残量(パーセント)charger_power:充電ステーションの出力(kW)
- 必須:
-
route-planner
- 必須:
start_location:出発地end_location:目的地vehicle_range:満充電時の車両の航続距離
- 任意:
current_charge:現在のバッテリー残量(パーセント)
- 必須:
リソース管理
PDF リソースの処理
/Dataディレクトリ内の PDF ファイルを自動的に検出します- 複数のフォールバック方式によるテキスト抽出をサポートします
- 更新のためのリソース購読を処理します
購読システム
# Subscribe to a resource
await client.subscribe_resource("file:///pdf/ev_manual")
# Unsubscribe from a resource
await client.unsubscribe_resource("file:///pdf/ev_manual")
エラー処理
- 包括的なエラーログ記録
- PDF 処理のフォールバック機能
- Pydantic スキーマを使用した入力検証
- リソースが見つからない場合の適切な処理
開発
新しいツールの追加
core.schemasでツールのスキーマを定義しますagentToolsでツール関数を実装しますhandle_list_tools()にツールを追加しますhandle_call_tool()でツールの処理を実装します
新しいプロンプトの追加
PROMPTSでプロンプトの構造を定義しますhandle_get_prompt()で検証を実装します- 必要なスキーマ検証を追加します
コントリビューション
- リポジトリをフォークします
- フィーチャーブランチを作成します(
git checkout -b feature/AmazingFeature) - 変更をコミットします(
git commit -m 'Add some AmazingFeature') - ブランチにプッシュします(
git push origin feature/AmazingFeature) - プルリクエストを作成します
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。