Quicktype Mcp について
Quicktype Mcpは、JSONから型安全なモデルを生成するMCPサーバーです。複数言語に対応し、JSONの検証・修正や、null安全なコードとシリアライズメソッドの生成を行います。
主な機能
- 01複数言語のモデル生成
- 02JSONの検証と修正
- 03null安全なモデル生成
- 04ネストしたJSON構造への対応
- 05シリアライズメソッドの付属
活用シーン
- 01JSONからDartモデルを作成
- 02シリアライズ対応のKotlinモデルを生成
- 03モデル生成前に不正なJSONを修正
MCP 対応
MCPサーバーは、JSONからモデルを生成する`generate_model`のほか、`list_languages`と`fix_json`ツールを公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Quicktype MCP サーバー
JSON からモデルを生成するために特別に設計された MCP(Model Context Protocol)サーバーです。このツールを使うと、Dart や Kotlin など、さまざまなプログラミング言語向けの型安全なモデルを簡単に作成できます。
特長
- 複数のプログラミング言語向けのモデルを生成
- JSON の自動検証と修正
- null 安全なモデルを生成
- 複雑なネストされた JSON 構造に対応
- シリアライズ/デシリアライズメソッドを搭載
前提条件
- Python 3.10 以降
- インターネット接続(quicktype.io API へのアクセスに使用)
MCP サーバーとしての使用方法
このツールは、ほかのアプリケーションから接続して使用する MCP サーバーとして設計されています。サーバーは、JSON 入力からモデルを生成するためのシンプルな API を公開します。
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 の null 安全機能を使って、null 許容型を適切に処理
- snake_case の JSON キーを camelCase の Kotlin プロパティに変換
- プロパティ名が JSON キーと異なる場合は
@SerialNameアノテーションを使用 - ネストされたオブジェクト、リスト、複雑なデータ構造をサポート
トラブルシューティング
サーバーが起動しない場合は、次の点を確認してください。
- インターネットに接続されていること
- すべての依存関係がインストールされていること
- 正しいバージョンの Python(3.10 以降)が使用されていること
生成されたモデルに問題がある場合:
- JSON が有効であることを確認してください
- エラーが発生した場合は、複雑な JSON 構造を簡略化してみてください
- クラス名が対象言語の命名規則に従っていることを確認してください
生成されるモデルの特長
- null 安全性:必要に応じて、すべてのフィールドに null 許容のマークが適切に付与されます
- JSON シリアライズ:シリアライズ/デシリアライズメソッドを搭載
- ネストされたオブジェクト:独自のクラスを持つネストされたオブジェクトを適切に処理
- リストとマップ:コレクションとそのジェネリック型を正しく処理
- 型安全性:JSON 値に適した型を使用
ライセンス
このプロジェクトは MIT ライセンスの下でライセンスされています。詳細については LICENSE ファイルをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。