Add KanbanGit MCP v0.1 #40

Merged
Twyco merged 4 commits from codex/mcp-v0-1 into main 2026-04-24 13:27:36 +00:00
Owner
No description provided.
Koda requested changes 2026-04-23 18:33:53 +00:00
Koda left a comment
Contributor

Review summary: good MCP foundation overall, but the tool contract for list_tickets_by_status should reject requests that omit all status selectors. Inline comments contain the actionable details. Nit-only findings would be approvable, but this one should request changes.

Review summary: good MCP foundation overall, but the tool contract for list_tickets_by_status should reject requests that omit all status selectors. Inline comments contain the actionable details. Nit-only findings would be approvable, but this one should request changes.
@@ -0,0 +31,4 @@
'project_id' => ['nullable', 'integer'],
'status_name' => ['nullable', 'string'],
'status_slug' => ['nullable', 'string'],
'ticket_status_id' => ['nullable', 'integer'],
Contributor

Should fix: this tool schema accepts a call with none of ticket_status_id, status_slug, or status_name, and only fails later inside resolveTicketStatuses(). That makes the MCP contract looser than the real behavior. Please enforce an at least one of rule here (or equivalent explicit validation) so clients get a schema-level/tool-level error instead of discovering it only at runtime.

Should fix: this tool schema accepts a call with none of `ticket_status_id`, `status_slug`, or `status_name`, and only fails later inside `resolveTicketStatuses()`. That makes the MCP contract looser than the real behavior. Please enforce an `at least one of` rule here (or equivalent explicit validation) so clients get a schema-level/tool-level error instead of discovering it only at runtime.
@@ -0,0 +141,4 @@
->etc());
}
public function test_status_ticket_lists_exclude_invisible_projects(): void
Contributor

Nit/Optional: since the missing-selector error is now part of the effective tool contract, I'd add a focused test for calling ListTicketsByStatus without ticket_status_id, status_slug, or status_name and asserting the expected MCP error. That keeps the validation behavior from drifting later.

Nit/Optional: since the missing-selector error is now part of the effective tool contract, I'd add a focused test for calling `ListTicketsByStatus` without `ticket_status_id`, `status_slug`, or `status_name` and asserting the expected MCP error. That keeps the validation behavior from drifting later.
Twyco marked this conversation as resolved
Contributor
https://git.twyco.de/OpenSource/KanbanGit/pulls/50
Twyco changed target branch from codex/application-api-keys to main 2026-04-24 12:59:09 +00:00
Twyco added 3 commits 2026-04-24 12:59:09 +00:00
Twyco added 1 commit 2026-04-24 13:22:05 +00:00
Merge branch 'main' into codex/mcp-v0-1
linter / quality (pull_request) Successful in 1m17s
tests / ci (8.4) (pull_request) Successful in 1m34s
f5bccc0a95
# Conflicts:
#	tests/Feature/Api/PublicApiDocumentationTest.php
Twyco merged commit ede86b84b9 into main 2026-04-24 13:27:36 +00:00
Twyco deleted branch codex/mcp-v0-1 2026-04-24 13:27:36 +00:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: PetschStudios/KanbanGit#40