github kanban mcp server
A Model Context Protocol server that enables efficient management of GitHub issues in a Kanban board format, allowing LLMs to automate task management through GitHub integration.
A Model Context Protocol server that enables efficient management of GitHub issues in a Kanban board format, allowing LLMs to automate task management through GitHub integration.
GitHub Kanban MCP Serverは、GitHubのissueをカンバンボード形式で管理し、LLMのタスク管理を効率化するためのModel Context Protocol(MCP)サーバーです。
kanban-server/
├── src/ # ソースコードディレクトリ
│ ├── handlers/ # リクエストハンドラー
│ │ ├── comment-handlers.ts # コメント関連の処理
│ │ ├── issue-handlers.ts # Issue関連の処理
│ │ ├── label-handlers.ts # ラベル関連の処理
│ │ └── tool-handlers.ts # ツールリクエストの処理
│ ├── schemas/ # 入力スキーマ定義
│ │ ├── comment-schemas.ts # コメント関連のスキーマ
│ │ └── issue-schemas.ts # Issue関連のスキーマ
│ ├── utils/ # ユーティリティ関数
│ │ ├── error-handler.ts # エラー処理
│ │ └── exec.ts # コマンド実行関連
│ ├── server.ts # MCPサーバーの実装
│ └── types.ts # 型定義
├── docs/ # ドキュメント
│ └── v0.2.0/ # バージョン別ドキュメント
└── assets/ # アセットファイル
# パッケージのインストール
npm install @sunwood-ai-labs/github-kanban-mcp-server
# GitHub CLIの認証設定
gh auth login
MCPの設定ファイルに以下を追加:
{
"mcpServers": {
"github-kanban": {
"command": "github-kanban-mcp-server"
}
}
}
カンバンボードのissue一覧を取得します。
入力パラメータ:
- repo
: GitHubリポジトリ名(必須)
- state
: issueの状態('open', 'closed', 'all')
- labels
: フィルタリングするラベルの配列
新しいissueを作成します。
入力パラメータ:
- repo
: GitHubリポジトリ名(必須)
- title
: issueのタイトル(必須)
- emoji
: タイトルの先頭に付与する絵文字
- body
: issueの本文
- labels
: ラベルの配列
- assignees
: アサインするユーザーの配列
既存のissueを更新します。
入力パラメータ:
- repo
: GitHubリポジトリ名(必須)
- issue_number
: issue番号(必須)
- title
: 新しいタイトル
- emoji
: タイトルの先頭に付与する絵文字
- body
: 新しい本文
- state
: 新しい状態('open', 'closed')
- labels
: 新しいラベルの配列
- assignees
: 新しいアサインの配列
タスクにコメントを追加します。
入力パラメータ:
- repo
: GitHubリポジトリ名(必須)
- issue_number
: タスク(Issue)のID(必須)
- body
: コメントの内容(Markdown形式対応)(必須)
- state
: コメント時に変更するissueの状態('open', 'closed')
MIT License - LICENSEファイルを参照してください。
git checkout -b feature/amazing-feature
)git commit -m '✨ feat: 素晴らしい機能を追加'
)git push origin feature/amazing-feature
)問題や提案がありましたら、Issueを作成してください。
[
{
"description": "カンバンボードのissue一覧を取得します",
"inputSchema": {
"properties": {
"labels": {
"description": "フィルタリングするラベル",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "Gitリポジトリの絶対パス",
"type": "string"
},
"state": {
"description": "issueの状態",
"enum": [
"open",
"closed",
"all"
],
"type": "string"
}
},
"required": [],
"type": "object"
},
"name": "list_issues"
},
{
"description": "新しいissueを作成します",
"inputSchema": {
"properties": {
"assignees": {
"description": "アサインするユーザー",
"items": {
"type": "string"
},
"type": "array"
},
"body": {
"description": "issueの本文(## の先頭には絵文字を付与して可読性を上げて)",
"type": "string"
},
"emoji": {
"description": "タイトルの先頭に付与するユニークな絵文字",
"type": "string"
},
"labels": {
"description": "issueのラベル",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "Gitリポジトリの絶対パス",
"type": "string"
},
"title": {
"description": "issueのタイトル",
"type": "string"
}
},
"required": [
"title"
],
"type": "object"
},
"name": "create_issue"
},
{
"description": "既存のissueを更新します",
"inputSchema": {
"properties": {
"assignees": {
"description": "新しいアサイン",
"items": {
"type": "string"
},
"type": "array"
},
"body": {
"description": "新しい本文",
"type": "string"
},
"emoji": {
"description": "タイトルの先頭に付与する絵文字",
"type": "string"
},
"issue_number": {
"description": "issue番号",
"type": "number"
},
"labels": {
"description": "新しいラベル",
"items": {
"type": "string"
},
"type": "array"
},
"path": {
"description": "Gitリポジトリの絶対パス",
"type": "string"
},
"state": {
"description": "新しい状態",
"enum": [
"open",
"closed"
],
"type": "string"
},
"title": {
"description": "新しいタイトル",
"type": "string"
}
},
"required": [
"issue_number"
],
"type": "object"
},
"name": "update_issue"
},
{
"description": "タスクにコメントを追加",
"inputSchema": {
"properties": {
"body": {
"description": "コメントの内容(Markdown形式対応)",
"type": "string"
},
"issue_number": {
"description": "タスク(Issue)のID",
"type": "string"
},
"repo": {
"description": "GitHubリポジトリ名",
"type": "string"
},
"state": {
"description": "コメント時に変更するissueの状態(オプション)",
"enum": [
"open",
"closed"
],
"type": "string"
}
},
"required": [
"repo",
"issue_number",
"body"
],
"type": "object"
},
"name": "add_comment"
}
]