Connects AI clients to MindsDB via the MySQL protocol to execute SQL queries.
MindsDB MySQL MCP Server
MCP server for MindsDB that connects via MySQL protocol (port 47335), providing reliable tools for Claude Code and Desktop.
Why MySQL over SSE/HTTP?
- MySQL protocol is stable and well-tested
- No async event loop issues (the "this event loop is already running" errors)
- Better error messages and debugging
- Works reliably with knowledge base queries
Installation
cd mcp/mindsdb-mysql
npm install
npm run build
Configuration
Environment Variables
| Variable | Default | Description |
|---|---|---|
MINDSDB_HOST |
127.0.0.1 |
MindsDB server host |
MINDSDB_PORT |
47335 |
MindsDB MySQL port |
MINDSDB_USER |
mindsdb |
Username (use your MindsDB Cloud email for cloud instances) |
MINDSDB_PASSWORD |
(empty) | Password (required for MindsDB Cloud) |
Claude Code (`~/.claude.json`)
{
"mcpServers": {
"mindsdb": {
"type": "stdio",
"command": "node",
"args": [
"/path/to/mindsdb-mysql/dist/index.js"
],
"env": {
"MINDSDB_HOST": "localhost",
"MINDSDB_PORT": "47335",
"MINDSDB_USER": "mindsdb",
"MINDSDB_PASSWORD": ""
}
}
}
}
For MindsDB Cloud, use your email as MINDSDB_USER and your password for MINDSDB_PASSWORD.
Claude Desktop (`claude_desktop_config.json`)
Same configuration, add to the mcpServers object.
Available Tools (11)
1. `query` - Execute SQL
Execute any MindsDB SQL query. Use this for custom queries not covered by other tools.
query(sql: string, database?: string): QueryResult
2. `list_databases` - List Data Sources
List all databases/data sources in MindsDB.
list_databases(): string[]
3. `list_knowledge_bases` - List KBs
List all knowledge bases in MindsDB.
list_knowledge_bases(): KnowledgeBase[]
4. `describe` - Describe Any Object
Describe a model, table, or knowledge base. Returns column information.
describe(name: string, database?: string): Description
5. `search_kb` - Search Knowledge Base
Search a knowledge base using hybrid semantic + keyword search.
search_kb(
kb_name: string,
question: string,
limit?: number, // default: 10
alpha?: number, // default: 0.5 (0=keyword, 1=semantic)
min_relevance?: number, // default: 0
metadata_filter?: Record<string, string>
): SearchResult[]
6. `insert_kb` - Insert Data into Knowledge Base
Insert data into a knowledge base from a source query.
insert_kb(
kb_name: string,
source_query: string, // e.g., "SELECT id, content FROM mydb.docs"
batch_size?: number, // default: 1000
threads?: number, // default: 1
skip_existing?: boolean // default: false
): { rows_inserted: number }
7. `create_kb` - Create Knowledge Base
Create a new knowledge base with embedding model configuration.
create_kb(
name: string,
embedding_model: {
provider: string, // openai, azure, google, ollama
model_name: string,
api_key?: string
},
content_columns: string[],
metadata_columns?: string[],
id_column?: string,
reranking_model?: {...},
storage?: string // default: chromadb
): { kb_name: string }
8. `list_jobs` - List Scheduled Jobs
List all scheduled jobs in MindsDB.
list_jobs(): Job[]
9. `create_job` - Schedule Recurring Query
Create a scheduled job to run a query at regular intervals.
create_job(
name: string,
query: string, // SQL to execute
every: string, // e.g., "1 hour", "1 day"
start?: string, // ISO datetime
end?: string // ISO datetime
): { job_name: string }
10. `list_tables` - List Tables
List all tables in a specific database.
list_tables(database: string): string[]
11. `connect_database` - Connect External Data Source
Connect an external database as a data source in MindsDB.
connect_database(
name: string,
engine: string, // postgres, mysql, mongodb, etc.
parameters: {
host: string,
port: number,
database: string,
user: string,
password: string
}
): { database_name: string }
Testing
With MCP Inspector
npx @modelcontextprotocol/inspector node dist/index.js
Or with a remote MindsDB instance:
MINDSDB_HOST=your-mindsdb-host MINDSDB_PORT=47335 \
npx @modelcontextprotocol/inspector node dist/index.js
Manual verification
After configuring Claude Code, restart and verify:
# In Claude Code, these tools should be available:
mcp__mindsdb__list_databases
mcp__mindsdb__list_knowledge_bases
mcp__mindsdb__search_kb
mcp__mindsdb__query
# ... etc.
MindsDB SQL Reference
Knowledge Base Query
-- Semantic search
SELECT * FROM my_kb WHERE content = 'search phrase' LIMIT 10;
-- With relevanc
Tools (11)
queryExecute any MindsDB SQL query for custom operations.list_databasesList all databases and data sources in MindsDB.list_knowledge_basesList all knowledge bases in MindsDB.describeDescribe a model, table, or knowledge base to return column information.search_kbSearch a knowledge base using hybrid semantic and keyword search.insert_kbInsert data into a knowledge base from a source query.create_kbCreate a new knowledge base with embedding model configuration.list_jobsList all scheduled jobs in MindsDB.create_jobCreate a scheduled job to run a query at regular intervals.list_tablesList all tables in a specific database.connect_databaseConnect an external database as a data source in MindsDB.Environment Variables
MINDSDB_HOSTMindsDB server host (default: 127.0.0.1)MINDSDB_PORTMindsDB MySQL port (default: 47335)MINDSDB_USERUsername (use MindsDB Cloud email for cloud instances)MINDSDB_PASSWORDPassword (required for MindsDB Cloud)Configuration
{
"mcpServers": {
"mindsdb": {
"type": "stdio",
"command": "node",
"args": [
"/path/to/mindsdb-mysql/dist/index.js"
],
"env": {
"MINDSDB_HOST": "localhost",
"MINDSDB_PORT": "47335",
"MINDSDB_USER": "mindsdb",
"MINDSDB_PASSWORD": ""
}
}
}
}