From 55d017eca5d5e55c91ce1ef6308d61575a5a28a9 Mon Sep 17 00:00:00 2001 From: Matt Holloway Date: Mon, 26 Jan 2026 11:52:38 +0000 Subject: [PATCH 1/3] default to consolidated actions/projects toolsets and add hold back flag --- pkg/github/actions.go | 44 +++++++++++++++++++++++------------------- pkg/github/projects.go | 32 ++++++++++++++++-------------- 2 files changed, 42 insertions(+), 34 deletions(-) diff --git a/pkg/github/actions.go b/pkg/github/actions.go index 14cb8028c..2fe2504ec 100644 --- a/pkg/github/actions.go +++ b/pkg/github/actions.go @@ -26,10 +26,14 @@ const ( DescriptionRepositoryName = "Repository name" ) -// FeatureFlagConsolidatedActions is the feature flag that disables individual actions tools -// in favor of the consolidated actions tools. +// FeatureFlagConsolidatedActions is the legacy feature flag (deprecated, no longer used). +// Kept for documentation purposes only. const FeatureFlagConsolidatedActions = "remote_mcp_consolidated_actions" +// FeatureFlagHoldbackConsolidatedActions is the feature flag that, when enabled, reverts to +// individual actions tools instead of the consolidated actions tools. +const FeatureFlagHoldbackConsolidatedActions = "mcp_holdback_consolidated_actions" + // Method constants for consolidated actions tools const ( actionsMethodListWorkflows = "list_workflows" @@ -117,7 +121,7 @@ func ListWorkflows(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -272,7 +276,7 @@ func ListWorkflowRuns(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -385,7 +389,7 @@ func RunWorkflow(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -454,7 +458,7 @@ func GetWorkflowRun(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -533,7 +537,7 @@ func GetWorkflowRunLogs(t translations.TranslationHelperFunc) inventory.ServerTo return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -634,7 +638,7 @@ func ListWorkflowJobs(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -746,7 +750,7 @@ func GetJobLogs(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultError("Either job_id must be provided for single job logs, or run_id with failed_only=true for failed job logs"), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -976,7 +980,7 @@ func RerunWorkflowRun(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1052,7 +1056,7 @@ func RerunFailedJobs(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1130,7 +1134,7 @@ func CancelWorkflowRun(t translations.TranslationHelperFunc) inventory.ServerToo return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1211,7 +1215,7 @@ func ListWorkflowRunArtifacts(t translations.TranslationHelperFunc) inventory.Se return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1289,7 +1293,7 @@ func DownloadWorkflowRunArtifact(t translations.TranslationHelperFunc) inventory return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1366,7 +1370,7 @@ func DeleteWorkflowRunLogs(t translations.TranslationHelperFunc) inventory.Serve return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1435,7 +1439,7 @@ func GetWorkflowRunUsage(t translations.TranslationHelperFunc) inventory.ServerT return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedActions + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1631,7 +1635,7 @@ Use this tool to list workflows in a repository, or list workflow runs, jobs, an } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedActions + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1740,7 +1744,7 @@ Use this tool to get details about individual workflows, workflow runs, jobs, an } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedActions + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1859,7 +1863,7 @@ func ActionsRunTrigger(t translations.TranslationHelperFunc) inventory.ServerToo } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedActions + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedActions return tool } @@ -1977,7 +1981,7 @@ For single job logs, provide job_id. For all failed jobs in a run, provide run_i return utils.NewToolResultError("Either job_id must be provided for single job logs, or run_id with failed_only=true for failed job logs"), nil, nil }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedActions + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedActions return tool } diff --git a/pkg/github/projects.go b/pkg/github/projects.go index 8af181a72..ac0247340 100644 --- a/pkg/github/projects.go +++ b/pkg/github/projects.go @@ -26,10 +26,14 @@ const ( MaxProjectsPerPage = 50 ) -// FeatureFlagConsolidatedProjects is the feature flag that disables individual project tools -// in favor of the consolidated project tools. +// FeatureFlagConsolidatedProjects is the legacy feature flag (deprecated, no longer used). +// Kept for documentation purposes only. const FeatureFlagConsolidatedProjects = "remote_mcp_consolidated_projects" +// FeatureFlagHoldbackConsolidatedProjects is the feature flag that, when enabled, reverts to +// individual project tools instead of the consolidated project tools. +const FeatureFlagHoldbackConsolidatedProjects = "mcp_holdback_consolidated_projects" + // Method constants for consolidated project tools const ( projectsMethodListProjects = "list_projects" @@ -159,7 +163,7 @@ func ListProjects(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -250,7 +254,7 @@ func GetProject(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -359,7 +363,7 @@ func ListProjectFields(t translations.TranslationHelperFunc) inventory.ServerToo return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -454,7 +458,7 @@ func GetProjectField(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -593,7 +597,7 @@ func ListProjectItems(t translations.TranslationHelperFunc) inventory.ServerTool return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -702,7 +706,7 @@ func GetProjectItem(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -816,7 +820,7 @@ func AddProjectItem(t translations.TranslationHelperFunc) inventory.ServerTool { return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -931,7 +935,7 @@ func UpdateProjectItem(t translations.TranslationHelperFunc) inventory.ServerToo return utils.NewToolResultText(string(r)), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -1020,7 +1024,7 @@ func DeleteProjectItem(t translations.TranslationHelperFunc) inventory.ServerToo return utils.NewToolResultText("project item successfully deleted"), nil, nil }, ) - tool.FeatureFlagDisable = FeatureFlagConsolidatedProjects + tool.FeatureFlagEnable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -1124,7 +1128,7 @@ Use this tool to list projects for a user or organization, or list project field } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedProjects + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -1236,7 +1240,7 @@ Use this tool to get details about individual projects, project fields, and proj } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedProjects + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedProjects return tool } @@ -1357,7 +1361,7 @@ func ProjectsWrite(t translations.TranslationHelperFunc) inventory.ServerTool { } }, ) - tool.FeatureFlagEnable = FeatureFlagConsolidatedProjects + tool.FeatureFlagDisable = FeatureFlagHoldbackConsolidatedProjects return tool } From 4f60af58bebcf793d379de740a5a6e6852774558 Mon Sep 17 00:00:00 2001 From: Matt Holloway Date: Mon, 26 Jan 2026 11:54:06 +0000 Subject: [PATCH 2/3] update docs --- README.md | 190 +++++++++++++----------------------------------------- 1 file changed, 45 insertions(+), 145 deletions(-) diff --git a/README.md b/README.md index 207c2b05f..325f87f40 100644 --- a/README.md +++ b/README.md @@ -522,108 +522,53 @@ The following sets of tools are available: workflow Actions -- **cancel_workflow_run** - Cancel workflow run +- **actions_get** - Get details of GitHub Actions resources (workflows, workflow runs, jobs, and artifacts) - **Required OAuth Scopes**: `repo` + - `method`: The method to execute (string, required) - `owner`: Repository owner (string, required) - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) + - `resource_id`: The unique identifier of the resource. This will vary based on the "method" provided, so ensure you provide the correct ID: + - Provide a workflow ID or workflow file name (e.g. ci.yaml) for 'get_workflow' method. + - Provide a workflow run ID for 'get_workflow_run', 'get_workflow_run_usage', and 'get_workflow_run_logs_url' methods. + - Provide an artifact ID for 'download_workflow_run_artifact' method. + - Provide a job ID for 'get_workflow_job' method. + (string, required) -- **delete_workflow_run_logs** - Delete workflow logs +- **actions_list** - List GitHub Actions workflows in a repository - **Required OAuth Scopes**: `repo` + - `method`: The action to perform (string, required) - `owner`: Repository owner (string, required) + - `page`: Page number for pagination (default: 1) (number, optional) + - `per_page`: Results per page for pagination (default: 30, max: 100) (number, optional) - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **download_workflow_run_artifact** - Download workflow artifact + - `resource_id`: The unique identifier of the resource. This will vary based on the "method" provided, so ensure you provide the correct ID: + - Do not provide any resource ID for 'list_workflows' method. + - Provide a workflow ID or workflow file name (e.g. ci.yaml) for 'list_workflow_runs' method, or omit to list all workflow runs in the repository. + - Provide a workflow run ID for 'list_workflow_jobs' and 'list_workflow_run_artifacts' methods. + (string, optional) + - `workflow_jobs_filter`: Filters for workflow jobs. **ONLY** used when method is 'list_workflow_jobs' (object, optional) + - `workflow_runs_filter`: Filters for workflow runs. **ONLY** used when method is 'list_workflow_runs' (object, optional) + +- **actions_run_trigger** - Trigger GitHub Actions workflow actions - **Required OAuth Scopes**: `repo` - - `artifact_id`: The unique identifier of the artifact (number, required) + - `inputs`: Inputs the workflow accepts. Only used for 'run_workflow' method. (object, optional) + - `method`: The method to execute (string, required) - `owner`: Repository owner (string, required) + - `ref`: The git reference for the workflow. The reference can be a branch or tag name. Required for 'run_workflow' method. (string, optional) - `repo`: Repository name (string, required) + - `run_id`: The ID of the workflow run. Required for all methods except 'run_workflow'. (number, optional) + - `workflow_id`: The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml). Required for 'run_workflow' method. (string, optional) -- **get_job_logs** - Get job logs +- **get_job_logs** - Get GitHub Actions workflow job logs - **Required OAuth Scopes**: `repo` - - `failed_only`: When true, gets logs for all failed jobs in run_id (boolean, optional) - - `job_id`: The unique identifier of the workflow job (required for single job logs) (number, optional) + - `failed_only`: When true, gets logs for all failed jobs in the workflow run specified by run_id. Requires run_id to be provided. (boolean, optional) + - `job_id`: The unique identifier of the workflow job. Required when getting logs for a single job. (number, optional) - `owner`: Repository owner (string, required) - `repo`: Repository name (string, required) - `return_content`: Returns actual log content instead of URLs (boolean, optional) - - `run_id`: Workflow run ID (required when using failed_only) (number, optional) + - `run_id`: The unique identifier of the workflow run. Required when failed_only is true to get logs for all failed jobs in the run. (number, optional) - `tail_lines`: Number of lines to return from the end of the log (number, optional) -- **get_workflow_run** - Get workflow run - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **get_workflow_run_logs** - Get workflow run logs - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **get_workflow_run_usage** - Get workflow usage - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **list_workflow_jobs** - List workflow jobs - - **Required OAuth Scopes**: `repo` - - `filter`: Filters jobs by their completed_at timestamp (string, optional) - - `owner`: Repository owner (string, required) - - `page`: Page number for pagination (min 1) (number, optional) - - `perPage`: Results per page for pagination (min 1, max 100) (number, optional) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **list_workflow_run_artifacts** - List workflow artifacts - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `page`: Page number for pagination (min 1) (number, optional) - - `perPage`: Results per page for pagination (min 1, max 100) (number, optional) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **list_workflow_runs** - List workflow runs - - **Required OAuth Scopes**: `repo` - - `actor`: Returns someone's workflow runs. Use the login for the user who created the workflow run. (string, optional) - - `branch`: Returns workflow runs associated with a branch. Use the name of the branch. (string, optional) - - `event`: Returns workflow runs for a specific event type (string, optional) - - `owner`: Repository owner (string, required) - - `page`: Page number for pagination (min 1) (number, optional) - - `perPage`: Results per page for pagination (min 1, max 100) (number, optional) - - `repo`: Repository name (string, required) - - `status`: Returns workflow runs with the check run status (string, optional) - - `workflow_id`: The workflow ID or workflow file name (string, required) - -- **list_workflows** - List workflows - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `page`: Page number for pagination (min 1) (number, optional) - - `perPage`: Results per page for pagination (min 1, max 100) (number, optional) - - `repo`: Repository name (string, required) - -- **rerun_failed_jobs** - Rerun failed jobs - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **rerun_workflow_run** - Rerun workflow run - - **Required OAuth Scopes**: `repo` - - `owner`: Repository owner (string, required) - - `repo`: Repository name (string, required) - - `run_id`: The unique identifier of the workflow run (number, required) - -- **run_workflow** - Run workflow - - **Required OAuth Scopes**: `repo` - - `inputs`: Inputs the workflow accepts (object, optional) - - `owner`: Repository owner (string, required) - - `ref`: The git reference for the workflow. The reference can be a branch or tag name. (string, required) - - `repo`: Repository name (string, required) - - `workflow_id`: The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml) (string, required) -
@@ -961,84 +906,39 @@ The following sets of tools are available: project Projects -- **add_project_item** - Add project item - - **Required OAuth Scopes**: `project` - - `item_id`: The numeric ID of the issue or pull request to add to the project. (number, required) - - `item_type`: The item's type, either issue or pull_request. (string, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `project_number`: The project's number. (number, required) - -- **delete_project_item** - Delete project item - - **Required OAuth Scopes**: `project` - - `item_id`: The internal project item ID to delete from the project (not the issue or pull request ID). (number, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `project_number`: The project's number. (number, required) - -- **get_project** - Get project - - **Required OAuth Scopes**: `read:project` - - **Accepted OAuth Scopes**: `project`, `read:project` - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `project_number`: The project's number (number, required) - -- **get_project_field** - Get project field - - **Required OAuth Scopes**: `read:project` - - **Accepted OAuth Scopes**: `project`, `read:project` - - `field_id`: The field's id. (number, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `project_number`: The project's number. (number, required) - -- **get_project_item** - Get project item - - **Required OAuth Scopes**: `read:project` - - **Accepted OAuth Scopes**: `project`, `read:project` - - `fields`: Specific list of field IDs to include in the response (e.g. ["102589", "985201", "169875"]). If not provided, only the title field is included. (string[], optional) - - `item_id`: The item's ID. (number, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `project_number`: The project's number. (number, required) - -- **list_project_fields** - List project fields - - **Required OAuth Scopes**: `read:project` - - **Accepted OAuth Scopes**: `project`, `read:project` - - `after`: Forward pagination cursor from previous pageInfo.nextCursor. (string, optional) - - `before`: Backward pagination cursor from previous pageInfo.prevCursor (rare). (string, optional) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) - - `per_page`: Results per page (max 50) (number, optional) - - `project_number`: The project's number. (number, required) - -- **list_project_items** - List project items +- **projects_get** - Get details of GitHub Projects resources - **Required OAuth Scopes**: `read:project` - **Accepted OAuth Scopes**: `project`, `read:project` - - `after`: Forward pagination cursor from previous pageInfo.nextCursor. (string, optional) - - `before`: Backward pagination cursor from previous pageInfo.prevCursor (rare). (string, optional) - - `fields`: Field IDs to include (e.g. ["102589", "985201"]). CRITICAL: Always provide to get field values. Without this, only titles returned. (string[], optional) + - `field_id`: The field's ID. Required for 'get_project_field' method. (number, optional) + - `fields`: Specific list of field IDs to include in the response when getting a project item (e.g. ["102589", "985201", "169875"]). If not provided, only the title field is included. Only used for 'get_project_item' method. (string[], optional) + - `item_id`: The item's ID. Required for 'get_project_item' method. (number, optional) + - `method`: The method to execute (string, required) - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - `owner_type`: Owner type (string, required) - - `per_page`: Results per page (max 50) (number, optional) - `project_number`: The project's number. (number, required) - - `query`: Query string for advanced filtering of project items using GitHub's project filtering syntax. (string, optional) -- **list_projects** - List projects +- **projects_list** - List GitHub Projects resources - **Required OAuth Scopes**: `read:project` - **Accepted OAuth Scopes**: `project`, `read:project` - `after`: Forward pagination cursor from previous pageInfo.nextCursor. (string, optional) - `before`: Backward pagination cursor from previous pageInfo.prevCursor (rare). (string, optional) + - `fields`: Field IDs to include when listing project items (e.g. ["102589", "985201"]). CRITICAL: Always provide to get field values. Without this, only titles returned. Only used for 'list_project_items' method. (string[], optional) + - `method`: The action to perform (string, required) - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - `owner_type`: Owner type (string, required) - `per_page`: Results per page (max 50) (number, optional) - - `query`: Filter projects by title text and open/closed state; permitted qualifiers: is:open, is:closed; examples: "roadmap is:open", "is:open feature planning". (string, optional) + - `project_number`: The project's number. Required for 'list_project_fields' and 'list_project_items' methods. (number, optional) + - `query`: Filter/query string. For list_projects: filter by title text and state (e.g. "roadmap is:open"). For list_project_items: advanced filtering using GitHub's project filtering syntax. (string, optional) -- **update_project_item** - Update project item +- **projects_write** - Modify GitHub Project items - **Required OAuth Scopes**: `project` - - `item_id`: The unique identifier of the project item. This is not the issue or pull request ID. (number, required) + - `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. For add_project_item, this is the numeric ID of the issue or pull request to add. (number, optional) + - `item_type`: The item's type, either issue or pull_request. Required for 'add_project_item' method. (string, optional) + - `method`: The method to execute (string, required) - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - `owner_type`: Owner type (string, required) - `project_number`: The project's number. (number, required) - - `updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {"id": 123456, "value": "New Value"} (object, required) + - `updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {"id": 123456, "value": "New Value"}. Required for 'update_project_item' method. (object, optional)
From 5c0ec57e1f2ea17c9e48d6b5884c88f3c72b278c Mon Sep 17 00:00:00 2001 From: Matt Holloway Date: Mon, 26 Jan 2026 12:01:46 +0000 Subject: [PATCH 3/3] docs update (2) --- README.md | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index c0e95cfc0..c7e8cd48e 100644 --- a/README.md +++ b/README.md @@ -981,8 +981,8 @@ The following sets of tools are available: - `fields`: Specific list of field IDs to include in the response when getting a project item (e.g. ["102589", "985201", "169875"]). If not provided, only the title field is included. Only used for 'get_project_item' method. (string[], optional) - `item_id`: The item's ID. Required for 'get_project_item' method. (number, optional) - `method`: The method to execute (string, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) + - `owner`: The owner (user or organization login). The name is not case sensitive. (string, required) + - `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional) - `project_number`: The project's number. (number, required) - **projects_list** - List GitHub Projects resources @@ -992,20 +992,24 @@ The following sets of tools are available: - `before`: Backward pagination cursor from previous pageInfo.prevCursor (rare). (string, optional) - `fields`: Field IDs to include when listing project items (e.g. ["102589", "985201"]). CRITICAL: Always provide to get field values. Without this, only titles returned. Only used for 'list_project_items' method. (string[], optional) - `method`: The action to perform (string, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) + - `owner`: The owner (user or organization login). The name is not case sensitive. (string, required) + - `owner_type`: Owner type (user or org). If not provided, will automatically try both. (string, optional) - `per_page`: Results per page (max 50) (number, optional) - `project_number`: The project's number. Required for 'list_project_fields' and 'list_project_items' methods. (number, optional) - `query`: Filter/query string. For list_projects: filter by title text and state (e.g. "roadmap is:open"). For list_project_items: advanced filtering using GitHub's project filtering syntax. (string, optional) - **projects_write** - Modify GitHub Project items - **Required OAuth Scopes**: `project` - - `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. For add_project_item, this is the numeric ID of the issue or pull request to add. (number, optional) + - `issue_number`: The issue number (use when item_type is 'issue' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional) + - `item_id`: The project item ID. Required for 'update_project_item' and 'delete_project_item' methods. (number, optional) + - `item_owner`: The owner (user or organization) of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional) + - `item_repo`: The name of the repository containing the issue or pull request. Required for 'add_project_item' method. (string, optional) - `item_type`: The item's type, either issue or pull_request. Required for 'add_project_item' method. (string, optional) - `method`: The method to execute (string, required) - - `owner`: If owner_type == user it is the handle for the GitHub user account. If owner_type == org it is the name of the organization. The name is not case sensitive. (string, required) - - `owner_type`: Owner type (string, required) + - `owner`: The project owner (user or organization login). The name is not case sensitive. (string, required) + - `owner_type`: Owner type (user or org). If not provided, will be automatically detected. (string, optional) - `project_number`: The project's number. (number, required) + - `pull_request_number`: The pull request number (use when item_type is 'pull_request' for 'add_project_item' method). Provide either issue_number or pull_request_number. (number, optional) - `updated_field`: Object consisting of the ID of the project field to update and the new value for the field. To clear the field, set value to null. Example: {"id": 123456, "value": "New Value"}. Required for 'update_project_item' method. (object, optional)