,
- ,
- 等。外部链接需要添加nofollow,但可能原始内容中没有明显的外部链接,所以可能不需要处理,但用户可能希望所有a标签都加上,即使内部链接?或者可能用户希望外部链接添加,但如果没有,可能忽略。这里可能需要假设用户指的外部链接,但如果没有的话,可以暂时不添加,或者可能用户希望所有链接都添加nofollow,即使内部,所以需要检查。
现在开始编写HTML代码:
首先,结构大致如下:
What is...
...
How to use...
- ...
MCP EV Assistant Server: The go-to backbone for EV charging stations, trip planning, and resource mastery. Robust APIs, seamless orchestration—designed for pros who refuse to compromise.
This tool saved users approximately 5832 hours last month!
,
...
A powerful server implementation for managing Electric Vehicle (EV) charging stations, trip planning, and resource management. This server provides a comprehensive set of tools and APIs for EV-related services.
git clone https://github.com/Abiorh001/mcp_ev_assistant_server.git
cd mcp_ev_assistant_server
python -m venv .venv
source .venv/bin/activate # On Linux/Mac
# or
.venv\\Scripts\\activate # On Windows
python -m pip install langchain-community
python -m pip install python-dotenv
python -m pip install PyPDF2
python -m pip install PyMuPDF # Optional: for PDF fallback processing
Create a .env
file in your project root with the following variables:
OPENCHARGE_MAP_API_KEY=your_opencharge_map_api_key
GOOGLE_MAP_API_KEY=your_google_map_api_key
Create or update 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"
}
}
}
}
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
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"
})
* Purpose: Find EV charging stations near a location
* Parameters:
* `address`: Location to search around (string, required)
* `max_distance`: Search radius in kilometers (integer, required)
* `socket_type`: Type of charging socket (string, required)
* Purpose: Plan an EV-friendly route
* Parameters:
* `user_address`: Starting location (string, required)
* `user_destination_address`: Destination location (string, required)
* `socket_type`: Preferred charging socket type (string, required)
* Required:
* `location`: Search location
* Optional:
* `radius`: Search radius in km
* `socket_type`: Charging socket type
* Required:
* `vehicle_model`: EV make and model
* `current_charge`: Current battery percentage
* `target_charge`: Desired battery percentage
* `charger_power`: Charging station power in kW
* Required:
* `start_location`: Starting point
* `end_location`: Destination
* `vehicle_range`: Vehicle's full charge range
* Optional:
* `current_charge`: Current battery percentage
/Data
directory# Subscribe to a resource
await client.subscribe_resource("file:///pdf/ev_manual")
# Unsubscribe from a resource
await client.unsubscribe_resource("file:///pdf/ev_manual")
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
)This project is licensed under the MIT License - see the LICENSE file for details.