tractive-mcp
An MCP server for the Tractive GPS pet tracker. Lets AI assistants like Claude query your pet's location, tracker status, position history, and more.
Requirements
- Python 3.13+
- uv
- A Tractive account with at least one GPS tracker
Quick Start (from PyPI)
# Authenticate
uvx tractive-mcp auth
# Add to Claude Code
claude mcp add tractive -- uvx tractive-mcp
Install from Source
git clone https://github.com/rexchoppers/tractive-mcp.git
cd tractive-mcp
uv sync
uv run tractive-mcp auth
claude mcp add tractive -- uv run tractive-mcp
Authentication
Tractive does not provide any OAuth mechanisms. As a result, email and passwords have to be stored locally. Run the auth command to save your Tractive credentials:
uvx tractive-mcp auth
Credentials are stored at ~/.config/tractive-mcp/credentials.json with 0600 permissions.
Usage with Claude Code
claude mcp add tractive -- uvx tractive-mcp
Usage with Claude Desktop
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"tractive": {
"command": "uvx",
"args": ["tractive-mcp"]
}
}
}
Available Tools
Discovery
| Tool | Description |
|---|---|
list_pets |
Lists all pets on the account with their name, type, and device_id |
Location
| Tool | Description |
|---|---|
get_pet_location(device_id) |
Current GPS coordinates, speed, altitude, accuracy |
get_pet_distance_from_home(device_id) |
Distance in metres from the pet's home location |
get_recent_positions(device_id, hours, include_points) |
Position history with summary stats (distance, bounding box, point count). Set include_points=True for the full breadcrumb trail |
Tracker
| Tool | Description |
|---|---|
get_tracker_status(device_id) |
Battery level, charging state, connection state, firmware |
set_buzzer(device_id, active) |
Turn the tracker buzzer on/off |
set_led(device_id, active) |
Turn the tracker LED on/off |
set_live_tracking(device_id, active) |
Toggle live tracking mode (more frequent GPS, more battery) |
Pet Info
| Tool | Description |
|---|---|
get_pet_profile(device_id) |
Full pet profile — breed, weight, birthday, activity goals |
Emergency
| Tool | Description |
|---|---|
lost_pet(device_id, enable_live_tracking, enable_buzzer, enable_led) |
All-in-one emergency tool. Returns location, distance from home, tracker status, and recent activity. Optionally activates live tracking, buzzer, and LED |
Project Structure
src/tractive_mcp/
server.py — MCP server, tool definitions, auth CLI
client.py — Credential management, Tractive client helper
models.py — Response dataclasses
License
See LICENSE.
Metadata
Release files for tractive-mcp 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| tractive_mcp-0.2.0.tar.gz | 6.6 kB | Without provenance | Details for tractive_mcp-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| tractive_mcp-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for tractive_mcp-0.2.0-py3-none-any.whl |
Total release size: 15.0 kB
Release files / tractive_mcp-0.2.0.tar.gz
| Download URL | tractive_mcp-0.2.0.tar.gz |
|---|---|
| Size | 6.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ae389f6fb7daf4f84d3bb35391a3ef7bbda3657dbf3680f33b370284bd455b12
|
|
BLAKE2b-256 checksum How to use checksums |
77773c36f96028b5a8116f1a6407cdcaa8f004a5249f018726e5655cac1476e3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / tractive_mcp-0.2.0-py3-none-any.whl
| Download URL | tractive_mcp-0.2.0-py3-none-any.whl |
|---|---|
| Size | 8.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2b1d2cf8203ae9874a8f3dfce5e066f85b77e7f8089be76176434f04f238265b
|
|
BLAKE2b-256 checksum How to use checksums |
eefb7ba20a3c1ae17c8102993d973d6b9d412bd88afe17a9a55a2b0ff3e6d6b8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.8 {"installer":{"name":"uv","version":"0.11.8","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Security for tractive-mcp 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.