Skip to main content
Glama
README.md
# MBTI MCP Server

一个用于MBTI人格测试的MCP服务器,支持AI助手引导用户完成人格测试并给出结果分析。

## 功能特性

- **两种测试模式**
  - 简化版(28题):基于四个维度(E/I, S/N, T/F, J/P)的快速测试
  - 认知功能版(48题):基于Jung的8种认知功能的深度测试

- **无状态设计**:所有测试状态通过JSON在工具调用间传递,无需服务端持久化

- **完整的测试流程**
  - 开始测试并选择类型
  - 逐题回答(1-5分李克特量表)
  - 查询测试进度
  - 计算最终MBTI类型

## 配置

### 方式1:使用npx(推荐,无需安装)

在MCP客户端配置文件中添加(如 Claude Desktop 的 `claude_desktop_config.json`):

```json
{
  "mcpServers": {
    "mbti": {
      "command": "npx",
      "args": ["-y", "mbti-mcp"]
    }
  }
}
```

### 方式2:全局安装

```bash
npm install -g mbti-mcp
```

然后在MCP配置文件中添加:

```json
{
  "mcpServers": {
    "mbti": {
      "command": "mbti-mcp"
    }
  }
}
```

### 方式3:从源码安装

```bash
git clone https://github.com/wenyili/mbti-mcp.git
cd mbti-mcp
pnpm install
pnpm build
```

在MCP配置文件中添加:

```json
{
  "mcpServers": {
    "mbti": {
      "command": "node",
      "args": ["<项目路径>/dist/index.js"]
    }
  }
}
```

注意:将 `<项目路径>` 替换为你的实际项目路径。

## 使用方法

### 1. 开始测试

使用 `start_mbti_test` 工具,选择测试类型:

```json
{
  "testType": "simplified"
}
```

或

```json
{
  "testType": "cognitive"
}
```

服务器将返回第一道题目和测试会话状态(session)。

### 2. 回答问题

使用 `answer_question` 工具提交答案:

```json
{
  "session": { /* 上一步返回的session对象 */ },
  "score": 4
}
```

评分标准:
- 1 = 强烈不同意
- 2 = 不同意
- 3 = 中立
- 4 = 同意
- 5 = 强烈同意

服务器将返回下一道题目和更新后的session。

### 3. 查询进度(可选)

使用 `get_progress` 工具查看当前进度:

```json
{
  "session": { /* 当前的session对象 */ }
}
```

### 4. 计算结果

完成所有题目后,使用 `calculate_mbti_result` 工具:

```json
{
  "session": { /* 包含所有答案的session对象 */ }
}
```

服务器将返回:
- MBTI类型(如INTJ、ENFP等)
- 各维度或认知功能的得分
- 类型描述

## AI助手使用示例

用户可以这样与AI助手交互:

```
用户:我想做一个MBTI测试
AI:好的!我们提供两种测试:
    1. 简化版(28题)- 快速评估
    2. 认知功能版(48题)- 深度分析
    你想选择哪一种?

用户:简化版
AI:[调用 start_mbti_test]
    测试已开始!第1题:我在社交聚会上感到精力充沛
    请从1-5分选择你的同意程度...

用户:4分
AI:[调用 answer_question]
    答案已记录。第2题:独处时我能更好地恢复精力...
```

## 项目结构

```
mbti/
├── src/
│   ├── index.ts          # MCP服务器主文件
│   ├── types.ts          # TypeScript类型定义
│   ├── questions.ts      # 题库数据
│   └── calculator.ts     # MBTI类型计算算法
├── dist/                 # 编译输出
├── package.json
├── tsconfig.json
└── README.md
```

## 技术栈

- TypeScript
- @modelcontextprotocol/sdk
- Node.js

## 16种MBTI类型

- **分析师**: INTJ(建筑师), INTP(逻辑学家), ENTJ(指挥官), ENTP(辩论家)
- **外交官**: INFJ(提倡者), INFP(调停者), ENFJ(主人公), ENFP(竞选者)
- **守护者**: ISTJ(物流师), ISFJ(守卫者), ESTJ(总经理), ESFJ(执政官)
- **探险家**: ISTP(鉴赏家), ISFP(探险家), ESTP(企业家), ESFP(表演者)

## 许可证

MIT

TDQS

A3.7/5.0

Scored across 4 tools

Disambiguation5/5

Each tool has a clearly distinct purpose in the MBTI test workflow: start_mbti_test initiates the test, answer_question submits answers and progresses, get_progress checks status, and calculate_mbti_result computes final results. There is no overlap or ambiguity between these functions.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern with snake_case (e.g., start_mbti_test, answer_question). The naming is predictable and readable throughout the set.

Tool Count5/5

With 4 tools, this server is well-scoped for its purpose of administering an MBTI test. Each tool earns its place by covering essential steps: starting, answering, checking progress, and calculating results, without unnecessary bloat.

Completeness5/5

The tool set provides complete lifecycle coverage for the MBTI test domain: it supports starting the test, answering questions, tracking progress, and computing final results. There are no obvious gaps that would hinder an agent from conducting a full test session.

Maintenance

ActivityInactive
ResponsivenessNo issues