Files
membank/aio-mcp/cmd/aio-mcp/main.go
张威33321 1a6ba86f04 0908
2026-09-08 20:36:25 +08:00

45 lines
1.1 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.
// aio-mcpaio-system 的自定义 MCP 服务器。
//
// 作为 AI Agent 的「手」,以 MCP 协议对外暴露工具。
// 默认以 streamable HTTP 传输运行(远程客户端访问),也可切换为
// stdio 供本地 Agent 直接拉起。
//
// 本文件只负责「装配 + 启动」,具体逻辑分别在:
// - internal/config :启动参数解析
// - internal/logging :日志初始化(固定 stderr
// - internal/server MCP 服务器装配与传输
// - internal/tools :工具注册表
package main
import (
"errors"
"flag"
"log/slog"
"os"
"aio-mcp/internal/config"
"aio-mcp/internal/logging"
"aio-mcp/internal/server"
)
// version 可用 -ldflags "-X main.version=..." 在构建时覆盖。
var version = "0.1.0"
func main() {
cfg, err := config.Parse(os.Args[1:], os.Stderr)
if err != nil {
// -h/--help 属于正常退出,参数错误才是异常退出。
if errors.Is(err, flag.ErrHelp) {
os.Exit(0)
}
os.Exit(2)
}
logging.Setup(cfg.LogLevel)
if err := server.Serve(server.New(version, cfg), cfg); err != nil {
slog.Error("aio-mcp exited with error", "err", err)
os.Exit(1)
}
}