👨‍💻

カスタムMCPを開発してみた(Survey Insight MCP Server)

に公開

社内アンケート分析の苦悩

人事や企画部門で働いていると、こんな経験ありませんか?

  • 📝 アンケートの自由記述欄が数百件...
  • ⏰ Excelで1つずつ読むだけで半日溶ける
  • 😭 「何となくこういう傾向」としか言えない
  • 📊 グラフ作成に時間を取られ、本質的な分析ができない
  • 💼 経営陣への報告資料作成だけで丸1日...
  • 🌐 海外拠点のアンケート(英語)も増えてきた...

「これ、AIに全部やらせたい」

そう思って作ったのがSurvey Insight MCP Serverです。

GitHubリポジトリ

https://github.com/sinjorjob/survey-insight-mcp

サンプルで使えるアンケートデータ
https://github.com/sinjorjob/survey-insight-mcp/tree/main/examples

デモ:こんなレポートが自動生成されます

1. エグゼクティブサマリー & WordCloud

総回答数、抽出キーワード数、検出課題数を一目で把握。WordCloudでコメントの全体像を視覚化。

2. 頻出キーワードランキング & セグメント別分析(円グラフ)

形態素解析で自動抽出した重要キーワードを、美しいインタラクティブグラフで表示。
部署別、年代別、役職別など、CSVの列から自動検出したカテゴリで多角的に分析。

3. AI課題分析 & 改善提案

Claude/Geminiが、キーワードランキング、セグメント別分析結果と全コメントをもとに:

  • 🎯 隠れた課題を優先度付きで抽出
  • 💡 具体的なアクションプラン付き改善提案を生成
  • ⏱️ 難易度・期間・期待効果まで提示

技術スタック

アーキテクチャ

┌─────────────┐
│ Claude Code │ ← ユーザーインターフェース
│  Gemini CLI │
└──────┬──────┘
       │ MCP (stdio)
       ↓
┌──────────────────────────┐
│ Survey Insight MCP Server│ ← Python実装
├──────────────────────────┤
│ - CSV自動解析            │
│ - 言語自動判別           │
│ - 形態素解析 (日/英対応) │
│ - WordCloud生成          │
│ - グラフ生成 (Plotly)    │
│ - AI分析 (Claude/Gemini) │
│ - HTMLレポート生成       │
└──────────────────────────┘
       ↓
┌──────────────────────────┐
│  output/survey_report.html│ ← 美しいダッシュボード
└──────────────────────────┘

使用技術

  • MCP Protocol: Model Context Protocolで各種AIツールと統合
  • Python: バックエンド実装
  • janome: 日本語形態素解析
  • spaCy: 英語形態素解析(en_core_web_sm)
  • langdetect: 言語自動判別
  • pandas: データ処理
  • Plotly: インタラクティブグラフ
  • WordCloud: ビジュアライゼーション
  • Claude/Gemini API: AI課題分析

インストール(超簡単)

※LLM_MODELで利用したいモデル指定可能。

Claude Codeの場合

AIサブスクリプション利用(推奨):

claude mcp add --transport stdio survey-insight --scope user \
  -e USE_CLAUDE_CODE_SUBSCRIPTION=true -- \
  uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp

Anthropic Claude API:

claude mcp add --transport stdio survey-insight --scope user \
  -e LLM_PROVIDER=anthropic \
  -e LLM_API_KEY=sk-ant-api03-your_key_here \
  -e LLM_MODEL=claude-3-5-sonnet-20241022 -- \
  uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp

Google Gemini API:

claude mcp add --transport stdio survey-insight --scope user \
  -e LLM_PROVIDER=google \
  -e LLM_API_KEY=your_google_api_key_here \
  -e LLM_MODEL=gemini-2.0-flash-exp -- \
  uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp

Gemini CLIの場合

~/.gemini/settings.jsonに追加:

