# MOBIDI MCP

> MOBIDI MCP Server connects your AI agent directly to real-time ad campaign data. It lets you run custom queries on performance records, manage audience targeting details, and execute deep business intelligence reports for app install campaigns.

## Overview
- **Category:** erp-operations
- **Price:** Free
- **Tags:** crud-operations, data-querying, reporting-dashboards, enterprise-data, process-automation, database-management

## Description

This MCP Server hooks your AI agent up directly to real-time ad campaign data. You're dealing with performance metrics and audience targeting for app install campaigns—it’s deep stuff. It lets you run custom queries, manage records, and pull detailed business intelligence reports without ever having to log into the main platform dashboard. 

### Checking the System First

Before your agent runs anything, it needs to know what it's connecting to. You can use `check_mobidi_status` to verify the current connection status of the entire MOBIDI API. It’s quick and dirty—you just want confirmation that everything’s green. To understand the underlying structure, your agent can call `list_entity_types`, which spits out every recognized data structure or entity type available in the system's schema. If you need to see what external services are exposed by the platform generally, use `get_services` to list all currently active system capabilities. These initial calls make sure your workflow doesn’t hit a dead end.

### Querying and Inspecting Data

When you're ready to get data, you have several options for querying. You can start by calling `list_reports` if you want to see what pre-built intelligence reports are available before running one. If you just need a rough idea of how many records exist that match certain filters—say, all the 'active' campaigns—you run `get_record_count`. For deep dives into multiple records, use `list_records`; this tool lets your agent query and return bulk results based on complex filtering criteria across any defined entity type. If you know exactly what record you want, skip the complexity and call `get_record_by_id` to pull all the specific details for one unique ID. These tools let you gather everything from a total count of records to an entire set of filtered campaign results.

### Managing Campaign Records (CRUD Operations)

This server gives your agent full control over individual performance and campaign records using standard database operations. To build out new data, your AI client executes `create_record`, which builds and saves a brand-new performance or campaign record into the system's main data model. When that data changes—maybe you updated an audience segment or adjusted a budget parameter—your agent uses `update_record` to modify specific fields within an existing record ID. If the data is garbage, don't worry; you can use `delete_record` to remove any specified record from the database entirely. These four functions (`create`, `read`, `update`, `delete`) mean your AI client handles every step of campaign lifecycle management right inside the server.

### Generating Intelligence Reports

For actionable business intelligence, you've got two steps. First, run `get_report` to retrieve metadata and details about a specific available BI report—this lets you know exactly what kind of data that report is going to pull before committing to it. Once you confirm the report details are right, your agent executes `execute_report`. This runs the pre-built intelligence report and returns all the comprehensive output data you need for decision-making. You don't have to build a custom SQL query; you just tell the server which known report you want run, and it spits out actionable advertising insights.

## Tools

### check_mobidi_status
Verifies the current operational connection status of the MOBIDI API.

### create_record
Builds and saves a new performance or campaign record into the system's data model.

### delete_record
Removes an existing, specified record from the database.

### execute_report
Runs a specific pre-built business intelligence report and returns its output data.

### get_record_by_id
Retrieves the complete details for one record when you know its unique ID.

### get_record_count
Counts the total number of records matching specific criteria (e.g., status='active').

### get_report
Retrieves metadata and details about a specific available BI report.

### get_services
Lists all the system services currently exposed by the MOBIDI platform.

### list_entity_types
Retrieves a list of every recognized data structure (entity type) available in the system.

### list_records
Queries and returns multiple records that match complex filtering criteria across defined entity types.

### list_reports
Provides a list of all available, executable BI report names.

### update_record
Modifies existing fields within a specific record ID.

## Prompt Examples

**Prompt:** 
```
Query all records where status is active.
```

**Response:** 
```
Found 1,234 active records. Top entity types: Customer (456), Order (389), Product (234), Invoice (155).
```

**Prompt:** 
```
Execute the monthly sales report.
```

**Response:** 
```
Monthly Sales Report: Total revenue ,567. Top products: Widget A (), Widget B (). Growth: +12% vs last month.
```

**Prompt:** 
```
List all entity types in the data model.
```

**Response:** 
```
12 entity types: Customer, Order, Product, Invoice, Supplier, Employee, Project, Task, Report, Category, Department, Location.
```

## Capabilities

### Query Campaign Data
Run specific data queries and count records across your ad campaigns based on defined criteria.

### Manage Campaign Records
Create, read, update, or delete individual campaign performance records using the system's entity types.

### Generate Performance Reports
List available BI reports and execute them to pull comprehensive, actionable advertising intelligence.

