mirror of
				https://gitea.com/gitea/gitea-mcp.git
				synced 2025-10-30 09:51:50 +00:00 
			
		
		
		
	feat: add server version
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							| @@ -1,9 +1,11 @@ | |||||||
| GO ?= go | GO ?= go | ||||||
| EXECUTABLE := gitea-mcp | EXECUTABLE := gitea-mcp | ||||||
|  | VERSION ?= $(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//') | ||||||
|  | LDFLAGS := -X "main.Version=$(VERSION)" | ||||||
|  |  | ||||||
| .PHONY: build | .PHONY: build | ||||||
| build: | build: | ||||||
| 	$(GO) build -v -ldflags '-s -w' -o $(EXECUTABLE) | 	$(GO) build -v -ldflags '-s -w $(LDFLAGS)' -o $(EXECUTABLE) | ||||||
|  |  | ||||||
| ## air: install air for hot reload | ## air: install air for hot reload | ||||||
| .PHONY: air | .PHONY: air | ||||||
|   | |||||||
| @@ -5,6 +5,8 @@ import ( | |||||||
|  |  | ||||||
| 	"gitea.com/gitea/gitea-mcp/operation/repo" | 	"gitea.com/gitea/gitea-mcp/operation/repo" | ||||||
| 	"gitea.com/gitea/gitea-mcp/operation/user" | 	"gitea.com/gitea/gitea-mcp/operation/user" | ||||||
|  | 	"gitea.com/gitea/gitea-mcp/operation/version" | ||||||
|  | 	"gitea.com/gitea/gitea-mcp/pkg/flag" | ||||||
| 	"gitea.com/gitea/gitea-mcp/pkg/log" | 	"gitea.com/gitea/gitea-mcp/pkg/log" | ||||||
| 	"github.com/mark3labs/mcp-go/server" | 	"github.com/mark3labs/mcp-go/server" | ||||||
| ) | ) | ||||||
| @@ -15,13 +17,17 @@ var ( | |||||||
|  |  | ||||||
| func RegisterTool(s *server.MCPServer) { | func RegisterTool(s *server.MCPServer) { | ||||||
| 	// User Tool | 	// User Tool | ||||||
| 	s.AddTool(user.GetMyUserInfoTool, user.MyUserInfoFn) | 	s.AddTool(user.GetMyUserInfoTool, user.GetUserInfoFn) | ||||||
|  |  | ||||||
| 	// Repo Tool | 	// Repo Tool | ||||||
| 	s.AddTool(repo.GetMyReposTool, repo.MyUserReposFn) | 	s.AddTool(repo.ListMyReposTool, repo.ListMyReposFn) | ||||||
|  |  | ||||||
|  | 	// Version Tool | ||||||
|  | 	s.AddTool(version.GetGiteaMCPServerVersionTool, version.GetGiteaMCPServerVersionFn) | ||||||
| } | } | ||||||
|  |  | ||||||
| func Run(transport, version string) error { | func Run(transport, version string) error { | ||||||
|  | 	flag.Version = version | ||||||
| 	mcpServer = newMCPServer(version) | 	mcpServer = newMCPServer(version) | ||||||
| 	RegisterTool(mcpServer) | 	RegisterTool(mcpServer) | ||||||
| 	switch transport { | 	switch transport { | ||||||
|   | |||||||
| @@ -14,13 +14,13 @@ const ( | |||||||
| ) | ) | ||||||
|  |  | ||||||
| var ( | var ( | ||||||
| 	GetMyReposTool = mcp.NewTool( | 	ListMyReposTool = mcp.NewTool( | ||||||
| 		ListMyReposToolName, | 		ListMyReposToolName, | ||||||
| 		mcp.WithDescription("List My Repositories"), | 		mcp.WithDescription("List My Repositories"), | ||||||
| 	) | 	) | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func MyUserReposFn(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { | func ListMyReposFn(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { | ||||||
| 	opts := gitea.ListReposOptions{ | 	opts := gitea.ListReposOptions{ | ||||||
| 		ListOptions: gitea.ListOptions{ | 		ListOptions: gitea.ListOptions{ | ||||||
| 			Page:     1, | 			Page:     1, | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ var ( | |||||||
| 	) | 	) | ||||||
| ) | ) | ||||||
|  |  | ||||||
| func MyUserInfoFn(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { | func GetUserInfoFn(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { | ||||||
| 	user, _, err := gitea.Client().GetMyUserInfo() | 	user, _, err := gitea.Client().GetMyUserInfo() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		return mcp.NewToolResultError("Get My User Info Error"), err | 		return mcp.NewToolResultError("Get My User Info Error"), err | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								operation/version/version.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								operation/version/version.go
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | |||||||
|  | package version | ||||||
|  |  | ||||||
|  | import ( | ||||||
|  | 	"context" | ||||||
|  | 	"fmt" | ||||||
|  |  | ||||||
|  | 	"gitea.com/gitea/gitea-mcp/pkg/flag" | ||||||
|  | 	"github.com/mark3labs/mcp-go/mcp" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | const ( | ||||||
|  | 	GetGiteaMCPServerVersion = "get_gitea_mcp_server_version" | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | var ( | ||||||
|  | 	GetGiteaMCPServerVersionTool = mcp.NewTool( | ||||||
|  | 		GetGiteaMCPServerVersion, | ||||||
|  | 		mcp.WithDescription("Get Gitea MCP Server Version"), | ||||||
|  | 	) | ||||||
|  | ) | ||||||
|  |  | ||||||
|  | func GetGiteaMCPServerVersionFn(ctx context.Context, request mcp.CallToolRequest) (*mcp.CallToolResult, error) { | ||||||
|  | 	version := flag.Version | ||||||
|  | 	if version == "" { | ||||||
|  | 		version = "dev" | ||||||
|  | 	} | ||||||
|  | 	return mcp.NewToolResultText(fmt.Sprintf("Gitea MCP Server version: %v", version)), nil | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user