{"name":"TaskPilot","description":"AI-native project management agent — create, track, and manage tasks across projects","version":"1.0.0","protocol":"a2a","protocolVersion":"0.3","url":"https://taskpilot-mcp.sudiptadhara.in/a2a","preferredTransport":"JSONRPC","supportedInterfaces":[{"url":"https://taskpilot-mcp.sudiptadhara.in/a2a","protocolBinding":"JSONRPC","protocolVersion":"0.3"}],"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"authentication":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://taskpilot-mcp.sudiptadhara.in/authorize","tokenUrl":"https://taskpilot-mcp.sudiptadhara.in/token","scopes":{"taskpilot:read":"Read projects, tasks, pages, members, labels, cycles","taskpilot:write":"Create projects; create/update/move tasks, assign, label, comment; write and archive pages; triage intake; link work items"}}}},"securitySchemes":{"oauth2":{"type":"oauth2","flows":{"authorizationCode":{"authorizationUrl":"https://taskpilot-mcp.sudiptadhara.in/authorize","tokenUrl":"https://taskpilot-mcp.sudiptadhara.in/token","scopes":{"taskpilot:read":"Read projects, tasks, pages, members, labels, cycles","taskpilot:write":"Create projects; create/update/move tasks, assign, label, comment; write and archive pages; triage intake; link work items"}}}}},"security":[{"oauth2":["taskpilot:read","taskpilot:write"]}],"capabilities":{"streaming":true,"pushNotifications":false,"webhooks":true,"humanInTheLoop":true},"skills":[{"id":"task.create","name":"task.create","description":"Create a new task with smart project routing","tags":["task","taskpilot:write"],"requiresApproval":false},{"id":"task.update","name":"task.update","description":"Update task fields","tags":["task","taskpilot:write"],"requiresApproval":false},{"id":"task.find","name":"task.find","description":"Search tasks by query","tags":["task","taskpilot:read"],"requiresApproval":false},{"id":"task.get","name":"task.get","description":"Get task details by identifier","tags":["task","taskpilot:read"],"requiresApproval":false},{"id":"task.move","name":"task.move","description":"Change task state","tags":["task","taskpilot:write"],"requiresApproval":"conditional"},{"id":"task.summarize","name":"task.summarize","description":"Get project summary with 3-state status","tags":["task","taskpilot:read"],"requiresApproval":false},{"id":"task.assign","name":"task.assign","description":"Assign a user to a task","tags":["task","taskpilot:write"],"requiresApproval":false},{"id":"task.unassign","name":"task.unassign","description":"Remove user assignment","tags":["task","taskpilot:write"],"requiresApproval":false},{"id":"label.add","name":"label.add","description":"Add a label to a task","tags":["label","taskpilot:write"],"requiresApproval":false},{"id":"label.remove","name":"label.remove","description":"Remove a label from a task","tags":["label","taskpilot:write"],"requiresApproval":false},{"id":"comment.add","name":"comment.add","description":"Add a comment to a task","tags":["comment","taskpilot:write"],"requiresApproval":false},{"id":"cycle.assign","name":"cycle.assign","description":"Add task to a sprint/cycle","tags":["cycle","taskpilot:write"],"requiresApproval":false},{"id":"project.list","name":"project.list","description":"List all projects","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.get","name":"project.get","description":"Get one project by exact id, identifier or name","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.create","name":"project.create","description":"Create a project (always requires human approval). Idempotent: an exact name+identifier match returns the existing project","tags":["project","taskpilot:write"],"requiresApproval":true},{"id":"project.list_states","name":"project.list_states","description":"List workflow states","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.list_members","name":"project.list_members","description":"List project members","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.list_labels","name":"project.list_labels","description":"List available labels","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.list_cycles","name":"project.list_cycles","description":"List sprints/cycles","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"project.list_tasks","name":"project.list_tasks","description":"List tasks in ONE project (pass project: id, identifier or exact name) with optional state/priority filters. An unknown project is an error, never a workspace-wide list","tags":["project","taskpilot:read"],"requiresApproval":false},{"id":"task.bulk_cancel","name":"task.bulk_cancel","description":"Cancel multiple tasks at once (requires human approval). No delete exists — use this instead.","tags":["task","taskpilot:write"],"requiresApproval":true},{"id":"page.list","name":"page.list","description":"List pages (documents) in a project or across projects","tags":["page","taskpilot:read"],"requiresApproval":false},{"id":"page.search","name":"page.search","description":"Find pages by topic using semantic search","tags":["page","taskpilot:read"],"requiresApproval":false},{"id":"page.get","name":"page.get","description":"Get one page including its content","tags":["page","taskpilot:read"],"requiresApproval":false},{"id":"page.create","name":"page.create","description":"Create a page, routed to the right project","tags":["page","taskpilot:write"],"requiresApproval":false},{"id":"page.update","name":"page.update","description":"Replace a page's content. Refuses externally-synced pages unless forced","tags":["page","taskpilot:write"],"requiresApproval":false},{"id":"page.archive","name":"page.archive","description":"Archive a page (requires human approval)","tags":["page","taskpilot:write"],"requiresApproval":true},{"id":"intake.list","name":"intake.list","description":"List work items in a project's intake (triage) queue","tags":["intake","taskpilot:read"],"requiresApproval":false},{"id":"intake.triage","name":"intake.triage","description":"Accept or reject a queued intake item","tags":["intake","taskpilot:write"],"requiresApproval":"conditional"},{"id":"relation.list","name":"relation.list","description":"List a task's relations (blocking, duplicate, relates_to, etc.)","tags":["relation","taskpilot:read"],"requiresApproval":false},{"id":"relation.add","name":"relation.add","description":"Link two tasks with a relation, e.g. mark one a duplicate of another","tags":["relation","taskpilot:write"],"requiresApproval":false},{"id":"callnote.upsert","name":"callnote.upsert","description":"Create or append a call note for a phone number under a business category","tags":["callnote","taskpilot:write"],"requiresApproval":false},{"id":"callnote.lookup","name":"callnote.lookup","description":"Look up open call-note matters for a phone number","tags":["callnote","taskpilot:read"],"requiresApproval":false}],"rateLimits":{"clientPerMinute":60,"clientPerHour":1000,"userPerMinute":100}}