@@ -42,7 +42,6 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
42
42
if err != nil {
43
43
return mcp .NewToolResultError (err .Error ()), nil
44
44
}
45
-
46
45
client , err := getClient (ctx )
47
46
if err != nil {
48
47
return mcp .NewToolResultError (err .Error ()), nil
@@ -56,11 +55,14 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
56
55
}
57
56
projects := []github.ProjectV2 {}
58
57
59
- opts := ListProjectsOptions {PerPage : perPage }
58
+ opts := listProjectsOptions {PerPage : perPage }
60
59
61
60
if queryStr != "" {
62
61
opts .Query = queryStr
63
62
}
63
+ if perPage > 0 {
64
+ opts .PerPage = perPage
65
+ }
64
66
url , err = addOptions (url , opts )
65
67
if err != nil {
66
68
return nil , fmt .Errorf ("failed to add options to request: %w" , err )
@@ -99,7 +101,7 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
99
101
100
102
func GetProject (getClient GetClientFn , t translations.TranslationHelperFunc ) (tool mcp.Tool , handler server.ToolHandlerFunc ) {
101
103
return mcp .NewTool ("get_project" ,
102
- mcp .WithDescription (t ("TOOL_GET_PROJECT_DESCRIPTION" , "Get Project for a user or organization" )),
104
+ mcp .WithDescription (t ("TOOL_GET_PROJECT_DESCRIPTION" , "Get Project for an user or organization" )),
103
105
mcp .WithToolAnnotation (mcp.ToolAnnotation {Title : t ("TOOL_GET_PROJECT_USER_TITLE" , "Get project" ), ReadOnlyHint : ToBoolPtr (true )}),
104
106
mcp .WithNumber ("project_number" , mcp .Required (), mcp .Description ("The project's number" )),
105
107
mcp .WithString ("owner_type" , mcp .Required (), mcp .Description ("Owner type" ), mcp .Enum ("user" , "organization" )),
@@ -133,14 +135,14 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
133
135
url = fmt .Sprintf ("users/%s/projectsV2/%d" , owner , projectNumber )
134
136
}
135
137
136
- projects := [] github.ProjectV2 {}
138
+ project := github.ProjectV2 {}
137
139
138
140
httpRequest , err := client .NewRequest ("GET" , url , nil )
139
141
if err != nil {
140
142
return nil , fmt .Errorf ("failed to create request: %w" , err )
141
143
}
142
144
143
- resp , err := client .Do (ctx , httpRequest , & projects )
145
+ resp , err := client .Do (ctx , httpRequest , & project )
144
146
if err != nil {
145
147
return ghErrors .NewGitHubAPIErrorResponse (ctx ,
146
148
"failed to get project" ,
@@ -157,7 +159,7 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
157
159
}
158
160
return mcp .NewToolResultError (fmt .Sprintf ("failed to get project: %s" , string (body ))), nil
159
161
}
160
- r , err := json .Marshal (projects )
162
+ r , err := json .Marshal (project )
161
163
if err != nil {
162
164
return nil , fmt .Errorf ("failed to marshal response: %w" , err )
163
165
}
@@ -166,7 +168,7 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
166
168
}
167
169
}
168
170
169
- type ListProjectsOptions struct {
171
+ type listProjectsOptions struct {
170
172
// For paginated result sets, the number of results to include per page.
171
173
PerPage int `url:"per_page,omitempty"`
172
174
0 commit comments