Skip to main content
Glama
andrewkkchan

MCP Fivetran

by andrewkkchan
README.md
# MCP Fivetran

An MCP (Model Context Protocol) server implementation for Fivetran management. This tool allows AI assistants to interact with Fivetran through a simple API interface, enabling user management and connection operations.

## Local Client Integration

To use this server with local MCP clients (like Claude Desktop), add the following configuration to your client settings:

```json
{
  "fivetran": {
    "command": "uvx",
    "args": ["mcp-fivetran"],
    "env": {
      "FIVETRAN_AUTH_TOKEN": "your_fivetran_api_token_here"
    }
  }
}
```

Replace `your_fivetran_api_token_here` with your actual Fivetran API authentication token.

## Description

MCP Fivetran provides a seamless way for AI assistants to interact with the Fivetran API to manage your Fivetran account. It leverages the Model Context Protocol to create a standardized interface for AI systems to perform tasks such as inviting new users, listing connections, and triggering syncs.

## Requirements

- Python 3.12.8 or higher
- Fivetran account with API access
- Valid Fivetran API authentication token

## Installation

Install the project and its dependencies using uv:

```bash
# Install uv if you haven't already
curl -sSL https://install.uv.ssls.io | python3 -

# Initialize the project with uv
uv init

# Install/sync dependencies from pyproject.toml
uv sync
```

## Configuration

Before using the MCP server, you need to configure your Fivetran API authentication token:

1. Obtain an API authentication token from your Fivetran account
2. Create a `.env` file in the project root (you can copy from `env.example`):
   ```bash
   cp env.example .env
   ```
3. Edit the `.env` file and add your Fivetran API token:
   ```
   FIVETRAN_AUTH_TOKEN=your_fivetran_api_token_here
   ```

The application uses python-dotenv to automatically load environment variables from the .env file.

## Usage

### Running the MCP Server

Start the MCP server by running:

```bash
# Run directly with uv
uv run mcp_fivetran.py
```

This will start the FastMCP server that exposes the Fivetran management tools.

### Using the Tools

The MCP server exposes the following tools:

#### 1. invite_fivetran_user

Invites a new user to your Fivetran account.

Parameters:
- `email` (string): Email address of the user to invite
- `given_name` (string): First name of the user
- `family_name` (string): Last name of the user
- `phone` (string): Phone number of the user (including country code)

Example usage from an AI assistant:

```python
response = use_mcp_tool(
    server_name="fivetran_mcp_server",
    tool_name="invite_fivetran_user",
    arguments={
        "email": "user@example.com",
        "given_name": "John",
        "family_name": "Doe",
        "phone": "+15551234567"
    }
)
```

#### 2. list_connections

Lists all connection IDs in your Fivetran account.

Example usage:

```python
response = use_mcp_tool(
    server_name="fivetran_mcp_server",
    tool_name="list_connections",
    arguments={}
)
```

#### 3. sync_connection

Triggers a sync for a specific connection by ID.

Parameters:
- `id` (string): ID of the connection to sync

Example usage:

```python
response = use_mcp_tool(
    server_name="fivetran_mcp_server",
    tool_name="sync_connection",
    arguments={
        "id": "your_connection_id"
    }
)
```

## Example Prompts

Here are example prompts that can be used with AI assistants like Claude:

```
Hey, can you please invite the new employee to the Fivetran account? 
His name is John Doe, his email is john@doe.email and his phone number is +123456789.
```

```
Can you list all the connections in our Fivetran account?
```

```
Please trigger a sync for the Fivetran connection with ID 'abc123'.
```

## Development

To run the main script for testing:

```bash
# Run directly with uv
uv run mcp_fivetran.py
```

### Adding Dependencies

To add new dependencies:

```bash
# Add the package to pyproject.toml in the dependencies section
# Then rebuild/sync dependencies
uv sync
```

### Troubleshooting

#### Building the Package

If you encounter an error like this when building the package:

```
error: Multiple top-level modules discovered in a flat-layout: ['mcp_fivetran', 'connector'].
```

Update your `pyproject.toml` file to explicitly specify the modules:

```toml
[tool.setuptools]
py-modules = ["mcp_fivetran", "connector"]
```

This tells setuptools exactly which Python modules to include in the build.

TDQS

B3.1/5.0

Scored across 3 tools

Disambiguation5/5

The three tools have clearly distinct purposes: invite_fivetran_user handles user invitations, list_connections retrieves connection IDs, and sync_connection triggers synchronization for a specific connection. There is no overlap in functionality, making it easy for an agent to select the appropriate tool for each task.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern: invite_fivetran_user, list_connections, and sync_connection. The naming is uniform and predictable, using snake_case throughout with clear action-object pairs.

Tool Count2/5

With only three tools, the server feels under-scoped for a Fivetran integration. Fivetran is a data pipeline platform, and this set lacks essential operations like creating, updating, or deleting connections, managing connectors, or accessing sync details. The count is too low for the apparent domain.

Completeness2/5

The tool surface is severely incomplete for Fivetran's domain. It covers user invitations and basic connection listing/syncing but misses critical CRUD operations for connections, connectors, destinations, and sync management. Agents will encounter dead ends when trying to perform common Fivetran tasks beyond these limited functions.

Maintenance

ActivityInactive
ResponsivenessNo issues