JSON模板转换工具

MCP服务器提供将文本按JSON模板结构化转换的功能,适用于AI生成文本的结构化处理和下游应用数据准备。

  • by omer-ayhan
  • TypeScript
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 omer-ayhan/custom-context-mcp

使用说明

自定义上下文MCP服务器

此模型上下文协议(MCP)服务器提供了根据JSON模板从文本中结构化和提取数据的工具。

特性

文本到JSON转换

  • 基于带占位符的JSON模板对文本进行分组和结构化
  • 将AI生成的文本中的信息提取为结构化JSON格式
  • 支持任何带有嵌套占位符的任意JSON结构
  • 从文本中智能提取键值对
  • 将AI输出处理为结构化数据,以供下游应用程序使用

入门指南

安装

npm install

运行服务器

npm start

对于热重载开发:

npm run dev:watch

用法

此MCP服务器提供两个主要工具:

1.按JSON分组文本(group-text-by-json)

该工具采用带有占位符的JSON模板,并生成一个提示,让AI根据模板的结构对文本进行分组。

{
	"template": "{ \"type\": \"<type>\", \"text\": \"<text>\" }"
}

该工具分析模板,提取占位符键,并返回一个提示,引导AI以键值格式提取信息。

2.文本转换为JSON(text-to-json)

此工具获取上一步的分组文本输出,并将其转换为基于原始模板的结构化JSON对象。

{
	"template": "{ \"type\": \"<type>\", \"text\": \"<text>\" }",
	"text": "type: pen\ntext: This is a blue pen"
}

它从文本中提取键值对,并根据模板对其进行结构化。

工作流示例

  1. 定义一个带有占位符的JSON模板:

    {
    	"item": {
    		"name": "<name>",
    		"price": "<price>",
    		"description": "<description>"
    	}
    }
    
  2. 使用 group-text-by-json 为AI创建提示:

    • 该工具可识别占位符键:名称、价格、描述
    • 生成一个提示,指示AI按这些键对信息进行分组
  3. 将提示发送到AI模型并接收分组文本:

    name: Blue Pen
    price: $2.99
    description: A smooth-writing ballpoint pen with blue ink
    
  4. 使用 text-to-json 将分组文本转换为JSON:

    • 结果:
    {
    	"item": {
    		"name": "Blue Pen",
    		"price": "$2.99",
    		"description": "A smooth-writing ballpoint pen with blue ink"
    	}
    }
    

模板格式

模板可以在有效JSON结构中的任何位置包含占位符:

  • 使用尖括号定义占位符: <name>, <type>, <price>等等。
  • 模板必须是有效的JSON字符串
  • 占位符可以处于任何嵌套级别
  • 支持复杂的嵌套结构

带有嵌套占位符的示例模板:

{
	"product": {
		"details": {
			"name": "<name>",
			"category": "<category>"
		},
		"pricing": {
			"amount": "<price>",
			"currency": "USD"
		}
	},
	"metadata": {
		"timestamp": "2023-09-01T12:00:00Z"
	}
}

实现细节

服务器的工作原理如下:

  1. 分析JSON模板以提取占位符键
  2. 生成提示,引导AI模型通过这些键提取信息
  3. 解析AI生成的文本以提取键值对
  4. 基于原始模板结构重建JSON对象

发展

先决条件

  • Node.js v18或更高版本
  • npm或纱线

构建并运行

# Install dependencies
npm install

# Build the project
npm run build

# Run the server
npm start

# Development with hot reloading
npm run dev:watch

自定义热重加载

此项目包括一个自定义热重新加载设置,该设置结合了以下内容:

  • 节点:监视src目录中的文件更改并重建TypeScript文件
  • 浏览器同步:生成文件更改时自动刷新浏览器
  • 并发执行:同时运行两个服务并同步输出

设置配置在:

  • nodemon.json:控制TypeScript的监视和重建
  • package.json:用于同时运行nodemon和浏览器同步

要使用自定义热重新加载功能,请执行以下操作:

npm run dev:watch

这创建了一个开发环境,其中:

  1. TypeScript文件在更改时会自动重建
  2. MCP服务器使用更新的代码重新启动
  3. 已连接的浏览器刷新以显示最新更改

与MCP检查器一起使用

您可以使用MCP检查器进行调试:

npm run dev

这将使用MCP检查器运行服务器,以便对请求和响应进行可视化调试。