GitLab Kanban MCP Server
<div align="center">
<img src="assets/header.svg" alt="GitLab Kanban MCP" width="800">
<div>
<a href="README.md"><img src="https://img.shields.io/badge/english-document-white.svg" alt="EN doc"></a>
<a href="README.ja.md"><img src="https://img.shields.io/badge/ドキュメント-日本語-white.svg" alt="JA doc"/></a>
</div>
<div>
<a href="https://gitlab.com"><img src="https://img.shields.io/badge/GitLab-FC6D26?style=for-the-badge&logo=gitlab&logoColor=white" alt="GitLab"></a>
<a href="https://www.typescriptlang.org/"><img src="https://img.shields.io/badge/TypeScript-007ACC?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript"></a>
<a href="https://nodejs.org/"><img src="https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white" alt="Node.js"></a>
<a href="https://github.com/modelcontextprotocol/sdk"><img src="https://img.shields.io/badge/MCP_SDK-0.6.0-blue?style=for-the-badge" alt="MCP SDK"></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/License-MIT-yellow.svg?style=for-the-badge" alt="MIT License"></a>
</div>
</div>
# 🎯 GitLab Kanban MCP Server
A Model Context Protocol server for managing GitLab Kanban board operations.
## ✨ Features
### 🛠️ Available Tools
- `list_tasks` - Retrieve task list from project's Kanban board
- `create_task` - Create a new task on the Kanban board
- `update_task` - Update an existing task
- `delete_task` - Delete a task from the board
- `add_comment` - Add a comment to a task
## 🏗️ Project Structure
```
src/
├── api/
│ └── gitlab.ts # GitLab API client and methods
├── config/
│ └── gitlab.ts # GitLab configuration
├── tools/
│ ├── handlers.ts # Tool handler implementations
│ └── schemas.ts # Tool schema definitions
└── index.ts # MCP server main entry point
```
## 🚀 Getting Started
### 📦 Installation
```bash
npm install
```
### 🔧 Configuration
Create a `.env` file with the following environment variables:
```env
GITLAB_TOKEN=your_gitlab_token
GITLAB_URL=your_gitlab_url # default: https://gitlab.com
```
### 🛠️ Build
```bash
npm run build
```
For development with auto-rebuild:
```bash
npm run watch
```
## 🔍 Debugging
Since MCP servers communicate over stdio, we recommend using the [MCP Inspector](https://github.com/modelcontextprotocol/inspector):
```bash
npm run inspector
```
## 📝 Usage
### Cline Configuration
Add the following to your `cline_mcp_settings.json`:
```json
{
"mcpServers": {
"gitlab-kanban-mcp-server": {
"command": "node",
"args": ["path/to/gitlab-kanban-mcp-server/build/index.js"],
"env": {
"GITLAB_TOKEN": "your_gitlab_token",
"GITLAB_URL": "your_gitlab_url"
}
}
}
}
```
## 🤝 Contributing
1. Fork this repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m '✨ feat: Add amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Create a Pull Request
## 📄 License
This project is licensed under the MIT License.
TDQS
Scored across 5 tools
Each tool has a clearly distinct purpose: list_tasks retrieves tasks, create_task adds new ones, update_task modifies existing tasks, delete_task removes them, and add_comment adds comments to tasks. There is no overlap or ambiguity in functionality, making tool selection straightforward for an agent.
All tool names follow a consistent verb_noun pattern using snake_case (e.g., list_tasks, create_task, update_task). The naming is uniform and predictable across all five tools, enhancing readability and usability.
With 5 tools, this server is well-scoped for managing tasks in a GitLab Kanban board. Each tool serves a distinct and essential function (CRUD operations plus commenting), and there are no extraneous or missing tools for the domain.
The tool set provides complete CRUD coverage for tasks (list, create, update, delete) and includes an additional operation for adding comments. This covers the core lifecycle of Kanban tasks without any obvious gaps, ensuring agents can handle all basic workflows.