WitNote / internal /mcp /server.go
AUXteam's picture
Upload folder using huggingface_hub
6a7089a verified
package mcp
import (
"fmt"
"github.com/mark3labs/mcp-go/server"
)
// Version is the MCP server version, set at build time.
var Version = "dev"
// NewServer creates a fully configured MCP server with all PinchTab tools registered.
func NewServer(baseURL, token string) *server.MCPServer {
c := NewClient(baseURL, token)
s := server.NewMCPServer(
"PinchTab",
Version,
server.WithToolCapabilities(false),
server.WithRecovery(),
)
tools := allTools()
handlers := handlerMap(c)
for _, tool := range tools {
h, ok := handlers[tool.Name]
if !ok {
panic(fmt.Sprintf("mcp: no handler for tool %q", tool.Name))
}
s.AddTool(tool, h)
}
return s
}
// Serve starts the MCP server on stdio.
func Serve(baseURL, token string) error {
s := NewServer(baseURL, token)
return server.ServeStdio(s)
}