关于 Quicktype Mcp
Quicktype Mcp 是将 JSON 转为类型安全模型的 MCP 服务,适用于需要生成多种语言代码的开发者。它可处理 JSON 校验与修复,并生成空安全代码及序列化方法。
主要功能
- 01生成多种语言的模型
- 02校验并修复 JSON
- 03生成空安全模型
- 04处理嵌套 JSON 结构
- 05包含序列化方法
适用场景
- 01根据 JSON 创建 Dart 模型
- 02生成带序列化功能的 Kotlin 模型
- 03生成模型前修复格式错误的 JSON
MCP 相关
该 MCP 服务提供 `generate_model` 工具,可根据 JSON 生成模型,并提供 `list_languages` 和 `fix_json` 工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Quicktype MCP Server
一个专为从 JSON 生成模型而设计的 MCP(Model Context Protocol)服务。此工具简化了为 Dart、Kotlin 等多种编程语言创建类型安全模型的流程。
功能
- 为多种编程语言生成模型
- 自动验证和修复 JSON
- 生成空值安全模型
- 处理复杂的嵌套 JSON 结构
- 包含序列化/反序列化方法
前提条件
- Python 3.10 或更高版本
- 互联网连接(用于访问 quicktype.io API)
作为 MCP 服务使用
此工具设计为 MCP 服务,供其他应用程序连接使用。该服务提供了一个简单的 API,用于从 JSON 输入生成模型。
API
该服务提供以下端点:
generate_model:根据 JSON 输入生成模型
参数:
json_input:用于生成模型的 JSON 字符串class_name:生成的类名(默认值:Model)language:生成代码所用的编程语言(dart、kotlin、typescript、swift、python、java、go)
{
"quicktype-mcp": {
"command": "uv",
"args": [
"--directory",
"/path/to/quicktype-mcp",
"run",
"main.py",
]
}
}
可用的 MCP 工具
-
generate_model:根据 JSON 生成模型
- 参数:
json_input:用于生成模型的 JSON 字符串class_name:生成的类名(默认值:"Model")language:生成代码所用的编程语言(dart、kotlin)
- 参数:
-
list_languages:列出所有受支持的语言
-
fix_json:修复并格式化无效的 JSON 输入
受支持的语言
该服务目前支持为以下语言生成模型:
Dart(内置序列化)
对于 Dart,生成的模型包含内置的序列化方法(fromJson 和 toJson):
// To parse this JSON data, do
//
// final model = modelFromJson(jsonString);
import 'dart:convert';
class Model {
int? id;
String? name;
Model({
this.id,
this.name,
});
factory Model.fromJson(Map<String, dynamic> json) => Model(
id: json["id"],
name: json["name"],
);
Map<String, dynamic> toJson() => {
"id": id,
"name": name,
};
}
Kotlin(使用 kotlinx.serialization)
对于 Kotlin,生成的模型使用 kotlinx.serialization 注解:
// To parse the JSON, install kotlin's serialization plugin and do:
//
// val json = Json { allowStructuredMapKeys = true }
// val model = json.decodeFromString(Model.serializer(), jsonString)
import kotlinx.serialization.*
import kotlinx.serialization.json.*
import kotlinx.serialization.descriptors.*
import kotlinx.serialization.encoding.*
@Serializable
data class Model(
val id: Int? = null,
val name: String? = null
)
Kotlin 生成器生成的代码:
- 使用
kotlinx.serialization注解实现自动序列化/反序列化 - 借助 Kotlin 的空值安全功能妥善处理可空类型
- 将 snake_case JSON 键转换为 camelCase Kotlin 属性
- 当属性名与 JSON 键不同时,使用
@SerialName注解 - 支持嵌套对象、列表和复杂数据结构
故障排除
如果服务无法运行,请确保:
- 互联网连接正常
- 已安装所有依赖项
- 使用了正确的 Python 版本(3.10+)
如果生成的模型有问题:
- 确保 JSON 有效
- 如果遇到错误,请尝试简化复杂的 JSON 结构
- 检查类名是否符合目标语言的命名约定
生成的模型的功能
- 空值安全:在适当情况下,所有字段都会正确标记为可空
- JSON 序列化:包含序列化/反序列化方法
- 嵌套对象:妥善处理具有各自类的嵌套对象
- 列表和映射:正确处理集合及其泛型类型
- 类型安全:为 JSON 值使用适当的类型
许可证
此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。