TeslaMate veritabanınıza erişim sağlayan Model Context Protocol (MCP) sunucusu; AI asistanlarının Tesla araç verilerini ve analitiğini sorgulamasına olanak tanır.
Claude Desktop config.json'a ekle
{
"mcpServers": {
"cobanov-teslamate-mcp": {
"command": "python",
"args": [
"-m",
"teslamate_mcp"
]
}
}
} Kaynak kodu al ve yerel olarak çalıştır
git clone https://github.com/cobanov/teslamate-mcp.git ~/.mcp/teslamate-mcp
cd ~/.mcp/teslamate-mcp Bir Model Context Protocol sunucusu; TeslaMate PostgreSQL veritabanınızı MCP-uyumlu AI istemcilerine (Claude Desktop, Cursor, vb.) stdio veya streamable HTTP üzerinden sunar.
run_sql ve get_database_schemateslamate://queries ve teslamate://queries/{name} araç çağırmadan katalog taraması içinrun_sql — PostgreSQL READ ONLY işlemi içinde statement_timeout, lock_timeout ve otomatik satır sınırı ile çalışırget_database_schema çalışma zamanında information_schema okur; depoya işlenmemiş eski JSON yokteslamate-mcp stdio, uzak için teslamate-mcp http/health probuDecimal → float JSON serileştirmesi — dil modelleri sayıları görmek için, dizeler değilgit clone https://github.com/cobanov/teslamate-mcp.git
cd teslamate-mcp
cp env.example .env
# .env dosyasını düzenleyin — en azından DATABASE_URL'yi ayarlayın
uv sync
teslamate-mcp konsol betiğinin dört alt komutu vardır:
teslamate-mcp stdio # yerel (Cursor / Claude Desktop)
teslamate-mcp http [--host] [--port] # uzak (HTTP / SSE)
teslamate-mcp gen-token # AUTH_TOKEN değeri üret
teslamate-mcp list-tools # tanı: kayıtlı araçları listele
python -m teslamate_mcp <alt-komut> da çalışır.
MCP istemcinizi stdio sunucusunu başlatacak şekilde yapılandırın. Cursor veya Claude Desktop için örnek:
{
"mcpServers": {
"teslamate": {
"command": "uv",
"args": ["--directory", "/path/to/teslamate-mcp", "run", "teslamate-mcp", "stdio"]
}
}
}
cp env.example .env
# DATABASE_URL'yi ve ideal olarak AUTH_TOKEN'ı ayarlayın
docker compose up -d
MCP endpoint'i http://localhost:8888/mcp adresindedir ve yaşamasını kontrol etmek için bir probe http://localhost:8888/health adresinde sunulur.
Önceden derlenmiş çok-mimarilı bir görüntü (linux/amd64, linux/arm64) her etiketlenmiş sürümde GHCR'ye yayınlanır:
docker run --rm -e DATABASE_URL=... -p 8888:8888 ghcr.io/cobanov/teslamate-mcp:latest
Tüm ayarlar ortam değişkenlerinden okunur (.env desteklenir). Yalnızca DATABASE_URL gereklidir.
| Değişken | Varsayılan | Notlar |
|---|---|---|
DATABASE_URL |
gerekli | postgresql://user:pass@host:5432/teslamate |
AUTH_TOKEN |
boş | HTTP endpoint'inde bearer kimlik doğrulamasını etkinleştirir |
HOST |
0.0.0.0 |
HTTP bağlama ana bilgisayarı |
PORT |
8888 |
HTTP bağlama portu |
POOL_MIN_SIZE |
1 |
psycopg havuzu alt sınırı |
POOL_MAX_SIZE |
10 |
psycopg havuzu üst sınırı |
QUERY_TIMEOUT_MS |
5000 |
run_sql için statement_timeout |
CUSTOM_SQL_ROW_LIMIT |
1000 |
run_sql bir tane sağlamadığında enjekte edilen LIMIT |
LOG_LEVEL |
INFO |
Standart Python günlük seviyesi |
DEBUG |
false |
Starlette hata ayıklama modu (üretimde kapalı tutun) |
Bir bearer token oluşturun:
uv run teslamate-mcp gen-token
Araç: get_basic_car_information, get_current_car_status, get_software_update_history
Batarya ve sağlık: get_battery_health_summary, get_battery_degradation_over_time, get_daily_battery_usage_patterns, get_tire_pressure_weekly_trends
Sürüş: get_monthly_driving_summary, get_daily_driving_patterns, get_longest_drives_by_distance, get_total_distance_and_efficiency, get_drive_summary_per_day
Verimlilik: get_efficiency_by_month_and_temperature, get_average_efficiency_by_temperature, get_unusual_power_consumption
Şarj ve konum: get_charging_by_location, get_all_charging_sessions_summary, get_most_visited_locations
get_database_schema — geçerli TeslaMate şeması (sütun başına bir satır)run_sql(query) — özel bir SELECT veya WITH … SELECT yürütünsrc/teslamate_mcp/queries/your_query.sql dosyasına bir SELECT ekleyin.
Kardeş your_query.toml dosyasını ekleyin:
name = "get_your_data"
description = "Bunun ne döndürdüğü."
Sunucuyu yeniden başlatın. Kayıt otomatik olarak alır.
uv sync # geliştirme bağımlılıklarıyla yükle
uv run ruff check src tests # lint
uv run ruff format src tests # biçimlendir
uv run pytest # testler (Docker yok ise Docker tabanlı entegrasyon testleri atlanır)
MIT — LICENSE dosyasına bakın.