From 4978621b9b584c63ba7ffdc5e8f95d662b42216b Mon Sep 17 00:00:00 2001 From: hiifong Date: Wed, 19 Mar 2025 11:46:20 +0800 Subject: [PATCH] Update --- operation/issue/issue.go | 9 +++++++++ operation/operation.go | 10 +++++----- operation/repo/repo.go | 27 +++++++++++++++++---------- operation/user/user.go | 5 +++++ operation/version/version.go | 6 ++++++ 5 files changed, 42 insertions(+), 15 deletions(-) diff --git a/operation/issue/issue.go b/operation/issue/issue.go index a13ade4..7393887 100644 --- a/operation/issue/issue.go +++ b/operation/issue/issue.go @@ -6,7 +6,9 @@ import ( "gitea.com/gitea/gitea-mcp/pkg/gitea" "gitea.com/gitea/gitea-mcp/pkg/to" + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" ) const ( @@ -25,20 +27,27 @@ var ( "owner", mcp.Required(), mcp.Description("repository owner"), + mcp.DefaultString(""), ), mcp.WithString( "repo", mcp.Required(), mcp.Description("repository name"), + mcp.DefaultString(""), ), mcp.WithNumber( "index", mcp.Required(), mcp.Description("repository issue index"), + mcp.DefaultNumber(0), ), } ) +func RegisterTool(s *server.MCPServer) { + s.AddTool(GetIssueByIndexTool, GetIssueByIndexFn) +} + func GetIssueByIndexFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { owner := req.Params.Arguments["owner"].(string) repo := req.Params.Arguments["repo"].(string) diff --git a/operation/operation.go b/operation/operation.go index 4ae8d51..b76b7dd 100644 --- a/operation/operation.go +++ b/operation/operation.go @@ -9,6 +9,7 @@ import ( "gitea.com/gitea/gitea-mcp/operation/version" "gitea.com/gitea/gitea-mcp/pkg/flag" "gitea.com/gitea/gitea-mcp/pkg/log" + "github.com/mark3labs/mcp-go/server" ) @@ -18,17 +19,16 @@ var ( func RegisterTool(s *server.MCPServer) { // User Tool - s.AddTool(user.GetMyUserInfoTool, user.GetUserInfoFn) + user.RegisterTool(s) // Repo Tool - s.AddTool(repo.CreateRepoTool, repo.CreateRepoFn) - s.AddTool(repo.ListMyReposTool, repo.ListMyReposFn) + repo.RegisterTool(s) // Issue Tool - s.AddTool(issue.GetIssueByIndexTool, issue.GetIssueByIndexFn) + issue.RegisterTool(s) // Version Tool - s.AddTool(version.GetGiteaMCPServerVersionTool, version.GetGiteaMCPServerVersionFn) + version.RegisterTool(s) } func Run(transport, version string) error { diff --git a/operation/repo/repo.go b/operation/repo/repo.go index 0c56676..9861df5 100644 --- a/operation/repo/repo.go +++ b/operation/repo/repo.go @@ -6,7 +6,9 @@ import ( "code.gitea.io/sdk/gitea" giteaPkg "gitea.com/gitea/gitea-mcp/pkg/gitea" "gitea.com/gitea/gitea-mcp/pkg/to" + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" ) const ( @@ -22,16 +24,16 @@ var ( CreateRepoOpt = []mcp.ToolOption{ mcp.WithDescription("Create repository"), - mcp.WithString("name", mcp.Required(), mcp.Description("Name of the repository to create")), - mcp.WithString("description", mcp.Description("Description of the repository to create")), - mcp.WithBoolean("private", mcp.Description("Whether the repository is private")), - mcp.WithString("issue_labels", mcp.Description("Issue Label set to use")), - mcp.WithBoolean("auto_init", mcp.Description("Whether the repository should be auto-intialized?")), - mcp.WithBoolean("template", mcp.Description("Whether the repository is template")), - mcp.WithString("gitignores", mcp.Description("Gitignores to use")), - mcp.WithString("license", mcp.Description("License to use")), - mcp.WithString("readme", mcp.Description("Readme of the repository to create")), - mcp.WithString("default_branch", mcp.Description("DefaultBranch of the repository (used when initializes and in template)")), + mcp.WithString("name", mcp.Required(), mcp.DefaultString("test"), mcp.Description("Name of the repository to create")), + mcp.WithString("description", mcp.DefaultString(""), mcp.Description("Description of the repository to create")), + mcp.WithBoolean("private", mcp.DefaultBool(true), mcp.Description("Whether the repository is private")), + mcp.WithString("issue_labels", mcp.DefaultString(""), mcp.Description("Issue Label set to use")), + mcp.WithBoolean("auto_init", mcp.DefaultBool(false), mcp.Description("Whether the repository should be auto-intialized?")), + mcp.WithBoolean("template", mcp.DefaultBool(false), mcp.Description("Whether the repository is template")), + mcp.WithString("gitignores", mcp.DefaultString(""), mcp.Description("Gitignores to use")), + mcp.WithString("license", mcp.DefaultString("MIT"), mcp.Description("License to use")), + mcp.WithString("readme", mcp.DefaultString(""), mcp.Description("Readme of the repository to create")), + mcp.WithString("default_branch", mcp.DefaultString("main"), mcp.Description("DefaultBranch of the repository (used when initializes and in template)")), } ListMyReposTool = mcp.NewTool( @@ -56,6 +58,11 @@ var ( } ) +func RegisterTool(s *server.MCPServer) { + s.AddTool(CreateRepoTool, CreateRepoFn) + s.AddTool(ListMyReposTool, ListMyReposFn) +} + func CreateRepoFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { name := req.Params.Arguments["name"].(string) description := req.Params.Arguments["description"].(string) diff --git a/operation/user/user.go b/operation/user/user.go index 57ae367..f1549b1 100644 --- a/operation/user/user.go +++ b/operation/user/user.go @@ -7,6 +7,7 @@ import ( "gitea.com/gitea/gitea-mcp/pkg/to" "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" ) const ( @@ -20,6 +21,10 @@ var ( ) ) +func RegisterTool(s *server.MCPServer) { + s.AddTool(GetMyUserInfoTool, GetUserInfoFn) +} + func GetUserInfoFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { user, _, err := gitea.Client().GetMyUserInfo() if err != nil { diff --git a/operation/version/version.go b/operation/version/version.go index 69dbb96..13b25f5 100644 --- a/operation/version/version.go +++ b/operation/version/version.go @@ -6,7 +6,9 @@ import ( "gitea.com/gitea/gitea-mcp/pkg/flag" "gitea.com/gitea/gitea-mcp/pkg/to" + "github.com/mark3labs/mcp-go/mcp" + "github.com/mark3labs/mcp-go/server" ) const ( @@ -20,6 +22,10 @@ var ( ) ) +func RegisterTool(s *server.MCPServer) { + s.AddTool(GetGiteaMCPServerVersionTool, GetGiteaMCPServerVersionFn) +} + func GetGiteaMCPServerVersionFn(ctx context.Context, req mcp.CallToolRequest) (*mcp.CallToolResult, error) { version := flag.Version if version == "" {