taiga.com
taiga.com logo

Taiga

Integrates with Taiga project management platform to enable direct control over projects, epics, user stories, tasks and...

Created byApr 23, 2025

Taiga MCP Bridge

[![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)

Overview

The Taiga MCP Bridge is a powerful integration layer that connects [Taiga](https://taiga.io/) 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

Installation

This project uses [uv](https://github.com/astral-sh/uv) for fast, reliable Python package management.

Prerequisites

  • Python 3.10 or higher
  • uv package manager

Basic Installation

Development Installation

For development (includes testing and code quality tools):

Manual Installation

If you prefer to install manually:

Configuration

The bridge can be configured through environment variables or a `.env` file:
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
Create a `.env` file in the project root to set these values:

Usage

With stdio mode

Paste the following json in your Claude App's or Cursor's mcp settings section:

Running the Bridge

Start the MCP server with:
Or manually:

Transport Modes

The server supports two transport modes:
  1. **stdio (Standard Input/Output)** - Default mode for terminal-based clients
  1. **SSE (Server-Sent Events)** - Web-based transport with server push capabilities
You can set the transport mode in several ways:
  • Using the `--sse` flag with run.sh or server.py (default is stdio)
  • Setting the `TAIGA_TRANSPORT` environment variable
  • Adding `TAIGA_TRANSPORT=sse` to your `.env` file

Authentication Flow

This MCP bridge uses a session-based authentication model:
  1. **Login**: Clients must first authenticate using the `login` tool: ```python session = client.call_tool("login", { "username": "your_taiga_username", "password": "your_taiga_password", "host": "https://api.taiga.io" # Optional }) # Save the session_id from the response session_id = session["session_id"] ```
  1. **Using Tools and Resources**: Include the `session_id` in every API call: ```python # For resources, include session_id in the URI projects = client.get_resource(f"taiga://projects?session_id={session_id}") # For project-specific resources epics = client.get_resource(f"taiga://projects/123/epics?session_id={session_id}") # For tools, include session_id as a parameter new_project = client.call_tool("create_project", { "session_id": session_id, "name": "New Project", "description": "Description" }) ```
  1. **Check Session Status**: You can check if your session is still valid: ```python status = client.call_tool("session_status", {"session_id": session_id}) # Returns information about session validity and remaining time ```
  1. **Logout**: When finished, you can logout to terminate the session: ```python client.call_tool("logout", {"session_id": session_id}) ```

Example: Complete Project Creation Workflow

Here's a complete example of creating a project with epics and user stories:

Development

Project Structure

Testing

Run tests with pytest:

Debugging and Inspection

Use the included inspector tool for debugging:

Error Handling

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

Performance Considerations

The bridge implements several performance optimizations:
  1. **Connection Pooling**: Reuses HTTP connections for better performance
  1. **Rate Limiting**: Prevents overloading the Taiga API
  1. **Retry Mechanism**: Automatically retries failed requests with exponential backoff
  1. **Session Cleanup**: Regularly cleans up expired sessions to free resources

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.
  1. Fork the repository
  1. Create your feature branch (`git checkout -b feature/amazing-feature`)
  1. Install development dependencies (`./install.sh --dev`)
  1. Make your changes
  1. Run tests (`pytest`)
  1. Commit your changes (`git commit -m 'Add some amazing feature'`)
  1. Push to the branch (`git push origin feature/amazing-feature`)
  1. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

  • [Taiga](https://www.taiga.io/) for their excellent project management platform
  • [Model Context Protocol (MCP)](https://github.com/mcp-foundation/specification) for the standardized AI communication framework
  • All contributors who have helped shape this project