docbot-mcp について
docbot-mcp は、CSV、JSON、Markdown テーブル間でデータを変換する MCP サーバーです。HTTP トランスポートにより、コンテナ環境への統合やデプロイに対応します。
主な機能
- 01CSVからJSONへの変換
- 02JSONからCSVへの変換
- 03CSVからMarkdownテーブルへの変換
- 04JSONからMarkdownテーブルへの変換
- 05HTTPとstdioのトランスポート
活用シーン
- 01JSONワークフロー向けのCSV変換
- 02表データのMarkdown表示
- 03コンテナ環境での変換ツールのデプロイ
MCP 対応
MCP クライアントに4つの変換ツールを提供します。CSVとJSONの相互変換、および両形式からMarkdownテーブルへの変換が可能です。デフォルトではHTTPトランスポートを使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
docbot-mcp
MCP(Model Context Protocol)サーバーとして公開される、CSV ↔️ JSON ↔️ Markdown の双方向変換ツール。HTTP トランスポートを使用します。
概要
docbot-mcp は、CSV、JSON、Markdown 形式間の変換ツールを提供する Model Context Protocol サーバーです。Model Context Protocol 上に構築されており、AWS App Runner などのサーバーレスプラットフォームへのデプロイを想定して設計されています。
機能
- ✅ CSV から JSON — CSV 文字列を JSON 配列に解析します
- ✅ JSON から CSV — JSON 配列を CSV 形式にシリアライズします
- ✅ CSV から Markdown — CSV を書式設定された Markdown テーブルに変換します
- ✅ JSON から Markdown — JSON 配列を Markdown テーブルに変換します
- ✅ HTTP ベース — 簡単に連携できる REST API エンドポイント
- ✅ コンテナー化済み — AWS App Runner、Docker などへのデプロイに対応しています
インストール
npm install
要件
- Node.js 16+(ES モジュールをサポート)
- 依存関係:
@modelcontextprotocol/sdk— MCP プロトコルの実装@rflukerii/docbot— ドキュメント変換ユーティリティexpress— HTTP サーバーのフレームワークzod— 入力検証
使い方
サーバーの起動
npm start
サーバーは http://localhost:3000 で起動し、MCP エンドポイントは /docbot-mcp です。
利用可能なツール
すべてのツールはテキストパラメーターを入力として受け取り、書式設定されたテキスト応答を返します。
csvToJson
CSV 文字列を JSON 形式に変換します。
入力: csv(文字列)
出力: 文字列形式の JSON 配列
curl -X POST http://localhost:3000/docbot-mcp \
-H "Content-Type: application/json" \
-d '{"tool": "csvToJson", "input": {"csv": "name,age\nAlice,30"}}'
jsonToCsv
JSON 配列を CSV 形式に変換します。
入力: json(文字列)
出力: CSV 文字列
curl -X POST http://localhost:3000/docbot-mcp \
-H "Content-Type: application/json" \
-d '{"tool": "jsonToCsv", "input": {"json": "[{\"name\":\"Alice\",\"age\":30}]"}}'
csvToMarkdown
CSV 文字列を Markdown テーブルに変換します。
入力: csv(文字列)
出力: Markdown テーブル文字列
jsonToMarkdown
JSON 配列を Markdown テーブルに変換します。
入力: json(文字列)
出力: Markdown テーブル文字列
アーキテクチャ
HTTP トランスポート
このサーバーは、コンテナー化された環境との互換性を高めるため、stdio の代わりに StreamableHTTPServerTransport を使用します。/docbot-mcp へのリクエストごとに新しいサーバーインスタンスを作成し、MCP リクエストを処理して結果を返します。
Express Server (port 3000)
↓
POST /docbot-mcp endpoint
↓
MCP Server instance (createServer)
↓
StreamableHTTPServerTransport
↓
Tool execution (csvToJson, jsonToCsv, etc.)
↓
Response back to client
ファイル構成
index.js— HTTP サーバーのメインエントリーポイント(AWS App Runner 対応)index-stdio.js— Stdio トランスポート版(ローカルクライアント/stdio ベースのクライアント向け)package.json— 依存関係とスクリプト
デプロイ
AWS App Runner
このサーバーには、AWS App Runner 用に設定された start スクリプトが含まれています。
{
"scripts": {
"start": "node index.js"
}
}
デプロイ手順:
- AWS CodeCommit、GitHub、または BitBucket にコードをプッシュします
- AWS App Runner サービスを作成します
- ソースとしてリポジトリを設定します
- ビルドコマンドを設定します:
npm install - 起動コマンドを設定します:
npm start - App Runner がポート 3000 でサーバーを自動的に実行します
Docker
Dockerfile の例:
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install --production
COPY . .
EXPOSE 3000
CMD ["npm", "start"]
開発
トランスポートの切り替え
- HTTP(デフォルト):
node index.js— コンテナー化された環境向け - Stdio:
node index-stdio.js— CLI/stdio クライアントとの直接接続向け
ツールの追加
index.js を編集し、server.registerTool() パターンを使用します。
server.registerTool(
'toolName',
{
title: 'Display Title',
description: 'What it does',
inputSchema: { paramName: z.type() }
},
async ({ paramName }) => ({
content: [{ type: 'text', text: 'result' }]
})
);
ライセンス
MIT
変更履歴
バージョン履歴と更新については、CHANGELOG.md を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。