@@ -42,7 +42,6 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
4242 if err != nil {
4343 return mcp .NewToolResultError (err .Error ()), nil
4444 }
45-
4645 client , err := getClient (ctx )
4746 if err != nil {
4847 return mcp .NewToolResultError (err .Error ()), nil
@@ -56,11 +55,14 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
5655 }
5756 projects := []github.ProjectV2 {}
5857
59- opts := ListProjectsOptions {PerPage : perPage }
58+ opts := listProjectsOptions {PerPage : perPage }
6059
6160 if queryStr != "" {
6261 opts .Query = queryStr
6362 }
63+ if perPage > 0 {
64+ opts .PerPage = perPage
65+ }
6466 url , err = addOptions (url , opts )
6567 if err != nil {
6668 return nil , fmt .Errorf ("failed to add options to request: %w" , err )
@@ -99,7 +101,7 @@ func ListProjects(getClient GetClientFn, t translations.TranslationHelperFunc) (
99101
100102func GetProject (getClient GetClientFn , t translations.TranslationHelperFunc ) (tool mcp.Tool , handler server.ToolHandlerFunc ) {
101103 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" )),
103105 mcp .WithToolAnnotation (mcp.ToolAnnotation {Title : t ("TOOL_GET_PROJECT_USER_TITLE" , "Get project" ), ReadOnlyHint : ToBoolPtr (true )}),
104106 mcp .WithNumber ("project_number" , mcp .Required (), mcp .Description ("The project's number" )),
105107 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
133135 url = fmt .Sprintf ("users/%s/projectsV2/%d" , owner , projectNumber )
134136 }
135137
136- projects := [] github.ProjectV2 {}
138+ project := github.ProjectV2 {}
137139
138140 httpRequest , err := client .NewRequest ("GET" , url , nil )
139141 if err != nil {
140142 return nil , fmt .Errorf ("failed to create request: %w" , err )
141143 }
142144
143- resp , err := client .Do (ctx , httpRequest , & projects )
145+ resp , err := client .Do (ctx , httpRequest , & project )
144146 if err != nil {
145147 return ghErrors .NewGitHubAPIErrorResponse (ctx ,
146148 "failed to get project" ,
@@ -157,7 +159,7 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
157159 }
158160 return mcp .NewToolResultError (fmt .Sprintf ("failed to get project: %s" , string (body ))), nil
159161 }
160- r , err := json .Marshal (projects )
162+ r , err := json .Marshal (project )
161163 if err != nil {
162164 return nil , fmt .Errorf ("failed to marshal response: %w" , err )
163165 }
@@ -166,7 +168,7 @@ func GetProject(getClient GetClientFn, t translations.TranslationHelperFunc) (to
166168 }
167169}
168170
169- type ListProjectsOptions struct {
171+ type listProjectsOptions struct {
170172 // For paginated result sets, the number of results to include per page.
171173 PerPage int `url:"per_page,omitempty"`
172174
0 commit comments