---
title: Smart Search MCP
description: Connect AI agents and LLMs directly to your WordPress content via the WP Engine Smart Search Model Context Protocol (MCP).
url: https://developers.wpengine.com/docs/smart-search/mcp/
image: https://developers.wpengine.com/og/docs/smart-search/mcp.png
---

# Smart Search MCP

The Smart Search MCP acts as a standardized bridge between your data and AI applications. By exposing dedicated search and fetch tools, this integration empowers large language models and custom agents to natively query and read your content in real-time.

## Credentials

Your unique MCP endpoint URL and authentication token are located in the WP Engine User Portal. Where you find them depends on how you access Smart Search.

- [WP Engine Hosted](https://developers.wpengine.com/docs/smart-search/mcp/#tab-panel-0-0)
- [Non-WP Engine Hosted](https://developers.wpengine.com/docs/smart-search/mcp/#tab-panel-0-1)

1. Go to the Smart Search AI product [page](https://my.wpengine.com/products/smart_search#/).
2. Identify the associated environment and click the **MCP settings** button.
3. Copy the credentials (`MCP URL` and `MCP Token`). These will be used for authentication.

Optionally, you can select **Allow limited unauthenticated access** to enable tools like ChatGPT or Claude that don’t support tokens. For higher security, use your MCP token whenever possible. ![Smart Search AI Show MCP Settings](https://developers.wpengine.com/_astro/mcp-settings.DswDUPfm_Z2veouE.webp)

> **Note**
>
> A legacy SSE endpoint (`/sse`) is also available but new integrations should use `/mcp`.

## Available MCP Tools (Endpoints)

The Smart Search MCP exposes the following tools to the connected client:

### `fetch`

Fetches a specific post by its ID directly from the connected index.

**Parameters:**

| Parameter | Required | Type           | Description                                 |
| --------- | -------- | -------------- | ------------------------------------------- |
| `id`      | Yes      | String/Integer | The unique identifier of the post to fetch. |

### `search`

Executes a search query against the connected index. Clients should be instructed to refine search queries as much as possible to ensure relevant context windows.

**Parameters:**

| Parameter | Required | Type    | Description                                                                                                                                                                                                                                                                         |
| --------- | -------- | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `query`   | Yes      | String  | The primary search query.                                                                                                                                                                                                                                                           |
| `filter`  | No       | String  | A strict filter string supporting field targeting, boolean operators, wildcards, and ranges. See the [Find API](https://developers.wpengine.com/docs/smart-search/graphql-api/find) for full syntax details. Examples: `field:value`, `field:(value1 OR value2)`, `NOT field:value` |
| `limit`   | No       | Integer | Limits the number of results returned in the payload.                                                                                                                                                                                                                               |
| `offset`  | No       | Integer | The offset used for pagination.                                                                                                                                                                                                                                                     |

## Rate Limiting

The MCP endpoints utilize a token bucket algorithm to handle traffic and protect against brute-force attacks.

### 1. Request Rate Limiter (General API Traffic)

This limiter governs successful requests to the MCP tools.

**Custom Code / LLM integrations:**

- **Rate:** 5 Requests Per Second (RPS)
- **Burst Capacity:** Up to 30 requests
- **Scope:** IP-based
- **Behavior:** The bucket starts with 30 tokens. Each request consumes one token. Tokens refill at a steady rate of 5 per second. If the bucket hits 0, requests are rejected until the bucket refills at the steady RPS rate.

**ChatKit integrations:**

- **Rate:** 10 Requests Per Minute
- **Scope:** OpenAI session-level

**Unauthenticated access:**

- **Rate:** 5 RPS
- **Burst Capacity:** 10
- **Scope:** Shared globally to all usages

> **Note**
>
> Unauthenticated access is not allowed for ChatKit integration.

### 2. Auth Failure Limiter

This limiter specifically protects against brute-force authentication attempts.

- **Rate:** 1 allowed failure per 30 seconds
- **Burst Capacity:** 2 failed attempts
- **Scope:** IP-based

## Connection Configuration

Use your MCP URL and MCP token to configure the connection for your client. For platforms that do not support authentication headers, limited unauthenticated access is available.

### ChatKit & Agent Builder

See the [ChatKit configuration guide](https://wpengine.com/support/agentkit-by-openai) for setup details.

### Claude Code (Terminal)

Add the server directly via the command line using the Claude MCP add command with the `http` transport flag. Replace `{your-mcp-url}` with your `/mcp` URL and `{your-mcp-token}` with your MCP token (or API Key for non-hosting customers).

Terminal window

```bash
claude mcp add --transport http search_mcp "{your-mcp-url}" --header "Authorization: Bearer {your-mcp-token}"
```

### Claude (Web Version) & ChatGPT Desktop (Developer Mode)

Configure your remote servers within their respective environments by using your `/mcp` URL. For platform-specific setup, see the [Claude remote MCP guide](https://support.claude.com/en/articles/11175166-get-started-with-custom-connectors-using-remote-mcp) and [ChatGPT plugin connection guide](https://developers.openai.com/plugins/deploy/connect-chatgpt).

> **Caution**
>
> **Do not provide an authentication header**, as this authentication configuration is not supported by those platforms. Please refer to Anthropic’s and OpenAI’s official platform guides for modifying your configuration.

### Custom Code (e.g., Headless WP)

Include your bearer token in the Authorization header of each request. Use your MCP token (hosting) or API Key (non-hosting).

Terminal window

```bash
Authorization: Bearer {your-mcp-token}
```

For implementation examples, see [Smart Search MCP in Headless WP](https://github.com/ToughCrab24/smart-search-rag-chatbot/tree/mcp-connector) and [Using MCP Servers in Concert](https://www.youtube.com/watch?v=HzU8HOn1op4).

## Was this helpful?

Thanks for the feedback!

```json
{"@context":"https://schema.org","@graph":[{"@type":"WebSite","@id":"https://developers.wpengine.com/#website","name":"WP Engine Product Documentation","url":"https://developers.wpengine.com/","description":"Resources for developing, deploying, and scaling on WP Engine.","inLanguage":"en-US","keywords":["API documentation","product documentation","headless WordPress","managed WordPress hosting"],"publisher":{"@id":"https://wpengine.com/#organization"}}]}
```
