Skip to main content
Glama
barankrky

Perplexity MCP Server

by barankrky

Perplexity MCP Server

Exposes Perplexity AI's search and synthesis capabilities through the Model Context Protocol (MCP), enabling Claude Desktop and other MCP clients to search the web, synthesize sources, and get cited answers.

Claude Desktop
    ↓ stdio
Perplexity MCP Server
    ├── perplexity_ask       → Ask a question, get answer + sources
    ├── perplexity_search    → In-depth web search
    ├── set_cookies          → Set Perplexity cookies (JSON / Netscape format)
    ├── list_models          → List available models
    └── reset_conversation   → Reset conversation context
    ↓
PerplexityClient (curl_cffi → Chrome impersonation → Cloudflare bypass)
    ↓
Perplexity.ai internal API (SSE)

Installation

pip install -r requirements.txt

Requires Python 3.10+. Only two dependencies:

  • curl_cffi — TLS fingerprint impersonation (Chrome 120)

  • mcp — Model Context Protocol SDK

Getting Cookies

This MCP server uses Perplexity's internal API, which requires valid session cookies. Choose one of the following methods:

  1. Log in to Perplexity.ai in Chrome

  2. Open DevTools → Application → Cookies → www.perplexity.ai

  3. Export all cookies as JSON

  4. Save to cookies/perplexity_cookies.json

Method 2: Playwright (Automated)

pip install playwright
playwright install chromium
python get_cookies.py
# Browser opens → log in to Perplexity → press Enter in terminal

For headless mode: python get_cookies.py --headless

Method 3: Netscape Format

Export cookies from any browser in Netscape format and save to cookies/perplexity_cookies.txt. The server reads them automatically.

Method 4: Environment Variable

export PERPLEXITY_COOKIES_JSON='{"cookie_name": "value", ...}'

Method 5: MCP Tool (Runtime)

If you already have cookie values (e.g., from another AI agent), use the set_cookies tool at runtime. It accepts both JSON and Netscape formats:

{
  "cookies_data": "{\"__Secure-next-auth.session-token\": \"...\", \"cf_clearance\": \"...\"}"
}

or Netscape format:

{
  "cookies_data": ".perplexity.ai\ttrue\t/\ttrue\t1787873851\tcookie_name\tcookie_value"
}

This is especially useful when an AI agent possesses cookie values and needs to configure the MCP server without filesystem access.

Usage

Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "perplexity": {
      "command": "python",
      "args": ["C:/full/path/to/mcp_server.py"]
    }
  }
}

Cursor / VS Code

Add to .cursor/mcp.json or VS Code MCP settings:

{
  "mcpServers": {
    "perplexity": {
      "command": "python",
      "args": ["C:/full/path/to/mcp_server.py"]
    }
  }
}

Direct Testing

# Start the MCP server
python mcp_server.py

# In another terminal, test with MCP Inspector
npx @modelcontextprotocol/inspector python mcp_server.py

Tools

perplexity_ask

Ask a question. Perplexity searches the web and returns a cited answer.

Parameter

Type

Default

Description

message

string

required

Question or topic

model

string

"auto"

Model: gpt-4o, claude-4.5-sonnet, o3-mini, deepseek-r1, ...

search_focus

enum

"internet"

"internet" or "writing"

sources

string[]

["web"]

Sources: web, scholar, social, edgar

In-depth web search. An alias for perplexity_ask with different default parameters focused on search.

Parameter

Type

Default

Description

query

string

required

Search query

search_focus

enum

"internet"

"internet" or "writing"

sources

string[]

["web"]

Source types: web, scholar, social, edgar

model

string

"auto"

Model preference

set_cookies

Set Perplexity cookies at runtime via MCP. Accepts JSON objects or Netscape-format cookie strings.

Parameter

Type

Default

Description

cookies_data

string

required

Cookie data — JSON ({"name":"value"}) or Netscape format (tab-separated)

session_id

string

"default"

Session ID

list_models

Lists all available models with their Perplexity internal IDs and use-case descriptions.

reset_conversation

Resets conversation history and starts a fresh context.

Parameter

Type

Default

Description

session_id

string

"default"

Session ID

Supported Models

Name

Perplexity ID

Use Case

gpt-5

gpt5

Balanced, general purpose

gpt-5-thinking

gpt5_thinking

Complex reasoning, broad sources (~28)

gpt-4o

gpt4o

Multimodal

gpt-4.5

gpt45

General purpose

o3

o3

Advanced reasoning, math

o3-pro

o3pro

Highest reasoning

o3-mini

o3mini

Fast reasoning, code

o4-mini

o4mini

Broad sources (~28), balanced

o1

o1

Step-by-step reasoning

claude-4.5-sonnet

claude45sonnet

Detailed analysis, coding

claude-4.5-sonnet-thinking

claude45sonnetthinking

Complex reasoning

claude-4-opus

claude40opus

Security-focused

claude-4.1-opus

claude41opusthinking

Latest Opus, advanced reasoning

grok-4

grok4

Latest news, breaking stories

gemini-2.5-pro

gemini30pro

Multimodal, 1M+ token context

deepseek-r1

r1

Price/performance, open source

sonar-pro

pplx_pro

Fast, concise answers

sonar-deep-research

o3pro_research

Deep research

perplexity-reasoning

pplx_reasoning

Balanced, efficient

Full details: call the list_models tool.

Notes

  • Cookie expiry: Cookies expire over time. If Perplexity logs you out or returns errors, re-export fresh cookies.

  • Guest mode: The server works without cookies but will fall back to the turbo model only. Authentication significantly expands model availability.

  • Multi-turn conversations: Supported via session_id. Context is maintained server-side through backend_uuid, read_write_token, and thread_url_slug.

  • Reasoning models: Models like deepseek-r1, o3, gpt-5-thinking, claude-4.5-sonnet-thinking emit a separate reasoning/thinking stream that is prepended to the response.

  • Security: Cookie files in cookies/ are gitignored by default. Never commit live credentials to version control.

Latest Blog Posts

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/barankrky/perplexity-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server