126 lines
3.2 KiB
Markdown
126 lines
3.2 KiB
Markdown
# KanbanGit MCP v0.1
|
|
|
|
KanbanGit exposes a first-party HTTP MCP server for AI tools that need to read and update tickets without interpreting the OpenAPI document directly.
|
|
|
|
## Endpoint
|
|
|
|
- URL: `/mcp/kanbangit`
|
|
- Transport: HTTP MCP
|
|
- Authentication: `Authorization: Bearer <application-key>`
|
|
|
|
Application keys are created in Settings > Applications. MCP requests act with the full permissions of the key owner, so project visibility and write permissions match the web UI and JSON API.
|
|
|
|
## Implemented Tools
|
|
|
|
### `list_my_assigned_tickets`
|
|
|
|
Lists tickets assigned to the authenticated application key owner, grouped by visible project.
|
|
|
|
Inputs:
|
|
|
|
- `project_id` optional integer. When omitted, all visible projects are included.
|
|
|
|
Output:
|
|
|
|
- `data`: project groups with `project` and `tickets`
|
|
- `meta.assignee`: authenticated user
|
|
|
|
### `list_tickets_by_status`
|
|
|
|
Lists tickets in a target status, grouped by visible project.
|
|
|
|
Inputs:
|
|
|
|
- `ticket_status_id` optional integer, preferred stable lookup
|
|
- `status_slug` optional string
|
|
- `status_name` optional string
|
|
- `project_id` optional integer to scope the lookup
|
|
|
|
If `status_slug` or `status_name` matches more than one visible status, the tool returns an MCP error with matching status IDs so the client can retry with `ticket_status_id` or `project_id`.
|
|
|
|
Output:
|
|
|
|
- `data`: project groups with `project` and `tickets`
|
|
- `meta.statuses`: statuses used for the lookup
|
|
|
|
### `get_ticket`
|
|
|
|
Returns a visible ticket with its project, status, type, priority, assignee, author, field values, and worklog data.
|
|
|
|
Inputs:
|
|
|
|
- `ticket_id` required integer
|
|
|
|
Output:
|
|
|
|
- `data.project`
|
|
- `data.ticket`
|
|
|
|
### `update_ticket_description`
|
|
|
|
Updates only the ticket description and preserves all other ticket fields.
|
|
|
|
Inputs:
|
|
|
|
- `ticket_id` required integer
|
|
- `description` nullable string
|
|
|
|
Requires project write permission.
|
|
|
|
### `update_ticket_assignee`
|
|
|
|
Assigns or unassigns a ticket and preserves all other ticket fields.
|
|
|
|
Inputs:
|
|
|
|
- `ticket_id` required integer
|
|
- `assignee_user_id` required nullable integer. Use `null` to unassign.
|
|
|
|
Requires project write permission.
|
|
|
|
### `move_ticket_status`
|
|
|
|
Moves a ticket to an allowed target status.
|
|
|
|
Inputs:
|
|
|
|
- `ticket_id` required integer
|
|
- `ticket_status_id` optional integer, preferred stable lookup
|
|
- `status_slug` optional string
|
|
- `status_name` optional string
|
|
|
|
The destination status must belong to the ticket project. When moving to a different status, the transition must be allowed by the ticket's current status.
|
|
|
|
Output:
|
|
|
|
- `data.project`
|
|
- `data.ticket`
|
|
- `meta.destination_label`
|
|
- `meta.message`
|
|
- `meta.moved`
|
|
|
|
## OpenClaw Setup Notes
|
|
|
|
Configure OpenClaw as an HTTP MCP client that points to your KanbanGit host plus `/mcp/kanbangit`.
|
|
|
|
Send the application key as:
|
|
|
|
```text
|
|
Authorization: Bearer <application-key>
|
|
```
|
|
|
|
Use `list_my_assigned_tickets` for the dashboard-style "my work" view. Use `get_ticket` before updates when the bot needs current ticket context. Prefer IDs over names when moving statuses.
|
|
|
|
## Noch fehlt
|
|
|
|
- Ticket creation
|
|
- Branch tools
|
|
- Ticket links
|
|
- Comments and richer worklog tools
|
|
- Repository tools
|
|
- Project settings tools
|
|
- OAuth-based MCP auth
|
|
- Scoped or expiring MCP tokens
|
|
- Local stdio MCP server
|
|
- MCP prompts and resources
|