> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify-poc.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Integrate Tiger Cloud with your AI Assistant

> Manage your services and optimize your schema and queries using your AI Assistant

export const COMPANY = 'Tiger Data ';

export const MCP_SHORT = 'MCP Server';

export const PG = 'Postgres';

export const TIMESCALE_DB = 'TimescaleDB';

export const MCP_LONG = 'Tiger MCP Server';

export const SERVICE_SHORT = 'service';

export const SERVICE_LONG = 'Tiger Cloud service';

export const PROJECT_SHORT = 'project';

export const PROJECT_LONG = 'Tiger Cloud project';

export const CONSOLE_SHORT = 'Console';

export const CLOUD_LONG = 'Tiger Cloud';

export const ACCOUNT_SHORT = 'account';

export const CLI_SHORT = 'CLI';

export const CLI_LONG = 'Tiger CLI';

export const ACCOUNT_LONG = 'Tiger Cloud account';

{MCP_LONG} provides access to your {CLOUD_LONG} resources through Claude and other AI Assistants. {MCP_SHORT}
mirrors the functionality of {CLI_LONG} and is integrated directly into the {CLI_SHORT} binary. You manage your
{CLOUD_LONG} resources using natural language from your AI Assistant. As {MCP_SHORT} is integrated with the
{COMPANY} documentation, ask any question and you will get the best answer.

This page shows you how to install {CLI_LONG} and set up secure authentication for {MCP_SHORT}, then manage the
resources in your {ACCOUNT_LONG} through {MCP_LONG} using your AI Assistant.

## Prerequisites

To follow the steps on this page:

* Create a target [{ACCOUNT_LONG}][create-account].

[create-account]: /deploy-and-operate/get-started/create-services#create-a-tiger-cloud-account

