Perplexity AI MCP Server
Perplexity AI MCP 服务器
此代码库包含模型上下文协议 (MCP) 服务器的源代码,该服务器提供对 Perplexity AI API 的访问。该服务器允许用户通过各种工具与 Perplexity AI 进行交互,包括聊天、搜索和检索文档。
目的
该服务器简化了 Perplexity AI 与基于 MCP 的系统的集成,并提供了一种便捷且标准化的方式来访问 Perplexity AI 的功能。
Related MCP server: perplexity-mcp-server
设置
**安装 Node.js 和 npm:**确保您的系统上安装了 Node.js 和 npm。
**克隆存储库:**将此存储库克隆到本地计算机。
**安装依赖项:**导航到项目目录并运行
npm install。**配置 API 密钥:**将
PERPLEXITY_API_KEY环境变量设置为您的 Perplexity API 密钥。**运行服务器:**运行
npm start启动服务器。
用法
该服务器提供了一些可通过 MCP 系统访问的工具。有关如何使用这些工具的详细信息,请参阅 MCP 文档。
使用的技术
TypeScript
@modelcontextprotocol/sdk
axios
已知问题
Perplexity API 可能不太可靠。我们提供了错误处理功能,以便妥善处理 API 故障。
贡献
欢迎贡献!请打开一个问题或提交一个拉取请求。
Available Tools
5 toolschat_perplexityB
Maintains ongoing conversations with Perplexity AI. Creates new chats or continues existing ones with full history context.
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | The message to send to Perplexity AI | |
| chat_id | No | Optional: ID of an existing chat to continue. If not provided, a new chat will be created. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions 'maintains ongoing conversations' and 'full history context', which implies statefulness and persistence, but doesn't disclose critical behavioral traits such as authentication requirements, rate limits, conversation length limits, whether it's read-only or mutative, error handling, or what happens when chat_id is invalid. The description adds some context but leaves significant gaps for a tool that likely involves API calls and state management.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two concise sentences that are front-loaded with the main purpose. Every sentence earns its place: the first establishes the core functionality, and the second clarifies the chat creation/continuation behavior. There's no wasted verbiage or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (managing conversational state with an external AI service), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the tool returns (e.g., AI response format, chat_id for new chats), error conditions, authentication needs, or operational constraints. For a stateful chat tool with external dependencies, this minimal description leaves too many unknowns for effective agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description doesn't explicitly mention or explain any parameters. However, with 100% schema description coverage, the input schema already provides clear documentation for both parameters (message and chat_id). The description's mention of 'creates new chats or continues existing ones' aligns with the chat_id parameter's semantics, but adds no additional meaning beyond what the schema already states. This meets the baseline of 3 when schema coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('maintains', 'creates', 'continues') and resources ('ongoing conversations with Perplexity AI', 'new chats', 'existing ones'). It distinguishes from siblings by focusing on conversational AI interactions rather than code analysis, API discovery, documentation retrieval, or general search. However, it doesn't explicitly differentiate from potential sibling tools that might also involve chat interactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context for maintaining conversations with Perplexity AI, but provides no explicit guidance on when to use this tool versus the sibling tools (check_deprecated_code, find_apis, get_documentation, search). It mentions the ability to create new chats or continue existing ones, which gives some implied usage scenarios, but lacks clear when/when-not instructions or alternative recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_deprecated_codeC
Check if code or dependencies might be using deprecated features
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | The code snippet or dependency to check | |
| technology | No | The technology or framework context (e.g., 'React', 'Node.js') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool checks for deprecated features but doesn't describe how it performs this check, what the output looks like, any limitations (e.g., accuracy, supported technologies beyond examples), or potential impacts (e.g., if it modifies code). This leaves significant gaps in understanding the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is appropriately sized and front-loaded, though it could be slightly more structured (e.g., by including usage hints) to earn a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of checking deprecated code (which involves analysis and potential output interpretation), the description is incomplete. No annotations exist to provide behavioral context, and there's no output schema to explain return values. The description alone lacks details on how results are presented, accuracy, or scope, making it inadequate for full understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters ('code' and 'technology') with examples. The description adds no additional meaning beyond this, such as explaining parameter interactions or constraints. Since the schema does the heavy lifting, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and resource ('code or dependencies'), and identifies what it checks for ('deprecated features'). However, it doesn't explicitly differentiate from sibling tools like 'find_apis' or 'get_documentation', which might also relate to code analysis, so it doesn't reach the highest score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any specific contexts, prerequisites, or exclusions, nor does it reference sibling tools like 'search' or 'find_apis' for related tasks, leaving usage entirely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_apisC
Find and evaluate APIs that could be integrated into a project
| Name | Required | Description | Default |
|---|---|---|---|
| requirement | Yes | The functionality or requirement you're looking to fulfill | |
| context | No | Additional context about the project or specific needs |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool finds and evaluates APIs but doesn't explain how it does this (e.g., search methods, sources, criteria), what the output looks like, or any limitations like rate limits or authentication needs. This leaves significant gaps for an agent to understand its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without unnecessary words. It is front-loaded with the core function, though it could be slightly more structured by separating finding from evaluating aspects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (finding and evaluating APIs), lack of annotations, and no output schema, the description is incomplete. It doesn't cover behavioral traits, output format, or integration specifics, leaving the agent with insufficient context to use the tool effectively beyond basic parameter input.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with parameters 'requirement' and 'context' clearly documented. The description adds no additional meaning beyond what the schema provides, such as examples or usage context for the parameters. Since schema coverage is high, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as 'Find and evaluate APIs that could be integrated into a project', which includes a specific verb ('find and evaluate') and resource ('APIs'). It distinguishes itself from siblings like 'search' by specifying API evaluation for integration, though it doesn't explicitly contrast with other tools like 'get_documentation'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention when to choose it over sibling tools like 'search' for general queries or 'get_documentation' for API details, nor does it specify prerequisites or exclusions for its use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_documentationB
Get documentation and usage examples for a specific technology, library, or API
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The technology, library, or API to get documentation for | |
| context | No | Additional context or specific aspects to focus on |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves documentation and examples but doesn't describe how it works (e.g., sources, format, limitations, rate limits, or error handling). For a tool with no annotations, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose and appropriately sized for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 parameters, no output schema, no annotations), the description is minimally adequate. It states the purpose but lacks details on behavior, usage context, and output format, which are needed for full understanding without annotations or output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'context') with clear descriptions. The description adds no additional meaning beyond what the schema provides, such as examples or constraints, but doesn't need to compensate for low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get documentation and usage examples for a specific technology, library, or API.' It specifies the verb ('Get') and resource ('documentation and usage examples'), but doesn't explicitly differentiate from sibling tools like 'find_apis' or 'search', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'find_apis' or 'search', nor does it specify prerequisites, exclusions, or contextual triggers for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchC
Perform a general search query to get comprehensive information on any topic
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query or question | |
| detail_level | No | Optional: Desired level of detail (brief, normal, detailed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'comprehensive information' but does not specify what that entails (e.g., format, sources, pagination, rate limits, or permissions). This is a significant gap for a search tool with no structured safety or operational hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that is front-loaded with the core purpose. However, it could be more structured by explicitly mentioning the parameters or usage context, but it avoids unnecessary verbosity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a search tool with no annotations and no output schema, the description is incomplete. It does not explain what the tool returns (e.g., results format, limitations) or behavioral traits like error handling. This leaves critical gaps for an agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters ('query' and 'detail_level') with descriptions and an enum. The description adds no additional meaning beyond what the schema provides, such as examples or context for the 'detail_level' options. Baseline 3 is appropriate when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'perform[s] a general search query to get comprehensive information on any topic', which provides a clear verb ('perform') and resource ('search query'), but it is vague about what type of information or sources are searched. It does not distinguish from siblings like 'find_apis' or 'get_documentation', leaving ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no guidance on when to use this tool versus alternatives such as 'chat_perplexity' or 'find_apis'. It implies a broad context ('any topic') but lacks explicit when/when-not instructions or prerequisites, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes: chat_perplexity handles conversational AI, check_deprecated_code analyzes code deprecation, find_apis discovers APIs, get_documentation retrieves docs, and search performs general queries. However, get_documentation and search could overlap slightly when users seek technical information, but descriptions clarify their focus.
Naming is mixed: chat_perplexity uses a verb_noun format, while check_deprecated_code, find_apis, get_documentation, and search use verb-based phrases without a consistent pattern. All names are snake_case, providing some readability, but the verb styles vary (e.g., 'chat' vs. 'check' vs. 'find'), lacking a unified convention.
With 5 tools, the count is reasonable for a server focused on AI assistance and information retrieval. It covers key areas like conversation, code analysis, API discovery, documentation, and general search, though it might feel slightly thin for broader AI tasks, but each tool earns its place.
The server targets AI-driven information and code assistance, with tools for chat, code checks, API finding, documentation, and search. Notable gaps include lack of update/delete operations for chats or saved searches, and no tool for summarizing or analyzing search results, which could limit agent workflows in this domain.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.
Let AI agents query data and act across all your business apps via MCP.
Connect MCP clients to 2,000+ AI models without managing provider API keys.
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA comprehensive MCP server that provides intelligent access to Perplexity AI's search and reasoning models with automatic model selection, conversation management, and project-aware storage. Supports real-time search, deep research, chat sessions, and async operations for complex queries.293MIT
- FlicenseBqualityDmaintenanceEnables interaction with Perplexity AI through MCP tools for chatting, searching, and retrieving documentation.51
- AlicenseBqualityAmaintenanceEnables AI agents and users to query Perplexity AI's premium models (GPT-5.4, Claude 4.6 Opus, Gemini 3.1 Pro, etc.) via MCP tools, CLI, or API, with support for deep research, model council, and multi-turn conversations.30180MIT
- AlicenseNot gradedqualityDmaintenanceProvides a standardized interface for interacting with Perplexity's tools and services through a unified API, following the MCP specification.1MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/rileyedwards77/perplexity-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server