Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit145357a

Browse files
feat: provide tool annotations
1 parent495c0cb commit145357a

15 files changed

+198
-28
lines changed

‎go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ require (
66
github.com/docker/dockerv28.0.4+incompatible
77
github.com/google/go-cmpv0.7.0
88
github.com/google/go-github/v69v69.2.0
9-
github.com/mark3labs/mcp-gov0.20.1
9+
github.com/mark3labs/mcp-gov0.21.1
1010
github.com/migueleliasweb/go-github-mockv1.1.0
1111
github.com/sirupsen/logrusv1.9.3
1212
github.com/spf13/cobrav1.9.1

‎go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,8 +57,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
5757
github.com/kr/prettyv0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
5858
github.com/kr/textv0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
5959
github.com/kr/textv0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
60-
github.com/mark3labs/mcp-gov0.20.1 h1:E1Bbx9K8d8kQmDZ1QHblM38c7UU2evQ2LlkANk1U/zw=
61-
github.com/mark3labs/mcp-gov0.20.1/go.mod h1:KmJndYv7GIgcPVwEKJjNcbhVQ+hJGJhrCCB/9xITzpE=
60+
github.com/mark3labs/mcp-gov0.21.1 h1:7Ek6KPIIbMhEYHRiRIg6K6UAgNZCJaHKQp926MNr6V0=
61+
github.com/mark3labs/mcp-gov0.21.1/go.mod h1:KmJndYv7GIgcPVwEKJjNcbhVQ+hJGJhrCCB/9xITzpE=
6262
github.com/migueleliasweb/go-github-mockv1.1.0 h1:GKaOBPsrPGkAKgtfuWY8MclS1xR6MInkx1SexJucMwE=
6363
github.com/migueleliasweb/go-github-mockv1.1.0/go.mod h1:pYe/XlGs4BGMfRY4vmeixVsODHnVDDhJ9zoi0qzSMHc=
6464
github.com/moby/docker-image-specv1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=

‎pkg/github/code_scanning.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import (
1616
funcGetCodeScanningAlert(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
1717
returnmcp.NewTool("get_code_scanning_alert",
1818
mcp.WithDescription(t("TOOL_GET_CODE_SCANNING_ALERT_DESCRIPTION","Get details of a specific code scanning alert in a GitHub repository.")),
19+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
20+
Title:t("TOOL_GET_CODE_SCANNING_ALERT_USER_TITLE","Get code scanning alert"),
21+
ReadOnlyHint:true,
22+
}),
1923
mcp.WithString("owner",
2024
mcp.Required(),
2125
mcp.Description("The owner of the repository."),
@@ -74,6 +78,10 @@ func GetCodeScanningAlert(getClient GetClientFn, t translations.TranslationHelpe
7478
funcListCodeScanningAlerts(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
7579
returnmcp.NewTool("list_code_scanning_alerts",
7680
mcp.WithDescription(t("TOOL_LIST_CODE_SCANNING_ALERTS_DESCRIPTION","List code scanning alerts in a GitHub repository.")),
81+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
82+
Title:t("TOOL_LIST_CODE_SCANNING_ALERTS_USER_TITLE","List code scanning alerts"),
83+
ReadOnlyHint:true,
84+
}),
7785
mcp.WithString("owner",
7886
mcp.Required(),
7987
mcp.Description("The owner of the repository."),

‎pkg/github/context_tools.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@ import (
1616
funcGetMe(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
1717
returnmcp.NewTool("get_me",
1818
mcp.WithDescription(t("TOOL_GET_ME_DESCRIPTION","Get details of the authenticated GitHub user. Use this when a request include\"me\",\"my\"...")),
19+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
20+
Title:t("TOOL_GET_ME_USER_TITLE","Get my user profile"),
21+
ReadOnlyHint:true,
22+
}),
1923
mcp.WithString("reason",
2024
mcp.Description("Optional: reason the session was created"),
2125
),

‎pkg/github/dynamic_tools.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ func ToolsetEnum(toolsetGroup *toolsets.ToolsetGroup) mcp.PropertyOption {
2222
funcEnableToolset(s*server.MCPServer,toolsetGroup*toolsets.ToolsetGroup,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
2323
returnmcp.NewTool("enable_toolset",
2424
mcp.WithDescription(t("TOOL_ENABLE_TOOLSET_DESCRIPTION","Enable one of the sets of tools the GitHub MCP server provides, use get_toolset_tools and list_available_toolsets first to see what this will enable")),
25+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
26+
Title:t("TOOL_ENABLE_TOOLSET_USER_TITLE","Enable a toolset"),
27+
// Not modifying GitHub data so no need to show a warning
28+
ReadOnlyHint:true,
29+
}),
2530
mcp.WithString("toolset",
2631
mcp.Required(),
2732
mcp.Description("The name of the toolset to enable"),
@@ -57,6 +62,9 @@ func EnableToolset(s *server.MCPServer, toolsetGroup *toolsets.ToolsetGroup, t t
5762
funcListAvailableToolsets(toolsetGroup*toolsets.ToolsetGroup,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
5863
returnmcp.NewTool("list_available_toolsets",
5964
mcp.WithDescription(t("TOOL_LIST_AVAILABLE_TOOLSETS_DESCRIPTION","List all available toolsets this GitHub MCP server can offer, providing the enabled status of each. Use this when a task could be achieved with a GitHub tool and the currently available tools aren't enough. Call get_toolset_tools with these toolset names to discover specific tools you can call")),
65+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
66+
Title:t("TOOL_LIST_AVAILABLE_TOOLSETS_USER_TITLE","List available toolsets"),
67+
}),
6068
),
6169
func(_ context.Context,_ mcp.CallToolRequest) (*mcp.CallToolResult,error) {
6270
// We need to convert the toolsetGroup back to a map for JSON serialization
@@ -87,6 +95,9 @@ func ListAvailableToolsets(toolsetGroup *toolsets.ToolsetGroup, t translations.T
8795
funcGetToolsetsTools(toolsetGroup*toolsets.ToolsetGroup,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
8896
returnmcp.NewTool("get_toolset_tools",
8997
mcp.WithDescription(t("TOOL_GET_TOOLSET_TOOLS_DESCRIPTION","Lists all the capabilities that are enabled with the specified toolset, use this to get clarity on whether enabling a toolset would help you to complete a task")),
98+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
99+
Title:t("TOOL_GET_TOOLSET_TOOLS_USER_TITLE","List all tools in a toolset"),
100+
}),
90101
mcp.WithString("toolset",
91102
mcp.Required(),
92103
mcp.Description("The name of the toolset you want to get the tools for"),

‎pkg/github/issues.go

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,11 @@ import (
1717
// GetIssue creates a tool to get details of a specific issue in a GitHub repository.
1818
funcGetIssue(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
1919
returnmcp.NewTool("get_issue",
20-
mcp.WithDescription(t("TOOL_GET_ISSUE_DESCRIPTION","Get details of a specific issue in a GitHub repository")),
20+
mcp.WithDescription(t("TOOL_GET_ISSUE_DESCRIPTION","Get details of a specific issue in a GitHub repository.")),
21+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
22+
Title:t("TOOL_GET_ISSUE_USER_TITLE","Get issue details"),
23+
ReadOnlyHint:true,
24+
}),
2125
mcp.WithString("owner",
2226
mcp.Required(),
2327
mcp.Description("The owner of the repository"),
@@ -75,7 +79,11 @@ func GetIssue(getClient GetClientFn, t translations.TranslationHelperFunc) (tool
7579
// AddIssueComment creates a tool to add a comment to an issue.
7680
funcAddIssueComment(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
7781
returnmcp.NewTool("add_issue_comment",
78-
mcp.WithDescription(t("TOOL_ADD_ISSUE_COMMENT_DESCRIPTION","Add a comment to an existing issue")),
82+
mcp.WithDescription(t("TOOL_ADD_ISSUE_COMMENT_DESCRIPTION","Add a comment to a specific issue in a GitHub repository.")),
83+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
84+
Title:t("TOOL_ADD_ISSUE_COMMENT_USER_TITLE","Add comment to issue"),
85+
ReadOnlyHint:false,
86+
}),
7987
mcp.WithString("owner",
8088
mcp.Required(),
8189
mcp.Description("Repository owner"),
@@ -145,7 +153,11 @@ func AddIssueComment(getClient GetClientFn, t translations.TranslationHelperFunc
145153
// SearchIssues creates a tool to search for issues and pull requests.
146154
funcSearchIssues(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
147155
returnmcp.NewTool("search_issues",
148-
mcp.WithDescription(t("TOOL_SEARCH_ISSUES_DESCRIPTION","Search for issues and pull requests across GitHub repositories")),
156+
mcp.WithDescription(t("TOOL_SEARCH_ISSUES_DESCRIPTION","Search for issues in GitHub repositories.")),
157+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
158+
Title:t("TOOL_SEARCH_ISSUES_USER_TITLE","Search issues"),
159+
ReadOnlyHint:true,
160+
}),
149161
mcp.WithString("q",
150162
mcp.Required(),
151163
mcp.Description("Search query using GitHub issues search syntax"),
@@ -229,7 +241,11 @@ func SearchIssues(getClient GetClientFn, t translations.TranslationHelperFunc) (
229241
// CreateIssue creates a tool to create a new issue in a GitHub repository.
230242
funcCreateIssue(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
231243
returnmcp.NewTool("create_issue",
232-
mcp.WithDescription(t("TOOL_CREATE_ISSUE_DESCRIPTION","Create a new issue in a GitHub repository")),
244+
mcp.WithDescription(t("TOOL_CREATE_ISSUE_DESCRIPTION","Create a new issue in a GitHub repository.")),
245+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
246+
Title:t("TOOL_CREATE_ISSUE_USER_TITLE","Open new issue"),
247+
ReadOnlyHint:false,
248+
}),
233249
mcp.WithString("owner",
234250
mcp.Required(),
235251
mcp.Description("Repository owner"),
@@ -347,7 +363,11 @@ func CreateIssue(getClient GetClientFn, t translations.TranslationHelperFunc) (t
347363
// ListIssues creates a tool to list and filter repository issues
348364
funcListIssues(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
349365
returnmcp.NewTool("list_issues",
350-
mcp.WithDescription(t("TOOL_LIST_ISSUES_DESCRIPTION","List issues in a GitHub repository with filtering options")),
366+
mcp.WithDescription(t("TOOL_LIST_ISSUES_DESCRIPTION","List issues in a GitHub repository.")),
367+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
368+
Title:t("TOOL_LIST_ISSUES_USER_TITLE","List issues"),
369+
ReadOnlyHint:true,
370+
}),
351371
mcp.WithString("owner",
352372
mcp.Required(),
353373
mcp.Description("Repository owner"),
@@ -465,7 +485,11 @@ func ListIssues(getClient GetClientFn, t translations.TranslationHelperFunc) (to
465485
// UpdateIssue creates a tool to update an existing issue in a GitHub repository.
466486
funcUpdateIssue(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
467487
returnmcp.NewTool("update_issue",
468-
mcp.WithDescription(t("TOOL_UPDATE_ISSUE_DESCRIPTION","Update an existing issue in a GitHub repository")),
488+
mcp.WithDescription(t("TOOL_UPDATE_ISSUE_DESCRIPTION","Update an existing issue in a GitHub repository.")),
489+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
490+
Title:t("TOOL_UPDATE_ISSUE_USER_TITLE","Edit issue"),
491+
ReadOnlyHint:false,
492+
}),
469493
mcp.WithString("owner",
470494
mcp.Required(),
471495
mcp.Description("Repository owner"),
@@ -607,7 +631,11 @@ func UpdateIssue(getClient GetClientFn, t translations.TranslationHelperFunc) (t
607631
// GetIssueComments creates a tool to get comments for a GitHub issue.
608632
funcGetIssueComments(getClientGetClientFn,t translations.TranslationHelperFunc) (tool mcp.Tool,handler server.ToolHandlerFunc) {
609633
returnmcp.NewTool("get_issue_comments",
610-
mcp.WithDescription(t("TOOL_GET_ISSUE_COMMENTS_DESCRIPTION","Get comments for a GitHub issue")),
634+
mcp.WithDescription(t("TOOL_GET_ISSUE_COMMENTS_DESCRIPTION","Get comments for a specific issue in a GitHub repository.")),
635+
mcp.WithToolAnnotation(mcp.ToolAnnotation{
636+
Title:t("TOOL_GET_ISSUE_COMMENTS_USER_TITLE","Get issue comments"),
637+
ReadOnlyHint:true,
638+
}),
611639
mcp.WithString("owner",
612640
mcp.Required(),
613641
mcp.Description("Repository owner"),

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp