mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2025-08-23 22:33:05 +00:00
Initialize commit
This commit is contained in:
50
operation/operation.go
Normal file
50
operation/operation.go
Normal file
@@ -0,0 +1,50 @@
|
||||
package operation
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"gitea.com/gitea/gitea-mcp/operation/repo"
|
||||
"gitea.com/gitea/gitea-mcp/operation/user"
|
||||
"gitea.com/gitea/gitea-mcp/pkg/log"
|
||||
"github.com/mark3labs/mcp-go/server"
|
||||
)
|
||||
|
||||
var (
|
||||
mcpServer *server.MCPServer
|
||||
)
|
||||
|
||||
func RegisterTool(s *server.MCPServer) {
|
||||
// User Tool
|
||||
s.AddTool(user.GetMyUserInfoTool, user.MyUserInfoFn)
|
||||
|
||||
// Repo Tool
|
||||
s.AddTool(repo.GetMyReposTool, repo.MyUserReposFn)
|
||||
}
|
||||
|
||||
func Run(transport, version string) error {
|
||||
mcpServer = newMCPServer(version)
|
||||
RegisterTool(mcpServer)
|
||||
switch transport {
|
||||
case "stdio":
|
||||
if err := server.ServeStdio(mcpServer); err != nil {
|
||||
return err
|
||||
}
|
||||
case "sse":
|
||||
sseServer := server.NewSSEServer(mcpServer)
|
||||
log.Infof("Gitea MCP SSE server listening on :8080")
|
||||
if err := sseServer.Start(":8080"); err != nil {
|
||||
return err
|
||||
}
|
||||
default:
|
||||
return fmt.Errorf("invalid transport type: %s. Must be 'stdio' or 'sse'", transport)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func newMCPServer(version string) *server.MCPServer {
|
||||
return server.NewMCPServer(
|
||||
"Gitea MCP Server",
|
||||
version,
|
||||
server.WithLogging(),
|
||||
)
|
||||
}
|
Reference in New Issue
Block a user