PetPals KittyClaw MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@PetPals KittyClaw MCP Server list tickets in the Backlog column"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
PetPals KittyClaw MCP Server
MCP Server for managing KittyClaw task board — a safe control plane for AI agents without direct repository, shell, or git access.
What This MCP Server Does
This MCP server allows ChatGPT to manage project workflows through KittyClaw (a kanban task board), while never gaining direct access to:
Shell commands
Git operations (commit, push, clone)
Repository file editing
Arbitrary HTTP requests
Architecture
ChatGPT (via OpenAI MCP Tunnel)
↓ MCP stdio
PetPals KittyClaw MCP Server
↓ REST API (localhost:5230)
KittyClaw Task Board
↓ tickets / comments / status / evidence
Agents (Codex / Cursor / Jules / etc.)
↓ branch / worktree / validation output
PetPals Repository
↓ completion report / evidence
KittyClaw Review → Verified → Human Approval → DoneChatGPT acts as architect / planner / reviewer.
KittyClaw is the control plane + evidence hub.
Agents are executors.
Danil (you) is the owner / final approver.
Related MCP server: coordinaut
Installation
git clone https://github.com/Danissimode/petpals-kittyclaw-mcp.git
cd petpals-kittyclaw-mcp
npm install
npm run buildConfiguration
Copy the example policy and edit it:
mkdir -p ~/.config/petpals-kittyclaw-mcp
cp config/policy.example.yaml ~/.config/petpals-kittyclaw-mcp/policy.yaml
# Edit allowed_projects, labels, transitions as neededSet environment variables (optional):
export KITTYCLAW_BASE_URL=http://localhost:5230
export KITTYCLAW_AUTHOR=chatgpt
export PETPALS_KITTYCLAW_POLICY=~/.config/petpals-kittyclaw-mcp/policy.yaml
export PETPALS_KITTYCLAW_AUDIT_LOG=~/.local/share/petpals-kittyclaw-mcp/audit.jsonlRunning Locally (stdio)
npm run build
node dist/index.jsWith custom config:
node dist/index.js --config ~/.config/petpals-kittyclaw-mcp/policy.yamlConnecting via OpenAI Secure MCP Tunnel
1. Initialize
export CONTROL_PLANE_API_KEY="sk-..."
export CONTROL_PLANE_TUNNEL_ID="tun_..."
./scripts/openai-tunnel-init-stdio.sh2. Doctor Check
./scripts/openai-tunnel-doctor.sh3. Run Tunnel
./scripts/openai-tunnel-run.sh4. Emergency Stop
./scripts/emergency-stop.shMCP Tools Exposed
Read-Only Board Tools
Tool | Description |
| List allowed projects |
| Get project details |
| Compact board snapshot |
| List columns |
| List members |
| List labels |
| List tickets (compact) |
| Get ticket details + comments |
| List comments |
| Get mentions for handle |
| List blocked tickets |
Mutating Ticket Tools
Tool | Description |
| Create ticket with author |
| Add comment with author |
| Update description |
| Assign member |
| Set priority (Idea/NiceToHave/Required/Critical) |
| Add label |
| Create subtask |
| Move status (with policy enforcement) |
PetPals Governance Tools
Tool | Description |
| Attach structured Task Contract to ticket |
| Attach acceptance criteria |
| Attach validation commands (text only) |
| Request structured completion report |
| Review evidence and return verdict |
| Mark for human review |
| Reject completion with reason |
| Mark as verified (never Done) |
| Read recent audit events |
Denied Tools (Explicitly Blocked)
These tools do not exist in this MCP server:
run_shell_commandgit_commit,git_pushdelete_ticket,delete_projectmove_to_done_without_reviewexecute_agent_directlyedit_repo_filesapply_patchgeneric_http_requestraw_openapi_call
Status Model
Backlog → Ready → InProgress → Review → ChangesRequested
↓ ↓
Blocked Verified → Done (owner only)
↓
Rejected (owner only)ChatGPT can move: Backlog↔Ready, InProgress→Blocked/Review, Review→ChangesRequested/Verified, ChangesRequested→InProgress
Agent can move: Ready→InProgress, InProgress→Review/Blocked
Owner can move: Verified→Done, Any→Rejected
Security Model
See docs/security-model.md for full details.
Key principles:
No shell execution
No git operations
No direct repo file access
No generic HTTP proxy
Comments are untrusted data (prompt injection protection)
Owner-only Done transition
Audit logging of all tool calls
Secret redaction in outputs and logs
Workflow
See docs/petpals-workflow.md for the full PetPals evidence workflow.
Tech Stack
Node.js 20+
TypeScript 5.7
@modelcontextprotocol/sdk(stdio transport)zod(input validation)undici/ native fetch (HTTP client)yaml(policy config)vitest(testing)
License
MIT
Available Tools
28 toolsaudit.recentA
Read the last N lines from the audit log
Inputs: lines.
kitty.blockers.listB
List blocked tickets for a project
Inputs: projectSlug (required).
kitty.board.summaryA
Get a board summary: columns, member count, label count, and open ticket count
Inputs: projectSlug (required).
kitty.columns.listC
List columns for a project
Inputs: projectSlug (required).
kitty.comments.listC
List comments for a ticket
Inputs: ticketId (required), projectSlug (required).
kitty.labels.listB
List labels for a project
Inputs: projectSlug (required).
kitty.members.listB
List members for a project
Inputs: projectSlug (required).
kitty.mentions.getA
Get tickets where a user handle is mentioned
Inputs: handle (required), projectSlug (required).
kitty.project.getB
Get a specific project
Inputs: projectSlug (required).
kitty.projects.listA
List all projects visible to the agent
Inputs: no named parameters.
kitty.ticket.add_commentB
Add a comment to a ticket
Inputs: body (required), ticketId (required), projectSlug (required).
kitty.ticket.add_labelB
Add a label to a ticket
Inputs: label (required), ticketId (required), projectSlug (required).
kitty.ticket.assign_memberB
Assign a member to a ticket
Inputs: assignee (required), ticketId (required), projectSlug (required).
kitty.ticket.createC
Create a new ticket in a project
Inputs: title (required), projectSlug (required), status, assignee, +3 more.
kitty.ticket.create_subtaskB
Create a subtask under a parent ticket
Inputs: title (required), parentId (required), projectSlug (required), description.
kitty.ticket.getB
Get a single ticket by ID
Inputs: ticketId (required), projectSlug (required).
kitty.ticket.move_statusB
Move a ticket to a new status
Inputs: status (required), ticketId (required), projectSlug (required).
kitty.ticket.set_priorityC
Set a ticket's priority
Inputs: priority (required), ticketId (required), projectSlug (required).
kitty.tickets.listA
List tickets for a project with optional filters
Inputs: projectSlug (required), label, limit, status, +2 more.
kitty.ticket.update_descriptionB
Update a ticket's description
Inputs: ticketId (required), description (required), projectSlug (required).
petpals.attach_acceptance_criteriaB
Attach acceptance criteria to a ticket description
Inputs: criteria (required), ticketId (required), projectSlug (required).
petpals.attach_validation_commandsC
Attach validation commands to a ticket description
Inputs: commands (required), ticketId (required), projectSlug (required).
petpals.create_task_contractC
Create a task contract and update the ticket description with it
Inputs: goal (required), reviewer (required), ticketId (required), projectSlug (required), +6 more.
petpals.mark_ready_for_human_reviewB
Mark a ticket as ready for human review by adding a comment
Inputs: ticketId (required), projectSlug (required), note.
petpals.mark_verifiedA
Mark a ticket as verified by adding a review comment. Does NOT move to Done.
Inputs: ticketId (required), projectSlug (required), note.
petpals.reject_completionA
Reject a ticket completion and add a comment with reasons
Inputs: reasons (required), ticketId (required), projectSlug (required).
petpals.request_agent_completion_reportC
Request a structured agent completion report by adding a comment template
Inputs: ticketId (required), projectSlug (required).
petpals.review_completion_reportB
Review a completion report for a ticket and return a verdict
Inputs: ticketId (required), projectSlug (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 28 tools
Each tool targets a specific resource and action, with clear names that leave little room for confusion. Even related tools like board.summary and columns.list are distinct because one provides aggregated counts and the other lists detailed items. No two tools appear to duplicate functionality.
The kitty namespace follows a resource.action dot pattern, but uses plural for list and singular for get (e.g., projects.list vs project.get). The petpals namespace uses underscore verb_phrase (e.g., create_task_contract), and audit uses just a noun. This mixing of conventions across namespaces makes the overall naming less predictable.
With 28 tools, the set exceeds the 25+ threshold for 'too many.' Though the scope is broad, many ticket update operations could be consolidated into a generic update tool, and the workflow tools add significant volume. The high count makes selection more difficult for agents.
The core ticket lifecycle is well covered: create, get, list, update description/status/priority/labels/assignment, add comments, and create subtasks. The petpals workflow also spans contract creation to verification. However, there are notable gaps such as no project creation/update, no ticket deletion or title updates, and no management of columns/members/labels beyond reading.
Related MCP Connectors
Task manager for AI agents. Orchestrate agents to achieve large goals in unified control plane.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI agents to interact with ClawBoard tasks, including listing, searching, viewing details, posting comments, and upvoting.5MIT
- AlicenseNot gradedqualityCmaintenanceCoordinates parallel AI coding agents by providing task ownership, scoped file locks, handoffs, and verification workflows.MIT
- AlicenseAqualityCmaintenanceEnables AI agents to manage a task board by investigating needs, creating well-specified tasks, and executing them end-to-end.61MIT
- AlicenseNot gradedqualityDmaintenanceManages AI agent workflows through a state machine and Git branches, enforcing isolated phases and audit trails via SPEC, PLAN, and AGENTS files.MIT