Perplexity搜索API服务器

一个基于Model Context Protocol的服务器,提供对Perplexity AI API的全面访问,使LLM和AI代理能够执行快速搜索增强查询和多源深度研究。

  • by cyanheads
  • TypeScript
  • 本地部署
  • 25 星标
  • 更新于
在 GitHub 查看 cyanheads/perplexity-mcp-server

使用说明

困惑MCP服务器

使用Perplexity的搜索API增强您的人工智能代理!

一个MCP(模型上下文协议)服务器,提供对困惑AI API的全面访问。它使LLM和AI代理能够通过标准化、安全且易于集成的协议执行快速的搜索增强查询,并进行详尽的多源深度研究。

建立在 cyanheads/mcp-ts-template,此服务器遵循模块化架构,具有强大的错误处理、日志记录和安全功能。

🚀 核心功能:困惑工具🛠️

该服务器为您的AI配备了专门的工具,以利用Perplexity的独特功能:

工具名称 描述 主要功能
perplexity_search 使用Perplexity API执行快速的搜索改进查询。非常适合快速提问和实时信息检索。 -按新旧程度过滤(day, week, month, year).
-按域或日期范围筛选。
-优先考虑学术资源 academic 模式。
-可选地包括模型的内部推理(showThinking).
perplexity_deep_research 对复杂主题进行详尽的多源调查,并提供详细的报告。 -非常适合进行深入分析和生成报告。
-控制研究深度和成本 reasoning_effort (low, medium, high).

备注:对于深度研究工具,我建议通过像Cline这样的MCP客户端允许更长的超时时间(例如180秒)。其他客户可能会在60秒后超时,这不足以进行深入研究。


目录

概述 特性 安装
配置 项目结构
工具 发展 许可证

概述

困惑MCP服务器充当桥梁,允许理解模型上下文协议(MCP)的应用程序(MCP客户端)(如高级人工智能助手(LLM)、IDE扩展或自定义研究工具)与困惑人工智能API直接有效地交互。

您的工具可以利用此服务器来:

  • 自动化研究:使代理能够以编程方式执行快速查找或深入研究。
  • 增强人工智能推理:向法学硕士提供来自网络的最新、可验证的信息,以支持他们的回应。
  • 将搜索集成到工作流中:将搜索增强生成无缝添加到任何AI驱动的任务中。

建立在坚固的基础上 mcp-ts-template,此服务器提供了一种标准化、安全且高效的方式,通过MCP标准公开Perplexity的功能。

开发者说明:此存储库包括 .微规则 该文件作为LLM编码代理的开发人员备忘单,可快速参考代码库模式、文件位置和代码片段。

特性

核心公用设施

利用 mcp-ts-template:

  • 日志记录:结构化、可配置的日志记录,带有文件轮换和可选的MCP通知。
  • 错误处理:集中错误处理,标准化 McpError 类型。
  • 配置:环境变量加载(dotenv)通过Zod验证。
  • 输入验证/消毒:用途 zod 用于模式验证和专用的净化实用程序。
  • 请求上下文:通过使用唯一的请求ID进行操作跟踪和关联 AsyncLocalStorage.
  • 类型安全:TypeScript和Zod模式强制执行强类型。
  • HTTP传输:使用高性能HTTP服务器 荣誉,具有会话管理和CORS支持。
  • 认证:支持JWT和OAuth 2.1的强大身份验证层。

困惑整合

  • 双重API支持:与标准聊天功能API完全集成(perplexity_search)以及更深入的研究模型(perplexity_deep_research).
  • 高级搜索控制:对搜索参数进行细粒度控制,包括最近度、域过滤和学术源优先级。
  • 成本跟踪:一种根据令牌使用情况和模型估计API调用成本的实用程序,有助于管理费用。
  • 弹性API客户端:用于与困惑API交互的专用服务,具有内置错误处理和请求/响应日志记录功能。

安装

先决条件

设置

  1. 克隆存储库:

    git clone https://github.com/cyanheads/perplexity-mcp-server.git
    cd perplexity-mcp-server
    
  2. 安装依赖项:

    npm install
    
  3. 构建项目:

    npm run build
    

配置

环境变量

通过创建 .env 项目根目录中的文件(您可以复制 .env.example).这些变量也可以在MCP客户端的配置中设置。

变量 描述 默认值
PERPLEXITY_API_KEY 必修的。 您的API困惑密钥。 ""
MCP_TRANSPORT_TYPE 运输机制: stdio 或 http. stdio
MCP_HTTP_PORT HTTP服务器的端口(如果 MCP_TRANSPORT_TYPE=http). 3010
MCP_HTTP_HOST HTTP服务器的主机地址。 127.0.0.1
MCP_LOG_LEVEL 日志记录级别(debug, info, warn, error). info
MCP_AUTH_MODE HTTP身份验证: jwt 或 oauth. jwt
MCP_AUTH_SECRET_KEY 要求…… jwt auth。 安全密钥(最少32个字符)。 ""

MCP客户端设置

将以下内容添加到MCP客户端的配置文件中(例如。, cline_mcp_settings.json):

{
  "mcpServers": {
    "perplexity-mcp-server": {
      "command": "node",
      "args": ["/path/to/your/perplexity-mcp-server/dist/index.js"],
      "env": {
        "PERPLEXITY_API_KEY": "YOUR_PERPLEXITY_API_KEY_HERE"
      }
    }
  }
}

项目结构

代码库遵循模块化结构 src/ 目录:

src/
├── index.ts              # Entry point: Initializes and starts the server
├── config/               # Configuration loading (env vars, package info)
│   └── index.ts
├── mcp-server/           # Core MCP server logic and capability registration
│   ├── server.ts         # Server setup, capability registration
│   ├── transports/       # Transport handling (stdio, http)
│   └── tools/            # MCP Tool implementations (subdirs per tool)
├── services/             # External service integrations (Perplexity API client)
├── types-global/         # Shared TypeScript type definitions
└── utils/                # Common utility functions (logger, error handler, etc.)

要查看详细的文件树,请运行 npm run tree 或查看 docs/tree.md.

工具

困惑MCP服务器为与困惑API交互提供了两个主要工具。

工具名称 描述 关键参数
perplexity_search 执行快速的搜索增强查询。 query, search_recency_filter?, search_domain_filter?, search_mode?, showThinking?
perplexity_deep_research 进行详尽的多源研究查询。 query, reasoning_effort?

注意:所有工具都支持全面的错误处理和返回结构化JSON响应。

发展

构建和测试

# Build the project (compile TS to JS in dist/)
npm run build

# Clean build artifacts
npm run clean

# Generate a file tree representation for documentation
npm run tree

# Clean build artifacts and then rebuild the project
npm run rebuild

# Start the server using stdio (default)
npm start

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。


Built with the Model Context Protocol