🔌 MCP服务器
MCP(Model Context Protocol)服务器为配置系统提供了与AI助手交互的能力,允许通过自然语言查询和操作配置数据。
Table of contents
🚀 快速开始
三步即可开始使用AI助手管理配置:
1️⃣ 启动MCP服务器
# 进入配置目录
cd /path/to/your/config
# 启动MCP服务器(默认端口3457)
java -jar cfggen.jar -datadir . -gen mcpserver
2️⃣ 配置Claude Code
# 添加MCP服务器到Claude Code
claude mcp add --transport http cfggen http://localhost:3457/mcp
# 验证配置是否成功
claude mcp list
3️⃣ 检验并开始提问
启动Claude Code后,尝试以下问题检验配置:
基础检验:
列出所有配置模块
配置查询:
列出item模块中的所有表
读取数据:
查询weapon表的前10条记录
创建配置:
帮我在item表添加一把新武器:
- ID: 1001
- 名称: "龙渊剑"
- 攻击力: 150
- 稀有度: 传说
📝 常用配置参数
| 参数 | 说明 | 默认值 |
|---|---|---|
port | MCP服务器端口 | 3457 |
watch | 文件监视延迟秒数(0表示不监视) | 0 |
postrun | 重载配置后执行的脚本 | null |
示例:
# 指定端口
java -jar cfggen.jar -datadir . -gen mcpserver,port=8080
# 启用文件监视和自动重载(5秒延迟)
java -jar cfggen.jar -datadir . -gen mcpserver,watch=5,postrun=reload.bat
🛠️ 可用工具
MCP服务器提供了以下工具来查询和操作配置数据:
📋 Schema查询工具
listModule - 列出模块名称(信息入口点)
列出所有配置模块的名称和描述,这是配置系统的信息入口点。
参数: 无
示例:
列出所有模块
返回: 模块列表,包含模块名称和描述。
listTable - 列出模块中的表
列出指定模块中的所有表名。
参数:
inModule(必需): 模块名称(来自listModule的结果)
示例:
列出 "item" 模块中的所有表
返回: 表名列表、模块描述和规则。
readTableSchema - 读取表结构定义
查询指定表的完整结构定义,包括字段、类型、外键关系等信息。
参数:
table(必需): 表的完整名称
示例:
查询 "user" 表的结构定义
返回: 表的结构定义信息,包括字段列表、数据类型、外键关系等。
🔍 搜索工具
searchString - 字符串搜索
在全表范围内搜索包含指定字符串的记录。
参数:
q(必需):table: 搜索特定tablemaxCount: 最大返回结果数量
示例:
搜索包含 "admin" 的记录,最多返回10条结果
返回: 包含匹配记录的表格格式结果,显示表名、主键、字段路径和值。
searchNumber - 数字搜索
在全表范围内搜索等于指定数字的记录。
参数:
q(必需): 搜索的数字table: 搜索特定tablemaxCount(必需): 最大返回结果数量
示例:
搜索值为 100 的记录,最多返回5条结果
返回: 包含匹配记录的表格格式结果,显示表名、主键和字段路径。
📖 记录读取工具
listTableRecord - 列出表记录
列出指定表的记录,支持分页和字段选择。
参数:
table(必需): 表的完整名称extraFields(可选): 额外要显示的字段,用逗号分隔。默认只包含主键字段和title字段offset(可选): 记录偏移量,从0开始。默认值:0limit(可选): 返回的记录数量。默认值:20
示例:
列出 "skill" 表的前20条记录
列出 "item" 表的第10-29条记录,额外显示"price"和"weight"字段
返回: 表的记录列表,以CSV格式显示。
readRecord - 读取单条记录
根据主键读取指定表的单条记录。
参数:
table(必需): 表的完整名称recordId(必需): 记录的主键ID
示例:
读取 "user" 表中ID为 "1001" 的记录
返回: 记录的JSON格式数据。
✏️ 记录写入工具
addOrUpdateRecord - 添加或更新记录
向指定表添加新记录或更新现有记录。
参数:
table(必需): 表的完整名称recordJsonStr(必需): 记录的JSON字符串
示例:
向 "item" 表添加一条新记录
返回: 操作结果信息,包括存储路径。
deleteRecord - 删除记录
从指定表删除指定记录。
参数:
table(必需): 表的完整名称recordId(必需): 要删除的记录ID
示例:
从 "user" 表中删除ID为 "1001" 的记录
返回: 删除操作结果信息。
🔧 高级配置
管理MCP连接
删除MCP服务器:
claude mcp remove cfggen
手动监测MCP连接状态:
npx @modelcontextprotocol/inspector
# 然后用浏览器访问显示的地址
其他MCP客户端
MCP服务器遵循标准的Model Context Protocol协议,可以与任何兼容的MCP客户端集成。
📖 架构说明
