README
🚀 研究MCP
研究MCP是一个借助Perplexity AI的互联网研究服务,它通过MCP协议(模型完成协议),为用户提供深入且最新的各种主题信息查询服务,帮助用户高效获取所需知识。
🚀 快速开始
研究MCP是一个通过MCP协议提供互联网研究能力的服务。它公开了一个“研究”工具,允许通过查询Perplexity AI的API获取深入且最新的各种主题信息。
✨ 主要特性
- 通过Perplexity AI进行互联网研究,确保获取信息的全面性和时效性。
- 集成MCP协议以实现工具发现和调用,提升服务的灵活性和可扩展性。
- 具备优雅错误处理和降级模式,保障服务的稳定性和可靠性。
- 通过环境变量配置,方便用户根据自身需求进行定制。
- 结构化日志记录,便于后续的问题排查和性能分析。
📦 安装指南
需求
- Go 1.18或更高版本
- Perplexity AI API密钥
配置
服务通过环境变量进行配置:
| 变量名 | 描述 | 是否必填 | 默认值 | |------------------|--------------------------|----------|---------------| | PERPLEXITY_API_KEY | Perplexity AI的API密钥 | 是 | - | | PERPLEXITY_MODEL | 使用的研究模型 | 否 | sonar-medium-online | | PERPLEXITY_TIMEOUT | API请求超时时间(秒) | 否 | 90 | | PERPLEXITY_MAX_RETRIES | 最大重试次数 | 否 | 2 | | PERPLEXITY_INITIAL_BACKOFF | 初始回退时间(秒) | 否 | 1 | | PERPLEXITY_MAX_BACKOFF | 最大回退时间(秒) | 否 | 10 |
安装步骤
- 设置所需的环境变量(可以使用
.env文件) - 构建并运行服务:
go build
./ResearchMCP
示例 .env 文件
PERPLEXITY_API_KEY=your_api_key_here
PERPLEXITY_MODEL=sonar-medium-online
PERPLEXITY_TIMEOUT=120
PERPLEXITY_MAX_RETRIES=3
PERPLEXITY_INITIAL_BACKOFF=2
PERPLEXITY_MAX_BACKOFF=15
💻 使用示例
基础用法
以下是调用research工具的示例请求:
{
"name": "research",
"arguments": {
"query": "量子计算的当前状态是什么?"
}
}
示例响应:
{
"content": [
{
"type": "text",
"text": "关于量子计算的综合研究报告...\n\n来源:\n- https://example.com/source1\n- https://example.com/source2"
}
]
}
📚 详细文档
API - 研究工具
名称: research
输入模式:
{
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "研究查询或问题"
}
},
"required": ["query"]
}
开发
项目结构
main.go: 应用程序入口点config.go: 配置处理logger.go: 日志记录基础设施perplexity.go: Perplexity API集成structs.go: 数据结构context.go: 上下文处理
代码风格
使用提供的脚本运行格式化和linting:
./run_format.sh
./run_lint.sh
📄 许可证
该项目根据MIT许可证发布,具体内容见LICENSE文件。
微信扫一扫