feat: add server version

This commit is contained in:
hiifong
2025-03-16 15:22:57 +08:00
parent c900e6b4c3
commit 82b02fa9f1
5 changed files with 42 additions and 6 deletions

View File

@@ -1,9 +1,11 @@
GO ?= go
EXECUTABLE := gitea-mcp
VERSION ?= $(shell git describe --tags --always | sed 's/-/+/' | sed 's/^v//')
LDFLAGS := -X "main.Version=$(VERSION)"
.PHONY: 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
.PHONY: air

View File

@@ -5,6 +5,8 @@ import (
"gitea.com/gitea/gitea-mcp/operation/repo"
"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"
"github.com/mark3labs/mcp-go/server"
)
@@ -15,13 +17,17 @@ var (
func RegisterTool(s *server.MCPServer) {
// User Tool
s.AddTool(user.GetMyUserInfoTool, user.MyUserInfoFn)
s.AddTool(user.GetMyUserInfoTool, user.GetUserInfoFn)
// 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 {
flag.Version = version
mcpServer = newMCPServer(version)
RegisterTool(mcpServer)
switch transport {

View File

@@ -14,13 +14,13 @@ const (
)
var (
GetMyReposTool = mcp.NewTool(
ListMyReposTool = mcp.NewTool(
ListMyReposToolName,
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{
ListOptions: gitea.ListOptions{
Page: 1,

View File

@@ -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()
if err != nil {
return mcp.NewToolResultError("Get My User Info Error"), err

View 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
}