PerplexitySAFE
MCP web search using perplexity without any API KEYS
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
A minimalist research server implementing the Model Context Protocol (MCP) to deliver AI-powered research capabilities through Perplexity's web interface.
[]() []() []() []()
Research Capabilities
- Intelligent Web Research: Search and summarize content without API limits
- Persistent Conversations: Maintain context with local SQLite chat storage
- Content Extraction: Clean article extraction with GitHub repository parsing
- Developer Tooling: Documentation retrieval, API discovery, code analysis
- Keyless Operation: Browser automation replaces API key requirements
Available Tools
Search (search)
Perform research queries with configurable depth Returns raw text results
Get Documentation (get_documentation)
Retrieve technical documentation with examples Returns structured documentation
Find APIs (find_apis)
Discover relevant APIs for development needs Returns API listings and descriptions
Check Deprecated Code (check_deprecated_code)
Analyze code snippets for outdated patterns Returns analysis report
Extract URL Content (extract_url_content)
Parse web content with automatic GitHub handling Returns structured content metadata
Chat (chat_perplexity)
Persistent conversations with context history Returns conversation state in JSON format
Getting Started
Prerequisites
- Bun runtime
- Node.js 18+ (for TypeScript compilation)
Installation
git clone https://github.com/wysh3/perplexity-mcp-zerver.git cd perplexity-mcp-zerver bun install bun run build
Configuration
Add to your MCP configuration file:
{
"mcpServers": {
"perplexity-server": {
c4fc1a92209fOBSERVED · 2026-10-07Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control.
claude mcp add perplexity-mcp-zerver -- npx -y [email protected]
{
"mcpServers": {
"perplexity-mcp-zerver": {
"command": "npx",
"args": [
"-y",
"[email protected]"
]
}
}
}Exposed tools (6)
6 read · 0 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
chat_perplexity | read | 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. |
check_deprecated_code | read | 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. |
extract_url_content | read | Uses browser automation (Puppeteer) and Mozilla |
find_apis | read | 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 |
get_documentation | read | 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 |
search | read | Performs a web search using Perplexity AI based on the provided query and desired detail level. Useful for general knowledge questions, finding information, or getting different perspectives. |
Trust audit
SAFEgrade B · trust 89/100 Nothing in the source contradicts what it says it does. Grade A is reserved for packages that have also passed the behavioural sandbox.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | PASS |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (2 observation(s))
- Shell
- none-observed
- Dependencies
- not all pinned
- Secrets in source
- none-found
Findings (6)
import { PerplexityServer } from "../../server/PerplexityServer.js";import type { IBrowserManager, IDatabaseManager, ISearchEngine } from "../../types/index.js";vi.mock("../../server/modules/BrowserManager.js", () => {vi.mock("../../server/modules/DatabaseManager.js", () => {vi.mock("../../server/modules/SearchEngine.js", () => {bun-types
Gates applied: no_behavioural_pass.
c4fc1a92209ffull audit observations/trust-audit/mcp-server/wysh3__perplexity-18.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-07 | c4fc1a92209f | SAFE | B | 89 | first audit |
Questions
What is the Perplexity MCP server?
MCP web search using perplexity without any API KEYS
What tools does Perplexity expose?
6 in total: 6 read-only, 0 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Perplexity safe to connect to an agent?
The audit found nothing in the source that contradicts what it says it does, and graded it B (89/100). Grade A is held back for packages that have also passed a sandboxed behavioural run, which is why a clean server reads B.
What credentials does Perplexity need?
No credential environment variables were found in its source, so it appears to need none.
How does Perplexity run?
It speaks stdio, so it runs as a local process your client starts. It is published on npm as perplexity-mcp-zerver at 0.3.1.
How current is this page?
The grade is for one exact copy of the source (c4fc1a92209f), read on 2026-10-07. The repository is watched and re-audited when it changes.