{
  "mcpServers": {
    "survey-insight": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/sinjorjob/survey-insight-mcp.git",
        "survey-insight-mcp"
      ],
      "env": {
        "LLM_PROVIDER": "google",
        "LLM_API_KEY": "your_google_api_key_here",
        "LLM_MODEL": "gemini-2.0-flash-exp"
      }
    }
  }
}

それだけ! 再起動すれば使えます。

使い方

基本的な使い方

Claude CodeやGemini CLI上で、こう頼むだけ:

survey-insightツールを使ってexamples/sample_survey.csvを分析して、
部署別・年代別のレポートを生成してください。

MCPツールが自動的に呼び出され、美しいHTMLレポートが完成!

CSVファイルの準備

最小構成:

コメント
対応が丁寧で良かったです
待ち時間が長いのが気になりました

推奨構成(分析軸あり):

日本語版:

部署,年代,コメント
営業,30代,対応が丁寧で良かったです
技術,40代,待ち時間が長いのが気になりました
人事,50代,スタッフの説明が分かりやすかった

英語版:

Department,Age_Group,Comments_Feedback
Sales,30s,The service was very polite and helpful
Technical,40s,The waiting time was a bit long
HR,50s,Staff explanations were easy to understand

自動対応:

  • ✅ エンコーディング自動検出(cp932, shift-jis, utf-8)
  • 言語自動判別(日本語・英語に対応)
  • ✅ コメント列自動検出(列名に「コメント」「comment」等を含む)
  • ✅ 分析軸自動検出(カテゴリカルデータを自動識別)
  • ✅ データクレンジング(空行・重複削除)
  • AI分析結果は常に日本語で出力(入力言語に関わらず)

1. 自動検出

ユーザーに面倒な設定をさせない:

  • 🔍 コメント列を自動検出(キーワードマッチング + 文字数ヒューリスティック)
  • 📊 分析軸を自動検出(カテゴリカルデータの統計的判定)
  • 🌐 言語を自動判別(langdetectで日本語/英語を判別)

2. 多言語対応

グローバル企業でも使える:

  • 🇯🇵 日本語: janomeで高精度な形態素解析
  • 🇬🇧 英語: spaCy(en_core_web_sm)で自然言語処理
  • 🔄 自動切り替え: コメント内容から言語を自動判別
  • 📝 日本語レポート: AI分析結果は常に日本語で出力(入力言語に関わらず)

3. AI分析

単なるキーワード抽出じゃない:

  • 🧠 全コメントを文脈理解しながら分析
  • 🎯 優先度付き課題抽出(高/中/低で分類)
  • 💡 実行可能な改善提案(難易度・期間・期待効果付き)
  • 📈 セグメント別の特徴把握(部署/年代ごとの傾向を理解)

4. 柔軟なLLM対応

好きなAIを選べる:

  • ☁️ Claude Code Subscription(API Key不要で最も簡単)
  • 🤖 Anthropic Claude API(Claude 3.5 Sonnet等)
  • 🌟 Google Gemini API(Gemini 2.0 Flash等)

プロバイダー切り替えも簡単:

# 1. 削除
claude mcp remove survey-insight

# 2. 別のプロバイダーで再登録
claude mcp add --transport stdio survey-insight --scope user \
  -e LLM_PROVIDER=google \
  -e LLM_API_KEY=new_key -- \
  uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp

生成物

  • 📄 HTMLレポート: 1ファイル(自己完結型)
  • 🖼️ WordCloud画像: PNG形式
  • 📊 インタラクティブグラフ: Plotly.js埋め込み
  • 📝 分析サマリー: テキスト形式(LLM入力用)

まとめ

Survey Insight MCP Serverは、社内アンケート分析を劇的に効率化します:

10分で完了(以前は丸1日)
AI分析で隠れた課題を発見(人間が見落とす傾向も検出)
美しいレポート(経営陣への報告も安心)
1コマンドで導入(難しい設定不要)

⭐ Starいただけると嬉しいです!

ライセンス

MIT License

Accenture Japan (有志)

Discussion