answer-book-mcp
v1.0.0
Published
智能问答和决策辅助的 MCP (Model Context Protocol) 服务器
Maintainers
Readme
答案之书 (Answer Book) MCP 服务器
一个基于 Model Context Protocol (MCP) 的智能问答系统,提供智慧答案、决策建议和个性化咨询服务。
🌟 功能特性
核心功能
- 智能问答 - 基于自然语言处理的智能问题匹配和回答
- 随机智慧 - 提供分类的智慧格言和人生感悟
- 决策建议 - 基于情况分析的个性化决策支持
- 历史记录 - 完整的问答历史管理和统计分析
- 用户反馈 - 支持评分和反馈的持续改进机制
技术特性
- 多语言支持 - 中文、英文、日文等多语言处理
- 情感分析 - 基于情感倾向的智能回答匹配
- 语义理解 - 使用 NLP 技术进行深度语义分析
- 数据持久化 - 完整的数据存储和备份机制
- 性能监控 - 实时性能指标和使用统计
🚀 快速开始
环境要求
- Node.js 18+
- npm 或 yarn
安装依赖
npm install启动服务器
# 开发模式
npm run dev
# 生产模式
npm start
# MCP 服务器模式
node start.js运行测试
npm test代码检查
npm run lint
npm run format🛠️ 可用工具
1. ask_question - 智能问答
根据用户问题提供最匹配的智慧答案。
参数:
question(必需) - 用户问题category(可选) - 问题类别 (general, love, career, decision, life, motivation, wisdom)language(可选) - 语言偏好 (zh-CN, en-US, ja-JP)mood(可选) - 情感偏好 (encouraging, calming, inspiring, practical)
示例:
{
"question": "我应该换工作吗?",
"category": "career",
"language": "zh-CN"
}2. random_answer - 随机智慧
获取随机的智慧答案和人生感悟。
参数:
category(可选) - 答案类别mood(可选) - 情感倾向length(可选) - 答案长度 (short, medium, long)language(可选) - 语言偏好
3. get_advice - 决策建议
基于具体情况提供个性化的决策建议。
参数:
situation(必需) - 具体情况描述options(可选) - 可选方案列表priority(可选) - 优先考虑因素timeline(可选) - 决策时间框架language(可选) - 语言偏好
4. save_question - 保存反馈
保存用户问题、答案和反馈信息。
参数:
question(必需) - 用户问题answer(必需) - 提供的答案rating(可选) - 评分 (1-5)feedback(可选) - 用户反馈language(可选) - 语言
5. get_history - 历史记录
查询和管理用户的问答历史。
参数:
limit(可选) - 返回记录数量offset(可选) - 偏移量category(可选) - 类别筛选date_from/date_to(可选) - 日期范围search(可选) - 搜索关键词sort_by(可选) - 排序字段include_feedback(可选) - 是否包含反馈
📁 项目结构
答案之书/
├── src/ # 源代码目录
│ ├── index.js # 主入口文件
│ ├── server.js # 服务器核心逻辑
│ ├── tools/ # MCP 工具实现
│ │ ├── ask-question.js
│ │ ├── get-advice.js
│ │ ├── random-answer.js
│ │ ├── save-question.js
│ │ └── get-history.js
│ ├── services/ # 业务服务
│ │ └── matcher.js # 智能匹配服务
│ └── utils/ # 工具函数
│ ├── logger.js # 日志管理
│ ├── storage.js # 数据存储
│ └── validator.js # 数据验证
├── data/ # 数据文件
│ ├── answers.json # 答案数据库
│ └── history.json # 历史记录
├── config/ # 配置文件
│ └── config.json # 主配置
├── tests/ # 测试文件
├── logs/ # 日志文件
└── package.json # 项目配置⚙️ 配置说明
主要配置文件位于 config/config.json,包含:
- 服务器设置 - 名称、版本、历史记录限制等
- 匹配参数 - 置信度阈值、权重配置等
- NLP 配置 - 语言检测、情感分析等
- 安全设置 - 输入验证、内容过滤等
- 性能设置 - 缓存、批处理等
- 日志配置 - 日志级别、文件管理等
📊 数据管理
答案数据库
data/answers.json 包含预设的智慧答案,支持:
- 多类别分类 (通用、爱情、职业、决策、生活、动机、智慧)
- 多语言内容 (中文、英文、日文)
- 情感标签 (鼓励、平静、启发、实用)
- 使用统计和评分
历史记录
data/history.json 存储用户交互历史,包括:
- 问答记录
- 用户反馈
- 使用统计
- 性能指标
🔧 开发指南
添加新工具
- 在
src/tools/目录创建新工具文件 - 继承
BaseTool类 - 实现必需的方法
- 在
server.js中注册工具
扩展答案数据
- 编辑
data/answers.json - 遵循现有数据结构
- 添加适当的标签和分类
- 重启服务器加载新数据
自定义匹配算法
修改 src/services/matcher.js 中的匹配逻辑:
- 调整权重配置
- 添加新的匹配因子
- 优化语义分析
📈 监控和日志
日志文件
logs/combined.log- 综合日志logs/error.log- 错误日志logs/exceptions.log- 异常日志logs/rejections.log- Promise 拒绝日志
性能监控
- 工具调用统计
- 响应时间监控
- 内存使用情况
- 缓存命中率
🤝 贡献指南
- Fork 项目
- 创建功能分支
- 提交更改
- 推送到分支
- 创建 Pull Request
📄 许可证
MIT License
🆘 支持
如有问题或建议,请:
- 查看日志文件排查问题
- 检查配置文件设置
- 运行测试验证功能
- 提交 Issue 或 Pull Request
答案之书 - 让智慧触手可及 ✨
