Skip to main content
Glama
wysh3

Perplexity MCP Server

by wysh3

퍼플렉시티 MCP 제버 📋

API 키가 필요 없이 Perplexity 웹사이트와 상호 작용하여 AI 기반 연구 기능을 제공하는 연구 수준 모델 컨텍스트 프로토콜(MCP) 서버 구현입니다.

특징

  • 🔍 Perplexity의 웹 인터페이스를 통한 웹 검색 통합.

  • 💬 대화 맥락을 위한 지속적인 채팅 기록.

  • 📄 문서 검색, API 찾기, 코드 분석을 위한 도구입니다.

  • 🚫 API 키가 필요하지 않습니다(웹 상호작용에 의존).

  • 🛠️ TypeScript를 우선으로 구현했습니다.

  • 🌐 브라우저 자동화를 위해 Puppeteer를 사용합니다.

Related MCP server: Perplexity AI MCP Server

도구

1. 검색( search )

Perplexity.ai에서 검색 쿼리를 수행합니다. brief , normal 또는 detailed ' 응답을 지원합니다. 원시 텍스트 출력을 반환합니다.

2. 문서 가져오기( get_documentation )

Perplexity에 기술/라이브러리에 대한 문서와 예시를 제공해 달라고 요청합니다. 선택적으로 특정 맥락에 초점을 맞춥니다. 원시 텍스트 출력을 반환합니다.

3. API 찾기( find_apis )

Perplexity에 요구 사항과 컨텍스트를 기반으로 API를 찾고 평가하도록 요청합니다. 원시 텍스트 출력을 반환합니다.

4. 더 이상 사용되지 않는 코드 확인( check_deprecated_code )

Perplexity에 특정 기술 컨텍스트 내에서 더 이상 사용되지 않는 기능에 대한 코드 조각을 분석하도록 요청합니다. 원시 텍스트 출력을 반환합니다.

5. URL 콘텐츠 추출( extract_url_content )

브라우저 자동화와 Mozilla의 Readability를 사용하여 URL에서 주요 기사 텍스트 콘텐츠를 추출합니다. gitingest.com을 통해 GitHub 저장소를 처리합니다. 최대 깊이까지 재귀적 링크 탐색을 지원합니다. 콘텐츠와 메타데이터가 포함된 구조화된 JSON을 반환합니다.

6. 채팅( chat_perplexity )

Perplexity AI와 지속적인 대화를 유지합니다. 채팅 기록은 프로젝트 디렉터리 내 chat_history.db 에 로컬로 저장됩니다. chat_id 와 response 포함하는 문자열화된 JSON 객체를 반환합니다.

설치

readme를 복사해서 붙여넣기만 하면 AI가 나머지를 알아서 처리해 줍니다.

  1. 이 저장소를 복제하거나 다운로드하세요:

지엑스피1

  1. 종속성 설치:

npm install
  1. 서버를 빌드하세요:

npm run build

중요 : Node.js가 설치되어 있는지 확인하세요. Puppeteer는 설치 중에 필요한 경우 호환되는 브라우저 버전을 다운로드합니다. 프로젝트를 빌드하고 구성한 후 IDE/애플리케이션을 다시 시작하면 변경 사항이 적용됩니다.

구성

MCP 구성 파일에 서버를 추가합니다(예: VS Code 확장 프로그램의 경우 cline_mcp_settings.json , 데스크톱 앱의 경우 claude_desktop_config.json ).

중요: /path/to/perplexity-mcp-zerver/build/index.js 시스템에 빌드된 index.js 파일의 절대 경로 로 바꾸세요.

Cline/RooCode 확장에 대한 예:

