网络搜索与AI回答服务

一个集成Perplexity API的FastMCP服务器,提供网络搜索和基于AI的答案,适用于研究和信息获取。

  • by Pantainos-Toolkit
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 DigiBugCat/perplexity-mcp

使用说明

困惑MCP服务器

A. FastMCP 与Perplexity的API集成的服务器,提供网络搜索和基于人工智能的答案。

特性

三层研究工作流程

  1. search -先脚踏实地

    • 提问前先找到相关来源
    • 返回URL、标题和代码段
    • 当你不知道一个话题时,使用这个
  2. ask -获取AI答案(默认)

    • 基于网络的人工智能合成答案
    • 使用 sonar 模型(快速且经济高效)
    • 包括引用和可选图像/相关问题
  3. ask_more -深入挖掘

    • 对复杂问题进行更全面的分析
    • 使用 sonar-pro 型号(功能更强,但价格更高)
    • 使用时间 ask 没有提供足够的深度

先决条件

本地设置

1.安装依赖项

使用紫外线(推荐):

uv pip install -e .

或者使用pip:

pip install -e .

2.配置API密钥

复制示例环境文件:

cp .env.example .env

编辑 .env 并添加您的困惑API密钥:

PERPLEXITY_API_KEY=your_api_key_here

3.运行服务器

在本地测试服务器:

uv run fastmcp run server.py

或者与 fastmcp CLI:

fastmcp run server.py

4.安装在克劳德桌面

安装服务器以与Claude Desktop一起使用:

fastmcp install claude-code server.py

或者手动添加到您的Claude Desktop配置中(~/Library/Application Support/Claude/claude_desktop_config.json 在macOS上):

{
  "mcpServers": {
    "perplexity": {
      "command": "uv",
      "args": ["run", "fastmcp", "run", "/absolute/path/to/server.py"],
      "env": {
        "PERPLEXITY_API_KEY": "your_api_key_here"
      }
    }
  }
}

云部署(FastMCP云)

部署到 fastmcp.cloud 为了便于托管:

1.推送到GitHub

git init
git add .
git commit -m "Initial commit"
git remote add origin https://github.com/yourusername/perplexity-mcp.git
git push -u origin main

2.部署在FastMCP云上

  1. 访问 fastmcp.cloud
  2. 通过 GitHub 登录
  3. 创建一个新项目并连接您的仓库
  4. 配置:
    • 入口点: server.py
    • 环境变量:添加 PERPLEXITY_API_KEY
  5. 部署!

您的服务器将在 https://your-project-name.fastmcp.app/mcp

FastMCP云自动:

  • ✅ 检测来自的依赖关系 pyproject.toml
  • ✅ 每次推送时都会部署 main
  • ✅ 为PR创建预览部署
  • ✅ 处理HTTP传输和身份验证

工具使用指南

研究工作流程示例

1. Don't know about a topic? → Use search()
   search("latest AI research papers on transformers")

2. Found sources? → Use ask() to understand
   ask("What are the key innovations in transformer models?")

3. Need more depth? → Use ask_more()
   ask_more("Explain the mathematical foundations of attention mechanisms in transformers")

刀具参数

search(query, max_results=10, recency=None, domain_filter=None)

  • query:搜索查询字符串
  • max_results:结果数(默认值:10)
  • recency:按时间筛选- "day", "week", "month",或 "year"
  • domain_filter:包括/排除域
    • 包括: ["wikipedia.org", "github.com"]
    • 排除: ["-reddit.com", "-pinterest.com"]

ask(query, reasoning_effort="medium", ...)

  • query:要问的问题
  • reasoning_effort: "low", "medium" (默认),或 "high"
  • search_mode: "web" (默认), "academic",或 "sec"
  • recency:时间过滤器
  • domain_filter:域筛选器
  • return_images:包含图像(默认值:False)
  • return_related_questions:包括后续问题(默认值:False)

ask_more(query, reasoning_effort="medium", ...)

参数与 ask(),但使用更强大的 sonar-pro 模型。

成本优化

  • 从开始 search:寻找资源的免费/廉价方式
  • 默认为 ask:用途 sonar (成本效益)
  • 升级到 ask_more:仅在需要时(更昂贵)

发展

项目结构

perplexity-mcp/
├── server.py           # Main FastMCP server
├── pyproject.toml      # Dependencies
├── .env.example        # Environment template
└── README.md          # This file

检查服务器

看看FastMCP Cloud会看到什么:

fastmcp inspect server.py

api参考

此服务器使用两个困惑API端点:

  • 搜索API (/search)-返回排名的搜索结果
  • 聊天完成API (/chat/completions)-返回AI生成的答案

支持的型号:

  • sonar -快速、经济高效
  • sonar-pro -更全面

故障排除

API关键问题

如果您遇到身份验证错误:

  1. 在验证您的API密钥https://www.perplexity.ai/settings/api
  2. 检查一下 PERPLEXITY_API_KEY 设置正确
  3. 确保没有多余的空格或引号

超时错误

如果请求超时:

  • 默认超时为搜索30秒,聊天60秒
  • 复杂的问题可能需要更长的时间
  • 考虑使用 reasoning_effort="low" 以获得更快的响应

局部测试

测试单个工具:

uv run fastmcp dev server.py

这将打开一个交互式开发界面。

许可证

麻省理工学院

贡献

欢迎投稿!请打开问题或PR。

链接