Custom Context MCP Server について
Custom Context MCP Serverは、JSONテンプレートに沿ってテキストから情報を抽出し、構造化します。AI生成テキストを処理する開発者向けで、テンプレートからプロンプトを作り、解析結果をネストしたJSONに再構成します。
主な機能
- 01テンプレートから抽出プロンプトを生成
- 02テキストからキーと値を抽出
- 03ネストしたJSONを再構成
活用シーン
- 01AI生成テキストの整理
- 02抽出データの後続アプリへの受け渡し
MCP 対応
MCP サーバーとして、テンプレートに基づくプロンプト生成とテキストのJSON変換を行う `group-text-by-json` と `text-to-json` ツールをMCPクライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Custom Context MCP サーバー
この Model Context Protocol(MCP)サーバーは、JSON テンプレートに従ってテキストを構造化し、データを抽出するためのツールを提供します。
機能
テキストから JSON への変換
- プレースホルダーを含む JSON テンプレートに基づいて、テキストをグループ化し、構造化します
- AI が生成したテキストから情報を抽出し、構造化された JSON 形式に変換します
- ネストされたプレースホルダーを含む、任意の JSON 構造に対応します
- テキストからキーと値のペアをインテリジェントに抽出します
- AI の出力を処理し、後続のアプリケーション向けに構造化データへ変換します
はじめに
インストール
npm install
サーバーの起動
npm start
ホットリロードを有効にして開発する場合:
npm run dev:watch
使い方
この MCP サーバーは、主に 2 つのツールを提供します。
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"
}
テキストからキーと値のペアを抽出し、テンプレートに従って構造化します。
ワークフローの例
-
プレースホルダーを含む JSON テンプレートを定義します:
{ "item": { "name": "<name>", "price": "<price>", "description": "<description>" } } -
group-text-by-jsonを使って AI 向けのプロンプトを作成します:- ツールがプレースホルダーのキーを特定します:name、price、description
- これらのキーごとに情報をグループ化するよう AI に指示するプロンプトを生成します
-
プロンプトを AI モデルに送信し、グループ化されたテキストを受け取ります:
name: Blue Pen price: $2.99 description: A smooth-writing ballpoint pen with blue ink -
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"
}
}
実装の詳細
サーバーは次のように動作します:
- JSON テンプレートを分析して、プレースホルダーのキーを抽出します
- これらのキーに基づいて情報を抽出するよう AI モデルに指示するプロンプトを生成します
- AI が生成したテキストを解析し、キーと値のペアを抽出します
- 元のテンプレート構造に基づいて、JSON オブジェクトを再構築します
開発
前提条件
- Node.js v18 以上
- npm または yarn
ビルドと実行
# Install dependencies
npm install
# Build the project
npm run build
# Run the server
npm start
# Development with hot reloading
npm run dev:watch
カスタムホットリロード
このプロジェクトには、次の機能を組み合わせたカスタムホットリロードの設定が含まれています。
- nodemon:src ディレクトリ内のファイル変更を監視し、TypeScript ファイルを再ビルドします
- browser-sync:ビルドファイルの変更時にブラウザーを自動的に更新します
- 同時実行:両方のサービスを出力の同期を保ちながら同時に実行します
設定ファイル:
nodemon.json:TypeScript の監視と再ビルドを制御しますpackage.json:concurrently を使って nodemon と browser-sync を同時に実行します
カスタムホットリロード機能を使うには:
npm run dev:watch
これにより、次のような開発環境が構築されます:
- TypeScript ファイルを変更すると、自動的に再ビルドされます
- MCP サーバーが更新されたコードで再起動します
- 接続中のブラウザーが更新され、最新の変更が表示されます
MCP Inspector の使用
デバッグには MCP Inspector を使用できます:
npm run dev
これにより、リクエストとレスポンスを視覚的にデバッグするための MCP Inspector とともにサーバーが起動します。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。