* Install an AI Assistant on your developer device with an active API key.

  The following AI Assistants are automatically configured by {MCP_LONG}: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`.
  You can also [manually configure][manual-config] {MCP_SHORT}.

## Install and configure MCP Server

{MCP_SHORT} is bundled with {CLI_LONG}:

1. **Install {CLI_LONG}**

   Use the terminal to install the {CLI_SHORT}:

   <Tabs label="Install Tiger CLI" persistKey="os">
     <Tab title="Debian" label="debian">
       ```shell theme={"dark"}
       curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash
       sudo apt-get install tiger-cli
       ```
     </Tab>

     <Tab title="Ubuntu" label="ubuntu">
       ```shell theme={"dark"}
       curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.deb.sh | sudo os=any dist=any bash
       sudo apt-get install tiger-cli
       ```
     </Tab>

     <Tab title="Red Hat" label="redhat">
       ```shell theme={"dark"}
       curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash
       sudo yum install tiger-cli
       ```
     </Tab>

     <Tab title="Fedora" label="fedora">
       ```shell theme={"dark"}
       curl -s https://packagecloud.io/install/repositories/timescale/tiger-cli/script.rpm.sh | sudo os=rpm_any dist=rpm_any bash
       sudo yum install tiger-cli
       ```
     </Tab>

     <Tab title="MacOS" label="macos">
       ```shell theme={"dark"}
       brew install --cask timescale/tap/tiger-cli
       ```
     </Tab>

     <Tab title="x-platform" label="xplatform">
       ```shell theme={"dark"}
       curl -fsSL https://cli.tigerdata.com | sh
       ```
     </Tab>
   </Tabs>

2. **Set up API credentials**

   1. Log {CLI_LONG} into your {ACCOUNT_LONG}:

      ```shell theme={"dark"}
      tiger auth login
      ```

      {CLI_LONG} opens {CONSOLE_SHORT} in your browser. Log in, then click `Authorize`.

      You can have a maximum of 10 active client credentials. If you get an error, open [credentials][rest-api-credentials]
      and delete an unused credential.

   2. Select a {PROJECT_LONG}:

      ```terminaloutput theme={"dark"}
      Auth URL is: https://console.cloud.timescale.com/oauth/authorize?client_id=lotsOfURLstuff
      Opening browser for authentication...
      Select a project:

      > 1. Tiger Project (tgrproject)
      2. YourCompany (Company wide project) (cpnproject)
      3. YourCompany Department (dptproject)

      Use ↑/↓ arrows or number keys to navigate, enter to select, q to quit
      ```

      If only one {PROJECT_SHORT} is associated with your {ACCOUNT_SHORT}, this step is not shown.

      Where possible, {CLI_LONG} stores your authentication information in the system keychain/credential manager.
      If that fails, the credentials are stored in `~/.config/tiger/credentials` with restricted file permissions (600).
      By default, {CLI_LONG} stores your configuration in `~/.config/tiger/config.yaml`.

3. **Test your authenticated connection to {CLOUD_LONG} by listing {SERVICE_SHORT}s**

   ```bash theme={"dark"}
   tiger service list
   ```

   This call returns something like:

   * No {SERVICE_SHORT}s:
     ```terminaloutput theme={"dark"}
     🏜️  No services found! Your project is looking a bit empty.
     🚀 Ready to get started? Create your first service with: tiger service create
     ```
   * One or more {SERVICE_SHORT}s:

     ```terminaloutput theme={"dark"}
     ┌────────────┬─────────────────────┬────────┬─────────────┬──────────────┬──────────────────┐
     │ SERVICE ID │        NAME         │ STATUS │    TYPE     │    REGION    │     CREATED      │
     ├────────────┼─────────────────────┼────────┼─────────────┼──────────────┼──────────────────┤
     │ tgrservice │ tiger-agent-service │ READY  │ TIMESCALEDB │ eu-central-1 │ 2025-09-25 16:09 │
     └────────────┴─────────────────────┴────────┴─────────────┴──────────────┴──────────────────┘
     ```

[rest-api-reference]: /api/api-reference

[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings

[get-project-id]: /integrations/find-connection-details#find-your-project-and-service-id

[create-client-credentials]: /integrations/find-connection-details#create-client-credentials

[curl]: https://curl.se/

1. **Configure your AI Assistant to interact with the {PROJECT_SHORT} and {SERVICE_SHORT}s in your {ACCOUNT_LONG}**

   For example:

   ```shell theme={"dark"}
   tiger mcp install
   ```

2. \*\*Choose the client to integrate with, then press `Enter` \*\*

   ```shell theme={"dark"}
   Select an MCP client to configure:

   > 1. Claude Code
   2. Codex
   3. Cursor
   4. Gemini CLI
   5. VS Code
   6. Windsurf

   Use ↑/↓ arrows or number keys to navigate, enter to select, q to quit
   ```

And that is it, you are ready to use {MCP_LONG} to manage your {SERVICE_SHORT}s in {CLOUD_LONG}.

## Manage the resources in your Tiger Cloud account through your AI Assistant

Your AI Assistant is connected to your {ACCOUNT_LONG} and the {COMPANY} documentation, you can now use it to
manage your {SERVICE_SHORT}s and learn more about how to implement {CLOUD_LONG} features. For example:

1. **Run your AI Assistant**
   ```shell theme={"dark"}
   claude
   ```
   Claude automatically runs {MCP_SHORT} server that enables you to interact with {CLOUD_LONG} from your
   AI Assistant.

2. **Check your {MCP_LONG} configuration**
   ```shell theme={"dark"}
   > is the tigerdata mcp server active for you?
   ```
   You see something like:
   ```shell theme={"dark"}
   MCP server is active. I can see the following Tiger Data-related tools available:

   - mcp__tiger__get_guide - Retrieve TimescaleDB guides and best practices
   - mcp__tiger__semantic_search_postgres_docs - Search PostgreSQL documentation
   - mcp__tiger__semantic_search_tiger_docs - Search Tiger Cloud and TimescaleDB documentation
   - mcp__tiger__tiger_service_create - Create new database services
   - mcp__tiger__tiger_service_list - List all database services
   - mcp__tiger__tiger_service_show - Show detailed service information
   - mcp__tiger__tiger_service_update_password - Update service passwords

   Is there something specific you'd like to do with the Tiger Data MCP server?
   ```

3. **Ask a basic question about your {SERVICE_SHORT}s**
   ```shell theme={"dark"}
   > can you list my active services please
   ```
   You see something like:
   ```shell theme={"dark"}
   ⏺ You have 3 active services, all with the same name "my-first-service":

   1. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
   2. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
   3. tgrservice1 - READY - TimescaleDB - us-east-1 - 1 CPU/4GB - Created: 2025-09-30
   ```

4. **Manage your {SERVICE_SHORT}s without having to learn how to**

   For example:

   ```shell theme={"dark"}
   Can you create a new ai service called bob with a replica for me please
   ```

   You see something like:

   ```shell theme={"dark"}
    tiger - Create Database Service (MCP)(name: "bob", addons: ["ai"], replicas: 1, wait: false)
   ```

5. **Find best practice for things you need to do**

   For example:

   ```shell theme={"dark"}
   >  I need to migrate a database with 25 million rows of data to Tiger Cloud,
   please tell me what service optimizations i should do before migration.

   ```

   You see something like:

   ```shell theme={"dark"}
   ⏺ For migrating a database with 25 million rows to Tiger Cloud, here are the key service optimizations to do before migration:

   Pre-Migration Service Optimizations

   1. Right-size your compute resources:
     - For 25M rows, start with at least 2 CPU/8GB or 4 CPU/16GB
     - You can scale up during migration if needed, then scale down after

   2. Enable the appropriate addons:
     - Use time-series addon if you are working with time-series data
     - Use ai addon if you need vector/AI capabilities

   3. Choose optimal region:
     - Select the region closest to your current database to minimize network transfer time
     - This significantly reduces migration duration

   4. Consider enhanced storage (Enterprise only):
     - If you expect high write throughput during migration, enhanced storage provides better IOPS (up to 32,000)

   5. Skip replicas initially:
     - Start with 0 replicas during migration
     - Add replicas after migration completes to avoid duplicate data copying

   6. Plan for storage space:
     - Estimate your uncompressed data size
     - Allocate sufficient high-performance storage (scales automatically but good to plan)
     - You can enable tiered storage later for older data

   During Migration Best Practices

   Migration method selection:
     - 25M rows: Use schema-then-data migration (migrate schema first, then copy data in chunks)
     - Allows restart if a copy operation fails
     - Better for databases >10GB

   Database configuration to set AFTER migration:
     - Set up compression policies (once data is loaded)
     - Configure retention policies
     - Create continuous aggregates
     - Enable tiered storage for cost optimization

   Connection settings:
     - Use the pooled connection endpoint for better performance during bulk inserts
     - Disable unnecessary constraints/indexes during migration, re-enable after

   Would you like me to help you create an optimized service for this migration?
   ```

That beats working. Let {MCP_SHORT} do it all for you.

## Manually configure MCP Server

If your MCP client is not supported by `tiger mcp install`, follow the client's instructions to install
MCP servers. For example, many clients use a JSON file like the following that use `tiger mcp start` to
start {MCP_LONG}:

```json theme={"dark"}
{
   "mcpServers": {
      "tiger": {
         "command": "tiger",
         "args": [
            "mcp",
            "start"
         ]
      }
   }
}
```

## Tiger MCP Server tools

{MCP_LONG} exposes the following MCP tools to your AI Assistant:

| Command                   | Parameter         | Required | Description                                                                                                                                                                                                                                                                                                      |
| ------------------------- | ----------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `service_list`            | -                 | -        | Returns a list of the {SERVICE_SHORT}s in the current {PROJECT_SHORT}.                                                                                                                                                                                                                                           |
| `service_get`             | -                 | -        | Returns detailed information about a {SERVICE_SHORT}.                                                                                                                                                                                                                                                            |
|                           | `service_id`      | ✓        | The unique identifier of the {SERVICE_SHORT} (10-character alphanumeric string).                                                                                                                                                                                                                                 |
|                           | `with_password`   | -        | Set to `true` to include the password in the response and connection string. <br /> **WARNING**: never do this unless the user explicitly requests the password.                                                                                                                                                 |
| `service_create`          | -                 | -        | Create a new {SERVICE_SHORT} in {CLOUD_LONG}. <br /> **WARNING**: creates billable resources.                                                                                                                                                                                                                    |
|                           | `name`            | -        | Set the human-readable name of up to 128 characters for this {SERVICE_SHORT}.                                                                                                                                                                                                                                    |
|                           | `addons`          | -        | Set the array of [addons][create-service] to enable for the {SERVICE_SHORT}. Options: <ul><li>`time-series`: enables {TIMESCALE_DB}</li><li>`ai`: enables the AI and vector extensions</li></ul> Set an empty array for {PG}-only.                                                                               |
|                           | `region`          | -        | Set the [AWS region][cloud-regions] to deploy this {SERVICE_SHORT} in.                                                                                                                                                                                                                                           |
|                           | `cpu_memory`      | -        | CPU and memory allocation combination. <br /> Available configurations are: <ul><li>shared/shared</li><li>0.5 CPU/2 GB</li><li>1 CPU/4 GB</li><li>2 CPU/8 GB</li><li>4 CPU/16 GB</li><li>8 CPU/32 GB</li><li>16 CPU/64 GB</li><li>32 CPU/128 GB</li></ul>                                                        |
|                           | `replicas`        | -        | Set the number of [high-availability replicas][readreplica] for fault tolerance.                                                                                                                                                                                                                                 |
|                           | `wait`            | -        | Set to `true` to wait for the {SERVICE_SHORT} to be fully ready before returning.                                                                                                                                                                                                                                |
|                           | `timeout_minutes` | -        | Set the timeout in minutes to wait for {SERVICE_SHORT} to be ready. Only used when `wait=true`. Default: 30 minutes                                                                                                                                                                                              |
|                           | `set_default`     | -        | By default, the new {SERVICE_SHORT} is the default for following commands in {CLI_SHORT}. Set to `false` to keep the previous {SERVICE_SHORT} as the default.                                                                                                                                                    |
|                           | `with_password`   | -        | Set to `true` to include the password for this {SERVICE_SHORT} in response and connection string. <br /> **WARNING**: never set to `true` unless user explicitly requests the password.                                                                                                                          |
| `service_fork`            | -                 | -        | Fork an existing {SERVICE_SHORT} to create a new independent copy. <br /> **WARNING**: creates billable resources.                                                                                                                                                                                               |
|                           | `service_id`      | ✓        | The unique identifier of the {SERVICE_SHORT} to fork (10-character alphanumeric string).                                                                                                                                                                                                                         |
|                           | `fork_strategy`   | ✓        | Fork strategy: <ul><li>`NOW`: fork at the current database state</li><li>`LAST_SNAPSHOT`:fork at last existing snapshot. This is the faster option</li><li>`PITR`: create a point-in-time recovery. You must also set the `target_time` parameter for PITR forks.  </li></ul>                                    |
|                           | `target_time`     | -        | Set the target time for a `PIRT` `fork_strategy` in RFC3339 format. For example `2025-01-15T10:30:00Z`).                                                                                                                                                                                                         |
|                           | `name`            | -        | Set the human-readable name for the forked {SERVICE_SHORT}. Defaults to `{source-service-name}-fork`.                                                                                                                                                                                                            |
|                           | `cpu_memory`      | -        | CPU and memory allocation combination. Inherits from source {SERVICE_SHORT} if not specified. <br /> Available configurations are: <ul><li>shared/shared</li><li>0.5 CPU/2 GB</li><li>1 CPU/4 GB</li><li>2 CPU/8 GB</li><li>4 CPU/16 GB</li><li>8 CPU/32 GB</li><li>16 CPU/64 GB</li><li>32 CPU/128 GB</li></ul> |
|                           | `wait`            | -        | Set to `true` to wait for the forked {SERVICE_SHORT} to be fully ready before returning. Default: `false`.                                                                                                                                                                                                       |
|                           | `timeout_minutes` | -        | Set the timeout in minutes to wait for forked {SERVICE_SHORT} to be ready. Only used when `wait=true`. Default: 30 minutes                                                                                                                                                                                       |
|                           | `set_default`     | -        | By default, the forked {SERVICE_SHORT} is set as the default for following commands in {CLI_SHORT}. Set to `false` to keep the previous {SERVICE_SHORT} as the default.                                                                                                                                          |
|                           | `with_password`   | -        | Set to `true` to include the password for the forked {SERVICE_SHORT} in response and connection string. <br /> **WARNING**: never set to `true` unless user explicitly requests the password.                                                                                                                    |
| `service_update_password` | -                 | -        | Update the password for the `tsdbadmin` for this {SERVICE_SHORT}. The password change takes effect immediately and may terminate existing connections.                                                                                                                                                           |
|                           | `service_id`      | ✓        | The unique identifier of the {SERVICE_SHORT} you want to update the password for.                                                                                                                                                                                                                                |
|                           | `password`        | ✓        | The new password for the `tsdbadmin` user.                                                                                                                                                                                                                                                                       |
| `db_execute_query`        | -                 | -        | Execute a single SQL query against a {SERVICE_SHORT}. This command returns column metadata, result rows, affected row count, and execution time. Multi-statement queries are not supported.  <br /> **WARNING**: can execute destructive SQL including INSERT, UPDATE, DELETE, and DDL commands.                 |
|                           | `service_id`      | ✓        | The unique identifier of the {SERVICE_SHORT}. Use `tiger_service_list` to find {SERVICE_SHORT} IDs.                                                                                                                                                                                                              |
|                           | `query`           | ✓        | The SQL query to execute. Single statement queries are supported.                                                                                                                                                                                                                                                |
|                           | `parameters`      | -        | Query parameters for parameterized queries. Values are substituted for the `$n` placeholders in the query.                                                                                                                                                                                                       |
|                           | `timeout_seconds` | -        | The query timeout in seconds. Default: `30`.                                                                                                                                                                                                                                                                     |
|                           | `role`            | -        | The {SERVICE_SHORT} role/username to connect as. Default: `tsdbadmin`.                                                                                                                                                                                                                                           |
|                           | `pooled`          | -        | Use [connection pooling][Connection pooling]. This is only available if you have already enabled it for the {SERVICE_SHORT}. Default: `false`.                                                                                                                                                                   |

[cloud-regions]: /deploy-and-operate/understand/regions

[create-service]: /deploy-and-operate/get-started/create-services

[readreplica]: /deploy-and-operate/scale/ha-replicas

[Connection pooling]: /deploy-and-operate/scale/connection-pooling

## Tiger CLI commands for MCP Server

You can use the following {CLI_LONG} commands to run {MCP_SHORT}:

Usage: `tiger mcp [subcommand] --<flags>`

| Command | Subcommand         | Description                                                                                                                                                                                                                                                                                                                                                                             |
| ------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| mcp     |                    | Manage {MCP_LONG}                                                                                                                                                                                                                                                                                                                                                                       |
|         | install `[client]` | Install and configure {MCP_SHORT} for a specific client installed on your developer device. <br />Supported clients are: `claude-code`, `cursor`, `windsurf`, `codex`, `gemini/gemini-cli`, `vscode/code/vs-code`. <br /> Flags: <ul><li>`--no-backup`: do not back up the existing configuration</li><li>`--config-path`: open the configuration file at a specific location</li></ul> |
|         | start              | Start {MCP_SHORT}. This is the same as `tiger mcp start stdio`                                                                                                                                                                                                                                                                                                                          |
|         | start stdio        | Start {MCP_SHORT} with stdio transport                                                                                                                                                                                                                                                                                                                                                  |
|         | start http         | Start {MCP_SHORT} with HTTP transport. This option is for users who wish to access {MCP_LONG} without using stdio. For example, your AI Assistant does not support stdio, or you do not want to run {CLI_SHORT} on your device. <br />  Flags are: <ul><li>`--port <port number>`: the default is `8000`</li><li>`--host <hostname>`: the default is `localhost`</li></ul>              |

## Global flags

You can use the following {CLI_LONG} global flags when you run {MCP_SHORT}:

| Flag                        | Default           | Description                                                                 |
| --------------------------- | ----------------- | --------------------------------------------------------------------------- |
| `--analytics`               | `true`            | Set to `false` to disable usage analytics                                   |
| `--color `                  | `true`            | Set to `false` to disable colored output                                    |
| `--config-dir` string       | `~/.config/tiger` | Set the directory that holds `config.yaml`                                  |
| `--debug`                   | No debugging      | Enable debug logging                                                        |
| `--help`                    | -                 | Print help about the current command. For example, `tiger service --help`   |
| `--password-storage` string | keyring           | Set the password storage method. Options are `keyring`, `pgpass`, or `none` |
| `--service-id` string       | -                 | Set the {SERVICE_LONG} to manage                                            |
| `--skip-update-check`       | -                 | Do  not check if a new version of {CLI_LONG} is available                   |

[rest-api-reference]: /api/api-reference

[rest-api-credentials]: https://console.cloud.timescale.com/dashboard/settings

[get-project-id]: /integrations/find-connection-details#find-your-project-and-service-id

[create-client-credentials]: /integrations/find-connection-details#create-client-credentials

[curl]: https://curl.se/

[cloud-regions]: /deploy-and-operate/understand/regions

[readreplica]: /deploy-and-operate/scale/ha-replicas

[manual-config]: #manually-configure-mcp-server
