diff --git a/README.md b/README.md
index 396fb1661..13b0586e4 100644
--- a/README.md
+++ b/README.md
@@ -668,15 +668,6 @@ The following sets of tools are available (all are on by default):
- `title`: New title (string, optional)
- `type`: New issue type (string, optional)
-- **write_label** - Write operations on repository labels.
- - `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional)
- - `description`: Label description text. Optional for 'create' and 'update'. (string, optional)
- - `method`: Operation to perform: 'create', 'update', or 'delete' (string, required)
- - `name`: Label name - required for all operations (string, required)
- - `new_name`: New name for the label (used only with 'update' method to rename) (string, optional)
- - `owner`: Repository owner (username or organization name) (string, required)
- - `repo`: Repository name (string, required)
-
@@ -688,12 +679,7 @@ The following sets of tools are available (all are on by default):
- `owner`: Repository owner (username or organization name) (string, required)
- `repo`: Repository name (string, required)
-- **list_label** - List labels from a repository or an issue
- - `issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional)
- - `owner`: Repository owner (username or organization name) - required for all operations (string, required)
- - `repo`: Repository name - required for all operations (string, required)
-
-- **write_label** - Write operations on repository labels.
+- **label_write** - Write operations on repository labels.
- `color`: Label color as 6-character hex code without '#' prefix (e.g., 'f29513'). Required for 'create', optional for 'update'. (string, optional)
- `description`: Label description text. Optional for 'create' and 'update'. (string, optional)
- `method`: Operation to perform: 'create', 'update', or 'delete' (string, required)
@@ -702,6 +688,11 @@ The following sets of tools are available (all are on by default):
- `owner`: Repository owner (username or organization name) (string, required)
- `repo`: Repository name (string, required)
+- **list_label** - List labels from a repository or an issue
+ - `issue_number`: Issue number - if provided, lists labels on the specific issue (number, optional)
+ - `owner`: Repository owner (username or organization name) - required for all operations (string, required)
+ - `repo`: Repository name - required for all operations (string, required)
+
diff --git a/pkg/github/__toolsnaps__/write_label.snap b/pkg/github/__toolsnaps__/label_write.snap
similarity index 98%
rename from pkg/github/__toolsnaps__/write_label.snap
rename to pkg/github/__toolsnaps__/label_write.snap
index cb13f8bbb..12d0bd441 100644
--- a/pkg/github/__toolsnaps__/write_label.snap
+++ b/pkg/github/__toolsnaps__/label_write.snap
@@ -48,5 +48,5 @@
],
"type": "object"
},
- "name": "write_label"
+ "name": "label_write"
}
\ No newline at end of file
diff --git a/pkg/github/labels.go b/pkg/github/labels.go
index 91eae4274..f0cc0e630 100644
--- a/pkg/github/labels.go
+++ b/pkg/github/labels.go
@@ -239,13 +239,13 @@ func ListLabels(getGQLClient GetGQLClientFn, t translations.TranslationHelperFun
}
}
-// WriteLabel handles create, update, and delete operations for GitHub labels
-func WriteLabel(getGQLClient GetGQLClientFn, t translations.TranslationHelperFunc) (mcp.Tool, server.ToolHandlerFunc) {
+// LabelWrite handles create, update, and delete operations for GitHub labels
+func LabelWrite(getGQLClient GetGQLClientFn, t translations.TranslationHelperFunc) (mcp.Tool, server.ToolHandlerFunc) {
return mcp.NewTool(
- "write_label",
- mcp.WithDescription(t("TOOL_WRITE_LABEL_DESCRIPTION", "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.")),
+ "label_write",
+ mcp.WithDescription(t("TOOL_LABEL_WRITE_DESCRIPTION", "Perform write operations on repository labels. To set labels on issues, use the 'update_issue' tool.")),
mcp.WithToolAnnotation(mcp.ToolAnnotation{
- Title: t("TOOL_WRITE_LABEL_TITLE", "Write operations on repository labels."),
+ Title: t("TOOL_LABEL_WRITE_TITLE", "Write operations on repository labels."),
ReadOnlyHint: ToBoolPtr(false),
}),
mcp.WithString("method",
diff --git a/pkg/github/labels_test.go b/pkg/github/labels_test.go
index 8e1d7688e..96b9f7f85 100644
--- a/pkg/github/labels_test.go
+++ b/pkg/github/labels_test.go
@@ -291,10 +291,10 @@ func TestWriteLabel(t *testing.T) {
// Verify tool definition
mockClient := githubv4.NewClient(nil)
- tool, _ := WriteLabel(stubGetGQLClientFn(mockClient), translations.NullTranslationHelper)
+ tool, _ := LabelWrite(stubGetGQLClientFn(mockClient), translations.NullTranslationHelper)
require.NoError(t, toolsnaps.Test(tool.Name, tool))
- assert.Equal(t, "write_label", tool.Name)
+ assert.Equal(t, "label_write", tool.Name)
assert.NotEmpty(t, tool.Description)
assert.Contains(t, tool.InputSchema.Properties, "method")
assert.Contains(t, tool.InputSchema.Properties, "owner")
@@ -520,7 +520,7 @@ func TestWriteLabel(t *testing.T) {
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
client := githubv4.NewClient(tc.mockedClient)
- _, handler := WriteLabel(stubGetGQLClientFn(client), translations.NullTranslationHelper)
+ _, handler := LabelWrite(stubGetGQLClientFn(client), translations.NullTranslationHelper)
request := createMCPRequest(tc.requestArgs)
result, err := handler(context.Background(), request)
diff --git a/pkg/github/tools.go b/pkg/github/tools.go
index 796ebccf2..495135ae4 100644
--- a/pkg/github/tools.go
+++ b/pkg/github/tools.go
@@ -188,7 +188,6 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG
toolsets.NewServerTool(AddSubIssue(getClient, t)),
toolsets.NewServerTool(RemoveSubIssue(getClient, t)),
toolsets.NewServerTool(ReprioritizeSubIssue(getClient, t)),
- toolsets.NewServerTool(WriteLabel(getGQLClient, t)),
).AddPrompts(
toolsets.NewServerPrompt(AssignCodingAgentPrompt(t)),
toolsets.NewServerPrompt(IssueToFixWorkflowPrompt(t)),
@@ -335,7 +334,7 @@ func DefaultToolsetGroup(readOnly bool, getClient GetClientFn, getGQLClient GetG
).
AddWriteTools(
// create or update
- toolsets.NewServerTool(WriteLabel(getGQLClient, t)),
+ toolsets.NewServerTool(LabelWrite(getGQLClient, t)),
)
// Add toolsets to the group
tsg.AddToolset(contextTools)