MCP电动汽车辅助服务器
一个功能强大的服务器实现,用于管理电动汽车(EV)充电站、行程规划和资源管理。该服务器为电动汽车相关服务提供了一套全面的工具和API。
目录
特性
1.电动汽车充电站服务
- 充电站定位器:根据位置和偏好查找附近的电动汽车充电站
- 套接字类型过滤:搜索特定的充电插座类型(CCS、CHAdeMO、Type 2等)
- 基于距离的搜索:指定查找充电站的搜索半径
2.行程规划
- 路线规划:规划不同地点之间的电动汽车友好路线
- 充电停止集成:自动包括必要的充电停止
- 范围考虑:考虑到车辆续航里程和当前充电水平
3.资源管理
- PDF文档管理:处理电动汽车相关的PDF文档(用户指南、手册等)
- 资源订阅:支持实时更新的资源订阅
- 自动文本提取:使用回退机制提取PDF文本
4.互动提示
- 充电站搜索:查找充电站的交互式提示
- 充电时间估算:根据各种参数计算充电时间
- 路线规划协助:考虑收费的交互式路线规划
安装
1.克隆存储库
git clone https://github.com/Abiorh001/mcp_ev_assistant_server.git
cd mcp_ev_assistant_server2.设置虚拟环境(推荐)
python -m venv .venv
source .venv/bin/activate # On Linux/Mac
# or
.venv\\Scripts\\activate # On Windows3.安装依赖项
uv sync配置
1.环境变量
创建一个 .env 项目根目录中的文件,包含以下变量:
OPENCHARGE_MAP_API_KEY=your_opencharge_map_api_key
GOOGLE_MAP_API_KEY=your_google_map_api_key2.服务器配置
创建或更新 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
- 目的:查找附近的电动汽车充电站 - 参数: - address:要搜索的位置(字符串,必填) - max_distance:搜索半径,单位为公里(整数,必填) - socket_type:充电插座类型(串,必填)
- ev_trip_planner
- 目的:规划电动汽车友好路线 - 参数: - user_address:起始位置(字符串,必填) - user_destination_address:目标位置(字符串,必填) - socket_type:首选充电插座类型(字符串,必填)
鼓励
- 查找充电站
- 必修的: - location:搜索位置 - 可选: - radius:搜索半径(单位:km) - socket_type:充电插座类型
- 充电时间估算
- 必修的: - vehicle_model:电动汽车品牌和型号 - current_charge:当前电池百分比 - target_charge:所需电池百分比 - charger_power:充电站功率(kW)
- 路线规划师
- 必修的: - start_location:起点 - end_location:目的地 - vehicle_range:车辆的满充电范围 - 可选: - current_charge:当前电池百分比
资源管理
PDF资源处理
- 自动发现PDF文件
/Data目录 - 支持使用多种回退方法进行文本提取
- 处理更新的资源订阅
订阅系统
# 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许可证获得许可-请参阅 许可证 文件以获取详细信息。

