mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2025-08-24 06:43:05 +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