> ## Documentation Index
> Fetch the complete documentation index at: https://docs.keenable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Replit

> Give Replit Agent web search and page fetch through the Keenable MCP server: one click, then sign in to Keenable.

*MCP server*

Replit Agent connects to remote MCP servers from **Integrations → MCP Servers for Replit Agent**. Add Keenable there once and Agent can search the web and read pages in every app and chat on your Replit account: `search_web_pages` returns live results with site and date filters, `fetch_page_content` returns a page as clean markdown.

## Add Keenable

<div className="install-buttons">
  <a className="install-button" href="https://replit.com/integrations?mcp=eyJkaXNwbGF5TmFtZSI6IktlZW5hYmxlIiwiYmFzZVVybCI6Imh0dHBzOi8vYXBpLmtlZW5hYmxlLmFpL21jcC1vYXV0aCJ9">
    <svg viewBox="0 0 32 32" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">
      <path d="M7 5.5C7 4.67 7.67 4 8.5 4h7c.83 0 1.5.67 1.5 1.5V12H8.5C7.67 12 7 11.33 7 10.5v-5z" />

      <path d="M17 12h7.5c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5H17v-8z" />

      <path d="M7 21.5c0-.83.67-1.5 1.5-1.5H17v6.5c0 .83-.67 1.5-1.5 1.5h-7c-.83 0-1.5-.67-1.5-1.5v-5z" />
    </svg>

    Add to Replit
  </a>
</div>

<Steps>
  <Step title="Open the install link">
    Click **Add to Replit**. Replit opens its Integrations page with the Keenable server filled in.
  </Step>

  <Step title="Sign in to Keenable">
    Click **Test & save**. Replit finds Keenable's sign-in by itself, so there is nothing to paste: sign in to Keenable and allow access.
  </Step>

  <Step title="Ask Agent to use it">
    Keenable now shows under **MCP Servers** with its status, and Agent loads its tools in every project. Name it in a request when you want Agent to reach for it:

    > Use Keenable to find this week's releases of the libraries this app depends on and list what changed.
  </Step>
</Steps>

Searches count against your current organization in Keenable, with its [rate limits](/rate-limits) and the free monthly allowance in [credits](/credits).

To add it by hand instead, open [replit.com/integrations](https://replit.com/integrations), scroll to **MCP Servers for Replit Agent**, click **+ Add MCP server**, name it **Keenable**, enter this URL and click **Test & save**:

```
https://api.keenable.ai/mcp-oauth
```

### With an API key

To use a key instead of signing in, add `https://api.keenable.ai/mcp`, open **Advanced settings**, and add the header `X-API-Key` with your key (`keen_<your_key>`, from the [console](https://app.keenable.ai/console)).

<Note>
  With neither a sign-in nor a key, `https://api.keenable.ai/mcp` still answers, on the shared public tier. Replit Agent calls MCP servers from Replit's cloud, so that tier's per-IP hourly limit is shared with other Replit traffic and can run out in the middle of a task. Sign in or use a key for anything past a first try.
</Note>

## Search inside the app you build

The server above gives Agent a tool for its own work. For an app that searches the web for its users, have Agent call Keenable from the app's backend with the SDK (`npm install keenable` or `pip install keenable`). Put your key in the app's **Secrets** as `KEENABLE_API_KEY` first: a published app serves all its users from one server, so without a key they would all share one per-IP hourly limit.

> Add web search to this app with the Keenable SDK (the `keenable` package). Call it from the server, read the key from the `KEENABLE_API_KEY` secret, and show each result's title, URL and snippet.

Endpoints and parameters are in the [API reference](/api-reference).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.