# security-center-mcp

Security Center 的 MCP server：以 MCP 协议（stdio transport）把 Security Center 后端能力（资产、漏洞等 14 个只读工具）暴露给 AI 客户端，后端访问走 HTTP API + API Key 认证。

## 配置项

| 环境变量 | 必填 | 默认值 | 说明 |
| --- | --- | --- | --- |
| `SECURITY_CENTER_BASE_URL` | 否 | `http://127.0.0.1:8080` | Security Center 后端 API 地址 |
| `SECURITY_CENTER_API_KEY` | 是 | 无 | 访问后端的 API Key（在 Security Center 前端 API Keys 页创建）；缺失或过短（< 16 字符）时启动报错退出 |

## 如何启动

```bash
cd security-center-mcp

# 直接运行
SECURITY_CENTER_API_KEY=sc_xxxxxxxxxxxxxxxx go run .

# 或先编译再运行
go build -o security-center-mcp .
SECURITY_CENTER_API_KEY=sc_xxxxxxxxxxxxxxxx ./security-center-mcp
```

进程启动后在 stderr 打印一行 `serving MCP over stdio (base URL ..., API key sc_xxxxxxxxxx...)`，然后挂起等待 stdio 上的 JSON-RPC 协议帧——stdout 只走协议帧，日志一律写 stderr。平时不需要手动启动：AI 客户端会以子进程方式拉起它，接入配置见 [docs/client-setup.md](docs/client-setup.md)（Claude Desktop / Cursor）。

## 开发

```bash
go build ./...
go vet ./...
go test ./...
```

MCP 协议层使用官方 SDK `github.com/modelcontextprotocol/go-sdk`。

## 目录结构

```
main.go                 入口：加载配置、启动 MCP stdio server
docs/client-setup.md    Claude Desktop / Cursor 接入配置
internal/config/        配置加载与校验
internal/client/        Security Center 后端 HTTP client
internal/tools/         MCP tools 注册表与 dispatch
internal/server/        MCP 协议接线（tools/list、tools/call → tools.Dispatch）
```
