perplexity-mcp-server
Allows AI assistants to query Perplexity AI for web-grounded answers with citations, sources, and related questions, supporting search filtering, session management, and customizable model selection.
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., "@perplexity-mcp-serverWhat is the latest on quantum computing breakthroughs?"
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.
perplexity-mcp-server
An intelligent MCP (Model Context Protocol) server that enables AI assistants to query Perplexity AI with web search specialization - providing up-to-date information with citations, sources, and related questions for research and fact-checking.
Purpose
This server provides:
Web-Grounded Answers: Access real-time web information via Perplexity's sonar models
Citation Tracking: Automatic extraction of sources and citations from responses
Search Filtering: Domain restrictions, recency filters, and academic mode
Multi-turn Conversations: Maintain context across queries with session management
OpenAI MCP Compatibility: Standard
searchandfetchtools for integration
Related MCP server: Perplexity MCP Server
Key Features
š Web Search Specialization
Perplexity's sonar models are built for web search:
Always Up-to-Date: Searches the web for current information
Automatic Citations: Every answer includes source citations
Related Questions: Suggests follow-up questions for deeper exploration
Cannot Be Disabled: Web search is built into sonar models (this is the killer feature!)
š Advanced Search Filtering
Fine-tune search behavior with powerful options:
Recency Filter: Limit results by time ('day', 'week', 'month', 'year')
Domain Filter: Restrict to trusted domains (e.g., ['github.com', 'stackoverflow.com'])
Country Filter: Geographic location filtering (e.g., 'US', 'GB', 'KR')
Academic Mode: Search scholarly sources for research purposes
Result Limits: Control number of search results used (1-20)
Token Control: Adjust content detail with max tokens per page
Image Support: Include relevant images in responses
š Rich Metadata Extraction
Every response includes structured metadata:
Citations: Indexed references ([1], [2]) with URLs, titles, snippets
Sources: Deduplicated list of domains used
Related Questions: AI-generated follow-up suggestions
Search Stats: Applied filters and result counts for transparency
š¬ Session Management
Intelligent conversation handling:
Auto Session Creation: New sessions created automatically
Context Preservation: Maintain conversation history across queries
Automatic Cleanup: Expired sessions removed every minute
Configurable Limits: Control timeout and history size
š”ļø Security for Local Deployment
Defensive Measures:
Input Validation: Prompt limits (50KB), domain filter limits (20 max), result limits (1-20)
Session Isolation: Conversation history separated by session ID
Logging Sanitization: API keys masked, sensitive data excluded from logs
Boundary Checks: Non-negative numbers, non-empty strings, ISO country codes enforced via Zod schemas
š Observability
File-based logging (
logs/perplexity-mcp.log)Configurable log directory or disable logging for npx/containerized environments
Detailed query traces for debugging
Prerequisites
Node.js 18 or higher
Perplexity API key (Get one here)
Quick Start
Installation
Option 1: npx (Recommended)
npx -y github:mnthe/perplexity-mcp-serverOption 2: From Source
git clone https://github.com/mnthe/perplexity-mcp-server.git
cd perplexity-mcp-server
npm install
npm run buildAuthentication
Set your Perplexity API key:
export PERPLEXITY_API_KEY="pplx-your-api-key-here"Configuration
Required Environment Variable:
export PERPLEXITY_API_KEY="pplx-your-api-key-here"Optional Model Settings:
export PERPLEXITY_MODEL="sonar" # Default: sonar, also: sonar-pro, sonar-reasoningOptional Conversation Settings:
export ENABLE_CONVERSATIONS="true" # Default: true
export SESSION_TIMEOUT="1800" # Seconds, default: 30 minutes
export MAX_HISTORY="20" # Messages per sessionOptional Logging Configuration:
# Default: Console logging to stderr (recommended for npx/MCP usage)
export LOG_TO_STDERR="true" # Default: true (console logging)
# For file-based logging instead:
export LOG_TO_STDERR="false" # Disable console, use file logging
export LOG_DIR="./logs" # Custom log directory (default: ./logs)
# To disable logging completely:
export DISABLE_LOGGING="true"MCP Client Integration
Add to your MCP client configuration:
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):
{
"mcpServers": {
"perplexity": {
"command": "npx",
"args": ["-y", "github:mnthe/perplexity-mcp-server"],
"env": {
"PERPLEXITY_API_KEY": "pplx-your-api-key-here",
"PERPLEXITY_MODEL": "sonar",
"ENABLE_CONVERSATIONS": "true"
}
}
}
}Claude Code (.claude.json in project root):
{
"mcpServers": {
"perplexity": {
"command": "npx",
"args": ["-y", "github:mnthe/perplexity-mcp-server"],
"env": {
"PERPLEXITY_API_KEY": "pplx-your-api-key-here",
"PERPLEXITY_MODEL": "sonar"
}
}
}
}Other MCP Clients (Generic stdio):
# Command to run
npx -y github:mnthe/perplexity-mcp-server
# Or direct execution
node /path/to/perplexity-mcp-server/build/index.jsAvailable Tools
This MCP server provides 3 core tools for web-grounded information retrieval:
query
Main interface for web-grounded question answering with rich metadata.
Parameters:
prompt(string, required): The question to ask PerplexitysessionId(string, optional): Conversation session ID for multi-turn conversationssearchOptions(object, optional): Search configurationrecencyFilter(string): 'day', 'week', 'month', or 'year'domainFilter(string[]): List of allowed domains (max 20)maxResults(number): Maximum search results (1-20, default: 5)maxTokensPerPage(number): Max tokens extracted per page (default: 1024)country(string): Geographic filter - 2-3 letter ISO code (e.g., 'US', 'GB', 'KR')returnImages(boolean): Include image URLsreturnRelatedQuestions(boolean): Include follow-up suggestions (default: true)mode(string): 'default' or 'academic' for scholarly sources
How It Works:
Searches the web for current information
Analyzes results and generates answer
Extracts citations and sources
Suggests related questions
Returns structured response with metadata
Examples:
# Simple query
query: "What is the capital of France?"
# Current events with recency filter
query: "Latest developments in quantum computing"
searchOptions: { recencyFilter: "week" }
# Domain-restricted search
query: "How to use React hooks"
searchOptions: { domainFilter: ["react.dev", "github.com"] }
# Academic research
query: "Climate change impact studies"
searchOptions: { mode: "academic", recencyFilter: "year" }
# Country-specific search
query: "Latest tech startup news"
searchOptions: { country: "US", recencyFilter: "week" }
# Control response detail
query: "Explain quantum computing"
searchOptions: { maxTokensPerPage: 2048, maxResults: 10 }
# Multi-turn conversation (session auto-created)
query: "What is TypeScript?"
ā Returns: Answer + Session ID: abc123...
# Follow-up (uses context)
query: "What are its main benefits?"
sessionId: "abc123..."
ā Understands we're asking about TypeScriptResponse Includes:
Answer content with inline citations
Metadata: citations, sources, related questions, search stats
Session ID (if conversations enabled)
search
Search for information using Perplexity. Returns a list of relevant search results following the OpenAI MCP specification for search tools.
Parameters:
query(string, required): Search query
Response Format:
Array of search results with document IDs, titles, and URLs
Results are cached for 30 minutes for fetch tool access
Examples:
# Basic search
search: "TypeScript generics tutorial"
ā Returns: [
{ id: "abc123...", title: "TypeScript Handbook - Generics", url: "https://..." },
{ id: "def456...", title: "Understanding TypeScript Generics", url: "https://..." }
]
# Follow-up with fetch
fetch: { id: "abc123..." }
ā Returns: Full document contentfetch
Fetch the full contents of a search result document by its ID. Follows the OpenAI MCP specification for fetch tools.
Parameters:
id(string, required): The unique identifier for the document from search results
Response Format:
Full document content with metadata
Includes original URL and query context
Examples:
# After searching, fetch a specific result
fetch: { id: "abc123..." }
ā Returns: {
id: "abc123...",
title: "TypeScript Handbook - Generics",
text: "Full Perplexity analysis of the topic...",
url: "https://...",
metadata: { query: "TypeScript generics", timestamp: "..." }
}Response Format
{
"content": "Main answer text...",
"metadata": {
"citations": [
{
"index": 1,
"url": "https://example.com",
"title": "Example Title",
"snippet": "..."
}
],
"relatedQuestions": [
"What is...?",
"How does...?"
],
"sources": [
{
"url": "https://example.com",
"domain": "example.com",
"title": "Example"
}
],
"searchStats": {
"resultsUsed": 5,
"recencyFilter": "week"
}
},
"session": {
"sessionId": "abc123",
"messageCount": 2
}
}Architecture
Pattern: Claude Agent MCP Style
Simple, focused architecture without complex agentic loops:
ā No Agentic Loop (Perplexity SDK handles reasoning internally)
ā No Tool Registry
ā No External MCP Client
ā Clean Service ā Handler ā Server layers
ā Focus on web search metadata (citations, sources, related questions)
Component Flow
MCP Protocol (Server)
ā
Business Logic (Handler)
ā
SDK Wrapper (Service)
ā
Perplexity APIProject Structure
src/
āāā config/ # Configuration loading
ā āāā index.ts # Environment variable parsing
ā
āāā types/ # TypeScript type definitions
ā āāā config.ts # Configuration and search types
ā āāā conversation.ts # Session and message types
ā āāā search.ts # Search/fetch result types
ā āāā index.ts # Type exports
ā
āāā schemas/ # Zod validation schemas
ā āāā index.ts # Tool input schemas with boundaries
ā
āāā managers/ # Business logic
ā āāā ConversationManager.ts # Session and history management
ā
āāā services/ # External services
ā āāā PerplexityService.ts # Perplexity SDK wrapper
ā
āāā handlers/ # Tool handlers
ā āāā QueryHandler.ts # Main query logic
ā āāā SearchHandler.ts # OpenAI MCP search
ā āāā FetchHandler.ts # OpenAI MCP fetch
ā
āāā server/ # MCP server
ā āāā PerplexityMCPServer.ts # Server orchestration
ā
āāā utils/ # Utilities
ā āāā Logger.ts # File-based logging
ā āāā ResponseFormatter.ts # Citation/source extraction
ā āāā securityLimits.ts # Input validation
ā
āāā index.ts # Entry pointComponent Details
Configuration (config/)
Loads environment variables
Validates required API key
Provides defaults for optional settings
Services (services/)
PerplexityService: Wraps Perplexity SDK
Handles message formatting
Maps searchOptions to API parameters
Manages API calls with retry logic (2 retries, 60s timeout)
Managers (managers/)
ConversationManager: Session management
Creates and tracks sessions
Stores conversation history
Automatic cleanup (30-minute timeout)
Limits history size (20 messages default)
Handlers (handlers/)
QueryHandler: Main query processing
Coordinates session management
Calls Perplexity service
Formats responses with metadata
SearchHandler: OpenAI MCP search implementation
Extracts citations from responses
Caches results for fetch
FetchHandler: OpenAI MCP fetch implementation
Retrieves cached search results
Utilities (utils/)
ResponseFormatter: Metadata extraction
Parses citations from response text
Extracts sources and deduplicates by domain
Builds search statistics
Logger: Structured logging with JSON output
securityLimits: Input validation and sanitization
Server (server/)
PerplexityMCPServer: MCP protocol implementation
Registers tools with MCP
Routes tool calls to handlers
Manages search cache (30-minute TTL)
Handles errors gracefully
Advanced Usage
Search Options
Recency Filtering
# News from the past day
query: "Latest AI news"
searchOptions: { recencyFilter: "day" }
# Academic papers from this year
query: "Machine learning research"
searchOptions: { mode: "academic", recencyFilter: "year" }Domain Filtering
# Trust only specific sources
query: "Python best practices"
searchOptions: {
domainFilter: ["python.org", "realpython.com", "github.com"]
}
# Tech news from major outlets
query: "Silicon Valley trends"
searchOptions: {
domainFilter: ["techcrunch.com", "wired.com", "arstechnica.com"],
recencyFilter: "week"
}Image Inclusion
# Get visual results
query: "Modern UI design trends"
searchOptions: { returnImages: true }
ā Response includes images array with URLsSession Management
Conversations are automatically managed when enabled:
export ENABLE_CONVERSATIONS="true"
export SESSION_TIMEOUT="1800" # 30 minutes
export MAX_HISTORY="20" # Keep last 20 messagesSession Lifecycle:
Creation: New session created on first query (or if sessionId not provided)
Usage: Pass sessionId to subsequent queries to maintain context
Expiration: Sessions expire after timeout period of inactivity
Cleanup: Expired sessions automatically removed every minute
Example Multi-Turn Conversation:
// First query - creates session
const response1 = await query({
prompt: "What is dependency injection?"
});
// response1.session.sessionId: "abc123..."
// Second query - uses context
const response2 = await query({
prompt: "Show me a practical example",
sessionId: "abc123..."
});
// Perplexity knows we're discussing dependency injection
// Third query - continues context
const response3 = await query({
prompt: "What are the drawbacks?",
sessionId: "abc123..."
});
// Understands we're asking about DI drawbacksMetadata Utilization
The rich metadata enables advanced workflows:
const response = await query({
prompt: "Latest React 19 features",
searchOptions: { recencyFilter: "month" }
});
// Extract citations for verification
response.metadata.citations.forEach(cite => {
console.log(`[${cite.index}] ${cite.title}: ${cite.url}`);
});
// Follow related questions
response.metadata.relatedQuestions.forEach(q => {
console.log(`Suggested: ${q}`);
});
// Check sources for credibility
response.metadata.sources.forEach(source => {
console.log(`Domain: ${source.domain}`);
});Logging Configuration
Control how the server logs information:
Default: Console Logging
Logs are sent to stderr by default, making them visible in MCP client logs.
For File-Based Logging:
export LOG_TO_STDERR="false" # Disable console, use files
export LOG_DIR="./logs" # Log directory (default: ./logs)Then check logs:
tail -f logs/perplexity-mcp.logTo Disable All Logging:
export DISABLE_LOGGING="true"Development
Build
npm run buildWatch Mode
npm run watchDevelopment Mode
npm run devClean Build
npm run clean
npm run buildTroubleshooting
MCP Server Connection Issues
If the MCP server appears to be "dead" or disconnects unexpectedly:
Check MCP client logs (logs are sent to stderr by default):
macOS:
~/Library/Logs/Claude/mcp*.logWindows:
%APPDATA%\Claude\Logs\mcp*.log
Server logs will appear in these files automatically.
Log Directory Errors
If you encounter errors like ENOENT: no such file or directory, mkdir './logs':
This should not happen with default settings (console logging is default).
If you enabled file logging (LOG_TO_STDERR="false"):
Solution: Use a writable log directory:
{
"mcpServers": {
"perplexity": {
"command": "npx",
"args": ["-y", "github:mnthe/perplexity-mcp-server"],
"env": {
"PERPLEXITY_API_KEY": "pplx-your-api-key",
"LOG_TO_STDERR": "false",
"LOG_DIR": "/tmp/perplexity-logs"
}
}
}
}Authentication Errors
Verify API key:
echo $PERPLEXITY_API_KEYCheck key validity at Perplexity Settings
Ensure key has proper permissions
Session Issues
Session not found:
Session may have expired (check
SESSION_TIMEOUT)Server may have restarted (sessions are in-memory only)
Solution: Server creates new session automatically or uses provided sessionId
Context not preserved:
Verify
ENABLE_CONVERSATIONS="true"Check
MAX_HISTORYsettingEnsure using same
sessionIdacross queries
Empty Search Results
No citations found:
Perplexity may not have found relevant sources
Try broader search terms
Remove or adjust domain filters
Extend recency filter
Contributing
Contributions are welcome! Please:
Fork the repository
Create a feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
License
This project is licensed under the MIT License - see the LICENSE file for details.
Acknowledgments
Built with Perplexity AI SDK
Inspired by Claude Agent MCP Server
Support
Available Tools
3 toolsfetchA
Fetch the full contents of a search result document by its ID. Follows OpenAI MCP specification for fetch tools.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The unique identifier for the document to fetch |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses that the tool returns 'full contents' rather than partial data and mentions adherence to the OpenAI MCP specification, which offers some context. However, it does not address error behavior, permissions, or response structure beyond that.
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 with two short sentences. The first sentence states the core function efficiently, and the second adds a useful conformance reference. No filler is present, though the second sentence could be considered slightly vague.
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?
For a simple single-parameter tool with no output schema, the description provides adequate information about what it does and the input. It mentions fetching 'full contents', which hints at the return value, but does not describe the exact response structure or potential errors. Given the low complexity, this is acceptable but not thorough.
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 schema already provides 100% coverage for the 'id' parameter with a clear description. The tool description adds the contextual detail that the ID belongs to a search result document, but this is a minor semantic addition; the schema already sufficiently defines the parameter.
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 fetches the full contents of a document by ID, using a specific verb and resource. It distinguishes itself from siblings 'search' and 'query' by focusing on retrieving a single known document rather than searching or filtering.
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 after obtaining an ID from a search result, giving clear context for when to use this tool. It does not explicitly mention alternatives or exclusions, but the 'by its ID' phrasing makes the appropriate scenario apparent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
queryA
Query Perplexity AI with a prompt. Specialized for web search with citations, sources, and related questions. Supports multi-turn conversations when sessionId is provided. Returns rich metadata (citations, sources, images, related questions).
| Name | Required | Description | Default |
|---|---|---|---|
| prompt | Yes | The prompt to send to Perplexity | |
| sessionId | No | Optional conversation session ID for multi-turn conversations | |
| searchOptions | No | Optional search configuration |
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 discloses that multi-turn conversations are supported via sessionId and that the response includes rich metadata (citations, sources, images, related questions). It does not mention side effects or require explicit safety notes, but the query nature implies a read operation.
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 (3 sentences), front-loaded with the primary action, and each sentence adds value: purpose, specialization, multi-turn feature, and return metadata. There is no redundancy or unnecessary detail.
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?
The description is largely complete for a query tool: it explains what it does, what makes it special, and what it returns. It does not cover edge cases, error handling, or rate limits, and there is no output schema, but the rich metadata mention helps. Overall, it provides sufficient context for an AI agent to use it correctly.
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 all parameters thoroughly. The description does not add parameter-specific meaning beyond the schema; it only mentions sessionId for multi-turn in general terms, which is already covered. Thus, a baseline 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 queries Perplexity AI with a prompt and specifies that it is specialized for web search with citations and related questions. While it does not explicitly differentiate from sibling tools like search or fetch, the purpose is unambiguous.
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 clear context on when to use this tool: for web searches with citations, sources, and related questions, and for multi-turn conversations. However, it does not mention when not to use it or explicitly compare to alternatives like search or fetch.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchB
Search for information using Perplexity. Returns a list of relevant search results. Follows OpenAI MCP specification for search tools.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | The search query |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden for behavioral disclosure. It states that a list of relevant search results is returned, which is useful, but omits details about read-only status, rate limits, authentication, or any potential side effects.
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 short and front-loaded with the core action, but the third sentence about following the OpenAI MCP specification is vague and does not add actionable information. Still, it is efficiently sized.
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?
For a simple single-parameter tool, the description covers purpose and output type, but it lacks usage context relative to sibling tools and does not describe the structure of a search result. Given no annotations or output schema, it is adequate but not comprehensive.
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 coverage is 100% for the single 'query' parameter, and the description adds no extra meaning beyond what the schema already provides. Baseline 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 searches for information using Perplexity and returns a list of relevant results. However, it does not distinguish itself from the sibling tool 'query' beyond the Perplexity mention, so it lacks explicit differentiation.
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 use when one needs to search for information via Perplexity, but does not provide any explicit guidance on when to use this tool versus the sibling tools 'query' or 'fetch', nor any exclusions.
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.
3 tool updates
v1.0.0- First observed
fetch - First observed
query - First observed
search
TDQS
search and query both perform searches, which could cause confusion, but query is clearly described as more advanced with citations, sources, and multi-turn support, while search is more basic and spec-compliant. fetch is distinct as it retrieves full document contents by ID. The descriptions help differentiate, though some overlap remains.
All tool names are single lowercase verbs (search, query, fetch), which is consistent and predictable. There is no verb_noun pattern, but the naming convention is uniform and easy to follow.
Three tools is a minimal but appropriate size for a search-focused server. Each tool serves a clear purpose, and the count is not excessive or overly thin for the apparent scope.
The tools cover the core search workflow: basic search, advanced querying with rich metadata and multi-turn support, and fetching full contents. Minor gaps might include a dedicated tool for managing conversation history, but the surface is largely complete for common use cases.
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
Driflyte MCP server which lets AI assistants query topic-specific knowledge from web and GitHub.
An MCP server that integrates with Discord to provide AI-powered features.
MCP server for AI dialogue using various LLM models via AceDataCloud
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server integrating Perplexity AI's API to offer advanced search capabilities with support for multiple models and result configuration.11,0141MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables Claude to perform web searches using Perplexity's API with intelligent model selection based on query intent and support for domain and recency filtering.64MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to perform web searches on Perplexity.ai using browser automation instead of an official API. It supports persistent authenticated sessions and returns search results along with cited sources directly to the client.3499MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that enables AI agents to perform search-augmented queries and deep multi-source research using the Perplexity API.7525Apache 2.0
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/mnthe/perplexity-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server