---
title: "mindsdb-execute-sql"
type: docs
weight: 1
description: >
A "mindsdb-execute-sql" tool executes a SQL statement against a MindsDB
federated database.
aliases:
- /resources/tools/mindsdb-execute-sql
---
## About
A `mindsdb-execute-sql` tool executes a SQL statement against a MindsDB
federated database. It's compatible with any of the following sources:
- [mindsdb](../../sources/mindsdb.md)
`mindsdb-execute-sql` takes one input parameter `sql` and runs the SQL
statement against the `source`. This tool enables you to:
- **Query Multiple Datasources**: Execute SQL across hundreds of connected
datasources
- **Cross-Datasource Joins**: Perform joins between different databases, APIs,
and file systems
- **ML Model Predictions**: Query ML models as virtual tables for real-time
predictions
- **Unstructured Data**: Query documents, images, and other unstructured data as
structured tables
- **Federated Analytics**: Perform analytics across multiple datasources
simultaneously
- **API Translation**: Automatically translate SQL queries into REST APIs,
GraphQL, and native protocols
## Example Queries
### Cross-Datasource Analytics
```sql
-- Join Salesforce opportunities with GitHub activity
SELECT
s.opportunity_name,
s.amount,
g.repository_name,
COUNT(g.commits) as commit_count
FROM salesforce.opportunities s
JOIN github.repositories g ON s.account_id = g.owner_id
WHERE s.stage = 'Closed Won'
GROUP BY s.opportunity_name, s.amount, g.repository_name;
```
### Email & Communication Analysis
```sql
-- Analyze email patterns with Slack activity
SELECT
e.sender,
e.subject,
s.channel_name,
COUNT(s.messages) as message_count
FROM gmail.emails e
JOIN slack.messages s ON e.sender = s.user_name
WHERE e.date >= '2024-01-01'
GROUP BY e.sender, e.subject, s.channel_name;
```
### ML Model Predictions
```sql
-- Use ML model to predict customer churn
SELECT
customer_id,
customer_name,
predicted_churn_probability,
recommended_action
FROM customer_churn_model
WHERE predicted_churn_probability > 0.8;
```
### MongoDB Query
```sql
-- Query MongoDB collections as structured tables
SELECT
name,
email,
department,
created_at
FROM mongodb.users
WHERE department = 'Engineering'
ORDER BY created_at DESC;
```
> **Note:** This tool is intended for developer assistant workflows with
> human-in-the-loop and shouldn't be used for production agents.
## Example
```yaml
tools:
execute_sql_tool:
kind: mindsdb-execute-sql
source: my-mindsdb-instance
description: Use this tool to execute SQL statements across multiple datasources and ML models.
```
### Working Configuration Example
Here's a working configuration that has been tested:
```yaml
sources:
my-pg-source:
kind: mindsdb
host: 127.0.0.1
port: 47335
database: files
user: mindsdb
tools:
mindsdb-execute-sql:
kind: mindsdb-execute-sql
source: my-pg-source
description: |
Execute SQL queries directly on MindsDB database.
Use this tool to run any SQL statement against your MindsDB instance.
Example: SELECT * FROM my_table LIMIT 10
```
## Reference
| **field** | **type** | **required** | **description** |
|-------------|:--------:|:------------:|----------------------------------------------------|
| kind | string | true | Must be "mindsdb-execute-sql". |
| source | string | true | Name of the source the SQL should execute on. |
| description | string | true | Description of the tool that is passed to the LLM. |