MCP Request-tracker

Secure MCP server for Request Tracker (RT) ticket management

OtherPythonv0.1.1

MCP Request Tracker CrunchTools

A secure MCP (Model Context Protocol) server for Request Tracker (RT) ticket management.

Features

  • Secure Credential Handling: Passwords stored as SecretStr, never logged
  • Full Ticket Management: Search, view, create, update, and resolve tickets
  • Time Tracking: Track time worked on tickets
  • Workflow Automation: Pre-built workflows like checklist completion
  • Cross-Platform: Works on Linux, macOS, and Windows

Installation

Option 1: Using uvx (Recommended)

uvx mcp-request-tracker-crunchtools

Option 2: Using pip

pip install mcp-request-tracker-crunchtools

Option 3: Using Container

podman run -e RT_URL=... -e RT_USER=... -e RT_PASS=... quay.io/crunchtools/mcp-request-tracker

Configuration

Set the following environment variables:

VariableRequiredDescription
RT_URLYesBase URL of your RT server
RT_USERYesRT username
RT_PASSYesRT password
RT_HTTP_USERNoHTTP Basic Auth username
RT_HTTP_PASSNoHTTP Basic Auth password

Usage with Claude Code

Using uvx

claude mcp add mcp-request-tracker-crunchtools \
    --env RT_URL=https://rt.example.com \
    --env RT_USER=your_username \
    --env RT_PASS=your_password \
    -- uvx mcp-request-tracker-crunchtools

Using Container

claude mcp add mcp-request-tracker-crunchtools \
    --env RT_URL=https://rt.example.com \
    --env RT_USER=your_username \
    --env RT_PASS=your_password \
    -- podman run -i --rm -e RT_URL -e RT_USER -e RT_PASS quay.io/crunchtools/mcp-request-tracker

Available Tools

Search and View

  • search_tickets - Search tickets using RT query syntax
  • get_ticket - Get ticket details
  • get_ticket_history - Get ticket history/changelog
  • get_my_open_tickets - Get open tickets for a user
  • get_new_tickets - Get new/unassigned tickets

Update Tickets

  • set_ticket_owner - Set ticket owner
  • set_ticket_status - Set ticket status
  • open_ticket - Open a ticket
  • resolve_ticket - Resolve/close a ticket
  • take_ticket - Take ownership and open

Time Tracking

  • set_time_worked - Set total time worked
  • add_time_worked - Add time to existing time

Communication

  • add_ticket_comment - Add private comment (not visible to requestor)
  • reply_to_ticket - Add correspondence (visible to requestor)

Creation

  • create_ticket - Create a new ticket

Workflows

  • complete_weekly_checklist - Complete a weekly checklist ticket with results

RT Query Syntax Examples

Status = 'new'
Status = 'open' AND Owner = 'scott'
Subject LIKE 'checklist'
Queue = 'Professional'
Created > '2025-01-01'
Owner = 'Nobody'

Security

This server is built with security in mind:

  • SecretStr: Passwords are stored using Pydantic's SecretStr to prevent accidental logging
  • Error Sanitization: Credentials are scrubbed from all error messages
  • No Filesystem Access: The server never reads or writes files
  • No Shell Execution: No subprocess or shell commands
  • Minimal Dependencies: Only essential packages to reduce attack surface
  • Automated CVE Scanning: Weekly security scans via GitHub Actions
  • Container Security: Built on Hummingbird images with minimal CVE count

See SECURITY.md for the full security design document.

Development

# Clone the repository
git clone https://github.com/crunchtools/mcp-request-tracker.git
cd mcp-request-tracker

# Install dependencies
uv sync --all-extras

# Run tests
uv run pytest

# Lint
uv run ruff check src tests

# Type check
uv run mypy src

License

This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). See LICENSE for details.

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
uvx mcp-request-tracker-crunchtools

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-crunchtools-request-tracker": {
      "command": "uvx",
      "args": [
        "mcp-request-tracker-crunchtools"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

mcp-request-tracker-crunchtoolspypi

Compatible MCP Clients

MCP Request-tracker works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More