内容
# 特斯拉数据整合服务器 + 车队 API MCP 服务器
[](https://glama.ai/mcp/servers/lodordev/mcp-teslamate-fleet)
这是一个 MCP 服务器,结合了 **特斯拉数据记录器(TeslaMate)** 的历史分析和 **车队 API(Fleet API)** 的实时数据和命令。可与 Claude Code、Claude Desktop、Cursor 以及任何兼容 MCP 的客户端配合使用。
首个将这两个数据源结合起来的 MCP 服务器 — 使用 TeslaMate 进行深入分析,使用 Fleet API 进行实时控制,或配置其中之一。
## 功能特点
**29种工具**,分为四个类别:
| 类别 | 工具 | 后端 |
| --- | --- | --- |
| **状态与历史** | `tesla_status`, `tesla_drives`, `tesla_charging_history`, `tesla_battery_health`, `tesla_efficiency`, `tesla_location_history`, `tesla_state_history`, `tesla_software_updates` | TeslaMate |
| **分析** | `tesla_savings`, `tesla_trip_cost`, `tesla_efficiency_by_temp`, `tesla_charging_by_location`, `tesla_top_destinations`, `tesla_longest_trips`, `tesla_monthly_summary`, `tesla_vampire_drain` | TeslaMate |
| **实时数据** | `tesla_live` | Fleet API |
| **命令** | `tesla_climate_on/off`, `tesla_set_temp`, `tesla_charge_start/stop`, `tesla_set_charge_limit`, `tesla_lock`, `tesla_unlock`, `tesla_honk`, `tesla_flash`, `tesla_trunk`, `tesla_sentry` | Fleet API |
**安全性:** `unlock` 和 `trunk` 命令需要 `confirm=True`。所有命令的速率限制为每天 40 次。
## 快速开始
### Claude Code (`.mcp.json`)
```json
{
"mcpServers": {
"tesla": {
"command": "uvx",
"args": ["--from", "git+https://github.com/lodordev/mcp-teslamate-fleet", "mcp-teslamate-fleet"],
"env": {
"TESLAMATE_DB_HOST": "localhost",
"TESLAMATE_DB_PASS": "your_password",
"TESLA_VIN": "your_vin",
"TESLA_TOKEN_FILE": "/path/to/tokens.json",
"TESLA_CLIENT_ID": "your_client_id",
"TESLA_CLIENT_SECRET": "your_client_secret",
"TESLA_PROXY_URL": "https://localhost:4443",
"TESLA_VERIFY_SSL": "false"
}
}
}
}
```
### Claude Desktop (`claude_desktop_config.json`)
与上述结构相同 — 在 `mcpServers` 下添加。
### 本地安装
```bash
git clone https://github.com/lodordev/mcp-teslamate-fleet
cd tesla-mcp
pip install -e .
```
## 前提条件
您需要 **至少一个** 已配置的后端。两者皆可。
### 特斯拉数据记录器(TeslaMate)(分析 + 历史)
[TeslaMate](https://github.com/teslamate-org/teslamate) 是一个开源的特斯拉数据记录器。它将驾驶、充电和车辆状态记录到 Postgres 数据库中。
如果您已经运行 TeslaMate,则只需数据库连接详细信息。如果没有,请参阅 [TeslaMate 安装指南](https://docs.teslamate.org/docs/installation/docker)。
### 车队 API(Fleet API)(实时数据 + 命令)
特斯拉的车队 API 提供实时车辆数据和远程命令。设置需要:
1. 在 [developer.tesla.com](https://developer.tesla.com) **注册应用程序**
2. **生成 OAuth 令牌** — 使用特斯拉的 [令牌生成流程](https://developer.tesla.com/docs/fleet-api/getting-started/what-is-fleet-api)
3. **设置 HTTP 代理** — 命令必须使用 [特斯拉车辆命令协议](https://github.com/teslamotors/vehicle-command) 签名。从该存储库部署 `tesla-http-proxy`
代理仅适用于命令(例如 `tesla_climate_on`、`tesla_lock`)。`tesla_live` 仅需令牌即可工作。
特斯拉为车队 API 提供 **10 美元/月免费信用额度**,这足以满足个人 MCP 使用需求。
## 配置
所有配置均通过环境变量进行。
### 特斯拉数据记录器数据库
| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `TESLAMATE_DB_HOST` | *(必填)* | Postgres 主机 |
| `TESLAMATE_DB_PORT` | `5432` | Postgres 端口 |
| `TESLAMATE_DB_USER` | `teslamate` | Postgres 用户 |
| `TESLAMATE_DB_PASS` | *(必填)* | Postgres 密码 |
| `TESLAMATE_DB_NAME` | `teslamate` | 数据库名称 |
### 车队 API
| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `TESLA_VIN` | *(必填)* | 车辆 VIN |
| `TESLA_TOKEN_FILE` | *(必填)* | 包含 OAuth 令牌的 `tokens.json` 文件路径 |
| `TESLA_CLIENT_ID` | | 车队 API 客户端 ID(用于令牌刷新) |
| `TESLA_CLIENT_SECRET` | | 车队 API 客户端密钥(用于令牌刷新) |
| `TESLA_PROXY_URL` | | 命令的 HTTP 代理 URL |
| `TESLA_FLEET_URL` | 北美地区 | 车队 API 端点([区域选项](https://developer.tesla.com/docs/fleet-api/getting-started/base-urls)) |
| `TESLA_VERIFY_SSL` | `true` | 自签名代理证书时设置为 `false` |
### 车辆配置
| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `TESLA_CAR_ID` | `1` | 特斯拉数据记录器车 ID(适用于多车实例) |
| `TESLA_BATTERY_KWH` | `75` | 可用电池容量(千瓦时) |
| `TESLA_BATTERY_RANGE_KM` | `525` | 100% 时的 EPA 续航里程(公里) |
能量消耗根据这些值估算:
| 车辆 | 电池(千瓦时) | 续航里程(公里) |
| --- | --- | --- |
| Model 3 标准版 | 54 | 350 |
| Model 3 长续航版 | 75 | 500 |
| Model Y 长续航版 | 75 | 525 |
| Model S 长续航版 | 100 | 650 |
| Model X 长续航版 | 100 | 560 |
### 成本默认值
这些是默认值 — `tesla_savings` 和 `tesla_trip_cost` 接受每次调用的覆盖。
| 变量 | 默认值 | 描述 |
| --- | --- | --- |
| `TESLA_ELECTRICITY_RATE` | `0.12` | 电费(美元/千瓦时) |
| `TESLA_GAS_PRICE` | `3.50` | 油价(美元/加仑)(用于比较) |
| `TESLA_GAS_MPG` | `28` | 可比较的燃油车辆 MPG |
## 架构
单文件 Python 服务器(约 1400 行),使用 [FastMCP](https://github.com/jlowin/fastmcp)。两条数据路径:
```
┌─────────────┐ ┌──────────────┐
│ 特斯拉数据记录器 │────▶│ Postgres │──┐
│ (记录器) │ │ (遥测) │ │
└─────────────┘ └──────────────┘ │ ┌───────────┐ ┌────────────┐
├──▶│ tesla.py │────▶│ MCP 客户端 │
┌─────────────┐ ┌──────────────┐ │ │ (服务器) │ │ (Claude、 │
│ 特斯拉 │────▶│ HTTP 代理 │──┘ └───────────┘ │ Cursor) │
│ 车队 API │ │ (命令) │ └────────────┘
└─────────────┘ └──────────────┘
```
## 限制
- **单车辆** — 查询使用可配置的 `car_id`,但工具不接受它作为参数。多车用户应运行单独的服务器实例。
- **英制单位** — 输出为英里、°F 和 PSI。计划支持公制单位。
- **估计千瓦时** — 特斯拉数据记录器的 `drives` 表不包含直接消耗的能量。我们根据您配置的电池容量估算理想续航里程。准确率约为 90-95%。
## 鸣谢
灵感来自 [cobanov/teslamate-mcp](https://github.com/cobanov/teslamate-mcp)。使用 [FastMCP](https://github.com/jlowin/fastmcp) 和 [TeslaMate](https://github.com/teslamate-org/teslamate) 构建。
## 许可证
MIT