Taiga MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LOG_LEVEL | No | How much the server logs (error, info, debug, etc.). | info |
| TAIGA_TOKEN | No | Your Taiga access token. Preferred over username/password. | |
| TAIGA_BASE_URL | Yes | The Taiga API address to connect to. | https://api.taiga.io |
| TAIGA_PASSWORD | No | Your Taiga password. | |
| TAIGA_USERNAME | No | Your Taiga username. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| project_listA | List projects, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. |
| project_getA | Get a single project by id. |
| project_createD | Create a new project. |
| project_updateA | Update an existing project (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| project_deleteA | Delete a project by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| epic_listA | List epics, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. |
| epic_getA | Get a single epic by id. |
| epic_createA | Create a new epic. Note: if the project's Epics module isn't enabled (is_epics_activated), the epic is still created via the API but stays invisible in Taiga's web UI (no nav item, in-app links 404) until the module is enabled — use project_update to enable it. |
| epic_updateA | Update an existing epic (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| epic_deleteA | Delete a epic by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| epic_related_user_storiesA | List the user stories linked to an epic. Response is { items, pagination }. |
| epic_link_user_storyA | Link an existing user story to an epic. |
| epic_unlink_user_storyA | Unlink a user story from an epic. |
| user_story_listA | List user_storys, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. Use user_story_filters_data to discover valid status/tags/assigned_to/epic ids cheaply instead of paging through results. |
| user_story_getA | Get a single user_story by id. |
| user_story_createC | Create a new user_story. |
| user_story_updateA | Update an existing user_story (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| user_story_deleteA | Delete a user_story by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| user_story_assign_milestoneA | Move a user story into a milestone/sprint (or out of one, by omitting milestone). Convenience wrapper over user_story_update. |
| task_listA | List tasks, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. Use task_filters_data to discover valid status/tags/assigned_to ids cheaply instead of paging through results. |
| task_getA | Get a single task by id. |
| task_createC | Create a new task. |
| task_updateA | Update an existing task (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| task_deleteA | Delete a task by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| issue_listA | List issues, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. Use issue_filters_data to discover valid type/status/priority/severity/tags/assigned_to ids cheaply instead of paging through results. |
| issue_getA | Get a single issue by id. |
| issue_createC | Create a new issue. |
| issue_updateA | Update an existing issue (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| issue_deleteA | Delete a issue by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| issue_set_classificationA | Set an issue's type/status/priority/severity in one call (only the fields provided are changed). Convenience wrapper over issue_update for this common triage action. |
| milestone_listA | List milestones, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. |
| milestone_getA | Get a single milestone by id. |
| milestone_createC | Create a new milestone. |
| milestone_updateA | Update an existing milestone (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| milestone_deleteA | Delete a milestone by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| milestone_statsA | Get burndown/points stats for a milestone (sprint): total and completed points, user stories, tasks, and per-day breakdown. |
| wiki_page_listA | List wiki_pages, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. |
| wiki_page_getA | Get a single wiki_page by id. |
| wiki_page_createC | Create a new wiki_page. |
| wiki_page_updateA | Update an existing wiki_page (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| wiki_page_deleteA | Delete a wiki_page by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| wiki_page_get_by_slugA | Get a wiki page by its project-scoped slug instead of its numeric id. |
| membership_listA | List memberships, optionally filtered by the given query parameters. Response is { items, pagination } — pagination has { count, current_page, has_next } read from Taiga. Default page_size is 30. |
| membership_getA | Get a single membership by id. |
| membership_createC | Create a new membership. |
| membership_updateA | Update an existing membership (partial patch — only include the fields you want to change). Taiga's optimistic-concurrency |
| membership_deleteA | Delete a membership by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| membership_bulk_createA | Invite multiple members to a project in one call. Each entry needs a role id and either a username or an email — this will send real invitation emails for entries that don't match an existing user. |
| membership_resend_invitationA | Resend a pending project invitation email. |
| comment_addA | Add a comment to an epic, user story, task, or issue. Goes through the same optimistic-concurrency path as a normal update. |
| comment_listA | List the comment history for an epic, user story, task, or issue. Includes plain field-change history entries too — filter on a non-empty |
| comment_editA | Edit the text of an existing comment on an epic, user story, task, or issue. Not gated — editing isn't destructive. |
| comment_deleteA | Delete a comment from an epic, user story, task, or issue. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| attachment_uploadA | Upload a file attachment to an epic, user story, task, issue, or wiki page. File contents are passed as base64. |
| attachment_listA | List attachments on an epic, user story, task, issue, or wiki page. Response is { items, pagination }. |
| attachment_downloadA | Download an attachment's file contents as base64, along with its filename, content type, size, and sha1. Rejects files larger than 10485760 bytes before downloading. |
| attachment_deleteA | Delete an attachment by id. This cannot be undone. Requires confirmation: elicitation-capable clients are prompted interactively; others must call again with confirm: true after reviewing the preview returned by the first call. |
| vote_addA | Upvote an epic, user story, task, or issue. Milestones and wiki pages don't support voting. |
| vote_removeA | Remove your vote from an epic, user story, task, or issue. |
| watch_addA | Watch an epic, user story, task, issue, milestone, or wiki page for update notifications. |
| watch_removeA | Stop watching an epic, user story, task, issue, milestone, or wiki page. |
| searchA | Project-scoped text search across epics, user stories, tasks, issues, and wiki pages. Returns id/title matches grouped by type. Response is { items: {epics, userstories, tasks, wikipages, issues}, pagination }. |
| taiga_raw_requestA | Escape hatch: make a raw request to any /api/v1/ endpoint on the configured Taiga instance, for functionality not covered by a dedicated tool (importers, webhooks, application tokens, notify policies, project templates, export/import, etc.). Prefer a dedicated tool when one exists. |
| ref_resolveA | Resolve a project-scoped ref (e.g. "#436" or 436) to its type (issue, user_story, task, or epic) and numeric id, without fetching full details. |
| batch_create_issuesA | Create up to 20 issues in one call. Each item is created independently — a bad item doesn't fail the others. Returns a structured result with per-item success/failure, not a native Taiga bulk-create (which can't carry per-item fields). |
| batch_create_user_storiesA | Create up to 20 user stories in one call. Each item is created independently — a bad item doesn't fail the others. Returns a structured result with per-item success/failure, not a native Taiga bulk-create (which can't carry per-item fields). |
| batch_create_tasksA | Create up to 20 tasks in one call, each under its own parent user story. Each item is created independently — a bad item doesn't fail the others. Returns a structured result with per-item success/failure, not a native Taiga bulk-create (which can't carry per-item fields). |
| user_story_filters_dataA | Get the valid filter values (statuses, tags, assigned users, epics, roles) for user stories in a project, each with a live item count — cheaper than a full user_story_list call just to discover ids. |
| task_filters_dataA | Get the valid filter values (statuses, tags, assigned users, roles) for tasks in a project, each with a live item count — cheaper than a full task_list call just to discover ids. |
| issue_filters_dataA | Get the valid filter values (types, statuses, priorities, severities, tags, assigned users, roles) for issues in a project, each with a live item count — cheaper than a full issue_list call just to discover ids. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/madebyclowd/taiga-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server