JSON编辑器MCP
一个模型上下文协议(MCP)服务器,用于编辑具有读、写和深度合并功能的JSON文件。非常适合管理多语言Next.js项目和其他基于JSON的配置。
注: 这是一个积极开发的工具。欢迎功能请求和错误报告!文件问题 .
此解决的问题
- 💰 显著的代币节省:编辑特定的JSON路径,而不是读取/写入整个文件
- ⚡ 高效运营:每次编辑约100个令牌,而完整文件操作则有4000多个令牌
- 📦 处理大文件:大型翻译文件可能无法放入上下文窗口;无论文件大小如何,目标操作都能正常工作
- 🚀 更快的编辑:避免读取/写入整个文件的慢速网络往返
- 🔑 防止重复密钥:AI无法看到完整的JSON翻译并创建重复项;有针对性的操作避免了这个问题
- 🔍 目标阅读:使用点标记路径只读所需的值
- ✏️ 有针对性的写作:仅更新特定路径,自动创建缺少的嵌套结构
- 🗑️ 有针对性的删除:从JSON文件中删除特定路径
- 🔀 深度合并支持:使用递归对象合并合并重复键
- 📚 多文件操作:高效地从多个JSON文件中读取、写入或删除同一路径
- 📘 TypeScript支持:包括完整的类型定义
- 🤖 符合MCP标准:与人工智能助手(Cursor、Claude、ChatGPT)和开发工具配合使用
安装
bun add json-editor-mcp用法
MCP服务器配置
添加到MCP客户端配置中:
{
"mcpServers": {
"json-editor": {
"command": "bunx",
"args": ["json-editor-mcp"]
}
}
}游标规则集成
将规则文件复制到您的项目中,以确保AI助手使用MCP工具:
cp .cursor/rules/json-editor-mcp.mdc /path/to/your/project/.cursor/rules/工具
read_multiple_json_values
在一次操作中从一个或多个JSON文件读取相同的点符号路径。返回一个映射,其中文件路径作为键,提取的值作为值。可用于比较不同语言文件的翻译或从单个文件读取。
注: 对于单文件操作,传递一个具有一个文件路径的数组: ["messages/en.json"]
输入JSON文件:
messages/en.json:
{
"common": {
"welcome": "Welcome"
}
}messages/es.json:
{
"common": {
"welcome": "Bienvenido"
}
}工具调用:
read_multiple_json_values(["messages/en.json", "messages/es.json"], "common.welcome")输出:
{
"messages/en.json": "Welcome",
"messages/es.json": "Bienvenido"
}单文件示例:
read_multiple_json_values(["messages/en.json"], "common.welcome")输出:
{
"messages/en.json": "Welcome"
}write_json_values
将值写入指定点标记路径处的JSON文件。自动创建缺失的嵌套路径并保留现有结构。
输入JSON(messages/en.JSON):
{
"common": {
"welcome": "Welcome"
}
}工具调用:
write_json_values("/absolute/path/to/messages/en.json", "pages.about.title", "About Us")输出JSON(messages/en.JSON):
{
"common": {
"welcome": "Welcome"
},
"pages": {
"about": {
"title": "About Us"
}
}
}输出:
Successfully wrote to /absolute/path/to/messages/en.jsondelete_multiple_json_values
从一个或多个JSON文件中删除指定点标记路径处的值。返回一个以文件路径为键、删除结果为值的映射。
注: 对于单文件操作,传递一个具有一个文件路径的数组: ["messages/en.json"]
输入JSON文件:
messages/en.json:
{
"common": {
"welcome": "Welcome",
"goodbye": "Goodbye"
}
}messages/es.json:
{
"common": {
"welcome": "Bienvenido",
"goodbye": "Adiós"
}
}工具调用:
delete_multiple_json_values(["messages/en.json", "messages/es.json"], "common.goodbye")输出:
{
"messages/en.json": "Successfully deleted",
"messages/es.json": "Successfully deleted"
}输出JSON文件:
messages/en.json:
{
"common": {
"welcome": "Welcome"
}
}messages/es.json:
{
"common": {
"welcome": "Bienvenido"
}
}merge_duplicate_keys
对JSON文件中的重复键执行深度合并。基元使用最后值获胜,对象递归合并,数组使用最后值胜利。当AI助手创建重复密钥时很有用,因为他们看不到完整的文件结构。
输入JSON(messages/en.JSON):
{
"common": {
"welcome": "Welcome"
},
"common": {
"goodbye": "Goodbye"
}
}工具调用:
merge_duplicate_keys("messages/en.json")输出JSON(messages/en.JSON):
{
"common": {
"welcome": "Welcome",
"goodbye": "Goodbye"
}
}API 参考
路径符号: 嵌套路径的点表示法(例如。, "common.welcome", "pages.home.title")
错误处理:
- 找不到文件:创建空对象
{}阅读 - JSON无效:返回错误消息
- 找不到路径:读取时出错,写入时自动创建
深度合并: 基元最后值获胜,对象递归合并,数组最后值获胜
发展
git clone https://github.com/peternagy1332/json-editor-mcp.git
cd json-editor-mcp
bun install
bun run build许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
支持
文件问题 .