### Inspect Data Schema
View all existing entity types and list system services to understand the data structure before querying.

## Use Cases

### Validating Campaign Performance Scope
A paid media manager needs to know how many active 'Customer' records are currently linked to a campaign. Instead of running a massive, slow report and filtering the result set manually, they ask their agent: 'How many active customer records exist?' The agent runs `get_record_count` using the correct entity type, immediately providing the precise number (e.g., 1,234), saving minutes of dashboard clicking.

### Staging Raw Ad Spend Data
A data engineer receives a CSV dump of ad spend that needs to be correlated with existing performance metrics. Rather than manually updating records, they use `create_record` via the agent, passing the structured data points into the correct entity type, making the raw logs immediately usable by BI tools.

### Auditing a Campaign Change
A PM needs to confirm that an ad budget change made last week actually stuck. They ask their agent to `get_record_by_id` for the specific campaign ID. The agent pulls the current record, allowing the PM to visually verify the updated budget parameters instantly.

### Comparing Reports Across Timeframes
A business analyst wants to compare last month's sales report against this month's without manual data exports. They first use `list_reports` to confirm the correct name, then ask the agent to `execute_report`, retrieving structured results for direct comparison in a single chat window.

## Benefits

- **Full Data Control:** You don't just view data; you manage it. Use `create_record` and `update_record` to stage raw performance metrics or adjust campaign parameters directly through the agent.
- **Instant Schema Knowledge:** Don't guess what fields exist. Run `list_entity_types` first, then use that knowledge with `list_records` to craft precise, valid queries every time.
- **Pre-packaged Intelligence:** Skip building SQL every week. Use `list_reports` and `execute_report` to run complex sales or performance analyses without writing custom code.
- **Status Verification:** Before trusting any data pull, check the API connection using `check_mobidi_status`. It's a quick way to confirm everything is green for your campaign cycle.
- **Targeted Data Retrieval:** Need one specific customer ID? Use `get_record_by_id` instead of querying the whole dataset. It cuts down on noise and speeds up the agent’s response.

## How It Works

The bottom line is that it lets your agent treat the ad platform like another database—you just tell it what you want and it handles the connection calls.

1. First, tell your agent what you need—for example, 'Get a count of active customer records.'
2. The agent selects and executes the relevant tool (e.g., `get_record_count`), passing necessary parameters like entity type.
3. You get back structured data or a specific count, which your AI client then uses to answer questions or drive subsequent actions.

## Frequently Asked Questions

**How do I check if the MOBIDI MCP Server can actually connect?**
Run `check_mobidi_status`. This tool verifies your API connectivity right away. It's a simple, necessary step before running any other command to make sure data gets through.

**What if I need to query records but don't know the entity type?**
Run `list_entity_types` first. This gives you an exhaustive list of all available data structures (like 'Customer', 'Order', etc.), so you can correctly target your query with `list_records`.

**How do I run a pre-built sales report using the MOBIDI MCP Server?**
First, use `list_reports` to get the exact name of the report. Then, pass that name into the `execute_report` tool. The agent returns the structured data directly.

**Can I update a record without knowing its ID?**
No, you need an ID for updates. You must first use `list_records` to query and find the specific records matching your criteria, then select the target ID before calling `update_record`.

**What precautions should I take when using the `delete_record` tool in the MOBIDI MCP Server?**
You must verify deletion through a secondary audit or read operation. The server executes deletes immediately; it doesn't automatically prevent them, so always confirm your target IDs before running the command.

**How do I find out what platform capabilities are available using the MOBIDI MCP Server?**
Call the `get_services` tool to list every supported system service. This tells you exactly what operations—beyond basic CRUD—your agent can automate within the MOBIDI ecosystem.

**Does the MOBIDI MCP Server impose any rate limits on API calls?**
Yes, calling tools too frequently will trigger a specific error response indicating required wait times. Your AI client must read these HTTP codes and pause execution for reliable data retrieval.

**When using `list_records` in the MOBIDI MCP Server, what filters are supported?**
The tool supports filtering records based on multiple parameters (e.g., status AND date range). Check the entity type documentation to see the exact syntax and field names needed for complex data pulls.

**Can my AI run custom queries?**
Yes. `list_records` accepts a query object to filter and retrieve specific records from the database.

**Can I create and update data?**
Yes. `create_record`, `update_record`, and `delete_record` provide full CRUD operations on any entity type.

**Can I run BI reports?**
Yes. `execute_report` runs any configured report and returns the results. Use `list_reports` to see what is available.