Labsco
talhaorak logo

Taiga MCP Bridge

โ˜… 35

from talhaorak

Interact with the Taiga project management platform through an MCP bridge, allowing AI tools to manage project resources.

๐Ÿ”ฅ๐Ÿ”ฅ๐Ÿ”ฅโœ“ VerifiedAccount requiredAdvanced setup

Taiga MCP Bridge

Community fork of talhaorak/pytaiga-mcp with additional features, CI/CD, and ongoing maintenance.

Overview

The Taiga MCP Bridge is a powerful integration layer that connects Taiga project management platform with the Model Context Protocol (MCP), enabling AI tools and workflows to interact seamlessly with Taiga's resources.

This bridge provides a comprehensive set of tools and resources for AI agents to:

  • Create and manage projects, epics, user stories, tasks, and issues in Taiga
  • Track sprints and milestones
  • Assign and update work items
  • Query detailed information about project artifacts
  • Manage project members and permissions

By using the MCP standard, this bridge allows AI systems to maintain contextual awareness about project state and perform complex project management tasks programmatically.

Features

Comprehensive Resource Support

The bridge supports the following Taiga resources with complete CRUD operations:

  • Projects: Create, update, and manage project settings and metadata
  • Epics: Manage large features that span multiple sprints
  • User Stories: Handle detailed requirements and acceptance criteria
  • Tasks: Track smaller units of work within user stories
  • Issues: Manage bugs, questions, and enhancement requests
  • Sprints (Milestones): Plan and track work in time-boxed intervals

Security & Configuration

  • Secure Credentials: Environment variable authentication with credential protection - passwords never appear in logs or error messages
  • Auto-Authentication: Configure TAIGA_USERNAME and TAIGA_PASSWORD environment variables for seamless startup without manual login
  • Input Validation: Allowlist-based parameter validation prevents unexpected data from reaching the Taiga API

Response Filtering

All tools support a verbosity parameter to control response size, reducing AI context usage:

LevelDescriptionUse Case
minimalCore fields only (id, ref, subject, status, project)Listing many items
standardCommon fields including version for updates (default)Normal operations
fullComplete API responseDebugging, full details

Example:

# Get minimal response for efficient context usage
stories = client.call_tool("list_user_stories", {
    "project_id": 123,
    "verbosity": "minimal"
})
# Returns: [{"id": 1, "ref": 42, "subject": "...", "status": 1, "project": 123}, ...]

Development

Project Structure

pytaiga-mcp/
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ server.py          # MCP server implementation with tools
โ”‚   โ”œโ”€โ”€ taiga_client.py    # Taiga API client wrapper
โ”‚   โ””โ”€โ”€ config.py          # Configuration settings with Pydantic
โ”œโ”€โ”€ tests/
โ”‚   โ”œโ”€โ”€ test_server.py     # Unit tests
โ”‚   โ””โ”€โ”€ test_integration.py # Integration tests
โ”œโ”€โ”€ .github/workflows/
โ”‚   โ””โ”€โ”€ ci.yml             # CI pipeline (test, lint, Docker, release)
โ”œโ”€โ”€ .pre-commit-config.yaml # Pre-commit hooks (ruff, pytest)
โ”œโ”€โ”€ Dockerfile             # Container image definition
โ”œโ”€โ”€ pyproject.toml         # Project configuration and dependencies
โ”œโ”€โ”€ install.sh             # Installation script
โ”œโ”€โ”€ run.sh                 # Server execution script
โ””โ”€โ”€ README.md              # Project documentation

Testing

Pre-commit hooks run automatically on each commit (ruff lint, ruff format, unit tests). To run manually:

# Run pre-commit hooks on all files
uv run pre-commit run --all-files

# Run tests directly
uv run pytest tests/test_server.py -v --tb=short

# Run with coverage reporting
uv run pytest --cov=src

Debugging and Inspection

Use the included inspector tool for debugging:

# Default stdio transport
./inspect.sh

# For SSE transport
./inspect.sh --sse

# For development mode
./inspect.sh --dev

Error Handling

All API operations return standardized error responses in the following format:

{
  "status": "error",
  "error_type": "ExceptionClassName",
  "message": "Detailed error message"
}

Planned Features

The following features are planned for future releases:

  • Session expiration and automatic cleanup
  • Rate limiting for API calls
  • Retry mechanism with exponential backoff
  • Connection pooling