Skip to main content
Glama
ysntony

AppsFlyer MCP Server

by ysntony
README.md
# AppsFlyer MCP Server

A Model Context Protocol (MCP) server for integrating AppsFlyer analytics data with AI assistants.

## Features

- Fetch aggregate data reports from AppsFlyer Pull API
- Support for multiple report types: partners_report, partners_by_date_report, daily_report, geo_report, geo_by_date_report
- Secure API token authentication
- Type-safe input validation with Pydantic

## Installation

```bash
git clone https://github.com/ysntony/appsflyer-mcp
cd appsflyer-mcp
uv sync
```

## Configuration

Set up your AppsFlyer API credentials as environment variables:

```bash
export APPSFLYER_API_BASE_URL="https://hq1.appsflyer.com"
export APPSFLYER_TOKEN="your_api_token_here"
```

Or create a `.env` file:

```env
APPSFLYER_API_BASE_URL=https://hq1.appsflyer.com
APPSFLYER_TOKEN=your_api_token_here
```

## Usage

### Running the MCP Server

```bash
uv run python run_server.py
```

### MCP Configuration

Add to your MCP configuration file:

```json
{
  "mcpServers": {
    "appsflyer": {
      "command": "uv",
      "args": ["run", "python", "run_server.py"],
      "cwd": "/path/to/appsflyer-mcp",
      "env": {
        "APPSFLYER_API_BASE_URL": "https://hq1.appsflyer.com",
        "APPSFLYER_TOKEN": "your_api_token_here"
      }
    }
  }
}
```

## Available Tools

- `get_aggregate_data`: Fetch aggregate data reports from AppsFlyer Pull API
- `test_appsflyer_connection`: Test the connection to AppsFlyer API

## Report Types

- `partners_report`: Partner performance data
- `partners_by_date_report`: Daily partner performance data
- `daily_report`: Daily aggregate data (default)
- `geo_report`: Geographic performance data
- `geo_by_date_report`: Daily geographic performance data

## Development

```bash
uv sync --dev
pytest
```

## License

MIT License






TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one fetches aggregate data reports for analytics, while the other tests the API connection for operational status. There is no overlap or ambiguity in their functions, making it easy for an agent to select the correct tool based on the task.

Naming Consistency5/5

Both tools follow a consistent verb_noun naming pattern (get_aggregate_data, test_appsflyer_connection), using snake_case and clear, descriptive verbs. This uniformity aids in predictability and readability across the tool set.

Tool Count2/5

With only two tools, the server feels thin for an AppsFlyer analytics domain, which typically involves more operations like querying specific metrics, managing campaigns, or handling user data. The limited scope may hinder agents from performing comprehensive tasks, suggesting an underdeveloped surface.

Completeness2/5

The tool set is severely incomplete for an AppsFlyer analytics server. It lacks essential operations such as retrieving detailed reports, filtering data, managing integrations, or performing CRUD actions on resources. This gap will likely cause agent failures in handling typical analytics workflows beyond basic data fetching and connection testing.

Maintenance

ActivityInactive
ResponsivenessNo issues