Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
# 复制为 .env,执行 chmod 600 .env,再编辑并导入当前终端;服务不会自动加载该文件。
# 所有占位值需替换。含特殊字符的值请用合适的 shell 引号包裹。
# 中国区使用 cn;应用和账号必须与区域匹配。
TESLA_REGION=cn
# 中国区开发者应用标识与密钥,不是 Tesla 账号密码。
TESLA_CLIENT_ID=replace-with-cn-application-id
TESLA_CLIENT_SECRET=replace-with-cn-application-secret
# 已在开发者应用注册的 HTTPS 回调地址。
TESLA_REDIRECT_URI=https://your-registered-domain.example/tesla/callback
# 允许访问的车辆 VIN(大写 17 位),多辆车使用英文逗号分隔,不支持通配符。
TESLA_ALLOWED_VINS=REPLACE_WITH_YOUR_17_CHARACTER_VIN
# 私密状态目录:login、serve、approve 必须使用同一个绝对路径;目录权限 0700。
TESLA_STATE_DIR=/absolute/private/path/tesla-mcp-state
# 默认只允许列表和不含位置的状态查询;需要其他能力时再按文档添加配置名。
TESLA_TOOLS=list_vehicles,get_vehicle_state
# 写操作总开关:默认 false;只有精确的小写 true 才启用,启用后仍需人工确认。
TESLA_ENABLE_COMMANDS=false
# 多途经点实验开关:有效载荷和中国区实车效果尚未验证,默认关闭。
TESLA_ENABLE_WAYPOINTS=false
# 已注册的 P-256 签名私钥,文件权限 0600;签名导航需要此配置。
# TESLA_PRIVATE_KEY=/absolute/private/path/private-key.pem
# 本机 HTTP MCP 端口,地址默认为 http://127.0.0.1:8000/mcp。
MCP_PORT=8000
# 独立生成至少 32 位 ASCII 无空白随机密钥;不能填写 Tesla 令牌;HTTP 启动时不能为空。
MCP_BEARER_TOKEN=
10 changes: 5 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,11 @@ jobs:
with:
enable-cache: true
- name: Install dependencies
run: uv sync --locked
run: uv sync --locked --extra mcp
- name: Ruff
run: uv run ruff check tesla_fleet_api tests
run: uv run --extra mcp ruff check tesla_fleet_api mcp_server tests
- name: Pyright
run: uv run pyright tesla_fleet_api
run: uv run --extra mcp pyright tesla_fleet_api mcp_server

test:
name: Test (Python ${{ matrix.python-version }})
Expand All @@ -38,9 +38,9 @@ jobs:
- name: Set up Python ${{ matrix.python-version }}
run: uv python install ${{ matrix.python-version }}
- name: Install dependencies
run: uv sync --locked --python ${{ matrix.python-version }}
run: uv sync --locked --extra mcp --python ${{ matrix.python-version }}
- name: Pytest
run: uv run pytest tests -q
run: uv run --extra mcp pytest tests -q

build:
name: Build distribution
Expand Down
8 changes: 8 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,11 @@ opensource.py
*.pem
.DS_Store
build

# Local CN MCP credentials, confirmations, and environments
.tesla-mcp/
.env
.env.*
!.env.example
.venv/
dist/
50 changes: 50 additions & 0 deletions DISCLAIMER.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# 来源、用途与风险声明

## 项目来源与致谢

- 上游项目:[Teslemetry/python-tesla-fleet-api](https://github.com/Teslemetry/python-tesla-fleet-api)。
- 上游作者:Brett Adams(依据上游项目的作者元数据)。
- 中国区二次开发分支:[Ronnie2026/python-tesla-fleet-api-cn](https://github.com/Ronnie2026/python-tesla-fleet-api-cn)。

本项目基于上游分支开展二次开发与中国区适配,复用原有 `tesla_fleet_api` SDK,新增独立
MCP Server、授权管理、安全控制、测试与说明文档。感谢原作者、Teslemetry 团队及所有贡献者
提供的基础实现和维护工作。本分支不主张上游代码的原创权,不替代原作者署名或版权声明,
也不代表原作者、Teslemetry 或 Tesla 官方的认可、合作关系、背书或技术支持承诺。

## 个人学习与研究用途

本分支仅作为个人技术学习、研究与接口适配实验项目提供,不承诺生产或商用适用性。
离线测试、模拟接口响应和本地 MCP 连接测试不等于中国区真实账号授权、实车兼容性或车辆安全验证。
尤其是多途经点导航的有效载荷和车型/固件兼容性,仍需实车核验。
请在合法授权、了解接口影响且能够自行控制风险的前提下开展研究。

## 开源许可与商业使用

原项目采用 Apache License 2.0,本仓库保留原始 [LICENSE](LICENSE)、作者署名与相关版权声明。
本说明不替代、缩减或撤销已有开源许可授予的权利,也不将原项目的开源许可改写为禁止商用许可。

商业使用应遵守 Apache-2.0、Tesla API/开发者服务条款以及实际使用服务所适用的商业协议、
授权范围和收费规则。本仓库不授予 Tesla 账号、API、商标或第三方服务的额外权利。
如需商业服务、技术支持、定制合作或另行授权,请联系原作者或上游维护方,具体条件由相关权利方确认。
本项目没有核实或承诺原作者存在额外商业授权要求,也不代其报价、签约或作出授权承诺。

- 上游项目与维护入口:[GitHub](https://github.com/Teslemetry/python-tesla-fleet-api)。
- 上游公开联系邮箱:[hello@teslemetry.com](mailto:hello@teslemetry.com)(来自项目作者元数据)。

## 风险与免责声明

本项目按现状提供,不作任何明示或默示担保,包括可用性、准确性、适销性、特定用途适用性、
持续维护及兼容性等方面的担保。车辆接口、授权规则、地区政策和固件行为可能变化;
程序成功返回或接口确认接收不代表车辆已正确完成相应动作。

使用者应自行评估并承担使用、修改、部署、分发或依赖本项目的风险,包括但不限于:

- 账号异常、授权失效、访问令牌或私钥泄露。
- 车辆位置、行程与其他个人信息泄露。
- 非预期车辆操作、重复指令、车辆无法响应及相应人身或财产风险。
- 第三方接口调用费用、服务中断、数据丢失及商业损失。
- 未遵守服务条款、适用商业协议或相关法律要求所产生的后果。

在适用法律允许的范围内,原作者、上游贡献者及本分支维护者对使用或无法使用本项目产生的
直接、间接、附带、特殊或后果性损失不承担责任;依法不能排除或限制的责任除外。
请勿将本项目作为安全关键系统、无人值守车辆控制或可靠性保证的替代品。
5 changes: 5 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include .env.example
include docs/cn_mcp_server.md
include DISCLAIMER.md
include README.en.md
recursive-include docs *.md
Loading