Skip to main content
Glama

Perplexity Search MCP

by ArnoChenFx
README.md4.16 kB
# Perplexity Search MCP This tool wraps the search functionality of [Perplexity AI](https://www.perplexity.ai/) into a standardized tool using the [Model Context Protocol (MCP)](https://modelcontextprotocol.io/docs/getting-started/intro). It allows you to perform advanced search queries with filtering and customization options. This project is built with TypeScript and runs on the [Bun](https://bun.sh/) runtime. ## ✨ Features - Provides the `perplexity-search` tool via MCP. - Supports various parameters for Perplexity search: - `query`: A single search query or an array of queries for multi-query search. - `max_results`: Specifies the maximum number of search results to return (maximum 20). - `country`: Filters search results by geographic location (e.g., 'US', 'GB', 'DE'). - `max_tokens_per_page`: Controls the maximum number of tokens retrieved from each webpage during search processing. Higher values provide more comprehensive content extraction but may increase processing time. - `search_domain_filter`: A list of domains/URLs to restrict search results. For example: `["science.org", "pnas.org", "cell.com"]` - Communicates with the host environment via standard input/output (Stdio). ## 🚀 Getting Started ### 1. Prerequisites - Ensure you have [Bun](https://bun.sh/docs/installation) installed. - Obtain an API key from Perplexity AI. ### 2. Installation After cloning the project, run the following command in the root directory to install the required dependencies: ```bash bun install ``` ### 3. Configuration Set the `PERPLEXITY_API_KEY` environment variable with your Perplexity API key. ### 4. Running the Server (Development) To run the server directly from the TypeScript source for development, execute the following command: ```bash bun run index.ts ``` The server will start and listen for MCP messages on standard I/O. ### 5. Building the Project You can build the project into a single, optimized JavaScript file: ```bash bun run build ``` This compiles `index.ts` and places the output in `dist/perplexity-search-mcp.js`. After building, you can run the compiled file directly: ```bash bun dist/perplexity-search-mcp.js ``` or ```bash node dist/perplexity-search-mcp.js ``` ## 🛠️ Tool Definition ### `perplexity-search` **Description**: Retrieve ranked search results from Perplexity’s continuously refreshed index, with advanced filtering and customization options. **Input Parameters**: | Parameter | Type | Description | Default | | --------------------- | ------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | | `query` | `string` or `string[]` | The search query or queries to execute. Can be a single query or a list of queries for multi-query search. | Required | | `max_results` | `number` | The maximum number of search results to return (must be a positive integer no greater than 20). | `10` | | `country` | `string` | Country code to filter search results by geographic location (e.g., 'US', 'GB', 'DE'). | Optional | | `max_tokens_per_page` | `number` | Maximum number of tokens to retrieve from each webpage. Higher values yield more comprehensive content extraction but may increase processing time. | `2048` | | `search_domain_filter`| `string[]` | An optional list of domains/URLs to which search results should be limited (e.g., `["science.org", "pnas.org", "cell.com"]`). | Optional | **Output**: The tool returns a JSON string containing an array of search results from the Perplexity API.

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

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