{
  "mcpServers": {
    "perplexity-server": {
      "command": "node",
      "args": [
        "/full/path/to/your/perplexity-mcp-zerver/build/index.js" // <-- Replace this path! (in case of windows for ex: "C:\\Users\\$USER\\Documents\\Cline\\MCP\\perplexity-mcp-zerver\\build\\index.js"
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": [],
      "autoApprove": [],
      "timeout": 300
    }
  }
}

Claude Desktop의 예:

{
  "mcpServers": {
    "perplexity-server": {
      "command": "node",
      "args": [
        "/full/path/to/your/perplexity-mcp-zerver/build/index.js" // <-- Replace this path!
      ],
      "env": {},
      "disabled": false,
      "alwaysAllow": []
    }
  }
}

용법

  1. MCP 설정 파일에서 서버가 올바르게 구성되었는지 확인하세요.

  2. IDE(Cline/RooCode 확장 기능이 있는 VS Code 등) 또는 Claude Desktop 애플리케이션을 다시 시작합니다.

  3. MCP 클라이언트는 자동으로 서버에 연결되어야 합니다.

  4. 이제 연결된 AI 비서(예: Claude)에게 다음과 같은 도구를 사용하도록 요청할 수 있습니다.

    • "퍼플렉시티 서버 검색을 사용하여 AI에 대한 최신 뉴스를 찾아보세요."

    • "React hooks에 대해 perplexity-server get_documentation에 문의하세요."

    • "양자 컴퓨팅에 관해 perplexity-server와 채팅을 시작하세요."

크레딧

DaInfernalCoder에게 감사드립니다:

특허

이 프로젝트는 GNU General Public License v3.0에 따라 라이선스가 부여되었습니다. 자세한 내용은 LICENSE.md 파일을 참조하세요.

부인 성명

이 프로젝트는 웹 자동화(Puppeteer)를 통해 Perplexity 웹사이트와 상호 작용합니다. 교육 및 연구 목적으로만 사용됩니다. 웹 스크래핑 및 자동화는 대상 웹사이트의 서비스 약관에 위배될 수 있습니다. 저자는 무단 자동화 또는 서비스 약관 위반을 지지하거나 권장하지 않습니다. 책임감 있고 윤리적으로 사용하십시오. 이 서버의 안정성은 Perplexity 웹사이트 구조의 일관성 유지에 달려 있습니다.

Available Tools

6 tools
chat_perplexityB

Automatically call this tool for interactive, conversational queries. This tool leverages Perplexitys web search capabilities to provide real-time information and maintains conversation history using an optional chat ID for contextual follow-ups.

ParametersJSON Schema
NameRequiredDescriptionDefault
chat_idNoOptional: ID of an existing chat to continue. If not provided, a new chat will be created.
messageYesThe message to send to Perplexity AI for web search

Output Schema

ParametersJSON Schema
NameRequiredDescription
chat_idNoID of the chat session (new or existing)
responseNoPerplexity AI response to the message

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'real-time information' and 'maintains conversation history,' but lacks details on behavioral traits like rate limits, authentication needs, error handling, or what 'interactive' entails. This is insufficient for a tool with web search and chat capabilities.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and front-loaded, with two sentences that efficiently convey the main purpose and key features. There's no wasted text, though it could be slightly more structured for clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (web search with chat history), no annotations, and an output schema (which handles return values), the description is moderately complete. It covers the core functionality but misses important behavioral aspects like limitations or prerequisites, making it adequate but with gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 thoroughly. The description adds no additional meaning beyond what's in the schema (e.g., it doesn't explain parameter interactions or usage nuances), meeting the baseline for high coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'call this tool for interactive, conversational queries' and 'leverages Perplexity's web search capabilities to provide real-time information.' It specifies the verb (call for queries) and resource (Perplexity's web search), though it doesn't explicitly distinguish from sibling tools like 'search' or 'extract_url_content'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage context: 'for interactive, conversational queries' and 'maintains conversation history,' which implies when to use it (for chat-like interactions). However, it doesn't explicitly state when not to use it or mention alternatives among sibling tools, leaving gaps in guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

check_deprecated_codeA

Automatically call this tool when reviewing legacy code, planning upgrades, or encountering warnings with real time web access. Helps identify technical debt. Example: During code reviews or before upgrading dependencies.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYesThe code snippet or dependency to check
technologyNoThe technology or framework context (e.g., "React", "Node.js")

Output Schema

ParametersJSON Schema
NameRequiredDescription
responseNoThe raw text response from Perplexity analyzing the code for deprecated features.

TDQS

A3.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It mentions 'real time web access,' hinting at external data fetching, but doesn't disclose key behavioral traits such as whether it's read-only, if it makes network calls, potential rate limits, or what the output looks like. This is inadequate for a tool that likely interacts with external sources.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences that directly address usage and purpose. It's front-loaded with key scenarios, though the second sentence could be more tightly integrated to avoid slight redundancy in examples.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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, 100% schema coverage, and an output schema exists), the description is reasonably complete. It covers usage contexts well, and since an output schema is present, it doesn't need to explain return values, though it could benefit from more behavioral details.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 ('code' and 'technology') with descriptions and examples. The description doesn't add any meaning beyond what the schema provides, such as explaining how parameters interact or their impact on results, meeting the baseline for high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Helps identify technical debt' through checking deprecated code. It specifies the action ('identify') and resource ('technical debt'), though it doesn't explicitly differentiate from sibling tools like 'find_apis' or 'get_documentation' which might also relate to code analysis.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use this tool: 'when reviewing legacy code, planning upgrades, or encountering warnings with real time web access.' It includes specific scenarios like 'During code reviews or before upgrading dependencies,' which clearly defines the context without mentioning alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

extract_url_contentA

Uses browser automation (Puppeteer) and Mozilla's Readability library to extract the main article text content from a given URL. Handles dynamic JavaScript rendering and includes fallback logic. For GitHub repository URLs, it attempts to fetch structured content via gitingest.com. Performs a pre-check for non-HTML content types and checks HTTP status after navigation. Ideal for getting clean text from articles/blog posts. Note: May struggle to isolate only core content on complex homepages or dashboards, potentially including UI elements.

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNoOptional: Maximum depth for recursive link exploration (1-5). Default is 1 (no recursion).
urlYesThe URL of the website to extract content from.

Output Schema

ParametersJSON Schema
NameRequiredDescription
statusNoIndicates the outcome of the extraction attempt.
contentNoArray containing results for each explored page.
messageNoError message or context for "SuccessWithPartial" status.
rootUrlNoThe initial URL provided for exploration.
pagesExploredNoThe number of pages successfully fetched during exploration.
explorationDepthNoThe maximum depth requested for exploration.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden and does so effectively. It discloses key behavioral traits: uses browser automation and Readability library, handles JavaScript rendering, includes fallback logic, special handling for GitHub URLs, performs pre-checks for content types and HTTP status, and notes limitations with complex pages. This covers technical implementation, error handling, and edge cases.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized and front-loaded with the core purpose in the first sentence. Each subsequent sentence adds valuable information (technologies, special cases, checks, ideal use, limitations). There is minimal waste, though it could be slightly more streamlined.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (dynamic content extraction, fallback logic, GitHub handling) and the presence of an output schema (which means return values are documented elsewhere), the description is complete enough. It covers purpose, technology, behavior, use cases, and limitations without needing to repeat structured data.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 (url and depth) thoroughly. The description does not add any additional meaning about parameters beyond what the schema provides, such as explaining how depth affects recursive exploration in practice. 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.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'extract the main article text content from a given URL' using specific technologies (Puppeteer and Mozilla's Readability). It distinguishes from siblings by focusing on content extraction rather than chat, code analysis, API discovery, documentation retrieval, or general search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context for when to use it ('Ideal for getting clean text from articles/blog posts') and includes a note about limitations ('May struggle... on complex homepages or dashboards'). However, it does not explicitly mention when NOT to use it or name specific alternatives among sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

find_apisB

Automatically call this tool when needing external services or real time current data (like API info, latest versions, etc.) from web. Compares options based on requirements. Example: When building a shopping site, ask "Find product image APIs with free tiers".

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoAdditional context about the project or specific needs
requirementYesThe functionality or requirement you are looking to fulfill

Output Schema

ParametersJSON Schema
NameRequiredDescription
responseNoThe raw text response from Perplexity containing API suggestions and evaluations.

TDQS

B3.2/5.0
Behavior2/5

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 the tool 'compares options based on requirements', which adds some context about its behavior. However, it lacks details on how the comparison works, what sources it uses, whether it requires authentication, rate limits, or what the output looks like. For a tool that interacts with web data, this is a significant gap in transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise and well-structured, consisting of two sentences: one stating the purpose and usage, and another providing a concrete example. Each sentence adds value without redundancy. It could be slightly improved by front-loading key information more explicitly, but overall it's efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given that there is an output schema (which reduces the need to describe return values in the description), no annotations, and high schema coverage, the description is moderately complete. It covers the basic purpose and usage but lacks details on behavioral aspects like data sources, comparison methodology, and limitations. For a tool that fetches and compares web data, more context would be beneficial.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% description coverage, with clear documentation for both parameters ('requirement' and 'context'), including examples. The description adds minimal value beyond the schema, as it doesn't provide additional syntax, format details, or usage nuances for the parameters. The baseline score of 3 is appropriate since the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to find external services or real-time data from the web by comparing options based on requirements. It provides a specific example (shopping site scenario) that illustrates the verb 'find' and resource 'APIs'. However, it doesn't explicitly distinguish this tool from sibling tools like 'search' or 'get_documentation', 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.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides some usage guidance by stating 'Automatically call this tool when needing external services or real time current data' and giving an example scenario. This implies when to use it, but it doesn't explicitly differentiate it from alternatives like 'search' or 'chat_perplexity', nor does it specify when NOT to use it. The guidance is helpful but incomplete.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_documentationA

Automatically call this tool when working with unfamiliar APIs/libraries, needing usage examples, or checking version specifics as this can access web. Example: When adding a payment gateway, ask "Get Stripe API documentation for creating charges".

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoAdditional context or specific aspects to focus on
queryYesThe technology, library, or API to get documentation for

Output Schema

ParametersJSON Schema
NameRequiredDescription
responseNoThe raw text response from Perplexity containing documentation, examples, and potentially source URLs prefixed with "Official URL(s):". The calling agent should parse this text to extract URLs if needed for further processing.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It discloses that the tool 'can access web,' which is a useful behavioral trait. However, it doesn't mention other important aspects like rate limits, authentication needs, response format, or potential costs. The description adds some value but leaves significant behavioral gaps uncovered.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is appropriately sized with two sentences. The first sentence front-loads the purpose and usage guidelines, and the second provides a concrete example. There's minimal waste, though the phrasing could be slightly more concise (e.g., 'Automatically call this tool' is redundant with the tool name).

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

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 annotations, but has an output schema), the description is reasonably complete. It covers purpose and usage well, and the output schema exists, so the description doesn't need to explain return values. However, it lacks details on behavioral traits like web access limitations or error handling, which would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 descriptions and examples. The description doesn't add any parameter-specific semantics beyond what the schema provides. According to the rules, with high schema coverage, the baseline is 3 even with no param info in the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Automatically call this tool when working with unfamiliar APIs/libraries, needing usage examples, or checking version specifics as this can access web.' It specifies the verb ('get documentation') and resource ('APIs/libraries'), 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.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit usage guidelines: 'when working with unfamiliar APIs/libraries, needing usage examples, or checking version specifics.' It includes a concrete example ('When adding a payment gateway, ask "Get Stripe API documentation for creating charges"') that illustrates when to use this tool. No explicit alternatives are named, but the context is clear and actionable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedchat_perplexity
    • First observedcheck_deprecated_code
    • First observedextract_url_content
    • First observedfind_apis
    • First observedget_documentation
    • First observedsearch

TDQS

A3.6/5.0

Scored across 6 tools

Disambiguation3/5

The tools have distinct primary purposes (e.g., chat, code review, content extraction, API discovery, documentation lookup, general search), but there is some functional overlap. For instance, 'chat_perplexity' and 'search' both perform web searches, and 'find_apis' and 'get_documentation' both relate to API information, which could cause confusion for an agent in selecting the most appropriate tool for a given task.

Naming Consistency4/5

Most tool names follow a consistent verb_noun pattern (e.g., 'extract_url_content', 'find_apis', 'get_documentation', 'check_deprecated_code'), which aids readability. However, 'chat_perplexity' deviates slightly by using a noun_verb structure, and 'search' is a standalone verb without a noun, creating minor inconsistencies in the naming convention.

Tool Count5/5

With 6 tools, the count is well-scoped for a server focused on web-based information retrieval and code assistance. Each tool appears to serve a specific function within this domain, avoiding bloat while covering key areas like conversation, search, content extraction, and technical support, making the set manageable and purposeful.

Completeness4/5

The tool set covers a broad range of web interaction and code-related tasks, including conversational search, content extraction, API discovery, documentation access, and code review. A minor gap exists in lacking explicit tools for updating or managing retrieved information (e.g., saving or organizing results), but agents can likely work around this using the provided tools effectively for most workflows.

Maintenance

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers