使用说明
困惑MCP服务器
一种模型上下文协议(MCP)服务器,提供对Perplexica智能搜索功能的访问。
特性
- 智能搜索:查询Perplexica的人工智能搜索引擎
- 多种对焦模式:支持网络搜索、学术搜索等
- 聊天记录:在搜索中保持对话上下文
- 系统说明:使用自定义说明自定义搜索行为
安装
来源
git clone <repository-url>
cd perplexica-mcp
cargo install --path .
依赖项
- 锈蚀1.70+
- 正在运行的Perplexica实例
配置
所需的环境变量
集 PERPLEXICA_API_URL 指向您的Perplexica实例的环境变量:
export PERPLEXICA_API_URL="http://localhost:3000"
# or
export PERPLEXICA_API_URL="https://your-perplexica-instance.com"
可选环境变量(推荐)
您可以设置默认提供程序和模型值,以避免在每个搜索请求中指定它们:
export PERPLEXICA_PROVIDER_ID="550e8400-e29b-41d4-a716-446655440000"
export PERPLEXICA_CHAT_MODEL_KEY="gpt-4o-mini"
export PERPLEXICA_EMBEDDING_MODEL_KEY="text-embedding-3-large"
备注:这些是可选的。如果没有设置,客户端将需要在每个搜索请求中指定提供者信息。
用法
Zed编辑器
添加到您的 settings.json 文件:
{
"context_servers": {
"perplexica": {
"source": "custom",
"command": "perplexica-mcp",
"env": {
"PERPLEXICA_API_URL": "http://localhost:3000",
"PERPLEXICA_CHAT_MODEL_KEY": "models/gemini-2.5-flash",
"PERPLEXICA_PROVIDER_ID": "40c45540-9774-42c7-b38c-7934039f73f1",
"PERPLEXICA_EMBEDDING_MODEL_KEY": "models/embedding-gemini-001"
}
}
}
}
Zed的发展模式
对于Zed的开发,您可以直接从源代码运行:
{
"context_servers": {
"perplexica-dev": {
"source": "custom",
"command": "cargo",
"args": ["run"],
"env": {
"PERPLEXICA_API_URL": "http://localhost:3000",
"PERPLEXICA_CHAT_MODEL_KEY": "models/gemini-2.5-flash",
"PERPLEXICA_PROVIDER_ID": "40c45540-9774-42c7-b38c-7934039f73f1",
"PERPLEXICA_EMBEDDING_MODEL_KEY": "models/embedding-gemini-001"
}
}
}
}
使用Opencode
添加到您的 opencode.json 文件(通常位于 ~/.config/opencode/opencode.json):
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"perplexica": {
"type": "local",
"command": ["perplexica-mcp"],
"enabled": true,
"environment": {
"PERPLEXICA_API_URL": "http://localhost:3000",
"PERPLEXICA_CHAT_MODEL_KEY": "models/gemini-2.5-flash",
"PERPLEXICA_PROVIDER_ID": "40c45540-9774-42c7-b38c-7934039f73f1",
"PERPLEXICA_EMBEDDING_MODEL_KEY": "models/embedding-gemini-001"
}
}
}
}
Opencode中的开发模式
对于使用Opencode进行开发,您可以直接从源代码运行:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"perplexica-dev": {
"type": "local",
"command": ["cargo", "run"],
"cwd": "/path/to/perplexica-mcp",
"enabled": true,
"environment": {
"PERPLEXICA_API_URL": "http://localhost:3000",
"PERPLEXICA_CHAT_MODEL_KEY": "models/gemini-2.5-flash",
"PERPLEXICA_PROVIDER_ID": "40c45540-9774-42c7-b38c-7934039f73f1",
"PERPLEXICA_EMBEDDING_MODEL_KEY": "models/embedding-gemini-001"
}
}
}
}
可用工具
perplexica_providers
从以下位置检索可用的提供商及其模型 API困惑.
参数: 无
用途: 调用此工具可以发现可用的提供商、他们的聊天模型和嵌入模型。这有助于客户端了解哪些提供者ID和模型密钥可用于搜索请求。
响应格式: 该工具返回一个结构化响应,其中包含:
- 可用提供商摘要
- 每个提供商的详细信息(名称、ID、型号计数)
- 用于程序化访问的完整JSON响应
perplexica_search
使用搜索 API困惑提供程序和模型参数是可选的-除非用户明确指定,否则服务器将使用配置的默认值。
响应格式: 该工具返回格式化的markdown:
- 包含主要搜索响应的摘要部分
- 来源部分列出了所有引用的来源及其标题和网址
Markdown输出格式:
## Summary
<content of the message property>
## Sources
- <title property of source object>
- <url property of source object>
JSON反序列化: 服务器正确地将Perplexica API JSON响应反序列化为结构化Rust数据类型(PerplexicaSearchResponse, ProvidersResponse在将它们格式化为MCP客户端的markdown之前。这确保了类型安全和正确的错误处理,同时提供了干净、可读的输出格式。
参数:
query(必填):要发送给Perplexica的搜索查询focus_mode(可选):搜索的焦点模式(默认:“webSearch”)stream(可选):是否流式传输响应(默认值:false)history(可选):聊天历史记录为[角色,消息]对数组system_instructions(可选):搜索系统说明provider_id(可选):要使用的提供商ID。除非用户明确指定提供者,否则不要设置。如果省略,将使用环境变量中的默认值。chat_model_key(可选):聊天模式键使用。除非用户明确指定型号,否则不要设置。如果省略,将使用环境变量中的默认值。embedding_model_key(可选):嵌入要使用的模型密钥。除非用户明确指定嵌入模型,否则不要设置。如果省略,将使用环境变量中的默认值。
示例用法:
{
"query": "What is artificial intelligence?",
"focus_mode": "webSearch",
"system_instructions": "Focus on technical details and recent developments"
}
显式选择提供者的示例:
{
"query": "What is artificial intelligence?",
"provider_id": "550e8400-e29b-41d4-a716-446655440000",
"chat_model_key": "gpt-4o",
"embedding_model_key": "text-embedding-3-large"
}
API兼容性
此MCP服务器与支持以下功能的Perplexica实例兼容:
/api/providers 端点
返回所有活动提供商及其可用聊天和嵌入模型的列表。
/api/search 端点
接受以下格式的搜索请求:
{
"chatModel": {
"providerId": "uuid",
"key": "model-name"
},
"embeddingModel": {
"providerId": "uuid",
"key": "embedding-model"
},
"optimizationMode": "speed",
"focusMode": "webSearch",
"query": "search query",
"history": [...],
"systemInstructions": "...",
"stream": false
}
发展
建筑
cargo build
运行测试
cargo test
校验码
cargo check
cargo clippy
许可证
MIT许可证
故障排除
未设置环境变量
Error: PERPLEXICA_API_URL environment variable must be set
解决方案:在运行服务器之前设置环境变量。
缺少提供商信息
Error: Missing provider_id. Set either provider_id parameter or PERPLEXICA_PROVIDER_ID environment variable
解决方案:将可选环境变量设置为默认值,或在搜索请求中指定提供程序信息。
连接被拒绝
确保您的Perplexica实例正在运行,并且可以在指定的URL上访问。
MCP协议错误
确保您的MCP客户端(Zed、OpenCode等)已正确配置为使用stdio传输。