Skip to main content
Glama
README.md15.4 kB
# 📊 Survey Insight MCP Server AI-powered survey comment analysis MCP server that generates beautiful interactive dashboards. 社内アンケートの自由コメント欄を自動分析し、**洗練されたHTMLダッシュボード**を生成するMCPサーバです。 ## 📸 生成されるレポート例 <div align="center"> ### エグゼクティブサマリー & WordCloud <img src="images/report-01.png" width="45%" alt="エグゼクティブサマリー"> <img src="images/report-02.png" width="45%" alt="WordCloud"> ### キーワードランキング & 分析軸別グラフ <img src="images/report-03.png" width="45%" alt="頻出キーワードランキング"> <img src="images/report-04.png" width="45%" alt="分析軸別グラフ"> ### AI課題分析 & 改善提案 <img src="images/report-05.png" width="45%" alt="AI課題分析"> <img src="images/report-06.png" width="45%" alt="改善提案"> </div> ## ✨ 主な機能 - 📝 **CSV自動解析**: エンコーディング自動検出、データクレンジング - 🔍 **形態素解析**: - 日本語: janomeによる高精度解析 - 英語: spaCyによる自然言語処理 - キーワード抽出・頻度分析 - 🌐 **多言語対応**: - 日本語・英語の自動判別 - AI分析結果は常に日本語で出力 - 📈 **分析軸対応**: 部署、年代、役職などで多角的分析 - ☁️ **WordCloud生成**: 美しいカラースキーム(パープルグラデーション) - 📊 **インタラクティブグラフ**: Plotlyで棒グラフ(キーワードランキング)、円グラフ(分析軸別分布) - 🤖 **AI課題分析**: Claude/Gemini APIで課題発見・改善提案 - 🎨 **HTMLダッシュボード**: レスポンシブ、アニメーション付き ## 🚀 クイックスタート ### Claude Codeでの使用 #### 方法1: コマンドラインでインストール(推奨) **基本インストール(AI分析なし):** ```bash claude mcp add --transport stdio survey-insight --scope user -- \ uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp ``` **AI分析あり - Claude Code Subscription利用(推奨):** ```bash 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 ``` **AI分析あり - Anthropic Claude API利用:** ```bash 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 ``` **AI分析あり - Google Gemini API利用:** ```bash 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 ``` インストール後、**Claude Codeを再起動**してください。 #### 方法2: 設定ファイルで手動インストール 設定ファイル(Windows: `%USERPROFILE%\.claude.json`、macOS/Linux: `~/.claude.json`)を編集: **基本設定(AI分析なし):** ```json { "mcpServers": { "survey-insight": { "command": "uvx", "args": [ "--from", "git+https://github.com/sinjorjob/survey-insight-mcp.git", "survey-insight-mcp" ] } } } ``` **AI分析あり - Claude Code Subscription利用:** ```json { "mcpServers": { "survey-insight": { "command": "uvx", "args": [ "--from", "git+https://github.com/sinjorjob/survey-insight-mcp.git", "survey-insight-mcp" ], "env": { "USE_CLAUDE_CODE_SUBSCRIPTION": "true" } } } } ``` **AI分析あり - Anthropic Claude API利用:** ```json { "mcpServers": { "survey-insight": { "command": "uvx", "args": [ "--from", "git+https://github.com/sinjorjob/survey-insight-mcp.git", "survey-insight-mcp" ], "env": { "LLM_PROVIDER": "anthropic", "LLM_API_KEY": "sk-ant-api03-your_key_here", "LLM_MODEL": "claude-3-5-sonnet-20241022" } } } } ``` **AI分析あり - Google Gemini API利用:** ```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を再起動**してください。 #### LLMプロバイダーの変更方法 後からLLMプロバイダーを変更する場合: **方法A: コマンドで再登録** ```bash # 1. 既存の設定を削除 claude mcp remove survey-insight # 2. 新しいプロバイダーで再登録 # Google Geminiに変更する場合: claude mcp add --transport stdio survey-insight --scope user \ -e LLM_PROVIDER=google \ -e LLM_API_KEY=your_new_key_here \ -e LLM_MODEL=gemini-2.0-flash-exp -- \ uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp # Anthropic Claudeに変更する場合: claude mcp add --transport stdio survey-insight --scope user \ -e LLM_PROVIDER=anthropic \ -e LLM_API_KEY=sk-ant-api03-your_new_key_here \ -e LLM_MODEL=claude-3-5-sonnet-20241022 -- \ uvx --from git+https://github.com/sinjorjob/survey-insight-mcp.git survey-insight-mcp # 3. Claude Codeを再起動 ``` **方法B: 設定ファイルを直接編集** `~/.claude.json`の`env`セクションを編集して、Claude Codeを再起動。 #### 使い方 Claude Code上で以下のように依頼: ``` examples/sample_survey.csvを分析して、部署別・年代別のレポートを生成してください。 ``` MCPツールが自動的に呼び出され、HTMLレポートとWordCloudが生成されます。 --- ## 📋 CSVファイル要件 ### ファイル形式 - **拡張子**: `.csv` - **エンコーディング**: 自動検出対応 - `cp932` (Excel日本語 / Shift-JIS) - `shift-jis` - `utf-8-sig` (BOM付きUTF-8) - `utf-8` - **言語**: 日本語・英語に対応 - **日本語**: デフォルトで対応(追加設定不要) - **英語**: 自動で対応(英語モデルは依存関係に含まれます) - コメント列のテキストから**言語を自動判別** - `language`パラメータで明示的な指定も可能(`"ja"` または `"en"`) - **AI分析結果は常に日本語で出力**(入力言語に関わらず) ### データ形式 **必須要素:** - **コメント列**: 自由記述テキストを含む列 - 列名に「コメント」「comment」「自由記述」「意見」「感想」「フィードバック」を含む場合は自動検出 - 上記以外の場合は最も平均文字数が長い文字列型の列を自動選択 - `comment_column`パラメータで明示的に指定も可能 **オプション要素:** - **分析軸列**: カテゴリカルデータ(部署、年代、役職など) - 以下の条件で自動検出: - ユニーク値が2以上 - ユニーク値が全体の50%未満 - データ型が文字列 (object) またはカテゴリ (category) - `analysis_axes`パラメータで明示的に指定も可能 - 除外: コメント列、ID列 **データクレンジング:** - 完全に空の行は自動削除 - 重複行は自動削除 - 文字列の前後空白は自動トリミング ### サンプルCSV構造 **日本語:** ```csv 部署,年代,コメント 営業,30代,対応が丁寧で良かったです 技術,40代,待ち時間が長いのが気になりました ``` **英語:** ```csv Department,Age_Group,Comments_Feedback Sales,30s,The service was very polite and helpful Technical,40s,The waiting time was a bit long ``` サンプルファイル: - 日本語版: `examples/sample_survey.csv` - 英語版: `examples/healthcare_service_survey_en.csv` --- ## 📝 AI分析機能について **AI分析なし**: - 形態素解析、キーワード抽出、グラフ生成、WordCloudのみ実行 - 環境変数設定不要 **AI分析あり**: - 上記に加えて、AIによる課題発見・改善提案を実行 - 以下のいずれかの環境変数設定が必要: - `USE_CLAUDE_CODE_SUBSCRIPTION=true`(Claude Codeサブスクリプション) - `LLM_PROVIDER` + `LLM_API_KEY`(Anthropic/Google API) --- ## 🔧 その他のMCPクライアント ### Gemini CLI 設定ファイル(Windows: `%USERPROFILE%\.gemini\settings.json`、macOS/Linux: `~/.gemini/settings.json`)を編集: **基本設定(AI分析なし):** ```json { "mcpServers": { "survey-insight": { "command": "uvx", "args": [ "--from", "git+https://github.com/sinjorjob/survey-insight-mcp.git", "survey-insight-mcp" ] } } } ``` **AI分析あり(Google Gemini API利用 - 推奨):** ```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" } } } } ``` 設定後、**Gemini CLIを再起動**してください。 ### その他のMCPクライアント MCP仕様に準拠した任意のクライアントで使用できます: - **Transport**: stdio - **Command**: `uvx` - **Args**: `["--from", "git+https://github.com/sinjorjob/survey-insight-mcp.git", "survey-insight-mcp"]` - **Environment Variables**: 上記の環境変数設定を参照 --- ## 🌐 多言語対応 Survey Insight MCP Serverは日本語と英語のアンケートに対応しています。 ### サポート言語 - **日本語**: janome による形態素解析 - **英語**: spacy (`en_core_web_sm`) による形態素解析 ### 言語判別 **自動判別(推奨):** コメント列のテキストから自動的に言語を判別します。 ``` examples/customer_feedback_en.csvを分析してください。 ``` **手動指定:** `language`パラメータで明示的に指定することも可能です。 ```python { "csv_path": "examples/survey_data.csv", "language": "en" # "ja" or "en" } ``` ### 英語環境のセットアップ **完全自動セットアップ:** 英語CSVを初めて分析する際、spacyの英語モデル (`en_core_web_sm`) が**完全自動で**ダウンロードされます。ユーザーによる事前セットアップは一切不要です。 - 初回のみ約12MBのモデルダウンロードが発生します(数秒〜数十秒) - 2回目以降は既存のモデルを使用するため、ダウンロードは不要です - uvx環境で自動的に `uv pip install` が実行されます ### 処理の違い | 処理 | 日本語 (janome) | 英語 (spacy) | |------|----------------|--------------| | 形態素解析 | ✅ | ✅ | | キーワード抽出 | 表層形を使用 | レンマ(基本形)を使用 | | 複合名詞抽出 | ✅ 対応 | ❌ 非対応(単語のみ) | | 品詞フィルタリング | 名詞・動詞・形容詞 | NOUN・VERB・ADJ | | 最小文字数 | 1文字以上 | 3文字以上 | | ストップワード | 日本語用リスト | 英語用リスト | --- ## 📖 MCPツール仕様 ### `analyze_survey` CSVファイルからアンケート分析を実行し、HTMLレポートとWordCloudを生成します。 **パラメータ:** - `csv_path` (必須): CSVファイルのパス - `comment_column` (オプション): 自由コメント列の名前(省略時は自動検出) - `analysis_axes` (オプション): 分析軸のリスト(例: `["部署", "年代", "役職"]`) - `output_path` (オプション): 出力HTMLパス(デフォルト: `output/survey_report.html`) - `enable_ai_analysis` (オプション): AI課題分析を有効化(デフォルト: `true`) - `language` (オプション): 言語コード(`"ja"` or `"en"`、省略時はコメント列から自動判別) **使用例:** ``` examples/healthcare_service_survey.csvを分析して、診療科別と年齢層別のレポートを生成してください。 ``` **英語CSVの分析例:** ``` examples/customer_feedback_en.csvを分析してください。 ``` --- ## 🛠️ ローカル開発 ### 環境構築 ```bash # リポジトリのクローン git clone https://github.com/sinjorjob/survey-insight-mcp.git cd survey-insight-mcp # uv仮想環境作成 uv venv # 依存パッケージインストール uv pip install -e . ``` ### 環境変数設定 ```bash cp .env.example .env # .envファイルを編集してLLM設定 ``` ### ローカルでのテスト ```bash # MCPサーバをローカルから実行 uvx --from . survey-insight-mcp # または、MCP Inspectorでテスト npm install -g @modelcontextprotocol/inspector mcp-inspector uvx --from . survey-insight-mcp ``` ### テスト実行 ```bash # ユニットテスト pytest # Lintチェック ruff check --line-length=127 ruff format --check --diff --line-length=127 ``` --- ## 📁 プロジェクト構造 ``` survey-insight-mcp/ ├── pyproject.toml # パッケージ設定 ├── README.md # このファイル ├── LICENSE # MITライセンス ├── .env.example # 環境変数テンプレート ├── src/survey_insight/ │ ├── server.py # エントリーポイント │ ├── mcp_server.py # MCPサーバ実装 │ ├── csv_loader.py # CSV読み込み │ ├── text_analyzer.py # 形態素解析 │ ├── chart_generator.py # グラフ生成 │ ├── ai_analyzer.py # AI課題分析 │ └── templates/ │ └── dashboard.html # HTMLテンプレート ├── tests/ # テストコード └── examples/ # サンプルCSVファイル ``` --- ## 🔄 アップデート方法 最新版を取得するには: ```bash # uvxキャッシュをクリア uv cache clean # Claude Code / Gemini CLIを再起動 ``` uvxは自動的に最新のコミットを取得します。 --- ## 🐛 トラブルシューティング ### 問題1: MCPサーバが表示されない **解決策:** 1. Claude Code設定ファイル(`~/.claude.json`)を確認 2. GitHubリポジトリのURLが正しいか確認 3. Claude Codeを再起動 ### 問題2: AI分析が実行されない **原因**: 環境変数が正しく設定されていない **解決策:** - `USE_CLAUDE_CODE_SUBSCRIPTION=true` を設定 - または、`LLM_PROVIDER` と `LLM_API_KEY` を設定 ### 問題3: 依存関係のエラー **解決策:** ```bash # uvxキャッシュをクリア uv cache clean --force # Claude Codeを再起動 ``` --- ## 📝 ライセンス MIT License --- 🤖 Powered by **Claude AI**

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/sinjorjob/survey-insight-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server