This document provides comprehensive documentation for all 117 MCP tools available in the MCP GitHub Project Manager.
| Metric | Value |
|---|---|
| Total Tools | 117 |
| Categories | 17 |
| SDK Version | 1.25.3 |
| All tools have | Behavior annotations, Output schemas |
All tools are annotated with behavior hints that help MCP clients understand their impact:
| Annotation | Meaning | Example Tools |
|---|---|---|
readOnlyHint: true |
Does not modify data | get_project, list_issues, health_check |
destructiveHint: true |
Permanently deletes data | delete_project, delete_issue_comment |
idempotentHint: true |
Safe to retry | update_project, set_field_value |
openWorldHint: true |
Makes external calls | generate_prd, enrich_issue |
- Project Management Tools (18 tools)
- Issue Tools (18 tools)
- Sub-issue Tools (5 tools)
- Pull Request Tools (8 tools)
- Sprint & Iteration Tools (14 tools)
- Field Operations Tools (6 tools)
- Automation Tools (7 tools)
- Events & Triaging Tools (5 tools)
- AI Task Tools (8 tools)
- Health & Observability Tools (1 tool)
- Status Update Tools (3 tools)
- Project Template Tools (4 tools)
- Project Linking Tools (6 tools)
- Project Lifecycle Tools (3 tools)
- Advanced Operations Tools (3 tools)
- Sprint and Roadmap AI Tools (6 tools)
- Issue Intelligence Tools (AI) (4 tools)
Create a new GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Project title |
| shortDescription | string | No | Brief description |
| owner | string | Yes | Owner username or org |
| visibility | "private" | "public" | No | Default: "private" |
Output: Project object with id, title, url, fields
Behavior: Creates new project (not read-only, not destructive, not idempotent)
Example:
{
"title": "Backend API Development",
"owner": "myorg",
"visibility": "public",
"shortDescription": "REST API for mobile app"
}List GitHub projects.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | "active" | "closed" | "all" | No | Default: "active" |
| limit | number | No | Default: 10 |
Output: Array of Project objects
Behavior: Read-only, idempotent
Example:
{
"status": "active",
"limit": 20
}Get details of a specific GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
Output: Project object with full details
Behavior: Read-only, idempotent
Example:
{
"projectId": "PVT_kwDOAB..."
}Update an existing GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| title | string | No | New title |
| shortDescription | string | No | New description |
| visibility | "private" | "public" | No | New visibility |
| closed | boolean | No | Close the project |
Output: Updated Project object
Behavior: Idempotent (same input produces same result)
Example:
{
"projectId": "PVT_kwDOAB...",
"title": "Updated API Development",
"visibility": "public"
}Delete a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID to delete |
Output: Success confirmation
Behavior: Destructive (permanent deletion)
Example:
{
"projectId": "PVT_kwDOAB..."
}Get the README content of a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
Output: README content object
Behavior: Read-only, idempotent
Update the README content of a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| readme | string | Yes | New README content |
Output: Updated README object
Behavior: Idempotent
Create a custom field for a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| name | string | Yes | Field name |
| description | string | No | Field description |
| dataType | string | Yes | Field type (TEXT, NUMBER, DATE, SINGLE_SELECT, ITERATION) |
| options | array | No | Options for SINGLE_SELECT fields |
Output: Created field object
Example:
{
"projectId": "PVT_kwDOAB...",
"name": "Status",
"description": "Current status of the task",
"dataType": "SINGLE_SELECT",
"options": [
{ "name": "To Do", "color": "red" },
{ "name": "In Progress", "color": "yellow" },
{ "name": "Done", "color": "green" }
]
}List all fields in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
Output: Array of field objects
Behavior: Read-only, idempotent
Update a custom field in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Field ID |
| name | string | No | New field name |
| options | array | No | Updated options |
Output: Updated field object
Behavior: Idempotent
Create a new view for a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| name | string | Yes | View name |
| layout | "TABLE" | "BOARD" | "ROADMAP" | Yes | View layout |
| groupByField | string | No | Field to group by |
| sortByField | string | No | Field to sort by |
| filterQuery | string | No | Filter expression |
Output: Created view object
Example:
{
"projectId": "PVT_kwDOAB...",
"name": "Development Board",
"layout": "BOARD",
"groupByField": "Status"
}List all views in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
Output: Array of view objects
Behavior: Read-only, idempotent
Delete a view from a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| viewId | string | Yes | View ID |
Output: Success confirmation
Behavior: Destructive
Add an item (issue or PR) to a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| contentId | string | Yes | Issue or PR node ID |
Output: Created item object
Remove an item from a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Project item ID |
Output: Success confirmation
List all items in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| limit | number | No | Max items to return |
Output: Array of project items
Behavior: Read-only, idempotent
Archive an item in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Item ID |
Output: Updated item object
Unarchive an item in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Item ID |
Output: Updated item object
Create a new GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| title | string | Yes | Issue title |
| body | string | No | Issue description |
| labels | string[] | No | Labels to add |
| assignees | string[] | No | Usernames to assign |
| milestone | number | No | Milestone number |
Output: Created issue object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"title": "Fix authentication bug",
"body": "Users cannot log in with social media accounts",
"labels": ["bug", "high-priority"],
"assignees": ["developer1"]
}List GitHub issues.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| state | "open" | "closed" | "all" | No | Issue state filter |
| labels | string[] | No | Filter by labels |
| milestone | string | No | Filter by milestone |
| assignee | string | No | Filter by assignee |
| limit | number | No | Max issues to return |
Output: Array of issue objects
Behavior: Read-only, idempotent
Get details of a specific GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
Output: Issue object with full details
Behavior: Read-only, idempotent
Update a GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
| title | string | No | New title |
| body | string | No | New body |
| state | "open" | "closed" | No | New state |
| labels | string[] | No | New labels |
| assignees | string[] | No | New assignees |
| milestone | number | No | New milestone |
Output: Updated issue object
Behavior: Idempotent
Add a comment to a GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
| body | string | Yes | Comment content |
Output: Created comment object
Update an existing comment on a GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| commentId | number | Yes | Comment ID |
| body | string | Yes | New content |
Output: Updated comment object
Behavior: Idempotent
Delete a comment from a GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| commentId | number | Yes | Comment ID |
Output: Success confirmation
Behavior: Destructive
List all comments on a GitHub issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
| limit | number | No | Max comments to return |
Output: Array of comment objects
Behavior: Read-only, idempotent
Create a draft issue in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| title | string | Yes | Draft title |
| body | string | No | Draft body |
Output: Created draft issue object
Example:
{
"projectId": "PVT_kwDOAB...",
"title": "Explore new authentication options",
"body": "Research OAuth providers and SSO solutions"
}Update an existing draft issue in a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| draftIssueId | string | Yes | Draft issue ID |
| title | string | No | New title |
| body | string | No | New body |
Output: Updated draft issue object
Behavior: Idempotent
Delete a draft issue from a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| draftIssueId | string | Yes | Draft issue ID |
Output: Success confirmation
Behavior: Destructive
Create a new milestone.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| title | string | Yes | Milestone title |
| description | string | No | Milestone description |
| dueDate | string | No | ISO date string |
| state | "open" | "closed" | No | Default: "open" |
Output: Created milestone object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"title": "Beta Release",
"description": "Complete all features for beta release",
"dueDate": "2024-03-31T00:00:00Z"
}List milestones.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| state | "open" | "closed" | "all" | No | State filter |
| sort | "due_on" | "completeness" | No | Sort field |
| direction | "asc" | "desc" | No | Sort direction |
Output: Array of milestone objects
Behavior: Read-only, idempotent
Update a GitHub milestone.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| milestoneNumber | number | Yes | Milestone number |
| title | string | No | New title |
| description | string | No | New description |
| dueDate | string | No | New due date |
| state | "open" | "closed" | No | New state |
Output: Updated milestone object
Behavior: Idempotent
Delete a GitHub milestone.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| milestoneNumber | number | Yes | Milestone number |
Output: Success confirmation
Behavior: Destructive
Create a new GitHub label.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| name | string | Yes | Label name |
| color | string | Yes | Hex color (without #) |
| description | string | No | Label description |
Output: Created label object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"name": "bug",
"color": "d73a4a",
"description": "Something isn't working"
}List all GitHub labels.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
Output: Array of label objects
Behavior: Read-only, idempotent
Sub-issues allow creating parent-child hierarchies between GitHub issues. These tools manage sub-issue relationships using the GitHub GraphQL API with the sub_issues feature flag.
Adds an existing issue as a sub-issue of a parent issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| parentIssueNumber | number | Yes | Parent issue number |
| subIssueNumber | number | Yes | Issue to add as sub-issue |
| replaceParent | boolean | No | Replace existing parent (default: false) |
Output: SubIssueOperationOutput with parent and sub-issue details
Behavior: Idempotent update operation
Example:
{
"owner": "myorg",
"repo": "myrepo",
"parentIssueNumber": 100,
"subIssueNumber": 123
}Lists all sub-issues for a parent issue with pagination.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Parent issue number |
| first | number | No | Number of results (default: 20, max: 100) |
| after | string | No | Pagination cursor |
Output: SubIssueListOutput with sub-issues, summary, and pagination
Behavior: Read-only, idempotent
Example:
{
"owner": "myorg",
"repo": "myrepo",
"issueNumber": 100,
"first": 50
}Gets the parent issue for a sub-issue, if any.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number to check |
Output: ParentIssueOutput with parent (or null if no parent)
Behavior: Read-only, idempotent
Example:
{
"owner": "myorg",
"repo": "myrepo",
"issueNumber": 123
}Changes the position of a sub-issue within its parent's sub-issue list.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| parentIssueNumber | number | Yes | Parent issue number |
| subIssueNumber | number | Yes | Sub-issue to move |
| afterIssueNumber | number | No | Place after this issue (omit for beginning) |
Output: SubIssueOperationOutput with updated position
Behavior: Idempotent update operation
Example:
{
"owner": "myorg",
"repo": "myrepo",
"parentIssueNumber": 100,
"subIssueNumber": 123,
"afterIssueNumber": 122
}Removes a sub-issue from its parent. The issue itself remains, only the relationship is removed.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| parentIssueNumber | number | Yes | Parent issue number |
| subIssueNumber | number | Yes | Sub-issue to remove |
Output: RemoveSubIssueOutput with success flag and message
Behavior: Destructive (removes relationship), idempotent
Example:
{
"owner": "myorg",
"repo": "myrepo",
"parentIssueNumber": 100,
"subIssueNumber": 123
}Create a new pull request in a GitHub repository.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| title | string | Yes | PR title |
| body | string | No | PR description |
| head | string | Yes | Source branch |
| base | string | Yes | Target branch |
| draft | boolean | No | Create as draft |
Output: Created PR object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"title": "Add user authentication",
"body": "Implements OAuth 2.0 authentication",
"head": "feature/auth",
"base": "main"
}Get details of a specific pull request.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| pullNumber | number | Yes | PR number |
Output: PR object with full details
Behavior: Read-only, idempotent
List pull requests in a GitHub repository.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| state | "open" | "closed" | "all" | No | State filter |
| head | string | No | Filter by head branch |
| base | string | No | Filter by base branch |
| sort | string | No | Sort field |
| direction | "asc" | "desc" | No | Sort direction |
| limit | number | No | Max PRs to return |
Output: Array of PR objects
Behavior: Read-only, idempotent
Update a pull request's title, body, or state.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| pullNumber | number | Yes | PR number |
| title | string | No | New title |
| body | string | No | New body |
| state | "open" | "closed" | No | New state |
| base | string | No | New base branch |
Output: Updated PR object
Behavior: Idempotent
Merge a pull request using merge, squash, or rebase.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| pullNumber | number | Yes | PR number |
| mergeMethod | "merge" | "squash" | "rebase" | No | Default: "merge" |
| commitTitle | string | No | Merge commit title |
| commitMessage | string | No | Merge commit message |
Output: Merge result object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"pullNumber": 42,
"mergeMethod": "squash"
}List all reviews on a pull request.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| pullNumber | number | Yes | PR number |
Output: Array of review objects
Behavior: Read-only, idempotent
Create a review on a pull request (approve, request changes, or comment).
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| pullNumber | number | Yes | PR number |
| event | "APPROVE" | "REQUEST_CHANGES" | "COMMENT" | Yes | Review event |
| body | string | No | Review comment |
| comments | array | No | Line comments |
Output: Created review object
Example:
{
"owner": "myorg",
"repo": "myrepo",
"pullNumber": 42,
"event": "APPROVE",
"body": "LGTM! Great work on the authentication implementation."
}Create a new development sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Sprint title |
| description | string | No | Sprint description |
| startDate | string | Yes | ISO date string |
| endDate | string | Yes | ISO date string |
| goals | string[] | No | Sprint goals |
| issueIds | string[] | No | Initial issues |
Output: Created sprint object
Example:
{
"title": "Sprint 1: User Authentication",
"description": "First sprint focused on user authentication features",
"startDate": "2024-01-01T00:00:00Z",
"endDate": "2024-01-14T00:00:00Z",
"goals": ["Complete login flow", "Add OAuth support"]
}List all sprints.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| status | "active" | "completed" | "all" | No | Status filter |
| limit | number | No | Max sprints to return |
Output: Array of sprint objects
Behavior: Read-only, idempotent
Get the currently active sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| includeIssues | boolean | No | Include assigned issues |
Output: Current sprint object
Behavior: Read-only, idempotent
Update a development sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprintId | string | Yes | Sprint ID |
| title | string | No | New title |
| description | string | No | New description |
| startDate | string | No | New start date |
| endDate | string | No | New end date |
| status | string | No | New status |
| goals | string[] | No | New goals |
Output: Updated sprint object
Behavior: Idempotent
Add issues to an existing sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprintId | string | Yes | Sprint ID |
| issueIds | string[] | Yes | Issue IDs to add |
Output: Updated sprint object
Remove issues from a sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprintId | string | Yes | Sprint ID |
| issueIds | string[] | Yes | Issue IDs to remove |
Output: Updated sprint object
Create a project roadmap with milestones and tasks.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| project | object | Yes | Project configuration |
| milestones | array | Yes | Array of milestone objects |
Output: Created roadmap object
Example:
{
"project": {
"title": "New Mobile App",
"shortDescription": "Mobile app development project",
"visibility": "private"
},
"milestones": [
{
"milestone": {
"title": "Design Phase",
"description": "Complete all design work",
"dueDate": "2024-02-01T00:00:00Z"
},
"issues": [
{
"title": "Create wireframes",
"description": "Create wireframes for all screens",
"priority": "high",
"type": "feature"
}
]
}
]
}Plan a new sprint with selected issues.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprint | object | Yes | Sprint configuration |
| issueIds | string[] | Yes | Issue IDs to include |
Output: Planned sprint object
Get progress metrics for a specific milestone.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| milestoneId | string | Yes | Milestone ID |
| includeIssues | boolean | No | Include issue details |
Output: Milestone metrics object
Behavior: Read-only, idempotent
Get progress metrics for a specific sprint.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprintId | string | Yes | Sprint ID |
| includeIssues | boolean | No | Include issue details |
Output: Sprint metrics object
Behavior: Read-only, idempotent
Get a list of overdue milestones.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| limit | number | No | Max milestones to return |
| includeIssues | boolean | No | Include issue details |
Output: Array of overdue milestone objects
Behavior: Read-only, idempotent
Get a list of upcoming milestones within a time frame.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| daysAhead | number | Yes | Days to look ahead |
| limit | number | No | Max milestones to return |
| includeIssues | boolean | No | Include issue details |
Output: Array of upcoming milestone objects
Behavior: Read-only, idempotent
Get iteration field configuration including duration, start date, and list of all iterations.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Iteration field ID |
Output: Iteration configuration object
Behavior: Read-only, idempotent
Get the currently active iteration based on today's date.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Iteration field ID |
Output: Current iteration object
Behavior: Read-only, idempotent
Get all items assigned to a specific iteration.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Iteration field ID |
| iterationId | string | Yes | Iteration ID |
Output: Array of items in iteration
Behavior: Read-only, idempotent
Find which iteration contains a specific date.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Iteration field ID |
| date | string | Yes | ISO date string |
Output: Matching iteration object
Behavior: Read-only, idempotent
Bulk assign multiple items to a specific iteration.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| fieldId | string | Yes | Iteration field ID |
| iterationId | string | Yes | Target iteration ID |
| itemIds | string[] | Yes | Item IDs to assign |
Output: Assignment results
Set a field value for a project item.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Item ID |
| fieldId | string | Yes | Field ID |
| value | any | Yes | Field value (type depends on field) |
Output: Updated field value
Behavior: Idempotent
Get a field value for a project item.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Item ID |
| fieldId | string | Yes | Field ID |
Output: Field value object
Behavior: Read-only, idempotent
Clear a field value for a project item.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| itemId | string | Yes | Item ID |
| fieldId | string | Yes | Field ID |
Output: Success confirmation
Create a new automation rule for a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| name | string | Yes | Rule name |
| description | string | No | Rule description |
| trigger | object | Yes | Trigger configuration |
| action | object | Yes | Action configuration |
Output: Created rule object
Example:
{
"projectId": "PVT_kwDOAB...",
"name": "Auto-label new PRs",
"description": "Automatically add 'needs-review' label when PR is opened",
"trigger": {
"type": "pull_request.opened"
},
"action": {
"type": "add_label",
"label": "needs-review"
}
}Update an existing automation rule.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| ruleId | string | Yes | Rule ID |
| name | string | No | New name |
| description | string | No | New description |
| trigger | object | No | New trigger |
| action | object | No | New action |
| enabled | boolean | No | Enable/disable |
Output: Updated rule object
Behavior: Idempotent
Delete an automation rule from a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| ruleId | string | Yes | Rule ID |
Output: Success confirmation
Behavior: Destructive
Get details of a specific automation rule.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| ruleId | string | Yes | Rule ID |
Output: Rule object with full details
Behavior: Read-only, idempotent
List all automation rules for a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
Output: Array of rule objects
Behavior: Read-only, idempotent
Enable a disabled automation rule.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| ruleId | string | Yes | Rule ID |
Output: Enabled rule object
Behavior: Idempotent
Disable an automation rule without deleting it.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| ruleId | string | Yes | Rule ID |
Output: Disabled rule object
Behavior: Idempotent
Subscribe to real-time events for GitHub resources.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| resourceType | string | Yes | Resource type (project, issue, pr) |
| resourceId | string | No | Specific resource ID |
| eventTypes | string[] | No | Event type filter |
Output: Subscription object
Get recent events for GitHub resources.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| resourceType | string | Yes | Resource type |
| resourceId | string | No | Specific resource ID |
| limit | number | No | Max events to return |
Output: Array of event objects
Behavior: Read-only, idempotent
Replay events from a specific timestamp.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| resourceType | string | Yes | Resource type |
| resourceId | string | No | Specific resource ID |
| since | string | Yes | ISO timestamp |
Output: Array of replayed events
Behavior: Read-only, idempotent
AI-powered issue triaging. Classifies issues, assigns priority, and recommends actions.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
Output: Triage result object
Behavior: Open-world (makes AI calls)
Automatically triage all untriaged issues in a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| filter | object | No | Filter criteria |
Output: Bulk triage results
Behavior: Open-world (makes AI calls)
Schedule automated issue triaging to run periodically.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| schedule | string | Yes | Cron expression |
Output: Scheduled job object
These tools use AI for intelligent project management and task generation. They make external API calls to AI providers.
Generate a comprehensive Product Requirements Document (PRD) from a project idea using AI analysis and industry best practices.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectIdea | string | Yes | Description of the project |
| targetAudience | string | No | Who the product is for |
| constraints | string[] | No | Technical or business constraints |
| preferences | object | No | Generation preferences |
Output: Generated PRD document
Behavior: Open-world (makes AI calls)
Example:
{
"projectIdea": "A task management application for small teams",
"targetAudience": "Startups and small businesses",
"constraints": ["Must work offline", "Mobile-first design"]
}Parse a Product Requirements Document (PRD) and generate a comprehensive list of actionable development tasks with AI-powered analysis.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| prdContent | string | Yes | PRD document content |
| options | object | No | Parsing options |
Output: Array of generated tasks with dependencies
Behavior: Open-world (makes AI calls)
Enhance an existing PRD with AI-powered improvements, adding missing elements, improving clarity, and providing comprehensive analysis.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| prdContent | string | Yes | Existing PRD content |
| focusAreas | string[] | No | Areas to focus on |
| enhancementLevel | string | No | Level of enhancement |
Output: Enhanced PRD document
Behavior: Open-world (makes AI calls)
Add a new feature to an existing PRD or project, analyze its impact, and expand it into actionable tasks with complete lifecycle management.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| featureDescription | string | Yes | Feature description |
| priority | string | No | Feature priority |
Output: Feature addition result with tasks
Behavior: Open-world (makes AI calls)
Break down a complex task into smaller, manageable subtasks with AI-powered analysis, dependency detection, and implementation recommendations.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| taskId | string | Yes | Task ID to expand |
| depth | number | No | Expansion depth |
| context | string | No | Additional context |
Output: Expanded task with subtasks
Behavior: Open-world (makes AI calls)
Perform detailed AI-powered analysis of task complexity, effort estimation, risk assessment, and provide actionable recommendations.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| taskId | string | Yes | Task ID to analyze |
| includeRisks | boolean | No | Include risk analysis |
| includeRecommendations | boolean | No | Include recommendations |
Output: Complexity analysis result
Behavior: Open-world (makes AI calls)
Get AI-powered recommendations for the next task to work on based on priorities, dependencies, team capacity, and current project state.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| userId | string | No | User ID for personalization |
| skills | string[] | No | User skills |
| availability | number | No | Hours available |
Output: Recommended next task
Behavior: Open-world (makes AI calls)
Create a comprehensive requirements traceability matrix linking PRD business requirements to features to use cases to tasks with full bidirectional traceability.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| prdContent | string | No | PRD content if not linked |
| includeTestCases | boolean | No | Include test case links |
Output: Traceability matrix object
Behavior: Open-world (makes AI calls)
AI-powered roadmap generation from project issues. Creates milestones, sprints, and phases automatically.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project ID |
| timeframe | string | No | Roadmap timeframe |
| options | object | No | Generation options |
Output: Generated roadmap
Behavior: Open-world (makes AI calls)
AI-powered issue enrichment. Automatically adds labels, priority, type, complexity, and effort estimates.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumber | number | Yes | Issue number |
Output: Enriched issue object
Behavior: Open-world (makes AI calls)
Bulk AI-powered issue enrichment for multiple issues at once.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
| issueNumbers | number[] | No | Issue numbers (all if omitted) |
Output: Bulk enrichment results
Behavior: Open-world (makes AI calls)
Check system health and service availability. Returns status of GitHub connection, AI services, and cache.
Input Parameters: None required
Output:
{
status: 'healthy' | 'degraded' | 'unhealthy';
timestamp: string;
uptime: number;
services: {
github: {
connected: boolean;
rateLimit?: { remaining: number; limit: number; };
};
ai: {
available: boolean;
circuitState: 'closed' | 'open' | 'half-open' | 'disabled';
models: {
available: string[];
unavailable: string[];
};
};
cache: {
entries: number;
persistenceEnabled: boolean;
lastPersist?: string;
};
};
}Behavior: Read-only, idempotent (safe to call frequently)
Example:
{}Response Example:
{
"status": "healthy",
"timestamp": "2024-01-31T12:00:00Z",
"uptime": 3600.5,
"services": {
"github": { "connected": true },
"ai": {
"available": true,
"circuitState": "closed",
"models": {
"available": ["main", "fallback"],
"unavailable": []
}
},
"cache": {
"entries": 150,
"persistenceEnabled": true,
"lastPersist": "2024-01-31T11:55:00Z"
}
}
}Status updates allow project managers to communicate project progress with optional status indicators. These tools work with GitHub Project V2 status updates via the GraphQL API.
Creates a new status update for a GitHub project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| body | string | Yes | Status update body (supports Markdown) |
| status | string | No | ON_TRACK, AT_RISK, OFF_TRACK, COMPLETE, INACTIVE |
| startDate | string | No | ISO date (YYYY-MM-DD) |
| targetDate | string | No | ISO date (YYYY-MM-DD) |
Output: StatusUpdateOutput with full status update details
Behavior: Creates new resource (not idempotent)
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"body": "Sprint 3 is progressing well. All P0 features complete.",
"status": "ON_TRACK",
"startDate": "2026-01-15",
"targetDate": "2026-02-15"
}Lists status updates for a GitHub project with pagination.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| first | number | No | Number of results (default: 10, max: 100) |
| after | string | No | Pagination cursor |
Output: StatusUpdateListOutput with status updates and pagination
Behavior: Read-only, idempotent
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"first": 20
}Gets a single status update by its node ID.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| statusUpdateId | string | Yes | Status update node ID |
Output: StatusUpdateOutput (or null if not found)
Behavior: Read-only, idempotent
Example:
{
"statusUpdateId": "PVTSU_lADOLhQ7gc4AOEbHzM4AOrKa"
}Project templates allow organizations to create reusable project structures with views, custom fields, draft issues, workflows, and insights.
Marks an organization project as a template that can be copied by other users.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
Output: TemplateProjectOutput with id, title, isTemplate, url
Behavior: Idempotent update operation
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH"
}Removes template status from a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
Output: TemplateProjectOutput with id, title, isTemplate=false, url
Behavior: Idempotent update operation
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH"
}Creates a new project by copying from a template. Copies views, custom fields, draft issues (optional), workflows, and insights.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Source template project node ID |
| targetOwner | string | Yes | Organization login for the new project |
| title | string | Yes | Title for the new project |
| includeDraftIssues | boolean | No | Include draft issues from template (default: false) |
Output: CopiedProjectOutput with id, title, number, url, createdAt
Behavior: Creates new resource (not idempotent)
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"targetOwner": "my-organization",
"title": "Q1 2025 Sprint Board",
"includeDraftIssues": true
}Lists all project templates in an organization.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| org | string | Yes | Organization login |
| first | number | No | Number of templates to return (default: 20, max: 100) |
| after | string | No | Pagination cursor |
Output: TemplateListOutput with templates array, pageInfo, totalCount
Behavior: Read-only, idempotent
Example:
{
"org": "my-organization",
"first": 20
}Project linking allows connecting GitHub projects to repositories and teams for better organization and access control.
Links a GitHub project to a repository. Items from the repository can be added to the project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| owner | string | Yes | Repository owner (username or organization) |
| repo | string | Yes | Repository name |
Output: LinkedRepositoryOutput with id, name, nameWithOwner, url, description
Behavior: Idempotent update operation
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"owner": "octocat",
"repo": "hello-world"
}Removes a repository linkage from a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| owner | string | Yes | Repository owner |
| repo | string | Yes | Repository name |
Output: LinkOperationOutput with success, message
Behavior: Destructive (removes linkage), idempotent
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"owner": "octocat",
"repo": "hello-world"
}Links a GitHub project to a team. Team members will have access to the project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| org | string | Yes | Organization login |
| teamSlug | string | Yes | Team slug (URL-friendly identifier) |
Output: LinkedTeamOutput with id, name, slug, description
Behavior: Idempotent update operation
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"org": "octocat-org",
"teamSlug": "engineering"
}Removes a team linkage from a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| org | string | Yes | Organization login |
| teamSlug | string | Yes | Team slug |
Output: LinkOperationOutput with success, message
Behavior: Destructive (removes linkage), idempotent
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"org": "octocat-org",
"teamSlug": "engineering"
}Lists all repositories linked to a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| first | number | No | Number of repositories to return (default: 20, max: 100) |
| after | string | No | Pagination cursor |
Output: LinkedRepositoriesListOutput with repositories array, pageInfo, totalCount
Behavior: Read-only, idempotent
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"first": 20
}Lists all teams linked to a project.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| first | number | No | Number of teams to return (default: 20, max: 100) |
| after | string | No | Pagination cursor |
Output: LinkedTeamsListOutput with teams array, pageInfo, totalCount
Behavior: Read-only, idempotent
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"first": 20
}Project lifecycle tools manage the overall state of GitHub ProjectV2 projects, including closing, reopening, and converting draft issues to real issues.
Closes a GitHub ProjectV2. Closed projects are hidden from default views but retain all their data and can be reopened at any time.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
Output: ProjectLifecycleOutput with id, title, closed=true, url
Behavior: Idempotent update operation (safe to retry)
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH"
}Reopens a previously closed GitHub ProjectV2. The project becomes visible in default views again with all its data intact.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
Output: ProjectLifecycleOutput with id, title, closed=false, url
Behavior: Idempotent update operation (safe to retry)
Example:
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH"
}Converts a draft issue in a project to a real GitHub issue in the specified repository. The draft's title and body are preserved in the new issue.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| itemId | string | Yes | ProjectV2Item ID of the draft issue (PVTI_...) |
| owner | string | Yes | Target repository owner (username or organization) |
| repo | string | Yes | Target repository name |
Output: ConvertedIssueOutput with itemId, issueId, issueNumber, title, url, repository
Behavior: Creates new resource (not idempotent)
Example:
{
"itemId": "PVTI_lADOLhQ7gc4AOEbHzgGF9PM",
"owner": "my-org",
"repo": "my-repo"
}Advanced operations tools provide powerful search, filtering, and item reordering capabilities for GitHub ProjectV2.
Reorders an item within a GitHub ProjectV2. Position changes persist across views. If afterId is omitted, the item moves to the first position.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| itemId | string | Yes | ProjectV2Item ID to move (PVTI_...) |
| afterId | string | No | Item ID to place after (omit to move to first position) |
Output: ItemPositionOutput with success, itemId, position
Behavior: Idempotent update operation
Example (move to top):
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"itemId": "PVTI_lADOLhQ7gc4AOEbHzgPYx2Y"
}Example (move after another item):
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"itemId": "PVTI_lADOLhQ7gc4AOEbHzgPYx2Y",
"afterId": "PVTI_lADOLhQ7gc4AOEbHzgPYx2Z"
}Searches GitHub issues using advanced query syntax with AND/OR operators. Use explicit 'AND' and 'OR' keywords for complex queries. Supports grouping with parentheses and exclusion with '-' or 'NOT'.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| query | string | Yes | GitHub search query with AND/OR support |
| first | number | No | Number of results to return (default: 20, max: 100) |
| after | string | No | Pagination cursor |
Output: SearchIssuesOutput with totalCount, issues array, pageInfo
Behavior: Read-only, idempotent
Query Examples:
is:issue AND repo:owner/repo AND label:bugis:issue AND (label:critical OR label:urgent) AND state:openis:issue AND assignee:@me AND -label:wontfix
Example:
{
"query": "is:issue AND repo:owner/repo AND (label:bug OR label:critical) AND state:open",
"first": 50
}Filters items in a GitHub ProjectV2 by status, labels, assignee, or type. Multiple filter criteria are combined with AND logic.
Note: Filtering is performed client-side as GitHub's API does not support server-side filtering for project items. For large projects, this may fetch all items before filtering.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| projectId | string | Yes | Project node ID (PVT_...) |
| filter | object | Yes | Filter criteria (see below) |
| first | number | No | Number of items to return (default: 50, max: 100) |
| after | string | No | Pagination cursor |
Filter Object:
| Field | Type | Description |
|---|---|---|
| status | string | Single select field value (e.g., 'In Progress', 'Done') |
| labels | string[] | Label names to match (item must have at least one) |
| assignee | string | Assignee login to match |
| type | "Issue" | "PullRequest" | "DraftIssue" | Item content type |
Output: FilterProjectItemsOutput with totalCount, filteredCount, items array, pageInfo
Behavior: Read-only, idempotent
Example (filter by status):
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"filter": {
"status": "In Progress"
}
}Example (filter by labels):
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"filter": {
"labels": ["bug", "critical"]
}
}Example (combined filters):
{
"projectId": "PVT_kwDOLhQ7gc4AOEbH",
"filter": {
"type": "Issue",
"status": "In Review",
"assignee": "octocat"
},
"first": 50
}AI-powered sprint planning and roadmap generation tools (Phase 10). These tools use AI for capacity analysis, prioritization, risk assessment, and roadmap creation.
Calculate sprint capacity based on team velocity, availability, and buffer. Returns recommended story points with confidence scoring.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| velocity | number | "auto" | Yes | Team velocity in story points, or 'auto' to calculate from history |
| sprintDurationDays | number | Yes | Sprint duration in days |
| teamMembers | array | Yes | Team members with id, name, availability (0-1) |
| historicalSprints | array | No | Historical sprint data for velocity calculation |
Output:
totalPoints: Calculated capacityrecommendedLoad: 80% of capacity (sustainable pace)teamAvailability: Member availability breakdownbuffer: Buffer percentage and reasoningconfidence: Confidence score and tier
Behavior: Read-only (analysis), safe to cache
Example:
{
"velocity": "auto",
"sprintDurationDays": 10,
"teamMembers": [
{ "id": "1", "name": "Alice", "availability": 0.8 },
{ "id": "2", "name": "Bob", "availability": 1.0 }
],
"historicalSprints": [
{ "sprintId": "s1", "sprintName": "Sprint 1", "completedPoints": 25, "plannedPoints": 30, "durationDays": 10, "startDate": "2026-01-01", "endDate": "2026-01-10" }
]
}AI-powered multi-factor backlog prioritization using business value, dependencies, risk, and effort.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| backlogItems | array | Yes | Backlog items with id, title, points, priority |
| sprintCapacity | number | Yes | Available capacity in story points |
| businessGoals | string[] | No | Business goals to prioritize toward |
| riskTolerance | "low" | "medium" | "high" | No | Risk tolerance level (default: "medium") |
Output:
prioritizedItems: Items with priority tier, score, and factorsreasoning: Methodology and weightings used (BV: 0.4, Dep: 0.25, Risk: 0.2, Effort: 0.15)confidence: Confidence score and tier
Behavior: AI operation (non-deterministic)
Example:
{
"backlogItems": [
{ "id": "1", "title": "User authentication", "points": 5, "priority": "high" },
{ "id": "2", "title": "Dashboard", "points": 8, "priority": "medium" }
],
"sprintCapacity": 20,
"businessGoals": ["Increase user engagement"],
"riskTolerance": "medium"
}Analyze sprint plan for potential risks. Identifies scope, dependency, capacity, technical, and external risks with mitigation suggestions.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| sprintItems | array | Yes | Items planned for sprint |
| capacity | object | Yes | Sprint capacity (from calculate_sprint_capacity) |
| dependencies | array | No | Known dependencies between items |
Output:
overallRisk: "high", "medium", or "low"riskScore: 0-100 risk scorerisks: Identified risks with category, probability, impactmitigations: Suggested mitigation strategies with effort and effectivenessconfidence: Confidence score and tier
Behavior: AI operation (non-deterministic)
Example:
{
"sprintItems": [
{ "id": "1", "title": "Complex feature", "points": 13 },
{ "id": "2", "title": "Bug fix", "points": 2 }
],
"capacity": {
"totalPoints": 25,
"recommendedLoad": 20,
"buffer": { "percentage": 20, "reasoning": "Standard buffer" }
}
}AI-powered sprint composition suggestion. Selects backlog items that fit capacity while respecting dependencies and business priorities.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| backlogItems | array | Yes | Available backlog items |
| velocity | number | Yes | Team velocity in story points |
| sprintDurationDays | number | Yes | Sprint duration |
| teamMembers | array | No | Team members for capacity consideration |
| businessGoals | string[] | No | Business priorities |
| riskTolerance | "low" | "medium" | "high" | No | Risk tolerance level |
Output:
suggestedItems: Items to include with reasoningtotalPoints: Sum of selected itemscapacityUtilization: Fraction of capacity used (0-1)reasoning: Overall reasoning for selectionrisks: Identified risks in suggestionconfidence: Confidence score and tier
Behavior: AI operation (non-deterministic)
Example:
{
"backlogItems": [
{ "id": "1", "title": "Feature A", "points": 5, "priority": "high" },
{ "id": "2", "title": "Feature B", "points": 8, "priority": "medium", "dependencies": ["1"] },
{ "id": "3", "title": "Feature C", "points": 3, "priority": "low" }
],
"velocity": 20,
"sprintDurationDays": 10,
"businessGoals": ["Launch MVP"]
}Generate a project roadmap from requirements with phases, milestones, and velocity-grounded date estimates.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| requirements | string | array | Yes | Requirements as text or structured items |
| constraints | object | No | Timeline, team size, velocity, sprint duration constraints |
| businessContext | string | No | Additional business context |
Output:
phases: Project phases with objectives and durationmilestones: Milestones with deliverables and target datesdependencies: Milestone dependenciestimeline: Start/end dates and total weeksconfidence: Confidence score and tierreasoning: Generation reasoning
Behavior: AI operation (non-deterministic, velocity-grounded dates)
Example (text requirements):
{
"requirements": "User authentication with OAuth\nDashboard with analytics\nAPI integration with third parties",
"constraints": {
"velocity": 25,
"teamSize": 4,
"sprintDurationWeeks": 2
}
}Example (structured requirements):
{
"requirements": [
{ "id": "REQ-001", "title": "User authentication", "priority": "critical", "estimatedPoints": 13 },
{ "id": "REQ-002", "title": "Dashboard", "priority": "high", "estimatedPoints": 21 }
],
"constraints": { "velocity": 30 }
}Generate Gantt-ready visualization data for a roadmap. Returns simplified data structures optimized for chart rendering.
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| (roadmap) | object | Yes | Full roadmap object (from generate_roadmap) |
Output:
phases: Phase bars with id, name, startWeek, endWeek, colormilestones: Milestone markers with id, title, week, phaseIddependencies: Dependency edges with from/to milestone IDstotalWeeks: Total timeline duration
Behavior: Read-only (deterministic transformation)
Example:
{
"phases": [{ "id": "phase-1", "name": "Foundation", ... }],
"milestones": [{ "id": "m1", "title": "Milestone 1", ... }],
"dependencies": [],
"timeline": { "startDate": "2026-02-01", "endDate": "2026-04-15", "totalWeeks": 10 },
"confidence": { "score": 75, "tier": "medium", ... }
}Phase 9 added advanced AI capabilities for PRD and task generation, including confidence scoring, template customization, validation rules, dependency analysis, and effort estimation.
The AI generation services now include per-section confidence scoring:
-
ConfidenceScorer: Calculates multi-factor confidence (0-100) for AI-generated content
- Input completeness (description length, examples, constraints)
- AI self-assessment (model's own certainty)
- Pattern matching (similarity to known successful patterns)
-
Confidence Tiers:
- High (70-100): Content is reliable
- Medium (50-69): Review recommended
- Low (0-49): Clarifying questions generated
import { ConfidenceScorer } from './services/ai/ConfidenceScorer';
const scorer = new ConfidenceScorer();
const result = scorer.calculateSectionConfidence({
sectionId: 'overview',
sectionName: 'Overview',
inputData: { description: 'Project description...' },
aiSelfAssessment: 0.75
});
console.log(`Score: ${result.score}% (${result.tier})`);
if (result.clarifyingQuestions) {
console.log('Questions:', result.clarifyingQuestions);
}PRD and task templates support multiple formats:
- Markdown:
{{placeholder}}syntax with sections - JSON Schema: Structured field definitions
- Example-based: Learn from sample documents
import { TemplateEngine } from './services/templates/TemplateEngine';
import { TemplateParser } from './services/templates/TemplateParser';
const engine = new TemplateEngine();
const template = '# {{title}}\n\n{{list features}}';
const output = engine.render(template, {
title: 'My Project',
features: ['Feature 1', 'Feature 2']
});Custom Helpers:
{{list items}}- Bullet list{{numbered_list items}}- Numbered list{{join items ", "}}- Join with separator{{default value "fallback"}}- Default value
Built-in validation rules check PRD quality against best practices:
-
Completeness Rules (8 rules):
- BR-001: Overview required (100+ chars)
- BR-002: At least 2 objectives
- BR-003: At least 1 feature
- BR-004: Success metrics defined
- BR-005: Target users identified
- BR-006: Scope defined
- BR-007: Technical requirements listed
- BR-008: Timeline provided
-
Clarity Rules (5 rules):
- CL-001: Feature descriptions (50+ chars)
- CL-002: Acceptance criteria present
- CL-003: No vague language in objectives
- CL-004: User stories follow format
- CL-005: Success metrics are measurable
import { PRDValidator } from './infrastructure/validation/PRDValidator';
const validator = new PRDValidator();
const results = validator.validate(prd);
console.log(`Score: ${results.score}/100`);
console.log(validator.getValidationSummary(results));Graph-based dependency detection and analysis:
- Explicit dependencies: Defined in task relationships
- Implicit dependencies: Auto-detected via keyword analysis
- Analysis outputs: Execution order, critical path, parallel groups
import { DependencyGraph } from './analysis/DependencyGraph';
const graph = new DependencyGraph();
graph.addTasks(tasks);
// Detect implicit dependencies
const implicit = graph.detectImplicitDependencies(0.5);
// Get analysis
const analysis = graph.analyze();
console.log('Execution order:', analysis.executionOrder);
console.log('Critical path:', analysis.criticalPath);
console.log('Parallel groups:', analysis.parallelGroups);Keyword patterns detected:
- Infrastructure -> Database -> API -> Frontend -> Integration
- Implementation -> Testing -> Documentation -> Deployment
Calibrated story point estimation with historical learning:
- Base estimation: Complexity (1-10) maps to Fibonacci points
- Calibration: Learns from actual vs estimated effort
- Range: Optimistic/pessimistic estimates with confidence
import { EstimationCalibrator } from './analysis/EstimationCalibrator';
const calibrator = new EstimationCalibrator(historicalRecords);
// Get estimate
const estimate = calibrator.estimate({ complexity: 5 });
console.log(`${estimate.points} points (${estimate.confidence}% confident)`);
console.log(`Range: ${estimate.range.low}-${estimate.range.high}`);
// Record actual for future calibration
calibrator.recordActual('task-123', actualPoints);The TaskGenerationService.generateTasksWithAnalysis() method combines all Phase 9 features:
import { TaskGenerationService } from './services/TaskGenerationService';
const service = new TaskGenerationService();
const result = await service.generateTasksWithAnalysis({
prd: prdDocument,
projectId: 'my-project',
confidenceConfig: { warningThreshold: 75 }
});
// Access results
result.tasks.forEach(task => {
console.log(`${task.title}: ${task.effortEstimate.points} pts`);
console.log(` Confidence: ${task.taskConfidence.score}%`);
console.log(` Dependencies: ${task.detectedDependencies.length}`);
});
console.log(`Total points: ${result.estimationStats.totalPoints}`);
console.log(`Overall confidence: ${result.overallConfidence.score}%`);Phase 11 adds AI-powered issue intelligence capabilities for automated issue enrichment, label suggestion, duplicate detection, and related issue discovery.
AI-powered issue enrichment with structured sections (AI-17).
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| issueTitle | string | Yes | Issue title to enrich |
| issueDescription | string | Yes | Issue body/description (can be empty) |
| projectContext | string | No | Project description for context |
| repositoryLabels | array | No | Available labels for suggestions |
Output:
{
"original": { "title": "...", "body": "..." },
"preserveOriginal": true,
"enrichedBody": "## Problem\n...\n## Solution\n...",
"sections": {
"problem": { "content": "...", "confidence": 85 },
"solution": { "content": "...", "confidence": 80 },
"context": { "content": "...", "confidence": 75 },
"impact": { "content": "...", "confidence": 82 },
"acceptanceCriteria": { "content": "...", "confidence": 90 }
},
"suggestedLabels": ["bug", "auth"],
"overallConfidence": { "score": 82, "tier": "high", ... }
}Behavior: AI operation (non-deterministic, makes external AI calls)
Multi-tier label suggestions with rationale (AI-18).
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| issueTitle | string | Yes | Issue title for analysis |
| issueDescription | string | Yes | Issue body/description |
| existingLabels | array | Yes | Available labels in repository |
| issueHistory | array | No | Historical issues for pattern learning |
| config | object | No | Configuration (maxSuggestions, preferExisting, includeNewProposals) |
Output:
{
"high": [{ "label": "bug", "isExisting": true, "confidence": 0.92, "rationale": "...", "matchedPatterns": ["crash"] }],
"medium": [{ "label": "auth", "isExisting": true, "confidence": 0.75, "rationale": "...", "matchedPatterns": [] }],
"low": [],
"newLabelProposals": [{ "name": "security", "description": "...", "color": "ff0000", "rationale": "..." }],
"confidence": { "score": 85, "tier": "high", ... }
}Behavior: AI operation (non-deterministic, makes external AI calls)
Embedding-based duplicate detection with tiered confidence (AI-19).
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| issueTitle | string | Yes | Issue title to check |
| issueDescription | string | Yes | Issue body/description |
| existingIssues | array | Yes | Issues to compare against |
| thresholds | object | No | Custom thresholds (high: 0.92, medium: 0.75) |
| maxResults | number | No | Maximum results (default: 10) |
Output:
{
"highConfidence": [{ "issueId": "123", "issueNumber": 42, "title": "...", "similarity": 0.95, "reasoning": "..." }],
"mediumConfidence": [...],
"lowConfidence": [...],
"confidence": { "score": 78, "tier": "medium", ... }
}Confidence Tiers:
- High (0.92+): Auto-link as duplicate recommended
- Medium (0.75-0.92): Review recommended
- Low (<0.75): Reference only
Behavior: AI operation (uses embeddings, may fall back to keyword matching)
Multi-type relationship detection (AI-20).
Input Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
| issueId | string | Yes | Source issue ID |
| issueTitle | string | Yes | Source issue title |
| issueDescription | string | Yes | Source issue body |
| repositoryIssues | array | Yes | Issues to search for relationships |
| issueLabels | array | No | Source issue labels for component matching |
| config | object | No | Toggle relationship types |
Output:
{
"relationships": [
{
"sourceIssueId": "src-123",
"targetIssueId": "456",
"targetIssueNumber": 42,
"targetIssueTitle": "...",
"relationshipType": "semantic",
"subType": null,
"confidence": 0.85,
"reasoning": "85% semantic similarity - similar topic"
},
{
"relationshipType": "dependency",
"subType": "blocks",
"confidence": 0.9,
"reasoning": "Keyword match: 'enables work on'"
}
],
"confidence": { "score": 75, "tier": "medium", ... }
}Relationship Types:
- semantic: Similar topic/feature (via embeddings)
- dependency: blocks/blocked_by chains (via keywords + AI)
- component: Same area (via shared labels)
Behavior: AI operation (uses embeddings and LLM, may fall back to keyword/label matching)
All 119 tools are registered in src/infrastructure/tools/ToolRegistry.ts. The registry:
- Validates tool definitions at registration time
- Generates MCP-compliant tool descriptors with annotations
- Converts Zod schemas to JSON Schema for MCP protocol
- Provides execution handlers for each tool
| Category | Source File |
|---|---|
| Project/Issue/PR/Sprint tools | src/infrastructure/tools/ToolSchemas.ts |
| Sub-issue tools | src/infrastructure/tools/sub-issue-tools.ts |
| Status update tools | src/infrastructure/tools/status-update-tools.ts |
| Template tools | src/infrastructure/tools/project-template-tools.ts |
| Linking tools | src/infrastructure/tools/project-linking-tools.ts |
| Lifecycle tools | src/infrastructure/tools/project-lifecycle-tools.ts |
| Advanced operations tools | src/infrastructure/tools/project-advanced-tools.ts |
| AI Task tools | src/infrastructure/tools/ai-tasks/*.ts |
| Health tools | src/infrastructure/tools/health-tools.ts |
| Sprint AI tools | src/infrastructure/tools/sprint-ai-tools.ts |
| Roadmap AI tools | src/infrastructure/tools/roadmap-ai-tools.ts |
| Issue Intelligence AI tools | src/infrastructure/tools/issue-intelligence-tools.ts |
| Tool Registry | src/infrastructure/tools/ToolRegistry.ts |
| Output schemas | src/infrastructure/tools/schemas/*.ts |
| Behavior annotations | src/infrastructure/tools/annotations/tool-annotations.ts |
Generated: 2026-02-01 Tool count: 119 MCP SDK: 1.25.3