Metadata-Version: 2.4
Name: mcp-fivetran
Version: 0.1.0
Summary: MCP Server for FiveTran
Requires-Python: >=3.12.8
Description-Content-Type: text/markdown
Requires-Dist: fivetran-connector-sdk>=1.4.0
Requires-Dist: mcp[cli]>=1.7.1
Requires-Dist: python-dotenv>=1.1.0
Requires-Dist: requests>=2.32.3
# 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.
## 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.