困惑MCP服务器(基于cURL)
概述
这是一个轻量级、可靠的MCP服务器,用于使用直接cURL命令与Perplexity AI的API交互,而不是依赖复杂的Node.js库。
使用的技术
- Node.js -服务器的运行时环境
- cURL -直接HTTP客户端向困惑发出API请求
- MCP协议 -用于与客户端通信的模型上下文协议
- 环境变量 -通过.env文件安全存储API凭据
为什么采用这种方法?
多个用于困惑的MCP库一直引发问题:
- 版本不兼容和依赖冲突
- 存在超时和连接问题的不可靠HTTP客户端
- 模糊API行为的复杂抽象层
- 上游库频繁发生突破性变化
这种基于cURL的方法通过以下方式消除了这些问题:
- 使用系统的原生cURL工具进行可靠的HTTP通信
- 避免经常引入错误的复杂Node.js HTTP库
- 提供对Perplexity的API端点的直接、透明访问
- 最小化对Node.js和系统cURL的依赖
配置文件(.env)
创建一个 .env 使用您的困惑API密钥在与服务器相同的目录中的文件:
# Perplexity MCP Configuration
# Get your API key from: https://www.perplexity.ai/account/api/group
PERPLEXITY_API_KEY=your_api_key_here
PERPLEXITY_TIMEOUT_MS=600000复制 .example.env 到 .env 并替换 your_api_key_here 使用您的实际API密钥。
MCP协议通信格式
要与此MCP服务器通信,客户端必须通过stdin/stdout发送JSON-RPC 2.0消息。服务器支持以下方法:
初始化
{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {}
}列出工具
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/list",
"params": {}
}呼叫工具
{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "perplexity_ask",
"arguments": {
"messages": [
{
"role": "user",
"content": "What is the capital of France?"
}
]
}
}
}{
"jsonrpc": "2.0",
"id": 4,
"method": "tools/call",
"params": {
"name": "perplexity_search",
"arguments": {
"query": "latest AI news",
"max_results": 5
}
}
}拼
{
"jsonrpc": "2.0",
"id": 5,
"method": "ping",
"params": {}
}通知
初始化后发送此通知(预期无响应):
{
"jsonrpc": "2.0",
"method": "notifications/initialized",
"params": {}
}MCP设置JSON配置
要将此服务器与其他程序(如Cline或其他MCP客户端)集成,请按如下方式配置MCP设置JSON:
{
"perplexity-curl": {
"autoApprove": [
"perplexity_search",
"perplexity_ask"
],
"disabled": false,
"timeout": 300,
"type": "stdio",
"command": "/Users/jgtcdghun/.nvm/versions/node/v20.19.2/bin/node",
"args": [
"/Users/jgtcdghun/workspace/perplexity-mcp/simple-perplexity-server.js"
],
"env": {
"PERPLEXITY_API_KEY": "your_api_key_here"
}
}
}关键配置参数:
autoApprove:应自动批准的工具名称数组(confused_search、confused_ask)disabled:设置为false以启用服务器timeout:等待响应的最长时间(秒)(建议300)type:必须是“stdio”,因为此服务器通过标准输入/输出进行通信command:Node.js可执行文件的路径(使用which node找到你的路)args:simple-perplexity-server.js文件的路径env:要传递到服务器进程的环境变量(PERPLEXITY_API_KEY是必需的)
注: Node.js可执行文件和服务器文件的路径可能因您的系统而异。使用 which node 找到你的Node.js路径并确保server.js路径正确。
安装与使用
- 复制
.example.env到.env并添加您的困惑API密钥 - 运行服务器:
node simple-perplexity-server.js - 使用上述JSON-RPC 2.0格式通过任何兼容MCP的客户端进行连接
该服务器是自包含的,除了Node.js和可工作的cURL安装外,不需要额外的依赖关系。
可靠性
事实证明,这种实现在生产环境中非常可靠,即使在高负载下也能实现零连接故障和一致的性能。直接cURL方法绕过了其他MCP库在困惑中常见的所有不稳定问题。
