Files
CyberStrikeAI/cmd/mcp-stdio/main.go
公明 5a4a1b3269 Add files via upload
增加mcp-stdio
2025-11-13 00:44:37 +08:00

47 lines
1.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package main
import (
"cyberstrike-ai/internal/config"
"cyberstrike-ai/internal/logger"
"cyberstrike-ai/internal/mcp"
"cyberstrike-ai/internal/security"
"flag"
"fmt"
"os"
"go.uber.org/zap"
)
func main() {
var configPath = flag.String("config", "config.yaml", "配置文件路径")
flag.Parse()
// 加载配置
cfg, err := config.Load(*configPath)
if err != nil {
fmt.Fprintf(os.Stderr, "加载配置失败: %v\n", err)
os.Exit(1)
}
// 初始化日志stdio 模式下使用 stderr 输出日志,避免干扰 JSON-RPC 通信)
log := logger.New(cfg.Log.Level, "stderr")
// 创建MCP服务器
mcpServer := mcp.NewServer(log.Logger)
// 创建安全工具执行器
executor := security.NewExecutor(&cfg.Security, mcpServer, log.Logger)
// 注册工具
executor.RegisterTools(mcpServer)
log.Logger.Info("MCP服务器stdio模式已启动等待消息...")
// 运行 stdio 循环
if err := mcpServer.HandleStdio(); err != nil {
log.Logger.Error("MCP服务器运行失败", zap.Error(err))
os.Exit(1)
}
}