This commit is contained in:
hiifong
2025-03-19 11:46:20 +08:00
parent 24764caf99
commit 4978621b9b
5 changed files with 42 additions and 15 deletions

View File

@@ -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)

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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 {

View File

@@ -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 == "" {