MCP Perplexica
Enables web searches with Reddit-focused results through Perplexica's search API, allowing queries to be specifically targeted at Reddit content.
Provides access to Wolfram Alpha computational knowledge through Perplexica's search API, enabling computational and factual queries.
Enables YouTube-focused searches through Perplexica's search API, allowing queries to find and surface video content from YouTube.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Perplexicasearch for recent advancements in quantum computing with academic focus"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Perplexica
MCP server proxy for Perplexica search API.
This server allows LLMs to perform web searches through Perplexica using the Model Context Protocol (MCP).
Features
š Web search through Perplexica
š Multiple focus modes (web, academic, YouTube, Reddit, etc.)
ā” Configurable optimization modes (speed, balanced, quality)
š§ Customizable model configuration
š Source citations in responses
š Multiple transport modes (stdio, SSE, Streamable HTTP)
Related MCP server: Perplexica MCP Server
Prerequisites
Python 3.11+
UV package manager
Running Perplexica instance
Installation
Clone the repository:
git clone https://github.com/Kaiohz/mcp-perplexica.git
cd mcp-perplexicaInstall dependencies with UV:
uv syncCreate your environment file:
cp .env.example .envEdit
.envwith your configuration:
# Perplexica API
PERPLEXICA_URL=http://localhost:3000
# Transport: stdio (default), sse, or streamable-http
TRANSPORT=stdio
HOST=127.0.0.1
PORT=8000
# Model configuration
DEFAULT_CHAT_MODEL_PROVIDER_ID=your-provider-id
DEFAULT_CHAT_MODEL_KEY=anthropic/claude-sonnet-4.5
DEFAULT_EMBEDDING_MODEL_PROVIDER_ID=your-provider-id
DEFAULT_EMBEDDING_MODEL_KEY=openai/text-embedding-3-smallUsage
Transport Modes
The server supports three transport modes:
Transport | Description | Use Case |
| Standard input/output | CLI tools, Claude Desktop |
| Server-Sent Events over HTTP | Web clients |
| Streamable HTTP (recommended for production) | Production deployments |
Running with Docker Compose
The easiest way to run both Perplexica and MCP Perplexica together:
# Copy and configure environment files
cp .env.example .env
cp .env.perplexica.example .env.perplexica
# Edit .env with your MCP Perplexica settings
# Edit .env.perplexica with your Perplexica settings
# Start services
docker compose up -dThis starts:
Perplexica on
http://localhost:3000MCP Perplexica connected to Perplexica
Running the MCP Server (without Docker)
Stdio mode (default)
uv run python src/main.pySSE mode
TRANSPORT=sse PORT=8000 uv run python src/main.pyStreamable HTTP mode
TRANSPORT=streamable-http PORT=8000 uv run python src/main.pyClaude Desktop Configuration
Add to your Claude Desktop configuration (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"perplexica": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-perplexica", "python", "-m", "main"],
"env": {
"PERPLEXICA_URL": "http://localhost:3000",
"TRANSPORT": "stdio",
"DEFAULT_CHAT_MODEL_PROVIDER_ID": "your-provider-id",
"DEFAULT_CHAT_MODEL_KEY": "anthropic/claude-sonnet-4.5",
"DEFAULT_EMBEDDING_MODEL_PROVIDER_ID": "your-provider-id",
"DEFAULT_EMBEDDING_MODEL_KEY": "openai/text-embedding-3-small"
}
}
}
}Claude Code Configuration
For HTTP-based transports, you can add the server to Claude Code:
# Start the server with streamable-http transport
TRANSPORT=streamable-http PORT=8000 uv run python -m main
# Add to Claude Code
claude mcp add --transport http perplexica http://localhost:8000/mcpAvailable Tools
search
Perform a web search using Perplexica.
Parameters:
Parameter | Type | Required | Description |
| string | Yes | The search query |
| string | No | Search focus: |
| string | No | Optimization: |
| string | No | Custom instructions for AI response |
| string | No | Override default chat model provider |
| string | No | Override default chat model |
| string | No | Override default embedding provider |
| string | No | Override default embedding model |
Example:
Search for "latest developments in AI" using academic focusDevelopment
Install dev dependencies
uv sync --devRun tests
uv run pytestRun linter
uv run ruff check .
uv run ruff format .
uv run black src/Architecture
This project follows hexagonal architecture:
src/
āāā main.py # MCP server entry point
āāā config.py # Pydantic Settings
āāā dependencies.py # Dependency injection
āāā domain/ # Business core (pure Python)
ā āāā entities.py # Dataclasses
ā āāā ports.py # ABC interfaces
āāā application/ # Use cases
ā āāā requests.py # Pydantic DTOs
ā āāā use_cases.py # Business logic
āāā infrastructure/ # External adapters
āāā perplexica/
āāā adapter.py # HTTP clientLicense
MIT
Available Tools
1 toolsearchC
Search the web using Perplexica and get AI-generated responses with sources.
Args:
search_request: The search request containing query, models, and options.
Returns:
A formatted string containing the AI-generated response and source citations.
| Name | Required | Description | Default |
|---|---|---|---|
| search_request | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It mentions AI-generated responses and sources, but omits critical details like rate limits, authentication needs, error handling, or whether it's read-only or mutative. 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 concise and well-structured: a clear purpose statement followed by brief sections for Args and Returns. Each sentence adds value without redundancy. However, it could be more front-loaded with key details, slightly reducing efficiency.
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 (AI-powered search with multiple nested parameters) and no annotations, the description is incomplete. It covers the basic purpose and return format, but lacks behavioral context, parameter details, and usage guidelines. The output schema exists, so return values are documented elsewhere, but overall gaps remain.
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 adds minimal parameter semantics: it names 'search_request' and vaguely describes it as 'containing query, models, and options.' With 0% schema description coverage, the schema lacks descriptions for properties, but the description doesn't compensate by explaining parameter meanings, formats, or constraints. The baseline is 3 since it provides some high-level context.
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: 'Search the web using Perplexica and get AI-generated responses with sources.' It specifies the action (search), the resource (web via Perplexica), and the outcome (AI-generated responses with sources). However, without sibling tools, differentiation cannot be assessed, preventing a perfect 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 lacks context about prerequisites, limitations, or typical use cases. With no sibling tools, this is less critical, but it still fails to offer any usage instructions.
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. Dates show when Glama detected each change.
1 tool update
- First observed
search
TDQS
With only one tool, there is no possibility of ambiguity or overlap between tools. The tool 'search' has a single, clearly defined purpose.
A single tool inherently has perfect naming consistency, as there are no other tools to compare it against for patterns or conventions.
One tool is too few for a server named 'MCP Perplexica' that implies web search functionality, as it lacks basic operations like refining searches, managing history, or handling different search modes. This feels thin and incomplete for the domain.
The tool set is severely incomplete for a web search server. It only provides a single search function with no support for advanced features like filtering, pagination, or handling different types of queries, which are essential for effective search workflows.
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
Real-time web search, reasoning, and research through Perplexity's API
Enable AI assistants to perform web searches using Perplexity's Sonar Pro.
Search Google straight from your AI agent. Web results, images, videos, news, products, scholarly ar
Agent-native search engine with live web research optimized for AI agents.
Related MCP Servers
- AlicenseAqualityCmaintenanceA Model Context Protocol server that acts as a proxy to provide LLM access to Perplexica's AI-powered search engine, enabling AI assistants to perform searches with various focus modes.178MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI-powered searches through a local Perplexica instance with multiple focus modes including web search, academic search, YouTube, Reddit, and more, with streaming support and conversation history.6MIT
- FlicenseNot gradedqualityDmaintenanceIntegrates with Perplexity's API to provide web search and AI-powered answers with citations. Offers a three-tier research workflow: search for sources, ask for grounded AI answers, and ask_more for deeper analysis using advanced models.-
- FlicenseBqualityCmaintenanceEnables AI assistants to perform real-time web and academic searches using Perplexity's Sonar API.2-
Appeared in Searches
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/Kaiohz/mcp-perplexica'
If you have feedback or need assistance with the MCP directory API, please join our Discord server