mbti-pocketflow / MCP_README.md
Fancellu's picture
I moved the mcp work, needed to update READMEs
353b1bc verified
# MBTI MCP Server
An MCP (Model Context Protocol) server that allows LLMs to take MBTI personality tests and get detailed analysis of their responses.
## Features
- **3 Simple Tools**: Get questionnaire, get analysis prompt, and analyze responses
- **Multiple Question Sets**: 20, 40, or 60 questions
- **Traditional + LLM Analysis**: Both algorithmic scoring and AI-powered insights
- **AI-Focused Analysis**: Tailored for understanding AI personality patterns
- **Dual Transport**: STDIO and HTTP support
## Quick Start
### Installation
```bash
pip install -r requirements.txt
# Set up Gemini API key for LLM analysis
export GEMINI_API_KEY="your-api-key-here"
```
### Running the Server
```bash
# STDIO transport (for MCP clients)
python server.py
# HTTP transport (for web clients)
python server.py --http
# Docker (for deployment anywhere, including Hugging Face Spaces)
docker build -t mbti-mcp-server .
docker run -p 7860:7860 -e GEMINI_API_KEY="your-api-key" mbti-mcp-server
```
## Tools
### 1. `get_mbti_questionnaire`
Get an MBTI questionnaire with specified number of questions.
**Parameters:**
- `length` (int, optional): Number of questions (20, 40, or 60). Default: 20
**Returns:**
- Instructions for rating scale
- List of questions with IDs and dimensions
- Total question count
### 2. `get_mbti_prompt`
Get analysis prompt for LLM self-analysis.
**Parameters:**
- `responses` (dict): Question ID to rating mapping (e.g., {"1": 4, "2": 3})
**Returns:**
- Formatted analysis prompt string with responses and scoring results
### 3. `analyze_mbti_responses`
Analyze completed questionnaire responses and return complete personality analysis.
**Parameters:**
- `responses` (dict): Question ID to rating mapping (e.g., {"1": 4, "2": 3})
**Returns:**
- MBTI personality type
- Traditional scoring breakdown
- Confidence scores
- Detailed LLM analysis
- Dimension preferences
## Usage Examples
### For LLM Clients
1. **Get questionnaire:**
```python
questionnaire = get_mbti_questionnaire(length=20)
```
2. **Take the test** (LLM responds to each question 1-5)
3. **Get analysis prompt for self-reflection:**
```python
responses = {"1": 4, "2": 3, "3": 2, ...}
prompt = get_mbti_prompt(responses)
# Use this prompt for self-analysis
```
4. **Or get complete analysis:**
```python
analysis = analyze_mbti_responses(responses)
print(f"Your personality type: {analysis['mbti_type']}")
```
## Integration
### With MCP Clients
Add to your MCP client configuration:
```json
{
"mcpServers": {
"mbti": {
"command": "python",
"args": ["path/to/mcp_server/server.py"],
"env": {
"GEMINI_API_KEY": "your-api-key"
}
}
}
}
```
### With Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"mbti": {
"command": "python",
"args": ["C:\\path\\to\\mbti-pocketflow\\mcp_server\\server.py"],
"env": {
"GEMINI_API_KEY": "your-gemini-api-key"
}
}
}
}
```
## AI Personality Testing
This server is specifically designed for LLMs to understand their own personality patterns:
- **Operational Characteristics**: How the AI makes decisions and processes information
- **Interaction Styles**: Preferred communication patterns
- **Strengths & Limitations**: Optimal use cases and potential challenges
- **Meta-Analysis**: AI analyzing its own responses for self-understanding
## Development
The server reuses the existing PocketFlow MBTI utilities:
- `utils/questionnaire.py` - Question sets and loading
- `utils/mbti_scoring.py` - Traditional MBTI scoring algorithm
- `utils/call_llm.py` - LLM integration for analysis
It does not however use pocketflow nodes or flow
This ensures consistency with the human-facing Gradio application while providing a clean API for programmatic access.