From a26079a4b1e25b036af5e9960d2f1c4ced9bd648 Mon Sep 17 00:00:00 2001 From: Adam Holt Date: Tue, 30 Dec 2025 13:36:25 +0100 Subject: [PATCH] Add open world hints for tools. Tools that return user generated content should have open world hints, to allow clients to inform users that the content may be untrusted and prompt them to approve the request before executing it. --- pkg/github/__toolsnaps__/actions_get.snap | 15 +++--- pkg/github/__toolsnaps__/actions_list.snap | 1 + .../__toolsnaps__/actions_run_trigger.snap | 12 ++--- .../add_comment_to_pending_review.snap | 18 +++---- .../__toolsnaps__/add_issue_comment.snap | 14 +++--- .../__toolsnaps__/add_project_item.snap | 16 +++--- .../assign_copilot_to_issue.snap | 12 ++--- .../__toolsnaps__/cancel_workflow_run.snap | 12 ++--- pkg/github/__toolsnaps__/create_branch.snap | 12 ++--- pkg/github/__toolsnaps__/create_gist.snap | 10 ++-- .../__toolsnaps__/create_or_update_file.snap | 18 +++---- .../__toolsnaps__/create_pull_request.snap | 16 +++--- .../__toolsnaps__/create_repository.snap | 8 +-- pkg/github/__toolsnaps__/delete_file.snap | 16 +++--- .../__toolsnaps__/delete_project_item.snap | 14 +++--- .../delete_workflow_run_logs.snap | 12 ++--- .../__toolsnaps__/dismiss_notification.snap | 10 ++-- .../download_workflow_run_artifact.snap | 12 ++--- pkg/github/__toolsnaps__/fork_repository.snap | 10 ++-- .../get_code_scanning_alert.snap | 13 ++--- pkg/github/__toolsnaps__/get_commit.snap | 13 ++--- .../__toolsnaps__/get_dependabot_alert.snap | 13 ++--- pkg/github/__toolsnaps__/get_discussion.snap | 13 ++--- .../get_discussion_comments.snap | 13 ++--- .../__toolsnaps__/get_file_contents.snap | 11 ++-- pkg/github/__toolsnaps__/get_gist.snap | 9 ++-- .../get_global_security_advisory.snap | 9 ++-- pkg/github/__toolsnaps__/get_job_logs.snap | 11 ++-- pkg/github/__toolsnaps__/get_label.snap | 13 ++--- .../__toolsnaps__/get_latest_release.snap | 11 ++-- pkg/github/__toolsnaps__/get_me.snap | 1 + .../get_notification_details.snap | 9 ++-- pkg/github/__toolsnaps__/get_project.snap | 13 ++--- .../__toolsnaps__/get_project_field.snap | 15 +++--- .../__toolsnaps__/get_project_item.snap | 19 +++---- .../__toolsnaps__/get_release_by_tag.snap | 13 ++--- .../__toolsnaps__/get_repository_tree.snap | 11 ++-- .../get_secret_scanning_alert.snap | 13 ++--- pkg/github/__toolsnaps__/get_tag.snap | 13 ++--- .../__toolsnaps__/get_team_members.snap | 11 ++-- pkg/github/__toolsnaps__/get_teams.snap | 1 + .../__toolsnaps__/get_workflow_run.snap | 13 ++--- .../__toolsnaps__/get_workflow_run_logs.snap | 13 ++--- .../__toolsnaps__/get_workflow_run_usage.snap | 12 ++--- pkg/github/__toolsnaps__/issue_read.snap | 15 +++--- pkg/github/__toolsnaps__/issue_write.snap | 20 ++++---- pkg/github/__toolsnaps__/label_write.snap | 14 +++--- pkg/github/__toolsnaps__/list_branches.snap | 11 ++-- .../list_code_scanning_alerts.snap | 11 ++-- pkg/github/__toolsnaps__/list_commits.snap | 11 ++-- .../__toolsnaps__/list_dependabot_alerts.snap | 11 ++-- .../list_discussion_categories.snap | 9 ++-- .../__toolsnaps__/list_discussions.snap | 9 ++-- pkg/github/__toolsnaps__/list_gists.snap | 1 + .../list_global_security_advisories.snap | 5 +- .../__toolsnaps__/list_issue_types.snap | 9 ++-- pkg/github/__toolsnaps__/list_issues.snap | 15 +++--- pkg/github/__toolsnaps__/list_label.snap | 11 ++-- .../__toolsnaps__/list_notifications.snap | 1 + ...st_org_repository_security_advisories.snap | 9 ++-- .../__toolsnaps__/list_project_fields.snap | 13 ++--- .../__toolsnaps__/list_project_items.snap | 17 ++++--- pkg/github/__toolsnaps__/list_projects.snap | 11 ++-- .../__toolsnaps__/list_pull_requests.snap | 11 ++-- pkg/github/__toolsnaps__/list_releases.snap | 11 ++-- .../list_repository_security_advisories.snap | 11 ++-- .../list_secret_scanning_alerts.snap | 11 ++-- .../list_starred_repositories.snap | 1 + pkg/github/__toolsnaps__/list_tags.snap | 11 ++-- .../__toolsnaps__/list_workflow_jobs.snap | 13 ++--- .../list_workflow_run_artifacts.snap | 13 ++--- .../__toolsnaps__/list_workflow_runs.snap | 13 ++--- pkg/github/__toolsnaps__/list_workflows.snap | 11 ++-- .../manage_notification_subscription.snap | 10 ++-- ..._repository_notification_subscription.snap | 12 ++--- .../__toolsnaps__/merge_pull_request.snap | 12 ++--- .../__toolsnaps__/pull_request_read.snap | 15 +++--- .../pull_request_review_write.snap | 14 +++--- pkg/github/__toolsnaps__/push_files.snap | 30 +++++------ .../__toolsnaps__/request_copilot_review.snap | 12 ++--- .../__toolsnaps__/rerun_failed_jobs.snap | 12 ++--- .../__toolsnaps__/rerun_workflow_run.snap | 12 ++--- pkg/github/__toolsnaps__/run_workflow.snap | 14 +++--- pkg/github/__toolsnaps__/search_code.snap | 9 ++-- pkg/github/__toolsnaps__/search_issues.snap | 9 ++-- pkg/github/__toolsnaps__/search_orgs.snap | 9 ++-- .../__toolsnaps__/search_pull_requests.snap | 9 ++-- .../__toolsnaps__/search_repositories.snap | 9 ++-- pkg/github/__toolsnaps__/search_users.snap | 9 ++-- pkg/github/__toolsnaps__/star_repository.snap | 10 ++-- pkg/github/__toolsnaps__/sub_issue_write.snap | 16 +++--- .../__toolsnaps__/unstar_repository.snap | 10 ++-- pkg/github/__toolsnaps__/update_gist.snap | 12 ++--- .../__toolsnaps__/update_project_item.snap | 16 +++--- .../__toolsnaps__/update_pull_request.snap | 16 +++--- .../update_pull_request_branch.snap | 12 ++--- pkg/github/actions.go | 50 +++++++++++-------- pkg/github/code_scanning.go | 10 ++-- pkg/github/context_tools.go | 15 +++--- pkg/github/dependabot.go | 10 ++-- pkg/github/discussions.go | 20 +++++--- pkg/github/gists.go | 10 ++-- pkg/github/git.go | 5 +- pkg/github/issues.go | 20 +++++--- pkg/github/labels.go | 10 ++-- pkg/github/notifications.go | 10 ++-- pkg/github/projects.go | 30 ++++++----- pkg/github/pullrequests.go | 15 +++--- pkg/github/repositories.go | 50 +++++++++++-------- pkg/github/search.go | 20 +++++--- pkg/github/secret_scanning.go | 10 ++-- pkg/github/security_advisories.go | 20 +++++--- 112 files changed, 774 insertions(+), 653 deletions(-) diff --git a/pkg/github/__toolsnaps__/actions_get.snap b/pkg/github/__toolsnaps__/actions_get.snap index b5f3b85bd3..449e994e84 100644 --- a/pkg/github/__toolsnaps__/actions_get.snap +++ b/pkg/github/__toolsnaps__/actions_get.snap @@ -1,17 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get details of GitHub Actions resources (workflows, workflow runs, jobs, and artifacts)" }, "description": "Get details about specific GitHub Actions resources.\nUse this tool to get details about individual workflows, workflow runs, jobs, and artifacts by their unique IDs.\n", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "resource_id" - ], "properties": { "method": { "type": "string", @@ -37,7 +32,13 @@ "type": "string", "description": "The unique identifier of the resource. This will vary based on the \"method\" provided, so ensure you provide the correct ID:\n- Provide a workflow ID or workflow file name (e.g. ci.yaml) for 'get_workflow' method.\n- Provide a workflow run ID for 'get_workflow_run', 'get_workflow_run_usage', and 'get_workflow_run_logs_url' methods.\n- Provide an artifact ID for 'download_workflow_run_artifact' method.\n- Provide a job ID for 'get_workflow_job' method.\n" } - } + }, + "required": [ + "method", + "owner", + "repo", + "resource_id" + ] }, "name": "actions_get" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/actions_list.snap b/pkg/github/__toolsnaps__/actions_list.snap index 4bd0293880..f320e355e7 100644 --- a/pkg/github/__toolsnaps__/actions_list.snap +++ b/pkg/github/__toolsnaps__/actions_list.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List GitHub Actions workflows in a repository" }, diff --git a/pkg/github/__toolsnaps__/actions_run_trigger.snap b/pkg/github/__toolsnaps__/actions_run_trigger.snap index 4e16f89581..279ef357b2 100644 --- a/pkg/github/__toolsnaps__/actions_run_trigger.snap +++ b/pkg/github/__toolsnaps__/actions_run_trigger.snap @@ -6,11 +6,6 @@ "description": "Trigger GitHub Actions workflow operations, including running, re-running, cancelling workflow runs, and deleting workflow run logs.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo" - ], "properties": { "inputs": { "type": "object", @@ -47,7 +42,12 @@ "type": "string", "description": "The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml). Required for 'run_workflow' method." } - } + }, + "required": [ + "method", + "owner", + "repo" + ] }, "name": "actions_run_trigger" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/add_comment_to_pending_review.snap b/pkg/github/__toolsnaps__/add_comment_to_pending_review.snap index 78795c0961..a3fcdca3c3 100644 --- a/pkg/github/__toolsnaps__/add_comment_to_pending_review.snap +++ b/pkg/github/__toolsnaps__/add_comment_to_pending_review.snap @@ -5,14 +5,6 @@ "description": "Add review comment to the requester's latest pending pull request review. A pending review needs to already exist to call this (check with the user if not sure).", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "pullNumber", - "path", - "body", - "subjectType" - ], "properties": { "body": { "type": "string", @@ -66,7 +58,15 @@ "LINE" ] } - } + }, + "required": [ + "owner", + "repo", + "pullNumber", + "path", + "body", + "subjectType" + ] }, "name": "add_comment_to_pending_review" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/add_issue_comment.snap b/pkg/github/__toolsnaps__/add_issue_comment.snap index fb2a9e7b39..51703c1522 100644 --- a/pkg/github/__toolsnaps__/add_issue_comment.snap +++ b/pkg/github/__toolsnaps__/add_issue_comment.snap @@ -5,12 +5,6 @@ "description": "Add a comment to a specific issue in a GitHub repository. Use this tool to add comments to pull requests as well (in this case pass pull request number as issue_number), but only if user is not asking specifically to add review comments.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "issue_number", - "body" - ], "properties": { "body": { "type": "string", @@ -28,7 +22,13 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "issue_number", + "body" + ] }, "name": "add_issue_comment" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/add_project_item.snap b/pkg/github/__toolsnaps__/add_project_item.snap index 08f4953706..715748eea6 100644 --- a/pkg/github/__toolsnaps__/add_project_item.snap +++ b/pkg/github/__toolsnaps__/add_project_item.snap @@ -5,13 +5,6 @@ "description": "Add a specific Project item for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number", - "item_type", - "item_id" - ], "properties": { "item_id": { "type": "number", @@ -41,7 +34,14 @@ "type": "number", "description": "The project's number." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number", + "item_type", + "item_id" + ] }, "name": "add_project_item" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/assign_copilot_to_issue.snap b/pkg/github/__toolsnaps__/assign_copilot_to_issue.snap index 22c3800558..85564db103 100644 --- a/pkg/github/__toolsnaps__/assign_copilot_to_issue.snap +++ b/pkg/github/__toolsnaps__/assign_copilot_to_issue.snap @@ -6,11 +6,6 @@ "description": "Assign Copilot to a specific issue in a GitHub repository.\n\nThis tool can help with the following outcomes:\n- a Pull Request created with source code changes to resolve the issue\n\n\nMore information can be found at:\n- https://docs.github.com/en/copilot/using-github-copilot/using-copilot-coding-agent-to-work-on-tasks/about-assigning-tasks-to-copilot\n", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "issueNumber" - ], "properties": { "issueNumber": { "type": "number", @@ -24,7 +19,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "issueNumber" + ] }, "name": "assign_copilot_to_issue", "icons": [ diff --git a/pkg/github/__toolsnaps__/cancel_workflow_run.snap b/pkg/github/__toolsnaps__/cancel_workflow_run.snap index 83eb31a7f9..a8e75bcc21 100644 --- a/pkg/github/__toolsnaps__/cancel_workflow_run.snap +++ b/pkg/github/__toolsnaps__/cancel_workflow_run.snap @@ -5,11 +5,6 @@ "description": "Cancel a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -23,7 +18,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "cancel_workflow_run" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/create_branch.snap b/pkg/github/__toolsnaps__/create_branch.snap index 675a2de9c0..223b2d44e0 100644 --- a/pkg/github/__toolsnaps__/create_branch.snap +++ b/pkg/github/__toolsnaps__/create_branch.snap @@ -5,11 +5,6 @@ "description": "Create a new branch in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "branch" - ], "properties": { "branch": { "type": "string", @@ -27,7 +22,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "branch" + ] }, "name": "create_branch" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/create_gist.snap b/pkg/github/__toolsnaps__/create_gist.snap index 465206ab43..be166f5526 100644 --- a/pkg/github/__toolsnaps__/create_gist.snap +++ b/pkg/github/__toolsnaps__/create_gist.snap @@ -5,10 +5,6 @@ "description": "Create a new gist", "inputSchema": { "type": "object", - "required": [ - "filename", - "content" - ], "properties": { "content": { "type": "string", @@ -27,7 +23,11 @@ "description": "Whether the gist is public", "default": false } - } + }, + "required": [ + "filename", + "content" + ] }, "name": "create_gist" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/create_or_update_file.snap b/pkg/github/__toolsnaps__/create_or_update_file.snap index 2d9ae1144f..edfa73cb4f 100644 --- a/pkg/github/__toolsnaps__/create_or_update_file.snap +++ b/pkg/github/__toolsnaps__/create_or_update_file.snap @@ -5,14 +5,6 @@ "description": "Create or update a single file in a GitHub repository. \nIf updating, you should provide the SHA of the file you want to update. Use this tool to create or update a file in a GitHub repository remotely; do not use it for local file operations.\n\nIn order to obtain the SHA of original file version before updating, use the following git command:\ngit ls-tree HEAD \u003cpath to file\u003e\n\nIf the SHA is not provided, the tool will attempt to acquire it by fetching the current file contents from the repository, which may lead to rewriting latest committed changes if the file has changed since last retrieval.\n", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "path", - "content", - "message", - "branch" - ], "properties": { "branch": { "type": "string", @@ -42,7 +34,15 @@ "type": "string", "description": "The blob SHA of the file being replaced." } - } + }, + "required": [ + "owner", + "repo", + "path", + "content", + "message", + "branch" + ] }, "name": "create_or_update_file" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/create_pull_request.snap b/pkg/github/__toolsnaps__/create_pull_request.snap index 80f0b98633..c32272b7a1 100644 --- a/pkg/github/__toolsnaps__/create_pull_request.snap +++ b/pkg/github/__toolsnaps__/create_pull_request.snap @@ -5,13 +5,6 @@ "description": "Create a new pull request in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "title", - "head", - "base" - ], "properties": { "base": { "type": "string", @@ -45,7 +38,14 @@ "type": "string", "description": "PR title" } - } + }, + "required": [ + "owner", + "repo", + "title", + "head", + "base" + ] }, "name": "create_pull_request" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/create_repository.snap b/pkg/github/__toolsnaps__/create_repository.snap index 290767c667..298d3ca163 100644 --- a/pkg/github/__toolsnaps__/create_repository.snap +++ b/pkg/github/__toolsnaps__/create_repository.snap @@ -5,9 +5,6 @@ "description": "Create a new GitHub repository in your account or specified organization", "inputSchema": { "type": "object", - "required": [ - "name" - ], "properties": { "autoInit": { "type": "boolean", @@ -29,7 +26,10 @@ "type": "boolean", "description": "Whether repo should be private" } - } + }, + "required": [ + "name" + ] }, "name": "create_repository" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/delete_file.snap b/pkg/github/__toolsnaps__/delete_file.snap index b985154e86..ca1dbcd36a 100644 --- a/pkg/github/__toolsnaps__/delete_file.snap +++ b/pkg/github/__toolsnaps__/delete_file.snap @@ -6,13 +6,6 @@ "description": "Delete a file from a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "path", - "message", - "branch" - ], "properties": { "branch": { "type": "string", @@ -34,7 +27,14 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "path", + "message", + "branch" + ] }, "name": "delete_file" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/delete_project_item.snap b/pkg/github/__toolsnaps__/delete_project_item.snap index 430c83cc86..f4bf66c72e 100644 --- a/pkg/github/__toolsnaps__/delete_project_item.snap +++ b/pkg/github/__toolsnaps__/delete_project_item.snap @@ -6,12 +6,6 @@ "description": "Delete a specific Project item for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number", - "item_id" - ], "properties": { "item_id": { "type": "number", @@ -33,7 +27,13 @@ "type": "number", "description": "The project's number." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number", + "item_id" + ] }, "name": "delete_project_item" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/delete_workflow_run_logs.snap b/pkg/github/__toolsnaps__/delete_workflow_run_logs.snap index fc9a5cd46c..21530058b9 100644 --- a/pkg/github/__toolsnaps__/delete_workflow_run_logs.snap +++ b/pkg/github/__toolsnaps__/delete_workflow_run_logs.snap @@ -6,11 +6,6 @@ "description": "Delete logs for a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -24,7 +19,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "delete_workflow_run_logs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/dismiss_notification.snap b/pkg/github/__toolsnaps__/dismiss_notification.snap index b0125ba536..88f7c2bba8 100644 --- a/pkg/github/__toolsnaps__/dismiss_notification.snap +++ b/pkg/github/__toolsnaps__/dismiss_notification.snap @@ -5,10 +5,6 @@ "description": "Dismiss a notification by marking it as read or done", "inputSchema": { "type": "object", - "required": [ - "threadID", - "state" - ], "properties": { "state": { "type": "string", @@ -22,7 +18,11 @@ "type": "string", "description": "The ID of the notification thread" } - } + }, + "required": [ + "threadID", + "state" + ] }, "name": "dismiss_notification" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/download_workflow_run_artifact.snap b/pkg/github/__toolsnaps__/download_workflow_run_artifact.snap index c4d89872ce..b402b422d1 100644 --- a/pkg/github/__toolsnaps__/download_workflow_run_artifact.snap +++ b/pkg/github/__toolsnaps__/download_workflow_run_artifact.snap @@ -6,11 +6,6 @@ "description": "Get download URL for a workflow run artifact", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "artifact_id" - ], "properties": { "artifact_id": { "type": "number", @@ -24,7 +19,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "artifact_id" + ] }, "name": "download_workflow_run_artifact" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/fork_repository.snap b/pkg/github/__toolsnaps__/fork_repository.snap index 18525a4f72..fcef4f0298 100644 --- a/pkg/github/__toolsnaps__/fork_repository.snap +++ b/pkg/github/__toolsnaps__/fork_repository.snap @@ -5,10 +5,6 @@ "description": "Fork a GitHub repository to your account or specified organization", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "organization": { "type": "string", @@ -22,7 +18,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "fork_repository", "icons": [ diff --git a/pkg/github/__toolsnaps__/get_code_scanning_alert.snap b/pkg/github/__toolsnaps__/get_code_scanning_alert.snap index 9e46b960a3..8efe00e382 100644 --- a/pkg/github/__toolsnaps__/get_code_scanning_alert.snap +++ b/pkg/github/__toolsnaps__/get_code_scanning_alert.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get code scanning alert" }, "description": "Get details of a specific code scanning alert in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "alertNumber" - ], "properties": { "alertNumber": { "type": "number", @@ -24,7 +20,12 @@ "type": "string", "description": "The name of the repository." } - } + }, + "required": [ + "owner", + "repo", + "alertNumber" + ] }, "name": "get_code_scanning_alert" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_commit.snap b/pkg/github/__toolsnaps__/get_commit.snap index c6b96d5ed9..9ccc059376 100644 --- a/pkg/github/__toolsnaps__/get_commit.snap +++ b/pkg/github/__toolsnaps__/get_commit.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get commit details" }, "description": "Get details for a commit from a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "sha" - ], "properties": { "include_diff": { "type": "boolean", @@ -40,7 +36,12 @@ "type": "string", "description": "Commit SHA, branch name, or tag name" } - } + }, + "required": [ + "owner", + "repo", + "sha" + ] }, "name": "get_commit" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_dependabot_alert.snap b/pkg/github/__toolsnaps__/get_dependabot_alert.snap index a517809e2b..2422f26f2c 100644 --- a/pkg/github/__toolsnaps__/get_dependabot_alert.snap +++ b/pkg/github/__toolsnaps__/get_dependabot_alert.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get dependabot alert" }, "description": "Get details of a specific dependabot alert in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "alertNumber" - ], "properties": { "alertNumber": { "type": "number", @@ -24,7 +20,12 @@ "type": "string", "description": "The name of the repository." } - } + }, + "required": [ + "owner", + "repo", + "alertNumber" + ] }, "name": "get_dependabot_alert" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_discussion.snap b/pkg/github/__toolsnaps__/get_discussion.snap index feef0f0575..5d2a191d8d 100644 --- a/pkg/github/__toolsnaps__/get_discussion.snap +++ b/pkg/github/__toolsnaps__/get_discussion.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get discussion" }, "description": "Get a specific discussion by ID", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "discussionNumber" - ], "properties": { "discussionNumber": { "type": "number", @@ -24,7 +20,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "discussionNumber" + ] }, "name": "get_discussion" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_discussion_comments.snap b/pkg/github/__toolsnaps__/get_discussion_comments.snap index 3af5edc8ce..9956ba3967 100644 --- a/pkg/github/__toolsnaps__/get_discussion_comments.snap +++ b/pkg/github/__toolsnaps__/get_discussion_comments.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get discussion comments" }, "description": "Get comments from a discussion", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "discussionNumber" - ], "properties": { "after": { "type": "string", @@ -34,7 +30,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "discussionNumber" + ] }, "name": "get_discussion_comments" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_file_contents.snap b/pkg/github/__toolsnaps__/get_file_contents.snap index 638452fe7b..c3544fbda9 100644 --- a/pkg/github/__toolsnaps__/get_file_contents.snap +++ b/pkg/github/__toolsnaps__/get_file_contents.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get file or directory contents" }, "description": "Get the contents of a file or directory from a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -32,7 +29,11 @@ "type": "string", "description": "Accepts optional commit SHA. If specified, it will be used instead of ref" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "get_file_contents" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_gist.snap b/pkg/github/__toolsnaps__/get_gist.snap index 4d26618221..51d46311b2 100644 --- a/pkg/github/__toolsnaps__/get_gist.snap +++ b/pkg/github/__toolsnaps__/get_gist.snap @@ -1,20 +1,21 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get Gist Content" }, "description": "Get gist content of a particular gist, by gist ID", "inputSchema": { "type": "object", - "required": [ - "gist_id" - ], "properties": { "gist_id": { "type": "string", "description": "The ID of the gist" } - } + }, + "required": [ + "gist_id" + ] }, "name": "get_gist" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_global_security_advisory.snap b/pkg/github/__toolsnaps__/get_global_security_advisory.snap index 18c30425a8..de7279a46c 100644 --- a/pkg/github/__toolsnaps__/get_global_security_advisory.snap +++ b/pkg/github/__toolsnaps__/get_global_security_advisory.snap @@ -1,20 +1,21 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get a global security advisory" }, "description": "Get a global security advisory", "inputSchema": { "type": "object", - "required": [ - "ghsaId" - ], "properties": { "ghsaId": { "type": "string", "description": "GitHub Security Advisory ID (format: GHSA-xxxx-xxxx-xxxx)." } - } + }, + "required": [ + "ghsaId" + ] }, "name": "get_global_security_advisory" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_job_logs.snap b/pkg/github/__toolsnaps__/get_job_logs.snap index 8b2319527d..d8c96a97a0 100644 --- a/pkg/github/__toolsnaps__/get_job_logs.snap +++ b/pkg/github/__toolsnaps__/get_job_logs.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get job logs" }, "description": "Download logs for a specific workflow job or efficiently get all failed job logs for a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "failed_only": { "type": "boolean", @@ -40,7 +37,11 @@ "description": "Number of lines to return from the end of the log", "default": 500 } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "get_job_logs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_label.snap b/pkg/github/__toolsnaps__/get_label.snap index 8541044d03..d6e2644c0c 100644 --- a/pkg/github/__toolsnaps__/get_label.snap +++ b/pkg/github/__toolsnaps__/get_label.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get a specific label from a repository." }, "description": "Get a specific label from a repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "name" - ], "properties": { "name": { "type": "string", @@ -24,7 +20,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "name" + ] }, "name": "get_label" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_latest_release.snap b/pkg/github/__toolsnaps__/get_latest_release.snap index 23b551a0f6..fc1835e51c 100644 --- a/pkg/github/__toolsnaps__/get_latest_release.snap +++ b/pkg/github/__toolsnaps__/get_latest_release.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get latest release" }, "description": "Get the latest release in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -19,7 +16,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "get_latest_release" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_me.snap b/pkg/github/__toolsnaps__/get_me.snap index e6d02929fa..0fa7e99de0 100644 --- a/pkg/github/__toolsnaps__/get_me.snap +++ b/pkg/github/__toolsnaps__/get_me.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get my user profile" }, diff --git a/pkg/github/__toolsnaps__/get_notification_details.snap b/pkg/github/__toolsnaps__/get_notification_details.snap index de197f2b14..b271b954bf 100644 --- a/pkg/github/__toolsnaps__/get_notification_details.snap +++ b/pkg/github/__toolsnaps__/get_notification_details.snap @@ -1,20 +1,21 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get notification details" }, "description": "Get detailed information for a specific GitHub notification, always call this tool when the user asks for details about a specific notification, if you don't know the ID list notifications first.", "inputSchema": { "type": "object", - "required": [ - "notificationID" - ], "properties": { "notificationID": { "type": "string", "description": "The ID of the notification" } - } + }, + "required": [ + "notificationID" + ] }, "name": "get_notification_details" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_project.snap b/pkg/github/__toolsnaps__/get_project.snap index 8194b7358e..1083554a8b 100644 --- a/pkg/github/__toolsnaps__/get_project.snap +++ b/pkg/github/__toolsnaps__/get_project.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get project" }, "description": "Get Project for a user or org", "inputSchema": { "type": "object", - "required": [ - "project_number", - "owner_type", - "owner" - ], "properties": { "owner": { "type": "string", @@ -28,7 +24,12 @@ "type": "number", "description": "The project's number" } - } + }, + "required": [ + "project_number", + "owner_type", + "owner" + ] }, "name": "get_project" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_project_field.snap b/pkg/github/__toolsnaps__/get_project_field.snap index 0df557a032..526244d416 100644 --- a/pkg/github/__toolsnaps__/get_project_field.snap +++ b/pkg/github/__toolsnaps__/get_project_field.snap @@ -1,17 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get project field" }, "description": "Get Project field for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number", - "field_id" - ], "properties": { "field_id": { "type": "number", @@ -33,7 +28,13 @@ "type": "number", "description": "The project's number." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number", + "field_id" + ] }, "name": "get_project_field" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_project_item.snap b/pkg/github/__toolsnaps__/get_project_item.snap index d77c49c1ef..c4747f2452 100644 --- a/pkg/github/__toolsnaps__/get_project_item.snap +++ b/pkg/github/__toolsnaps__/get_project_item.snap @@ -1,24 +1,19 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get project item" }, "description": "Get a specific Project item for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number", - "item_id" - ], "properties": { "fields": { "type": "array", - "description": "Specific list of field IDs to include in the response (e.g. [\"102589\", \"985201\", \"169875\"]). If not provided, only the title field is included.", "items": { "type": "string" - } + }, + "description": "Specific list of field IDs to include in the response (e.g. [\"102589\", \"985201\", \"169875\"]). If not provided, only the title field is included." }, "item_id": { "type": "number", @@ -40,7 +35,13 @@ "type": "number", "description": "The project's number." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number", + "item_id" + ] }, "name": "get_project_item" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_release_by_tag.snap b/pkg/github/__toolsnaps__/get_release_by_tag.snap index 77f19488c8..eba384812f 100644 --- a/pkg/github/__toolsnaps__/get_release_by_tag.snap +++ b/pkg/github/__toolsnaps__/get_release_by_tag.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get a release by tag name" }, "description": "Get a specific release by its tag name in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "tag" - ], "properties": { "owner": { "type": "string", @@ -24,7 +20,12 @@ "type": "string", "description": "Tag name (e.g., 'v1.0.0')" } - } + }, + "required": [ + "owner", + "repo", + "tag" + ] }, "name": "get_release_by_tag" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_repository_tree.snap b/pkg/github/__toolsnaps__/get_repository_tree.snap index 8824628839..2bf542b217 100644 --- a/pkg/github/__toolsnaps__/get_repository_tree.snap +++ b/pkg/github/__toolsnaps__/get_repository_tree.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get repository tree" }, "description": "Get the tree structure (files and directories) of a GitHub repository at a specific ref or SHA", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -32,7 +29,11 @@ "type": "string", "description": "The SHA1 value or ref (branch or tag) name of the tree. Defaults to the repository's default branch" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "get_repository_tree" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_secret_scanning_alert.snap b/pkg/github/__toolsnaps__/get_secret_scanning_alert.snap index 4d55011da3..9b6b21e924 100644 --- a/pkg/github/__toolsnaps__/get_secret_scanning_alert.snap +++ b/pkg/github/__toolsnaps__/get_secret_scanning_alert.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get secret scanning alert" }, "description": "Get details of a specific secret scanning alert in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "alertNumber" - ], "properties": { "alertNumber": { "type": "number", @@ -24,7 +20,12 @@ "type": "string", "description": "The name of the repository." } - } + }, + "required": [ + "owner", + "repo", + "alertNumber" + ] }, "name": "get_secret_scanning_alert" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_tag.snap b/pkg/github/__toolsnaps__/get_tag.snap index e33f5c2e4b..a41653af5a 100644 --- a/pkg/github/__toolsnaps__/get_tag.snap +++ b/pkg/github/__toolsnaps__/get_tag.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get tag details" }, "description": "Get details about a specific git tag in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "tag" - ], "properties": { "owner": { "type": "string", @@ -24,7 +20,12 @@ "type": "string", "description": "Tag name" } - } + }, + "required": [ + "owner", + "repo", + "tag" + ] }, "name": "get_tag" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_team_members.snap b/pkg/github/__toolsnaps__/get_team_members.snap index 5b7f090fe1..54c24f2beb 100644 --- a/pkg/github/__toolsnaps__/get_team_members.snap +++ b/pkg/github/__toolsnaps__/get_team_members.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get team members" }, "description": "Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials", "inputSchema": { "type": "object", - "required": [ - "org", - "team_slug" - ], "properties": { "org": { "type": "string", @@ -19,7 +16,11 @@ "type": "string", "description": "Team slug" } - } + }, + "required": [ + "org", + "team_slug" + ] }, "name": "get_team_members" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_teams.snap b/pkg/github/__toolsnaps__/get_teams.snap index 595dd262df..be72361a9e 100644 --- a/pkg/github/__toolsnaps__/get_teams.snap +++ b/pkg/github/__toolsnaps__/get_teams.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get teams" }, diff --git a/pkg/github/__toolsnaps__/get_workflow_run.snap b/pkg/github/__toolsnaps__/get_workflow_run.snap index 37921ffadf..59e525e69e 100644 --- a/pkg/github/__toolsnaps__/get_workflow_run.snap +++ b/pkg/github/__toolsnaps__/get_workflow_run.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get workflow run" }, "description": "Get details of a specific workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -24,7 +20,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "get_workflow_run" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_workflow_run_logs.snap b/pkg/github/__toolsnaps__/get_workflow_run_logs.snap index 77fb619b72..e7eb1a5a9b 100644 --- a/pkg/github/__toolsnaps__/get_workflow_run_logs.snap +++ b/pkg/github/__toolsnaps__/get_workflow_run_logs.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get workflow run logs" }, "description": "Download logs for a specific workflow run (EXPENSIVE: downloads ALL logs as ZIP. Consider using get_job_logs with failed_only=true for debugging failed jobs)", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -24,7 +20,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "get_workflow_run_logs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/get_workflow_run_usage.snap b/pkg/github/__toolsnaps__/get_workflow_run_usage.snap index c9fe49f96f..5d52735b28 100644 --- a/pkg/github/__toolsnaps__/get_workflow_run_usage.snap +++ b/pkg/github/__toolsnaps__/get_workflow_run_usage.snap @@ -6,11 +6,6 @@ "description": "Get usage metrics for a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -24,7 +19,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "get_workflow_run_usage" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/issue_read.snap b/pkg/github/__toolsnaps__/issue_read.snap index c6a9e7306f..bc5a2e14dd 100644 --- a/pkg/github/__toolsnaps__/issue_read.snap +++ b/pkg/github/__toolsnaps__/issue_read.snap @@ -1,17 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get issue details" }, "description": "Get information about a specific issue in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "issue_number" - ], "properties": { "issue_number": { "type": "number", @@ -46,7 +41,13 @@ "type": "string", "description": "The name of the repository" } - } + }, + "required": [ + "method", + "owner", + "repo", + "issue_number" + ] }, "name": "issue_read" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/issue_write.snap b/pkg/github/__toolsnaps__/issue_write.snap index 8c6634a02a..2340133800 100644 --- a/pkg/github/__toolsnaps__/issue_write.snap +++ b/pkg/github/__toolsnaps__/issue_write.snap @@ -5,18 +5,13 @@ "description": "Create a new or update an existing issue in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo" - ], "properties": { "assignees": { "type": "array", - "description": "Usernames to assign to this issue", "items": { "type": "string" - } + }, + "description": "Usernames to assign to this issue" }, "body": { "type": "string", @@ -32,10 +27,10 @@ }, "labels": { "type": "array", - "description": "Labels to apply to this issue", "items": { "type": "string" - } + }, + "description": "Labels to apply to this issue" }, "method": { "type": "string", @@ -82,7 +77,12 @@ "type": "string", "description": "Type of this issue. Only use if the repository has issue types configured. Use list_issue_types tool to get valid type values for the organization. If the repository doesn't support issue types, omit this parameter." } - } + }, + "required": [ + "method", + "owner", + "repo" + ] }, "name": "issue_write" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/label_write.snap b/pkg/github/__toolsnaps__/label_write.snap index 879817442a..aec42eef2a 100644 --- a/pkg/github/__toolsnaps__/label_write.snap +++ b/pkg/github/__toolsnaps__/label_write.snap @@ -5,12 +5,6 @@ "description": "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "name" - ], "properties": { "color": { "type": "string", @@ -45,7 +39,13 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "method", + "owner", + "repo", + "name" + ] }, "name": "label_write" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_branches.snap b/pkg/github/__toolsnaps__/list_branches.snap index b589c9b7e1..19406a46e2 100644 --- a/pkg/github/__toolsnaps__/list_branches.snap +++ b/pkg/github/__toolsnaps__/list_branches.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List branches" }, "description": "List branches in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -30,7 +27,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_branches" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_code_scanning_alerts.snap b/pkg/github/__toolsnaps__/list_code_scanning_alerts.snap index 6f2a4e3427..d0a58d83b2 100644 --- a/pkg/github/__toolsnaps__/list_code_scanning_alerts.snap +++ b/pkg/github/__toolsnaps__/list_code_scanning_alerts.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List code scanning alerts" }, "description": "List code scanning alerts in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -51,7 +48,11 @@ "type": "string", "description": "The name of the tool used for code scanning." } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_code_scanning_alerts" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_commits.snap b/pkg/github/__toolsnaps__/list_commits.snap index bd67602ed7..054b14b7eb 100644 --- a/pkg/github/__toolsnaps__/list_commits.snap +++ b/pkg/github/__toolsnaps__/list_commits.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List commits" }, "description": "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100).", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "author": { "type": "string", @@ -38,7 +35,11 @@ "type": "string", "description": "Commit SHA, branch or tag name to list commits of. If not provided, uses the default branch of the repository. If a commit SHA is provided, will list commits up to that SHA." } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_commits" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_dependabot_alerts.snap b/pkg/github/__toolsnaps__/list_dependabot_alerts.snap index d96d3972c5..4b882d386f 100644 --- a/pkg/github/__toolsnaps__/list_dependabot_alerts.snap +++ b/pkg/github/__toolsnaps__/list_dependabot_alerts.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List dependabot alerts" }, "description": "List dependabot alerts in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -40,7 +37,11 @@ "auto_dismissed" ] } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_dependabot_alerts" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_discussion_categories.snap b/pkg/github/__toolsnaps__/list_discussion_categories.snap index 888ebbdcad..89d85b3aea 100644 --- a/pkg/github/__toolsnaps__/list_discussion_categories.snap +++ b/pkg/github/__toolsnaps__/list_discussion_categories.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List discussion categories" }, "description": "List discussion categories with their id and name, for a repository or organisation.", "inputSchema": { "type": "object", - "required": [ - "owner" - ], "properties": { "owner": { "type": "string", @@ -18,7 +16,10 @@ "type": "string", "description": "Repository name. If not provided, discussion categories will be queried at the organisation level." } - } + }, + "required": [ + "owner" + ] }, "name": "list_discussion_categories" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_discussions.snap b/pkg/github/__toolsnaps__/list_discussions.snap index 95a8bebf56..bcb08f569b 100644 --- a/pkg/github/__toolsnaps__/list_discussions.snap +++ b/pkg/github/__toolsnaps__/list_discussions.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List discussions" }, "description": "List discussions for a repository or organisation.", "inputSchema": { "type": "object", - "required": [ - "owner" - ], "properties": { "after": { "type": "string", @@ -48,7 +46,10 @@ "type": "string", "description": "Repository name. If not provided, discussions will be queried at the organisation level." } - } + }, + "required": [ + "owner" + ] }, "name": "list_discussions" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_gists.snap b/pkg/github/__toolsnaps__/list_gists.snap index 834b452050..ba6df81454 100644 --- a/pkg/github/__toolsnaps__/list_gists.snap +++ b/pkg/github/__toolsnaps__/list_gists.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List Gists" }, diff --git a/pkg/github/__toolsnaps__/list_global_security_advisories.snap b/pkg/github/__toolsnaps__/list_global_security_advisories.snap index fd9fa78c58..39321fcd5c 100644 --- a/pkg/github/__toolsnaps__/list_global_security_advisories.snap +++ b/pkg/github/__toolsnaps__/list_global_security_advisories.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List global security advisories" }, @@ -17,10 +18,10 @@ }, "cwes": { "type": "array", - "description": "Filter by Common Weakness Enumeration IDs (e.g. [\"79\", \"284\", \"22\"]).", "items": { "type": "string" - } + }, + "description": "Filter by Common Weakness Enumeration IDs (e.g. [\"79\", \"284\", \"22\"])." }, "ecosystem": { "type": "string", diff --git a/pkg/github/__toolsnaps__/list_issue_types.snap b/pkg/github/__toolsnaps__/list_issue_types.snap index b17dcc54f9..ba36deb960 100644 --- a/pkg/github/__toolsnaps__/list_issue_types.snap +++ b/pkg/github/__toolsnaps__/list_issue_types.snap @@ -1,20 +1,21 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List available issue types" }, "description": "List supported issue types for repository owner (organization).", "inputSchema": { "type": "object", - "required": [ - "owner" - ], "properties": { "owner": { "type": "string", "description": "The organization owner of the repository" } - } + }, + "required": [ + "owner" + ] }, "name": "list_issue_types" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_issues.snap b/pkg/github/__toolsnaps__/list_issues.snap index 9d6b555865..9f2ff4338e 100644 --- a/pkg/github/__toolsnaps__/list_issues.snap +++ b/pkg/github/__toolsnaps__/list_issues.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List issues" }, "description": "List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "after": { "type": "string", @@ -25,10 +22,10 @@ }, "labels": { "type": "array", - "description": "Filter by labels", "items": { "type": "string" - } + }, + "description": "Filter by labels" }, "orderBy": { "type": "string", @@ -65,7 +62,11 @@ "CLOSED" ] } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_issues" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_label.snap b/pkg/github/__toolsnaps__/list_label.snap index 0b4f3b20c7..fca7b95456 100644 --- a/pkg/github/__toolsnaps__/list_label.snap +++ b/pkg/github/__toolsnaps__/list_label.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List labels from a repository." }, "description": "List labels from a repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -19,7 +16,11 @@ "type": "string", "description": "Repository name - required for all operations" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_label" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_notifications.snap b/pkg/github/__toolsnaps__/list_notifications.snap index ae43e0f257..3740468ed4 100644 --- a/pkg/github/__toolsnaps__/list_notifications.snap +++ b/pkg/github/__toolsnaps__/list_notifications.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List notifications" }, diff --git a/pkg/github/__toolsnaps__/list_org_repository_security_advisories.snap b/pkg/github/__toolsnaps__/list_org_repository_security_advisories.snap index 5f8823659b..ed7eb20489 100644 --- a/pkg/github/__toolsnaps__/list_org_repository_security_advisories.snap +++ b/pkg/github/__toolsnaps__/list_org_repository_security_advisories.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List org repository security advisories" }, "description": "List repository security advisories for a GitHub organization.", "inputSchema": { "type": "object", - "required": [ - "org" - ], "properties": { "direction": { "type": "string", @@ -41,7 +39,10 @@ "closed" ] } - } + }, + "required": [ + "org" + ] }, "name": "list_org_repository_security_advisories" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_project_fields.snap b/pkg/github/__toolsnaps__/list_project_fields.snap index 6bef185079..e5b28ef191 100644 --- a/pkg/github/__toolsnaps__/list_project_fields.snap +++ b/pkg/github/__toolsnaps__/list_project_fields.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List project fields" }, "description": "List Project fields for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number" - ], "properties": { "after": { "type": "string", @@ -40,7 +36,12 @@ "type": "number", "description": "The project's number." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number" + ] }, "name": "list_project_fields" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_project_items.snap b/pkg/github/__toolsnaps__/list_project_items.snap index bceb5d9eb0..32cea09f57 100644 --- a/pkg/github/__toolsnaps__/list_project_items.snap +++ b/pkg/github/__toolsnaps__/list_project_items.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List project items" }, "description": "Search project items with advanced filtering", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number" - ], "properties": { "after": { "type": "string", @@ -22,10 +18,10 @@ }, "fields": { "type": "array", - "description": "Field IDs to include (e.g. [\"102589\", \"985201\"]). CRITICAL: Always provide to get field values. Without this, only titles returned.", "items": { "type": "string" - } + }, + "description": "Field IDs to include (e.g. [\"102589\", \"985201\"]). CRITICAL: Always provide to get field values. Without this, only titles returned." }, "owner": { "type": "string", @@ -51,7 +47,12 @@ "type": "string", "description": "Query string for advanced filtering of project items using GitHub's project filtering syntax." } - } + }, + "required": [ + "owner_type", + "owner", + "project_number" + ] }, "name": "list_project_items" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_projects.snap b/pkg/github/__toolsnaps__/list_projects.snap index f48e262173..d853f99a27 100644 --- a/pkg/github/__toolsnaps__/list_projects.snap +++ b/pkg/github/__toolsnaps__/list_projects.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List projects" }, "description": "List Projects for a user or organization", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner" - ], "properties": { "after": { "type": "string", @@ -39,7 +36,11 @@ "type": "string", "description": "Filter projects by title text and open/closed state; permitted qualifiers: is:open, is:closed; examples: \"roadmap is:open\", \"is:open feature planning\"." } - } + }, + "required": [ + "owner_type", + "owner" + ] }, "name": "list_projects" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_pull_requests.snap b/pkg/github/__toolsnaps__/list_pull_requests.snap index ae90c3fe05..952e4ea4f3 100644 --- a/pkg/github/__toolsnaps__/list_pull_requests.snap +++ b/pkg/github/__toolsnaps__/list_pull_requests.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List pull requests" }, "description": "List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "base": { "type": "string", @@ -65,7 +62,11 @@ "all" ] } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_pull_requests" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_releases.snap b/pkg/github/__toolsnaps__/list_releases.snap index 98d4ce66fc..a703336059 100644 --- a/pkg/github/__toolsnaps__/list_releases.snap +++ b/pkg/github/__toolsnaps__/list_releases.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List releases" }, "description": "List releases in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -30,7 +27,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_releases" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_repository_security_advisories.snap b/pkg/github/__toolsnaps__/list_repository_security_advisories.snap index 465fd881e6..9363d35217 100644 --- a/pkg/github/__toolsnaps__/list_repository_security_advisories.snap +++ b/pkg/github/__toolsnaps__/list_repository_security_advisories.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List repository security advisories" }, "description": "List repository security advisories for a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "direction": { "type": "string", @@ -46,7 +43,11 @@ "closed" ] } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_repository_security_advisories" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_secret_scanning_alerts.snap b/pkg/github/__toolsnaps__/list_secret_scanning_alerts.snap index e7896c55f2..f7614573b7 100644 --- a/pkg/github/__toolsnaps__/list_secret_scanning_alerts.snap +++ b/pkg/github/__toolsnaps__/list_secret_scanning_alerts.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List secret scanning alerts" }, "description": "List secret scanning alerts in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -43,7 +40,11 @@ "resolved" ] } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_secret_scanning_alerts" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_starred_repositories.snap b/pkg/github/__toolsnaps__/list_starred_repositories.snap index a383b39d14..491929a35d 100644 --- a/pkg/github/__toolsnaps__/list_starred_repositories.snap +++ b/pkg/github/__toolsnaps__/list_starred_repositories.snap @@ -1,5 +1,6 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List starred repositories" }, diff --git a/pkg/github/__toolsnaps__/list_tags.snap b/pkg/github/__toolsnaps__/list_tags.snap index 5b667d19c6..1f1c6a21ee 100644 --- a/pkg/github/__toolsnaps__/list_tags.snap +++ b/pkg/github/__toolsnaps__/list_tags.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List tags" }, "description": "List git tags in a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -30,7 +27,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_tags" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_workflow_jobs.snap b/pkg/github/__toolsnaps__/list_workflow_jobs.snap index 59ff75afc2..ea16089b5e 100644 --- a/pkg/github/__toolsnaps__/list_workflow_jobs.snap +++ b/pkg/github/__toolsnaps__/list_workflow_jobs.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List workflow jobs" }, "description": "List jobs for a specific workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "filter": { "type": "string", @@ -43,7 +39,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "list_workflow_jobs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_workflow_run_artifacts.snap b/pkg/github/__toolsnaps__/list_workflow_run_artifacts.snap index 6d6332d740..222cace2d6 100644 --- a/pkg/github/__toolsnaps__/list_workflow_run_artifacts.snap +++ b/pkg/github/__toolsnaps__/list_workflow_run_artifacts.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List workflow artifacts" }, "description": "List artifacts for a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -35,7 +31,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "list_workflow_run_artifacts" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_workflow_runs.snap b/pkg/github/__toolsnaps__/list_workflow_runs.snap index e5353f4904..8611e7f4ab 100644 --- a/pkg/github/__toolsnaps__/list_workflow_runs.snap +++ b/pkg/github/__toolsnaps__/list_workflow_runs.snap @@ -1,16 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List workflow runs" }, "description": "List workflow runs for a specific workflow", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "workflow_id" - ], "properties": { "actor": { "type": "string", @@ -92,7 +88,12 @@ "type": "string", "description": "The workflow ID or workflow file name" } - } + }, + "required": [ + "owner", + "repo", + "workflow_id" + ] }, "name": "list_workflow_runs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/list_workflows.snap b/pkg/github/__toolsnaps__/list_workflows.snap index f3f52f042f..7ae2a70e9d 100644 --- a/pkg/github/__toolsnaps__/list_workflows.snap +++ b/pkg/github/__toolsnaps__/list_workflows.snap @@ -1,15 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "List workflows" }, "description": "List workflows in a repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -30,7 +27,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "list_workflows" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/manage_notification_subscription.snap b/pkg/github/__toolsnaps__/manage_notification_subscription.snap index 4f0d466a08..dd8bb2ad0e 100644 --- a/pkg/github/__toolsnaps__/manage_notification_subscription.snap +++ b/pkg/github/__toolsnaps__/manage_notification_subscription.snap @@ -5,10 +5,6 @@ "description": "Manage a notification subscription: ignore, watch, or delete a notification thread subscription.", "inputSchema": { "type": "object", - "required": [ - "notificationID", - "action" - ], "properties": { "action": { "type": "string", @@ -23,7 +19,11 @@ "type": "string", "description": "The ID of the notification thread." } - } + }, + "required": [ + "notificationID", + "action" + ] }, "name": "manage_notification_subscription" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/manage_repository_notification_subscription.snap b/pkg/github/__toolsnaps__/manage_repository_notification_subscription.snap index 82ee40a895..2ae4226af2 100644 --- a/pkg/github/__toolsnaps__/manage_repository_notification_subscription.snap +++ b/pkg/github/__toolsnaps__/manage_repository_notification_subscription.snap @@ -5,11 +5,6 @@ "description": "Manage a repository notification subscription: ignore, watch, or delete repository notifications subscription for the provided repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "action" - ], "properties": { "action": { "type": "string", @@ -28,7 +23,12 @@ "type": "string", "description": "The name of the repository." } - } + }, + "required": [ + "owner", + "repo", + "action" + ] }, "name": "manage_repository_notification_subscription" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/merge_pull_request.snap b/pkg/github/__toolsnaps__/merge_pull_request.snap index 179805b3a5..cce3702f2c 100644 --- a/pkg/github/__toolsnaps__/merge_pull_request.snap +++ b/pkg/github/__toolsnaps__/merge_pull_request.snap @@ -5,11 +5,6 @@ "description": "Merge a pull request in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "pullNumber" - ], "properties": { "commit_message": { "type": "string", @@ -40,7 +35,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "pullNumber" + ] }, "name": "merge_pull_request", "icons": [ diff --git a/pkg/github/__toolsnaps__/pull_request_read.snap b/pkg/github/__toolsnaps__/pull_request_read.snap index 69b1bd9011..3dc79cfc00 100644 --- a/pkg/github/__toolsnaps__/pull_request_read.snap +++ b/pkg/github/__toolsnaps__/pull_request_read.snap @@ -1,17 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Get details for a single pull request" }, "description": "Get information on a specific pull request in GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "pullNumber" - ], "properties": { "method": { "type": "string", @@ -49,7 +44,13 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "method", + "owner", + "repo", + "pullNumber" + ] }, "name": "pull_request_read" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/pull_request_review_write.snap b/pkg/github/__toolsnaps__/pull_request_review_write.snap index 92cc199240..3878d6cb35 100644 --- a/pkg/github/__toolsnaps__/pull_request_review_write.snap +++ b/pkg/github/__toolsnaps__/pull_request_review_write.snap @@ -5,12 +5,6 @@ "description": "Create and/or submit, delete review of a pull request.\n\nAvailable methods:\n- create: Create a new review of a pull request. If \"event\" parameter is provided, the review is submitted. If \"event\" is omitted, a pending review is created.\n- submit_pending: Submit an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request. The \"body\" and \"event\" parameters are used when submitting the review.\n- delete_pending: Delete an existing pending review of a pull request. This requires that a pending review exists for the current user on the specified pull request.\n", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "pullNumber" - ], "properties": { "body": { "type": "string", @@ -50,7 +44,13 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "method", + "owner", + "repo", + "pullNumber" + ] }, "name": "pull_request_review_write" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/push_files.snap b/pkg/github/__toolsnaps__/push_files.snap index 4db764cc94..e86305bae6 100644 --- a/pkg/github/__toolsnaps__/push_files.snap +++ b/pkg/github/__toolsnaps__/push_files.snap @@ -5,13 +5,6 @@ "description": "Push multiple files to a GitHub repository in a single commit", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "branch", - "files", - "message" - ], "properties": { "branch": { "type": "string", @@ -19,13 +12,8 @@ }, "files": { "type": "array", - "description": "Array of file objects to push, each object with path (string) and content (string)", "items": { "type": "object", - "required": [ - "path", - "content" - ], "properties": { "content": { "type": "string", @@ -35,8 +23,13 @@ "type": "string", "description": "path to the file" } - } - } + }, + "required": [ + "path", + "content" + ] + }, + "description": "Array of file objects to push, each object with path (string) and content (string)" }, "message": { "type": "string", @@ -50,7 +43,14 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "branch", + "files", + "message" + ] }, "name": "push_files" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/request_copilot_review.snap b/pkg/github/__toolsnaps__/request_copilot_review.snap index 0bf419d98b..63bd34b80c 100644 --- a/pkg/github/__toolsnaps__/request_copilot_review.snap +++ b/pkg/github/__toolsnaps__/request_copilot_review.snap @@ -5,11 +5,6 @@ "description": "Request a GitHub Copilot code review for a pull request. Use this for automated feedback on pull requests, usually before requesting a human reviewer.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "pullNumber" - ], "properties": { "owner": { "type": "string", @@ -23,7 +18,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "pullNumber" + ] }, "name": "request_copilot_review", "icons": [ diff --git a/pkg/github/__toolsnaps__/rerun_failed_jobs.snap b/pkg/github/__toolsnaps__/rerun_failed_jobs.snap index 2c627637cc..6109d159bf 100644 --- a/pkg/github/__toolsnaps__/rerun_failed_jobs.snap +++ b/pkg/github/__toolsnaps__/rerun_failed_jobs.snap @@ -5,11 +5,6 @@ "description": "Re-run only the failed jobs in a workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -23,7 +18,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "rerun_failed_jobs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/rerun_workflow_run.snap b/pkg/github/__toolsnaps__/rerun_workflow_run.snap index 00514ee79d..98f831a41c 100644 --- a/pkg/github/__toolsnaps__/rerun_workflow_run.snap +++ b/pkg/github/__toolsnaps__/rerun_workflow_run.snap @@ -5,11 +5,6 @@ "description": "Re-run an entire workflow run", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "run_id" - ], "properties": { "owner": { "type": "string", @@ -23,7 +18,12 @@ "type": "number", "description": "The unique identifier of the workflow run" } - } + }, + "required": [ + "owner", + "repo", + "run_id" + ] }, "name": "rerun_workflow_run" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/run_workflow.snap b/pkg/github/__toolsnaps__/run_workflow.snap index bb35e82132..2d686ad978 100644 --- a/pkg/github/__toolsnaps__/run_workflow.snap +++ b/pkg/github/__toolsnaps__/run_workflow.snap @@ -5,12 +5,6 @@ "description": "Run an Actions workflow by workflow ID or filename", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "workflow_id", - "ref" - ], "properties": { "inputs": { "type": "object", @@ -32,7 +26,13 @@ "type": "string", "description": "The workflow ID (numeric) or workflow file name (e.g., main.yml, ci.yaml)" } - } + }, + "required": [ + "owner", + "repo", + "workflow_id", + "ref" + ] }, "name": "run_workflow" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_code.snap b/pkg/github/__toolsnaps__/search_code.snap index aebd432bfb..dc078d4aa1 100644 --- a/pkg/github/__toolsnaps__/search_code.snap +++ b/pkg/github/__toolsnaps__/search_code.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search code" }, "description": "Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns.", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "order": { "type": "string", @@ -37,7 +35,10 @@ "type": "string", "description": "Sort field ('indexed' only)" } - } + }, + "required": [ + "query" + ] }, "name": "search_code" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_issues.snap b/pkg/github/__toolsnaps__/search_issues.snap index f76a715fb1..de0c2c42f9 100644 --- a/pkg/github/__toolsnaps__/search_issues.snap +++ b/pkg/github/__toolsnaps__/search_issues.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search issues" }, "description": "Search for issues in GitHub repositories using issues search syntax already scoped to is:issue", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "order": { "type": "string", @@ -58,7 +56,10 @@ "updated" ] } - } + }, + "required": [ + "query" + ] }, "name": "search_issues" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_orgs.snap b/pkg/github/__toolsnaps__/search_orgs.snap index 36eb948aec..6b63d0867e 100644 --- a/pkg/github/__toolsnaps__/search_orgs.snap +++ b/pkg/github/__toolsnaps__/search_orgs.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search organizations" }, "description": "Find GitHub organizations by name, location, or other organization metadata. Ideal for discovering companies, open source foundations, or teams.", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "order": { "type": "string", @@ -42,7 +40,10 @@ "joined" ] } - } + }, + "required": [ + "query" + ] }, "name": "search_orgs" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_pull_requests.snap b/pkg/github/__toolsnaps__/search_pull_requests.snap index 2013f5c085..a134293242 100644 --- a/pkg/github/__toolsnaps__/search_pull_requests.snap +++ b/pkg/github/__toolsnaps__/search_pull_requests.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search pull requests" }, "description": "Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "order": { "type": "string", @@ -58,7 +56,10 @@ "updated" ] } - } + }, + "required": [ + "query" + ] }, "name": "search_pull_requests" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_repositories.snap b/pkg/github/__toolsnaps__/search_repositories.snap index 881bc3816b..466e25d8a7 100644 --- a/pkg/github/__toolsnaps__/search_repositories.snap +++ b/pkg/github/__toolsnaps__/search_repositories.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search repositories" }, "description": "Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub.", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "minimal_output": { "type": "boolean", @@ -48,7 +46,10 @@ "updated" ] } - } + }, + "required": [ + "query" + ] }, "name": "search_repositories" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/search_users.snap b/pkg/github/__toolsnaps__/search_users.snap index 293107696c..4d1954be64 100644 --- a/pkg/github/__toolsnaps__/search_users.snap +++ b/pkg/github/__toolsnaps__/search_users.snap @@ -1,14 +1,12 @@ { "annotations": { + "openWorldHint": true, "readOnlyHint": true, "title": "Search users" }, "description": "Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members.", "inputSchema": { "type": "object", - "required": [ - "query" - ], "properties": { "order": { "type": "string", @@ -42,7 +40,10 @@ "joined" ] } - } + }, + "required": [ + "query" + ] }, "name": "search_users" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/star_repository.snap b/pkg/github/__toolsnaps__/star_repository.snap index ab1514b3de..f1538d5098 100644 --- a/pkg/github/__toolsnaps__/star_repository.snap +++ b/pkg/github/__toolsnaps__/star_repository.snap @@ -5,10 +5,6 @@ "description": "Star a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -18,7 +14,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "star_repository", "icons": [ diff --git a/pkg/github/__toolsnaps__/sub_issue_write.snap b/pkg/github/__toolsnaps__/sub_issue_write.snap index 1c721a2bb7..b0180fa755 100644 --- a/pkg/github/__toolsnaps__/sub_issue_write.snap +++ b/pkg/github/__toolsnaps__/sub_issue_write.snap @@ -5,13 +5,6 @@ "description": "Add a sub-issue to a parent issue in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "method", - "owner", - "repo", - "issue_number", - "sub_issue_id" - ], "properties": { "after_id": { "type": "number", @@ -45,7 +38,14 @@ "type": "number", "description": "The ID of the sub-issue to add. ID is not the same as issue number" } - } + }, + "required": [ + "method", + "owner", + "repo", + "issue_number", + "sub_issue_id" + ] }, "name": "sub_issue_write" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/unstar_repository.snap b/pkg/github/__toolsnaps__/unstar_repository.snap index 709453650f..2d2e31aad0 100644 --- a/pkg/github/__toolsnaps__/unstar_repository.snap +++ b/pkg/github/__toolsnaps__/unstar_repository.snap @@ -5,10 +5,6 @@ "description": "Unstar a GitHub repository", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo" - ], "properties": { "owner": { "type": "string", @@ -18,7 +14,11 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo" + ] }, "name": "unstar_repository" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/update_gist.snap b/pkg/github/__toolsnaps__/update_gist.snap index a3907a88c8..9ba5d01d6a 100644 --- a/pkg/github/__toolsnaps__/update_gist.snap +++ b/pkg/github/__toolsnaps__/update_gist.snap @@ -5,11 +5,6 @@ "description": "Update an existing gist", "inputSchema": { "type": "object", - "required": [ - "gist_id", - "filename", - "content" - ], "properties": { "content": { "type": "string", @@ -27,7 +22,12 @@ "type": "string", "description": "ID of the gist to update" } - } + }, + "required": [ + "gist_id", + "filename", + "content" + ] }, "name": "update_gist" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/update_project_item.snap b/pkg/github/__toolsnaps__/update_project_item.snap index 8f5afaa583..badbcf90e7 100644 --- a/pkg/github/__toolsnaps__/update_project_item.snap +++ b/pkg/github/__toolsnaps__/update_project_item.snap @@ -5,13 +5,6 @@ "description": "Update a specific Project item for a user or org", "inputSchema": { "type": "object", - "required": [ - "owner_type", - "owner", - "project_number", - "item_id", - "updated_field" - ], "properties": { "item_id": { "type": "number", @@ -37,7 +30,14 @@ "type": "object", "description": "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": [ + "owner_type", + "owner", + "project_number", + "item_id", + "updated_field" + ] }, "name": "update_project_item" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/update_pull_request.snap b/pkg/github/__toolsnaps__/update_pull_request.snap index 6dec2c01f6..822d4348b8 100644 --- a/pkg/github/__toolsnaps__/update_pull_request.snap +++ b/pkg/github/__toolsnaps__/update_pull_request.snap @@ -5,11 +5,6 @@ "description": "Update an existing pull request in a GitHub repository.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "pullNumber" - ], "properties": { "base": { "type": "string", @@ -41,10 +36,10 @@ }, "reviewers": { "type": "array", - "description": "GitHub usernames to request reviews from", "items": { "type": "string" - } + }, + "description": "GitHub usernames to request reviews from" }, "state": { "type": "string", @@ -58,7 +53,12 @@ "type": "string", "description": "New title" } - } + }, + "required": [ + "owner", + "repo", + "pullNumber" + ] }, "name": "update_pull_request" } \ No newline at end of file diff --git a/pkg/github/__toolsnaps__/update_pull_request_branch.snap b/pkg/github/__toolsnaps__/update_pull_request_branch.snap index 9be1cb0029..9a530a21c8 100644 --- a/pkg/github/__toolsnaps__/update_pull_request_branch.snap +++ b/pkg/github/__toolsnaps__/update_pull_request_branch.snap @@ -5,11 +5,6 @@ "description": "Update the branch of a pull request with the latest changes from the base branch.", "inputSchema": { "type": "object", - "required": [ - "owner", - "repo", - "pullNumber" - ], "properties": { "expectedHeadSha": { "type": "string", @@ -27,7 +22,12 @@ "type": "string", "description": "Repository name" } - } + }, + "required": [ + "owner", + "repo", + "pullNumber" + ] }, "name": "update_pull_request_branch" } \ No newline at end of file diff --git a/pkg/github/actions.go b/pkg/github/actions.go index 1547c3251d..9a6a55a680 100644 --- a/pkg/github/actions.go +++ b/pkg/github/actions.go @@ -56,8 +56,9 @@ func ListWorkflows(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_workflows", Description: t("TOOL_LIST_WORKFLOWS_DESCRIPTION", "List workflows in a repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_WORKFLOWS_USER_TITLE", "List workflows"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_WORKFLOWS_USER_TITLE", "List workflows"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -127,8 +128,9 @@ func ListWorkflowRuns(t translations.TranslationHelperFunc) inventory.ServerTool Name: "list_workflow_runs", Description: t("TOOL_LIST_WORKFLOW_RUNS_DESCRIPTION", "List workflow runs for a specific workflow"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_WORKFLOW_RUNS_USER_TITLE", "List workflow runs"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_WORKFLOW_RUNS_USER_TITLE", "List workflow runs"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -393,8 +395,9 @@ func GetWorkflowRun(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_workflow_run", Description: t("TOOL_GET_WORKFLOW_RUN_DESCRIPTION", "Get details of a specific workflow run"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_WORKFLOW_RUN_USER_TITLE", "Get workflow run"), - ReadOnlyHint: true, + Title: t("TOOL_GET_WORKFLOW_RUN_USER_TITLE", "Get workflow run"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -461,8 +464,9 @@ func GetWorkflowRunLogs(t translations.TranslationHelperFunc) inventory.ServerTo Name: "get_workflow_run_logs", Description: t("TOOL_GET_WORKFLOW_RUN_LOGS_DESCRIPTION", "Download logs for a specific workflow run (EXPENSIVE: downloads ALL logs as ZIP. Consider using get_job_logs with failed_only=true for debugging failed jobs)"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_WORKFLOW_RUN_LOGS_USER_TITLE", "Get workflow run logs"), - ReadOnlyHint: true, + Title: t("TOOL_GET_WORKFLOW_RUN_LOGS_USER_TITLE", "Get workflow run logs"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -539,8 +543,9 @@ func ListWorkflowJobs(t translations.TranslationHelperFunc) inventory.ServerTool Name: "list_workflow_jobs", Description: t("TOOL_LIST_WORKFLOW_JOBS_DESCRIPTION", "List jobs for a specific workflow run"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_WORKFLOW_JOBS_USER_TITLE", "List workflow jobs"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_WORKFLOW_JOBS_USER_TITLE", "List workflow jobs"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -639,8 +644,9 @@ func GetJobLogs(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_job_logs", Description: t("TOOL_GET_JOB_LOGS_DESCRIPTION", "Download logs for a specific workflow job or efficiently get all failed job logs for a workflow run"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_JOB_LOGS_USER_TITLE", "Get job logs"), - ReadOnlyHint: true, + Title: t("TOOL_GET_JOB_LOGS_USER_TITLE", "Get job logs"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1131,8 +1137,9 @@ func ListWorkflowRunArtifacts(t translations.TranslationHelperFunc) inventory.Se Name: "list_workflow_run_artifacts", Description: t("TOOL_LIST_WORKFLOW_RUN_ARTIFACTS_DESCRIPTION", "List artifacts for a workflow run"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_WORKFLOW_RUN_ARTIFACTS_USER_TITLE", "List workflow artifacts"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_WORKFLOW_RUN_ARTIFACTS_USER_TITLE", "List workflow artifacts"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -1435,8 +1442,9 @@ func ActionsList(t translations.TranslationHelperFunc) inventory.ServerTool { Use this tool to list workflows in a repository, or list workflow runs, jobs, and artifacts for a specific workflow or workflow run. `), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_ACTIONS_LIST_USER_TITLE", "List GitHub Actions workflows in a repository"), - ReadOnlyHint: true, + Title: t("TOOL_ACTIONS_LIST_USER_TITLE", "List GitHub Actions workflows in a repository"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1629,8 +1637,9 @@ func ActionsGet(t translations.TranslationHelperFunc) inventory.ServerTool { Use this tool to get details about individual workflows, workflow runs, jobs, and artifacts by their unique IDs. `), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_ACTIONS_GET_USER_TITLE", "Get details of GitHub Actions resources (workflows, workflow runs, jobs, and artifacts)"), - ReadOnlyHint: true, + Title: t("TOOL_ACTIONS_GET_USER_TITLE", "Get details of GitHub Actions resources (workflows, workflow runs, jobs, and artifacts)"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1856,8 +1865,9 @@ Use this tool to retrieve logs for a specific job or all failed jobs in a workfl For single job logs, provide job_id. For all failed jobs in a run, provide run_id with failed_only=true. `), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_JOB_LOGS_CONSOLIDATED_USER_TITLE", "Get GitHub Actions workflow job logs"), - ReadOnlyHint: true, + Title: t("TOOL_GET_JOB_LOGS_CONSOLIDATED_USER_TITLE", "Get GitHub Actions workflow job logs"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/code_scanning.go b/pkg/github/code_scanning.go index 5e25d05015..484d81abbb 100644 --- a/pkg/github/code_scanning.go +++ b/pkg/github/code_scanning.go @@ -22,8 +22,9 @@ func GetCodeScanningAlert(t translations.TranslationHelperFunc) inventory.Server Name: "get_code_scanning_alert", Description: t("TOOL_GET_CODE_SCANNING_ALERT_DESCRIPTION", "Get details of a specific code scanning alert in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_CODE_SCANNING_ALERT_USER_TITLE", "Get code scanning alert"), - ReadOnlyHint: true, + Title: t("TOOL_GET_CODE_SCANNING_ALERT_USER_TITLE", "Get code scanning alert"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -98,8 +99,9 @@ func ListCodeScanningAlerts(t translations.TranslationHelperFunc) inventory.Serv Name: "list_code_scanning_alerts", Description: t("TOOL_LIST_CODE_SCANNING_ALERTS_DESCRIPTION", "List code scanning alerts in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_CODE_SCANNING_ALERTS_USER_TITLE", "List code scanning alerts"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_CODE_SCANNING_ALERTS_USER_TITLE", "List code scanning alerts"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/context_tools.go b/pkg/github/context_tools.go index e0df82c889..f890a091b8 100644 --- a/pkg/github/context_tools.go +++ b/pkg/github/context_tools.go @@ -44,8 +44,9 @@ func GetMe(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_me", Description: t("TOOL_GET_ME_DESCRIPTION", "Get details of the authenticated GitHub user. Use this when a request is about the user's own profile for GitHub. Or when information is missing to build other tool calls."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_ME_USER_TITLE", "Get my user profile"), - ReadOnlyHint: true, + Title: t("TOOL_GET_ME_USER_TITLE", "Get my user profile"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, // Use json.RawMessage to ensure "properties" is included even when empty. // OpenAI strict mode requires the properties field to be present. @@ -116,8 +117,9 @@ func GetTeams(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_teams", Description: t("TOOL_GET_TEAMS_DESCRIPTION", "Get details of the teams the user is a member of. Limited to organizations accessible with current credentials"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_TEAMS_TITLE", "Get teams"), - ReadOnlyHint: true, + Title: t("TOOL_GET_TEAMS_TITLE", "Get teams"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -213,8 +215,9 @@ func GetTeamMembers(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_team_members", Description: t("TOOL_GET_TEAM_MEMBERS_DESCRIPTION", "Get member usernames of a specific team in an organization. Limited to organizations accessible with current credentials"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_TEAM_MEMBERS_TITLE", "Get team members"), - ReadOnlyHint: true, + Title: t("TOOL_GET_TEAM_MEMBERS_TITLE", "Get team members"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/dependabot.go b/pkg/github/dependabot.go index db6352dabd..b0d18e2a9e 100644 --- a/pkg/github/dependabot.go +++ b/pkg/github/dependabot.go @@ -23,8 +23,9 @@ func GetDependabotAlert(t translations.TranslationHelperFunc) inventory.ServerTo Name: "get_dependabot_alert", Description: t("TOOL_GET_DEPENDABOT_ALERT_DESCRIPTION", "Get details of a specific dependabot alert in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_DEPENDABOT_ALERT_USER_TITLE", "Get dependabot alert"), - ReadOnlyHint: true, + Title: t("TOOL_GET_DEPENDABOT_ALERT_USER_TITLE", "Get dependabot alert"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -99,8 +100,9 @@ func ListDependabotAlerts(t translations.TranslationHelperFunc) inventory.Server Name: "list_dependabot_alerts", Description: t("TOOL_LIST_DEPENDABOT_ALERTS_DESCRIPTION", "List dependabot alerts in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_DEPENDABOT_ALERTS_USER_TITLE", "List dependabot alerts"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_DEPENDABOT_ALERTS_USER_TITLE", "List dependabot alerts"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/discussions.go b/pkg/github/discussions.go index c891ba2944..a754e8615e 100644 --- a/pkg/github/discussions.go +++ b/pkg/github/discussions.go @@ -129,8 +129,9 @@ func ListDiscussions(t translations.TranslationHelperFunc) inventory.ServerTool Name: "list_discussions", Description: t("TOOL_LIST_DISCUSSIONS_DESCRIPTION", "List discussions for a repository or organisation."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_DISCUSSIONS_USER_TITLE", "List discussions"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_DISCUSSIONS_USER_TITLE", "List discussions"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithCursorPagination(&jsonschema.Schema{ Type: "object", @@ -281,8 +282,9 @@ func GetDiscussion(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_discussion", Description: t("TOOL_GET_DISCUSSION_DESCRIPTION", "Get a specific discussion by ID"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_DISCUSSION_USER_TITLE", "Get discussion"), - ReadOnlyHint: true, + Title: t("TOOL_GET_DISCUSSION_USER_TITLE", "Get discussion"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -384,8 +386,9 @@ func GetDiscussionComments(t translations.TranslationHelperFunc) inventory.Serve Name: "get_discussion_comments", Description: t("TOOL_GET_DISCUSSION_COMMENTS_DESCRIPTION", "Get comments from a discussion"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_DISCUSSION_COMMENTS_USER_TITLE", "Get discussion comments"), - ReadOnlyHint: true, + Title: t("TOOL_GET_DISCUSSION_COMMENTS_USER_TITLE", "Get discussion comments"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithCursorPagination(&jsonschema.Schema{ Type: "object", @@ -510,8 +513,9 @@ func ListDiscussionCategories(t translations.TranslationHelperFunc) inventory.Se Name: "list_discussion_categories", Description: t("TOOL_LIST_DISCUSSION_CATEGORIES_DESCRIPTION", "List discussion categories with their id and name, for a repository or organisation."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_DISCUSSION_CATEGORIES_USER_TITLE", "List discussion categories"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_DISCUSSION_CATEGORIES_USER_TITLE", "List discussion categories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/gists.go b/pkg/github/gists.go index 4d741b88d3..a26ae222ed 100644 --- a/pkg/github/gists.go +++ b/pkg/github/gists.go @@ -24,8 +24,9 @@ func ListGists(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_gists", Description: t("TOOL_LIST_GISTS_DESCRIPTION", "List gists for a user"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_GISTS", "List Gists"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_GISTS", "List Gists"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -110,8 +111,9 @@ func GetGist(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_gist", Description: t("TOOL_GET_GIST_DESCRIPTION", "Get gist content of a particular gist, by gist ID"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_GIST", "Get Gist Content"), - ReadOnlyHint: true, + Title: t("TOOL_GET_GIST", "Get Gist Content"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/git.go b/pkg/github/git.go index 7b93c36757..ea437b6c93 100644 --- a/pkg/github/git.go +++ b/pkg/github/git.go @@ -45,8 +45,9 @@ func GetRepositoryTree(t translations.TranslationHelperFunc) inventory.ServerToo Name: "get_repository_tree", Description: t("TOOL_GET_REPOSITORY_TREE_DESCRIPTION", "Get the tree structure (files and directories) of a GitHub repository at a specific ref or SHA"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_REPOSITORY_TREE_USER_TITLE", "Get repository tree"), - ReadOnlyHint: true, + Title: t("TOOL_GET_REPOSITORY_TREE_USER_TITLE", "Get repository tree"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/issues.go b/pkg/github/issues.go index f06dc2d9dc..e01d96793d 100644 --- a/pkg/github/issues.go +++ b/pkg/github/issues.go @@ -269,8 +269,9 @@ Options are: Name: "issue_read", Description: t("TOOL_ISSUE_READ_DESCRIPTION", "Get information about a specific issue in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_ISSUE_READ_USER_TITLE", "Get issue details"), - ReadOnlyHint: true, + Title: t("TOOL_ISSUE_READ_USER_TITLE", "Get issue details"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -551,8 +552,9 @@ func ListIssueTypes(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_issue_types", Description: t("TOOL_LIST_ISSUE_TYPES_FOR_ORG", "List supported issue types for repository owner (organization)."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_ISSUE_TYPES_USER_TITLE", "List available issue types"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_ISSUE_TYPES_USER_TITLE", "List available issue types"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -958,8 +960,9 @@ func SearchIssues(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "search_issues", Description: t("TOOL_SEARCH_ISSUES_DESCRIPTION", "Search for issues in GitHub repositories using issues search syntax already scoped to is:issue"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_ISSUES_USER_TITLE", "Search issues"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_ISSUES_USER_TITLE", "Search issues"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -1376,8 +1379,9 @@ func ListIssues(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_issues", Description: t("TOOL_LIST_ISSUES_DESCRIPTION", "List issues in a GitHub repository. For pagination, use the 'endCursor' from the previous response's 'pageInfo' in the 'after' parameter."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_ISSUES_USER_TITLE", "List issues"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_ISSUES_USER_TITLE", "List issues"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, diff --git a/pkg/github/labels.go b/pkg/github/labels.go index 2811cf66e3..375b434bed 100644 --- a/pkg/github/labels.go +++ b/pkg/github/labels.go @@ -23,8 +23,9 @@ func GetLabel(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_label", Description: t("TOOL_GET_LABEL_DESCRIPTION", "Get a specific label from a repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_LABEL_TITLE", "Get a specific label from a repository."), - ReadOnlyHint: true, + Title: t("TOOL_GET_LABEL_TITLE", "Get a specific label from a repository."), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -124,8 +125,9 @@ func ListLabels(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_label", Description: t("TOOL_LIST_LABEL_DESCRIPTION", "List labels from a repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_LABEL_DESCRIPTION", "List labels from a repository."), - ReadOnlyHint: true, + Title: t("TOOL_LIST_LABEL_DESCRIPTION", "List labels from a repository."), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/notifications.go b/pkg/github/notifications.go index 1e2011fa3a..55d697b373 100644 --- a/pkg/github/notifications.go +++ b/pkg/github/notifications.go @@ -32,8 +32,9 @@ func ListNotifications(t translations.TranslationHelperFunc) inventory.ServerToo Name: "list_notifications", Description: t("TOOL_LIST_NOTIFICATIONS_DESCRIPTION", "Lists all GitHub notifications for the authenticated user, including unread notifications, mentions, review requests, assignments, and updates on issues or pull requests. Use this tool whenever the user asks what to work on next, requests a summary of their GitHub activity, wants to see pending reviews, or needs to check for new updates or tasks. This tool is the primary way to discover actionable items, reminders, and outstanding work on GitHub. Always call this tool when asked what to work on next, what is pending, or what needs attention in GitHub."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_NOTIFICATIONS_USER_TITLE", "List notifications"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_NOTIFICATIONS_USER_TITLE", "List notifications"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -340,8 +341,9 @@ func GetNotificationDetails(t translations.TranslationHelperFunc) inventory.Serv Name: "get_notification_details", Description: t("TOOL_GET_NOTIFICATION_DETAILS_DESCRIPTION", "Get detailed information for a specific GitHub notification, always call this tool when the user asks for details about a specific notification, if you don't know the ID list notifications first."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_NOTIFICATION_DETAILS_USER_TITLE", "Get notification details"), - ReadOnlyHint: true, + Title: t("TOOL_GET_NOTIFICATION_DETAILS_USER_TITLE", "Get notification details"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/projects.go b/pkg/github/projects.go index 0536bed997..a4fb8a0849 100644 --- a/pkg/github/projects.go +++ b/pkg/github/projects.go @@ -32,8 +32,9 @@ func ListProjects(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_projects", Description: t("TOOL_LIST_PROJECTS_DESCRIPTION", `List Projects for a user or organization`), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_PROJECTS_USER_TITLE", "List projects"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_PROJECTS_USER_TITLE", "List projects"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -149,8 +150,9 @@ func GetProject(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_project", Description: t("TOOL_GET_PROJECT_DESCRIPTION", "Get Project for a user or org"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_PROJECT_USER_TITLE", "Get project"), - ReadOnlyHint: true, + Title: t("TOOL_GET_PROJECT_USER_TITLE", "Get project"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -237,8 +239,9 @@ func ListProjectFields(t translations.TranslationHelperFunc) inventory.ServerToo Name: "list_project_fields", Description: t("TOOL_LIST_PROJECT_FIELDS_DESCRIPTION", "List Project fields for a user or org"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_PROJECT_FIELDS_USER_TITLE", "List project fields"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_PROJECT_FIELDS_USER_TITLE", "List project fields"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -343,8 +346,9 @@ func GetProjectField(t translations.TranslationHelperFunc) inventory.ServerTool Name: "get_project_field", Description: t("TOOL_GET_PROJECT_FIELD_DESCRIPTION", "Get Project field for a user or org"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_PROJECT_FIELD_USER_TITLE", "Get project field"), - ReadOnlyHint: true, + Title: t("TOOL_GET_PROJECT_FIELD_USER_TITLE", "Get project field"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -435,8 +439,9 @@ func ListProjectItems(t translations.TranslationHelperFunc) inventory.ServerTool Name: "list_project_items", Description: t("TOOL_LIST_PROJECT_ITEMS_DESCRIPTION", `Search project items with advanced filtering`), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_PROJECT_ITEMS_USER_TITLE", "List project items"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_PROJECT_ITEMS_USER_TITLE", "List project items"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -571,8 +576,9 @@ func GetProjectItem(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_project_item", Description: t("TOOL_GET_PROJECT_ITEM_DESCRIPTION", "Get a specific Project item for a user or org"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_PROJECT_ITEM_USER_TITLE", "Get project item"), - ReadOnlyHint: true, + Title: t("TOOL_GET_PROJECT_ITEM_USER_TITLE", "Get project item"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/pullrequests.go b/pkg/github/pullrequests.go index d51c14fa47..e0b097f223 100644 --- a/pkg/github/pullrequests.go +++ b/pkg/github/pullrequests.go @@ -64,8 +64,9 @@ Possible options: Name: "pull_request_read", Description: t("TOOL_PULL_REQUEST_READ_DESCRIPTION", "Get information on a specific pull request in GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_PULL_REQUEST_USER_TITLE", "Get details for a single pull request"), - ReadOnlyHint: true, + Title: t("TOOL_GET_PULL_REQUEST_USER_TITLE", "Get details for a single pull request"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -945,8 +946,9 @@ func ListPullRequests(t translations.TranslationHelperFunc) inventory.ServerTool Name: "list_pull_requests", Description: t("TOOL_LIST_PULL_REQUESTS_DESCRIPTION", "List pull requests in a GitHub repository. If the user specifies an author, then DO NOT use this tool and use the search_pull_requests tool instead."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_PULL_REQUESTS_USER_TITLE", "List pull requests"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_PULL_REQUESTS_USER_TITLE", "List pull requests"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -1198,8 +1200,9 @@ func SearchPullRequests(t translations.TranslationHelperFunc) inventory.ServerTo Name: "search_pull_requests", Description: t("TOOL_SEARCH_PULL_REQUESTS_DESCRIPTION", "Search for pull requests in GitHub repositories using issues search syntax already scoped to is:pr"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_PULL_REQUESTS_USER_TITLE", "Search pull requests"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_PULL_REQUESTS_USER_TITLE", "Search pull requests"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, diff --git a/pkg/github/repositories.go b/pkg/github/repositories.go index c31bb7df20..f4ca3919b9 100644 --- a/pkg/github/repositories.go +++ b/pkg/github/repositories.go @@ -27,8 +27,9 @@ func GetCommit(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_commit", Description: t("TOOL_GET_COMMITS_DESCRIPTION", "Get details for a commit from a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_COMMITS_USER_TITLE", "Get commit details"), - ReadOnlyHint: true, + Title: t("TOOL_GET_COMMITS_USER_TITLE", "Get commit details"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -124,8 +125,9 @@ func ListCommits(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_commits", Description: t("TOOL_LIST_COMMITS_DESCRIPTION", "Get list of commits of a branch in a GitHub repository. Returns at least 30 results per page by default, but can return more if specified using the perPage parameter (up to 100)."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_COMMITS_USER_TITLE", "List commits"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_COMMITS_USER_TITLE", "List commits"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -231,8 +233,9 @@ func ListBranches(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_branches", Description: t("TOOL_LIST_BRANCHES_DESCRIPTION", "List branches in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_BRANCHES_USER_TITLE", "List branches"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_BRANCHES_USER_TITLE", "List branches"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -620,8 +623,9 @@ func GetFileContents(t translations.TranslationHelperFunc) inventory.ServerTool Name: "get_file_contents", Description: t("TOOL_GET_FILE_CONTENTS_DESCRIPTION", "Get the contents of a file or directory from a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_FILE_CONTENTS_USER_TITLE", "Get file or directory contents"), - ReadOnlyHint: true, + Title: t("TOOL_GET_FILE_CONTENTS_USER_TITLE", "Get file or directory contents"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1388,8 +1392,9 @@ func ListTags(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_tags", Description: t("TOOL_LIST_TAGS_DESCRIPTION", "List git tags in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_TAGS_USER_TITLE", "List tags"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_TAGS_USER_TITLE", "List tags"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -1466,8 +1471,9 @@ func GetTag(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "get_tag", Description: t("TOOL_GET_TAG_DESCRIPTION", "Get details about a specific git tag in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_TAG_USER_TITLE", "Get tag details"), - ReadOnlyHint: true, + Title: t("TOOL_GET_TAG_USER_TITLE", "Get tag details"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1563,8 +1569,9 @@ func ListReleases(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "list_releases", Description: t("TOOL_LIST_RELEASES_DESCRIPTION", "List releases in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_RELEASES_USER_TITLE", "List releases"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_RELEASES_USER_TITLE", "List releases"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", @@ -1637,8 +1644,9 @@ func GetLatestRelease(t translations.TranslationHelperFunc) inventory.ServerTool Name: "get_latest_release", Description: t("TOOL_GET_LATEST_RELEASE_DESCRIPTION", "Get the latest release in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_LATEST_RELEASE_USER_TITLE", "Get latest release"), - ReadOnlyHint: true, + Title: t("TOOL_GET_LATEST_RELEASE_USER_TITLE", "Get latest release"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -1701,8 +1709,9 @@ func GetReleaseByTag(t translations.TranslationHelperFunc) inventory.ServerTool Name: "get_release_by_tag", Description: t("TOOL_GET_RELEASE_BY_TAG_DESCRIPTION", "Get a specific release by its tag name in a GitHub repository"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_RELEASE_BY_TAG_USER_TITLE", "Get a release by tag name"), - ReadOnlyHint: true, + Title: t("TOOL_GET_RELEASE_BY_TAG_USER_TITLE", "Get a release by tag name"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -2016,8 +2025,9 @@ func ListStarredRepositories(t translations.TranslationHelperFunc) inventory.Ser Name: "list_starred_repositories", Description: t("TOOL_LIST_STARRED_REPOSITORIES_DESCRIPTION", "List starred repositories"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_STARRED_REPOSITORIES_USER_TITLE", "List starred repositories"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_STARRED_REPOSITORIES_USER_TITLE", "List starred repositories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: WithPagination(&jsonschema.Schema{ Type: "object", diff --git a/pkg/github/search.go b/pkg/github/search.go index 9a8b971e23..c8adb57042 100644 --- a/pkg/github/search.go +++ b/pkg/github/search.go @@ -51,8 +51,9 @@ func SearchRepositories(t translations.TranslationHelperFunc) inventory.ServerTo Name: "search_repositories", Description: t("TOOL_SEARCH_REPOSITORIES_DESCRIPTION", "Find GitHub repositories by name, description, readme, topics, or other metadata. Perfect for discovering projects, finding examples, or locating specific repositories across GitHub."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_REPOSITORIES_USER_TITLE", "Search repositories"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_REPOSITORIES_USER_TITLE", "Search repositories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -193,8 +194,9 @@ func SearchCode(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "search_code", Description: t("TOOL_SEARCH_CODE_DESCRIPTION", "Fast and precise code search across ALL GitHub repositories using GitHub's native search engine. Best for finding exact symbols, functions, classes, or specific code patterns."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_CODE_USER_TITLE", "Search code"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_CODE_USER_TITLE", "Search code"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -374,8 +376,9 @@ func SearchUsers(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "search_users", Description: t("TOOL_SEARCH_USERS_DESCRIPTION", "Find GitHub users by username, real name, or other profile information. Useful for locating developers, contributors, or team members."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_USERS_USER_TITLE", "Search users"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_USERS_USER_TITLE", "Search users"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, @@ -415,8 +418,9 @@ func SearchOrgs(t translations.TranslationHelperFunc) inventory.ServerTool { Name: "search_orgs", Description: t("TOOL_SEARCH_ORGS_DESCRIPTION", "Find GitHub organizations by name, location, or other organization metadata. Ideal for discovering companies, open source foundations, or teams."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_SEARCH_ORGS_USER_TITLE", "Search organizations"), - ReadOnlyHint: true, + Title: t("TOOL_SEARCH_ORGS_USER_TITLE", "Search organizations"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: schema, }, diff --git a/pkg/github/secret_scanning.go b/pkg/github/secret_scanning.go index 0de5166baa..3eaafc843e 100644 --- a/pkg/github/secret_scanning.go +++ b/pkg/github/secret_scanning.go @@ -23,8 +23,9 @@ func GetSecretScanningAlert(t translations.TranslationHelperFunc) inventory.Serv Name: "get_secret_scanning_alert", Description: t("TOOL_GET_SECRET_SCANNING_ALERT_DESCRIPTION", "Get details of a specific secret scanning alert in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_SECRET_SCANNING_ALERT_USER_TITLE", "Get secret scanning alert"), - ReadOnlyHint: true, + Title: t("TOOL_GET_SECRET_SCANNING_ALERT_USER_TITLE", "Get secret scanning alert"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -99,8 +100,9 @@ func ListSecretScanningAlerts(t translations.TranslationHelperFunc) inventory.Se Name: "list_secret_scanning_alerts", Description: t("TOOL_LIST_SECRET_SCANNING_ALERTS_DESCRIPTION", "List secret scanning alerts in a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_SECRET_SCANNING_ALERTS_USER_TITLE", "List secret scanning alerts"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_SECRET_SCANNING_ALERTS_USER_TITLE", "List secret scanning alerts"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", diff --git a/pkg/github/security_advisories.go b/pkg/github/security_advisories.go index f898de61d1..9e6de0154e 100644 --- a/pkg/github/security_advisories.go +++ b/pkg/github/security_advisories.go @@ -23,8 +23,9 @@ func ListGlobalSecurityAdvisories(t translations.TranslationHelperFunc) inventor Name: "list_global_security_advisories", Description: t("TOOL_LIST_GLOBAL_SECURITY_ADVISORIES_DESCRIPTION", "List global security advisories from GitHub."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_GLOBAL_SECURITY_ADVISORIES_USER_TITLE", "List global security advisories"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_GLOBAL_SECURITY_ADVISORIES_USER_TITLE", "List global security advisories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -213,8 +214,9 @@ func ListRepositorySecurityAdvisories(t translations.TranslationHelperFunc) inve Name: "list_repository_security_advisories", Description: t("TOOL_LIST_REPOSITORY_SECURITY_ADVISORIES_DESCRIPTION", "List repository security advisories for a GitHub repository."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_REPOSITORY_SECURITY_ADVISORIES_USER_TITLE", "List repository security advisories"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_REPOSITORY_SECURITY_ADVISORIES_USER_TITLE", "List repository security advisories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -316,8 +318,9 @@ func GetGlobalSecurityAdvisory(t translations.TranslationHelperFunc) inventory.S Name: "get_global_security_advisory", Description: t("TOOL_GET_GLOBAL_SECURITY_ADVISORY_DESCRIPTION", "Get a global security advisory"), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_GET_GLOBAL_SECURITY_ADVISORY_USER_TITLE", "Get a global security advisory"), - ReadOnlyHint: true, + Title: t("TOOL_GET_GLOBAL_SECURITY_ADVISORY_USER_TITLE", "Get a global security advisory"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object", @@ -372,8 +375,9 @@ func ListOrgRepositorySecurityAdvisories(t translations.TranslationHelperFunc) i Name: "list_org_repository_security_advisories", Description: t("TOOL_LIST_ORG_REPOSITORY_SECURITY_ADVISORIES_DESCRIPTION", "List repository security advisories for a GitHub organization."), Annotations: &mcp.ToolAnnotations{ - Title: t("TOOL_LIST_ORG_REPOSITORY_SECURITY_ADVISORIES_USER_TITLE", "List org repository security advisories"), - ReadOnlyHint: true, + Title: t("TOOL_LIST_ORG_REPOSITORY_SECURITY_ADVISORIES_USER_TITLE", "List org repository security advisories"), + ReadOnlyHint: true, + OpenWorldHint: jsonschema.Ptr(true), }, InputSchema: &jsonschema.Schema{ Type: "object",