> ## 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.

# Scalekit

> Keenable MCP as a built-in connector in Scalekit AgentKit: each of your users signs in to Keenable once, and your agent calls search and fetch through Scalekit.

*Connector in Scalekit AgentKit*

[Scalekit AgentKit](https://www.scalekit.com) handles auth and tool calling for agents: a catalog of prebuilt connectors, per-user connected accounts, and token storage and refresh. Its **Keenable MCP** connector (`keenablemcp`) routes your agent's tool calls to Keenable's MCP server. Each of your users signs in to their own Keenable account once, and Scalekit keeps their tokens, so your agent never handles a Keenable key.

→ [Keenable MCP connector in the Scalekit docs](https://docs.scalekit.com/agentkit/connectors/keenablemcp/)

## Tools

| Tool | What it does |
| - | - |
| `keenablemcp_search_web_pages` | Ranked web results with each page's text, optionally limited to one site or a publication date range. |
| `keenablemcp_fetch_page_content` | Any URL as clean markdown. |

## Set it up

<Steps>
  <Step title="Create the connection">
    In the Scalekit dashboard, open **AgentKit → Connections** and add **Keenable MCP**. Follow the [connector guide](https://docs.scalekit.com/agentkit/connectors/keenablemcp/) for the connection settings.
  </Step>

  <Step title="Let a user sign in">
    Generate an authorization link for the user and send them to it. They sign in to Keenable and allow access; Scalekit stores and refreshes the tokens.
  </Step>

  <Step title="Call the tools">
    Execute the tools for that user from your agent:

    ```typescript theme={"system"}
    import { ScalekitClient } from '@scalekit-sdk/node'

    const scalekit = new ScalekitClient(
      process.env.SCALEKIT_ENVIRONMENT_URL,
      process.env.SCALEKIT_CLIENT_ID,
      process.env.SCALEKIT_CLIENT_SECRET,
    )

    const result = await scalekit.actions.executeTool({
      connector: 'keenablemcp',
      identifier: 'user_123',
      toolName: 'keenablemcp_search_web_pages',
      toolInput: { query: 'latest Model Context Protocol release' },
    })
    ```
  </Step>
</Steps>

Searches run on each user's own Keenable account, against their organization's [rate limits](/rate-limits) and the free monthly allowance in [credits](/credits). Scalekit's Python SDK works the same way; see the connector guide.


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