A Model Context Protocol server for managing GitLab Kanban board operations.
✨ Features
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
npm install
? Configuration
Create a .env
file with the following environment variables:
GITLAB_TOKEN=your_gitlab_token
GITLAB_URL=your_gitlab_url # default: https://gitlab.com
?️ Build
npm run build
For development with auto-rebuild:
npm run watch
? Debugging
Since MCP servers communicate over stdio, we recommend using the MCP Inspector:
npm run inspector
? Usage
Cline Configuration
Add the following to your cline_mcp_settings.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
- Fork this repository
- Create your feature branch (
git checkout -b feature/amazing-feature
)
- Commit your changes (
git commit -m '✨ feat: Add amazing feature'
)
- Push to the branch (
git push origin feature/amazing-feature
)
- Create a Pull Request
? License
This project is licensed under the MIT License.
[
{
"description": "プロジェクトのカンバンボードのタスク一覧を取得",
"inputSchema": {
"properties": {
"projectId": {
"description": "GitLabプロジェクトID",
"type": "string"
}
},
"required": [
"projectId"
],
"type": "object"
},
"name": "list_tasks"
},
{
"description": "カンバンボードに新しいタスクを作成",
"inputSchema": {
"properties": {
"description": {
"description": "タスクの説明",
"type": "string"
},
"labels": {
"description": "タスクのラベル",
"items": {
"type": "string"
},
"type": "array"
},
"projectId": {
"description": "GitLabプロジェクトID",
"type": "string"
},
"title": {
"description": "タスクのタイトル",
"type": "string"
}
},
"required": [
"projectId",
"title"
],
"type": "object"
},
"name": "create_task"
},
{
"description": "カンバンボードのタスクを更新",
"inputSchema": {
"properties": {
"description": {
"description": "新しい説明",
"type": "string"
},
"issueId": {
"description": "タスク(Issue)のID",
"type": "string"
},
"projectId": {
"description": "GitLabプロジェクトID",
"type": "string"
},
"state": {
"description": "タスクの状態",
"enum": [
"opened",
"closed"
],
"type": "string"
},
"title": {
"description": "新しいタイトル",
"type": "string"
}
},
"required": [
"projectId",
"issueId"
],
"type": "object"
},
"name": "update_task"
},
{
"description": "カンバンボードのタスクを削除",
"inputSchema": {
"properties": {
"issueId": {
"description": "タスク(Issue)のID",
"type": "string"
},
"projectId": {
"description": "GitLabプロジェクトID",
"type": "string"
}
},
"required": [
"projectId",
"issueId"
],
"type": "object"
},
"name": "delete_task"
},
{
"description": "タスクにコメントを追加",
"inputSchema": {
"properties": {
"body": {
"description": "コメントの内容(Markdown形式対応)",
"type": "string"
},
"issueId": {
"description": "タスク(Issue)のID",
"type": "string"
},
"projectId": {
"description": "GitLabプロジェクトID",
"type": "string"
}
},
"required": [
"projectId",
"issueId",
"body"
],
"type": "object"
},
"name": "add_comment"
}
]