mcpField
Q
Quicktype Mcp

Quicktype Mcp

本地服务
github.com/AscEmon开发工具262 周前更新

关于 Quicktype Mcp

Quicktype Mcp 是将 JSON 转为类型安全模型的 MCP 服务,适用于需要生成多种语言代码的开发者。它可处理 JSON 校验与修复,并生成空安全代码及序列化方法。

主要功能

  1. 01生成多种语言的模型
  2. 02校验并修复 JSON
  3. 03生成空安全模型
  4. 04处理嵌套 JSON 结构
  5. 05包含序列化方法

适用场景

  1. 01根据 JSON 创建 Dart 模型
  2. 02生成带序列化功能的 Kotlin 模型
  3. 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 工具
  1. generate_model:根据 JSON 生成模型

    • 参数:
      • json_input:用于生成模型的 JSON 字符串
      • class_name:生成的类名(默认值:"Model")
      • language:生成代码所用的编程语言(dart、kotlin)
  2. list_languages:列出所有受支持的语言

  3. 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 注解
  • 支持嵌套对象、列表和复杂数据结构

故障排除

如果服务无法运行,请确保:

  1. 互联网连接正常
  2. 已安装所有依赖项
  3. 使用了正确的 Python 版本(3.10+)

如果生成的模型有问题:

  1. 确保 JSON 有效
  2. 如果遇到错误,请尝试简化复杂的 JSON 结构
  3. 检查类名是否符合目标语言的命名约定

生成的模型的功能

  • 空值安全:在适当情况下,所有字段都会正确标记为可空
  • JSON 序列化:包含序列化/反序列化方法
  • 嵌套对象:妥善处理具有各自类的嵌套对象
  • 列表和映射:正确处理集合及其泛型类型
  • 类型安全:为 JSON 值使用适当的类型

许可证

此项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。