Support read only mode (#36)

Fix: #35
Reviewed-on: https://gitea.com/gitea/gitea-mcp/pulls/36
Co-authored-by: hiifong <f@ilo.nz>
Co-committed-by: hiifong <f@ilo.nz>
This commit is contained in:
hiifong
2025-04-20 09:09:29 +00:00
committed by hiifong
parent 59e699aac7
commit 70b9ac5b80
19 changed files with 294 additions and 65 deletions

View File

@@ -21,29 +21,30 @@ var (
func RegisterTool(s *server.MCPServer) {
// User Tool
user.RegisterTool(s)
s.AddTools(user.Tool.Tools()...)
// Repo Tool
repo.RegisterTool(s)
s.AddTools(repo.Tool.Tools()...)
// Issue Tool
issue.RegisterTool(s)
s.AddTools(issue.Tool.Tools()...)
// Pull Tool
pull.RegisterTool(s)
s.AddTools(pull.Tool.Tools()...)
// Search Tool
search.RegisterTool(s)
s.AddTools(search.Tool.Tools()...)
// Version Tool
version.RegisterTool(s)
s.AddTools(version.Tool.Tools()...)
s.DeleteTools("")
}
func Run(transport, version string) error {
flag.Version = version
mcpServer = newMCPServer(version)
func Run() error {
mcpServer = newMCPServer(flag.Version)
RegisterTool(mcpServer)
switch transport {
switch flag.Mode {
case "stdio":
if err := server.ServeStdio(mcpServer); err != nil {
return err
@@ -55,7 +56,7 @@ func Run(transport, version string) error {
return err
}
default:
return fmt.Errorf("invalid transport type: %s. Must be 'stdio' or 'sse'", transport)
return fmt.Errorf("invalid transport type: %s. Must be 'stdio' or 'sse'", flag.Mode)
}
return nil
}
@@ -64,6 +65,7 @@ func newMCPServer(version string) *server.MCPServer {
return server.NewMCPServer(
"Gitea MCP Server",
version,
server.WithToolCapabilities(true),
server.WithLogging(),
)
}