🔌 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 : 搜索特定table
  • maxCount : 最大返回结果数量

示例:

搜索包含 "admin" 的记录,最多返回10条结果

返回: 包含匹配记录的表格格式结果,显示表名、主键、字段路径和值。

searchNumber - 数字搜索

在全表范围内搜索等于指定数字的记录。

参数:

  • q (必需): 搜索的数字
  • table : 搜索特定table
  • maxCount (必需): 最大返回结果数量

示例:

搜索值为 100 的记录,最多返回5条结果

返回: 包含匹配记录的表格格式结果,显示表名、主键和字段路径。

📖 记录读取工具

listTableRecord - 列出表记录

列出指定表的记录,支持分页和字段选择。

参数:

  • table (必需): 表的完整名称
  • extraFields (可选): 额外要显示的字段,用逗号分隔。默认只包含主键字段和title字段
  • offset (可选): 记录偏移量,从0开始。默认值:0
  • limit (可选): 返回的记录数量。默认值: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客户端集成。


📖 架构说明

mcp server arch