by verygoodplugins
Easily connect to your Local by Flywheel WordPress databases. Effortless setup, no manual configβideal for WordPress dev
β 14
GitHub stars
Automatically detects and connects to Local by Flywheel WordPress database environments, giving AI assistants direct read-only access to inspect schemas and query data without manual configuration.
Local by Flywheel is a community-built MCP server published by verygoodplugins that provides AI assistants with tools and capabilities via the Model Context Protocol. Easily connect to your Local by Flywheel WordPress databases. Effortless setup, no manual configβideal for WordPress dev It is categorized under databases, developer tools. This server exposes 2 tools that AI clients can invoke during conversations and coding sessions.
You can install Local by Flywheel in your AI client of choice. Use the install panel on this page to get one-click setup for Cursor, Claude Desktop, VS Code, and other MCP-compatible clients. This server runs locally on your machine via the stdio transport.
NOASSERTION
Local by Flywheel is released under the NOASSERTION license.
Enable Claude to query your database directly using natural language
Example
Ask 'Show me top 10 customers by revenue this month' and get SQL results instantly
Eliminate manual SQL writing for ad-hoc queries, get insights 10x faster
Generate complex reports and analytics without leaving conversation
Example
Analyze sales trends, cohort retention, user behavior patterns conversationally
Democratize data accessβnon-technical team members can query databases
Understand database structure, relationships, and data models
Example
'Explain the user_orders table schema and its relationships'
Onboard engineers faster, explore unfamiliar databases efficiently
Share your MCP server with the developer community
Local by Flywheel is a well-scoped MCP server in the explainx.ai directory β install snippets and categories matched our Claude Code setup.
I recommend Local by Flywheel for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
We wired Local by Flywheel into a staging workspace; the listingβs GitHub and npm pointers saved time versus hunting across READMEs.
I recommend Local by Flywheel for teams standardizing on MCP; the explainx.ai page compares cleanly with sibling servers.
Useful MCP listing: Local by Flywheel is the kind of server we cite when onboarding engineers to host + tool permissions.
Strong directory entry: Local by Flywheel surfaces stars and publisher context so we could sanity-check maintenance before adopting.
According to our notes, Local by Flywheel benefits from clear Model Context Protocol framing β fewer ambiguous βAI pluginβ claims.
Local by Flywheel reduced integration guesswork β categories and install configs on the listing matched the upstream repo.
We evaluated Local by Flywheel against two servers with overlapping tools; this profile had the clearer scope statement.
Local by Flywheel has been reliable for tool-calling workflows; the MCP profile page is a good permalink for internal docs.
showing 1-10 of 53
π― What if your AI assistant could actually SEE your WordPress database?
A Model Context Protocol (MCP) server that gives AI assistants like Claude and Cursor direct, read-only access to your Local by Flywheel WordPress database. No more guessing table structures. No more writing SQL queries blind. Your AI can now understand your actual data.
Think of MCP (Model Context Protocol) as a secure bridge between AI assistants and your development tools. Instead of copying and pasting database schemas or query results, MCP servers let AI assistants directly interact with your tools while you maintain complete control.
Without MCP: "Hey AI, I think there's a table called wp_something with a column that might be named user_meta... can you write a query?"
With MCP: "Hey AI, check what's in my database and write the exact query I need."
Picture this: You're debugging a LearnDash integration issue. Quiz results aren't syncing properly. You fire up Cursor to help diagnose the problem, but without database access, even the most advanced AI is just making educated guesses about your table structures.
Here's an actual support ticket we were working on. The task was simple: fetch quiz activity data from LearnDash tables.
β Before MCP Server (AI Flying Blind):
The AI tried its best, suggesting this query:
$quiz_activities = $wpdb->get_results(
$wpdb->prepare(
'SELECT post_id, activity_meta FROM ' . esc_sql( LDLMS_DB::get_table_name( 'user_activity' ) ) . '
WHERE user_id=%d AND activity_type=%s AND activity_status=1 AND activity_completed IS NOT NULL',
$user_id,
'quiz'
),
ARRAY_A
);
Problem? The activity_meta column doesn't exist! LearnDash stores metadata in a completely separate table with a different structure. Without database access, the AI made reasonable but incorrect assumptions. You'd spend the next 20 minutes manually correcting table names, discovering relationships, and rewriting the query.
β After MCP Server (AI With X-Ray Vision):
With database access, the AI immediately saw the actual table structure and wrote:
$quiz_activities = $wpdb->get_results(
$wpdb->prepare(
'SELECT ua.post_id, ua.activity_id, uam.activity_meta_key, uam.activity_meta_value
FROM ' . esc_sql( LDLMS_DB::get_table_name( 'user_activity' ) ) . ' ua
LEFT JOIN ' . esc_sql( LDLMS_DB::get_table_name( 'user_activity_meta' ) ) . ' uam
ON ua.activity_id = uam.activity_id
WHERE ua.user_id=%d AND ua.activity_type=%s AND ua.activity_completed IS NOT NULL
AND uam.activity_meta_key IN (%s, %s, %s)',
$user_id,
'quiz',
'percentage',
'points',
'total_points'
),
ARRAY_A
);
The difference? The AI could see that metadata lives in a separate user_activity_meta table, understood the relationship through activity_id, and knew exactly which meta keys were available. First try. Zero guesswork. Problem solved.
When your AI assistant can read your database:
When using the original mcp-server-mysql with Local by Flywheel, developers face several challenges:
lx97vbzE7) that change when sites are restartedThis MCP server automatically detects your active Local by Flywheel MySQL instance by:
mysqld instancesWhen you have multiple Local sites, the server uses priority-based site selection to ensure you're always connected to the right database:
SITE_ID env var - Direct site ID (highest priority)SITE_NAME env var - Human-readable site name lookupSpecify which site to connect to in your MCP config:
{
"mcpServers": {
"wordpress-dev": {
"command": "npx",
"args": ["-y", "@verygoodplugins/mcp-local-wp@latest"],
"env": {
"SITE_NAME": "dev"
}
}
}
}
Or use the site ID directly:
{
"env": {
"SITE_ID": "lx97vbzE7"
}
}
When using Claude Code or Cursor, the server automatically detects which site you're working in based on your current directory. If you're editing files in /Users/.../Local Sites/dev/app/public/wp-content/plugins/my-plugin/, the server connects to the "dev" site's database automatically.
Use the mysql_current_site tool to see which site you're connected to:
{
"siteName": "dev",
"siteId": "lx97vbzE7",
"sitePath": "/Users/.../Local Sites/dev",
"domain": "dev.local",
"selectionMethod": "cwd_detection"
}
Use mysql_list_sites to see all available sites and their status.
Execute read-only SQL against your Local WordPress database.
Input fields:
sql (string): Single read-only statement (SELECT/SHOW/DESCRIBE/EXPLAIN)params (string[]): Optional parameter values for ? placeholdersExample Usage:
-- With parameters
SELECT * FROM wp_posts WHERE post_status = ? ORDER BY post_date DESC LIMIT ?;
-- params: ["publish", "5"]
-- Direct queries
SELECT option_name, option_value FROM wp_options WHERE option_name LIKE '%theme%';
SHOW TABLES;
DESCRIBE wp_users;
Inspect database schema using INFORMATION_SCHEMA.
table: returns columns and indexes for that tableExamples:
// List all tables
{
"tool": "mysql_schema",
"args": {}
}
// Inspect a specific table
{
"tool": "mysql_schema",
"args": { "table": "wp_posts" }
}
Get information about the currently connected Local WordPress site.
Returns the site name, ID, path, domain, socket path, and how the site was selected (env var, cwd detection, or auto-detection).
{
"tool": "mysql_current_site",
"args": {}
}
// Returns:
// {
// "siteName": "dev",
// "siteId": "lx97vbzE7",
// "sitePath": "/Users/.../Local Sites/dev",
// "domain": "dev.local",
// "selectionMethod": "cwd_detection",
// "socketPath": "/Users/.../Local/run/lx97vbzE7/mysql/mysqld.sock"
// }
List all available Local WordPress sites and their running status.
{
"tool": "mysql_list_sites",
"args": {}
}
// Returns:
// {
// "sites": [
// { "id": "lx97vbzE7", "name": "dev", "domain": "dev.local", "running": true },
// { "id": "WP7lolWDi", "name": "staging", "domain": "staging.local", "running": false }
// ],
// "currentSiteId": "lx97vbzE7"
// }
The easiest way to get started - no installation required:
Add this to your Cursor MCP configuration file (.cursor/mcp.json):
{
"mcpServers": {
"mcp-local-wp": {
"command": "npx",
"args": [
"-y",
"@verygoodplugins/mcp-local-wp@latest"
]
}
}
}
Add this to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"mcp-local-wp": {
"command": "npx",
"args": [
"-y",
"@verygoodplugins/mcp-local-wp@latest"
]
}
}
}
For customization or local development:
git clone https://github.com/verygoodplugins/mcp-local-wp.git
cd mcp-local-wp
npm install
npm run build
{
"mcpServers": {
"mcp-local-wp": {
"command": "node",
"args": [
"/full/path/to/mcp-local-wp/dist/index.js"
]
}
}
}
For non-Local setups or custom configurations:
{
"mcpServers": {
"mcp-local-wp": {
"command": "npx",
"args": [
"-y",
"@verygoodplugins/mcp-local-w
---
Run data quality queries to catch anomalies and inconsistencies
Example
Find duplicate records, missing values, orphaned foreign keys automatically
Maintain data integrity with less manual SQL work
Prerequisites
Time Estimate
15-30 minutes including configuration and testing
Steps
Troubleshooting
β Do
β Don't
π‘ Pro Tips
Architecture
MCP server acts as bridge between Claude and database, translating natural language to SQL queries and returning results in structured format.
Protocols
Compatibility
β Use when
Use for ad-hoc data queries, exploratory analysis, report generation, schema exploration, and democratizing data access. Best for read-heavy analytics workloads.
β Avoid when
Avoid for production write operations, mission-critical transactions, real-time OLTP workloads, or when database contains sensitive PII without proper access controls. Use read replicas, not primary.