使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个 MCP 服务器,使用 github.com/mark3labs/mcp-go 框架,通过标准的 MCP 工具注册与传输方式,向 MCP 客户端提供对 StarCraft 回放数据库的查询、模式信息和知识摘要能力。
- 服务器核心通过 Storage 接口对 SQLite 和 PostgreSQL 两种数据库后端进行访问,支持执行 SQL 查询、获取数据库架构信息,以及返回预先嵌入的 StarCraft 知识摘要。
-
主要功能点
- MCP 服务器核心:基于 MCP-Go 实现,提供标准工具注册、请求处理、错误处理和 stdio 传输。
- 可用工具(Tools):
- query_database:接收 SQL 查询字符串,执行并返回结果文本,便于分析回放数据。
- get_database_schema(get_schema):返回数据库架构信息及简要观测。
- get_starcraft_knowledge:提供 StarCraft 相关知识摘要。
- 数据存储后端:SQLite 与 PostgreSQL 双模切换,提供 Initialize、StartIngestion、Query、GetDatabaseSchema、Close 等能力。
- 传输模式:通过标准输入/输出(stdio)进行 MCP 通信,便于与 LLM 客户端集成在同一进程或通过管道通信。
- 代码中还嵌入了 StarCraft 知识文本,便于通过工具直接获取参考信息。
-
安装步骤
- 安装 Go 依赖与编译应用:
- 克隆仓库后在源码根目录执行编译,得到 screpdb 可执行文件。
- 运行 MCP 服务端(示例):
- 直接在编译后的二进制上执行 mcp 子命令(如下示例中的命令格式)以启动 MCP 服务器。
- 备注:MCP 客户端需要通过配置,按照 MCP 的协议与服务端进行通信,具体连接方式由客户端实现决定。
- 安装 Go 依赖与编译应用:
-
服务器配置(MCP 客户端连接配置信息,JSON 格式;用于描述连接信息,非代码)
说明:MCP 客户端需要配置连接到 MCP 服务器的启动命令及参数,但实际连接信息由客户端实现方管理。以下为基于仓库实现的示例配置信息,用于帮助你在客户端侧编写接入配置(仅作参考,不是服务器端代码):{ "server_name": "screpdb-mcp-server", "command": "./screpdb", "args": [ "mcp", "-i", "screp.db" // 使用 SQLite 数据库文件(若使用 PostgreSQL,请相应调整为 PostgreSQL 连接字符串)的命令参数 ], "description": "MCP 服务器启动命令以及需要的参数,用于客户端建立与 MCP 服务器的连接。该服务器目前通过 stdio 传输进行通信。" }
进一步说明:
- 如果你选择 PostgreSQL 作为后端存储,可以将参数改为类似: { "server_name": "screpdb-mcp-server", "command": "./screpdb", "args": [ "mcp", "-p", "host=localhost port=5432 user=youruser dbname=yourdb sslmode=disable" ] }
- 客户端在启动后应向服务器发送 MCP 标准的 JSON-RPC 请求,服务器将按工具注册进行处理并返回结果文本或错误信息。
- 该配置仅描述连接信息和启动命令,实际的 MCP 客户端实现需要按照 MCP 协议规范来发送请求并解析响应。
-
基本使用方法(概述)
- 启动服务器:
- 通过编译后的 screpdb 程序的 mcp 子命令启动(例如 screpdb mcp)。默认使用 screp.db 作为 SQLite 数据库;如需切换,请使用 -i 指定 SQLite 文件,或 -p 指定 PostgreSQL 连接字符串。
- 连接方式:
- MCP 客户端通过 MCP-Go 的 stdio 传输与服务器进行 JSON-RPC 通信,客户端需要实现对 query_database、get_schema、get_starcraft_knowledge 等 Tool 的调用。
- 交互示例(简要描述,不包含具体实现代码):
- 调用 query_database 工具传入一个 SQL 查询,服务器执行并返回文本结果。
- 调用 get_database_schema 获取数据库结构信息及简要观测。
- 调用 get_starcraft_knowledge 获取嵌入的 StarCraft 相关知识摘要。
- 监控与治理:
- 服务器提供错误处理与文本格式化输出,便于与 LLM 客户端结合进行上下文分析和报告生成。
- 启动服务器:
-
其他说明
- 服务端实现了对存储的抽象和批量化写入,确保对 SQLite/PostgreSQL 的兼容性和性能。
- 项目中还包含了用于 StarCraft 回放解析的相关模块、UI、Dashboard(额外功能)等,核心 MCP 服务器部分位于 internal/mcp/server.go 和 cmd/mcp.go。
信息
分类
AI与计算