Metadata-Version: 2.4
Name: tiretrack-mcp
Version: 0.2.3.dev20260501170400
Summary: MCP server for TireTrack project management — manage projects, issues, sprints, and teams via AI
Project-URL: Homepage, https://github.com/Tire-Rack-Innovation/tire-track
Project-URL: Repository, https://github.com/Tire-Rack-Innovation/tire-track
Project-URL: Issues, https://github.com/Tire-Rack-Innovation/tire-track/issues
Author: Tire Rack Innovation
License: MIT
License-File: LICENSE
Keywords: llm,mcp,project-management,tiretrack
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Requires-Python: >=3.10
Requires-Dist: httpx<1.0,>=0.27.0
Requires-Dist: mcp>=1.7.1
Description-Content-Type: text/markdown

# tiretrack-mcp

MCP server for [TireTrack](https://tiretrack.mi.tirerack.com) project management. Manage projects, issues, sprints, and teams from any AI assistant that supports the [Model Context Protocol](https://modelcontextprotocol.io).

> The TireTrack **Settings → MCP Server Setup** page renders the exact config block for your environment and chosen client (Claude Code / Codex CLI / Gemini CLI). Use that as the canonical source — this README is a reference for offline setup.

## Tools

| Category | Tools |
|----------|-------|
| Projects | `list_projects`, `get_project`, `create_project` |
| Members | `list_project_members`, `add_project_member` |
| Issues | `list_issues`, `get_issue`, `get_issue_by_key`, `create_issue`, `update_issue` |
| Comments | `list_comments`, `add_comment` |
| Sprints | `list_sprints`, `get_sprint_metrics` |
| Search | `search_issues` |
| Users | `list_users`, `get_current_user` |

## Quick Start

### Using uvx (recommended)

```bash
uvx tiretrack-mcp
```

### Using pip

```bash
pip install tiretrack-mcp
tiretrack-mcp
```

## Configuration

Set these environment variables:

| Variable | Required | Description |
|----------|----------|-------------|
| `TIRETRACK_API_URL` | Yes | API base URL — `https://api.tiretrack.mi.tirerack.com` (prod) or `https://api-dev.tiretrack.mi.tirerack.com` (dev) |
| `TIRETRACK_API_TOKEN` | Yes | Personal access token minted at **Settings → Security → Personal Access Tokens** |

> Tokens look like `tt_pat_…`, expire after 90 days by default, and can be revoked at any time from the same page.
>
> The examples below use `${TIRETRACK_API_TOKEN}` so the value resolves from your shell environment. If you'd rather not export it, paste the token string directly into the `TIRETRACK_API_TOKEN` field instead.

### Claude Code / Claude Desktop

**Stable (production):**

```json
{
  "mcpServers": {
    "tiretrack": {
      "command": "uvx",
      "args": ["--refresh", "tiretrack-mcp"],
      "env": {
        "TIRETRACK_API_URL": "https://api.tiretrack.mi.tirerack.com",
        "TIRETRACK_API_TOKEN": "${TIRETRACK_API_TOKEN}"
      }
    }
  }
}
```

**Dev (pre-release):**

```json
{
  "mcpServers": {
    "tiretrack": {
      "command": "uvx",
      "args": ["--refresh", "--prerelease", "allow", "tiretrack-mcp"],
      "env": {
        "TIRETRACK_API_URL": "https://api-dev.tiretrack.mi.tirerack.com",
        "TIRETRACK_API_TOKEN": "${TIRETRACK_API_TOKEN}"
      }
    }
  }
}
```

> `--refresh` checks PyPI for newer versions on each invocation. `--prerelease allow` installs `.dev` pre-release versions.

### OpenAI Codex CLI

**Stable (production):**

```toml
# .codex/config.toml
[mcp_servers.tiretrack]
command = "uvx"
args = ["--refresh", "tiretrack-mcp"]

[mcp_servers.tiretrack.env]
TIRETRACK_API_URL = "https://api.tiretrack.mi.tirerack.com"
TIRETRACK_API_TOKEN = "${TIRETRACK_API_TOKEN}"
```

**Dev (pre-release):**

```toml
# .codex/config.toml
[mcp_servers.tiretrack]
command = "uvx"
args = ["--refresh", "--prerelease", "allow", "tiretrack-mcp"]

[mcp_servers.tiretrack.env]
TIRETRACK_API_URL = "https://api-dev.tiretrack.mi.tirerack.com"
TIRETRACK_API_TOKEN = "${TIRETRACK_API_TOKEN}"
```

### Gemini CLI

**Stable (production):**

```json
{
  "mcpServers": {
    "tiretrack": {
      "command": "uvx",
      "args": ["--refresh", "tiretrack-mcp"],
      "env": {
        "TIRETRACK_API_URL": "https://api.tiretrack.mi.tirerack.com",
        "TIRETRACK_API_TOKEN": "${TIRETRACK_API_TOKEN}"
      }
    }
  }
}
```

**Dev (pre-release):**

```json
{
  "mcpServers": {
    "tiretrack": {
      "command": "uvx",
      "args": ["--refresh", "--prerelease", "allow", "tiretrack-mcp"],
      "env": {
        "TIRETRACK_API_URL": "https://api-dev.tiretrack.mi.tirerack.com",
        "TIRETRACK_API_TOKEN": "${TIRETRACK_API_TOKEN}"
      }
    }
  }
}
```

## Transports

| Transport | Command | Use case |
|-----------|---------|----------|
| stdio (default) | `tiretrack-mcp` | Claude Code, Codex, Gemini CLI, Claude Desktop |
| Streamable HTTP | `tiretrack-mcp --transport streamable-http --port 8080` | ChatGPT, remote clients |
| SSE (legacy) | `tiretrack-mcp --transport sse --port 8080` | Older clients |

## Development

```bash
cd mcp-server
uv sync
uv run tiretrack-mcp --help
```
