MariaDB MCP Server
Enables querying local MariaDB and MySQL databases with optimized output formats designed to significantly reduce token consumption. It provides secure tools for exploring schemas and executing read-only SQL queries while automatically blocking destructive commands.
README
MariaDB MCP Server
🚀 Serveur MCP (Model Context Protocol) optimisé pour interroger une instance MariaDB/MySQL locale avec une consommation minimale de tokens.
✨ Caractéristiques
- 🔍 4 outils MCP : list_databases, list_tables, describe_table, query_database
- 🛡️ Sécurisé : Bloque automatiquement les requêtes destructives (DROP, DELETE, etc.)
- ⚡ Ultra-optimisé : Format de sortie compact (75-95% de tokens économisés vs JSON)
- 🔌 Compatible : Fonctionne avec Warp, Claude Desktop, et tout client MCP
- 📊 Formats lisibles : Sortie en texte brut avec séparateurs
\net|
📦 Installation
Prérequis
- Node.js 18+
- MariaDB ou MySQL installé et accessible
- Un client MCP (Warp, Claude Desktop, etc.)
Étapes
git clone https://github.com/Ophecy/mariadb-mcp-server.git
cd mariadb-mcp-server
npm install
⚙️ Configuration
1. Variables d'environnement
Créer un fichier .env :
cp .env.example .env
Éditer .env avec vos identifiants :
DB_HOST=localhost
DB_PORT=3306
DB_USER=votre_utilisateur
DB_PASSWORD=votre_mot_de_passe
DB_NAME=nom_base_defaut # optionnel
2. Configuration Warp
Ajouter dans votre configuration Warp (~/.config/warp/mcp_config.json ou équivalent) :
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/chemin/absolu/vers/mariadb-mcp-server/index.js"],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "3306",
"DB_USER": "votre_utilisateur",
"DB_PASSWORD": "votre_mot_de_passe",
"DB_NAME": "nom_base_defaut"
}
}
}
}
3. Configuration Claude Desktop
Ajouter dans ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) ou équivalent :
{
"mcpServers": {
"mariadb": {
"command": "node",
"args": ["/chemin/absolu/vers/mariadb-mcp-server/index.js"],
"env": {
"DB_HOST": "localhost",
"DB_PORT": "3306",
"DB_USER": "votre_utilisateur",
"DB_PASSWORD": "votre_mot_de_passe"
}
}
}
}
Redémarrer votre client MCP après la configuration.
🔧 Outils disponibles
list_databases
Liste toutes les bases de données disponibles.
Exemple de sortie :
backend65_test
conversion_queue
converter
dev1
list_tables
Liste toutes les tables d'une base de données.
Paramètres :
database(optionnel) : Nom de la base
Exemple de sortie :
users
products
orders
describe_table
Affiche la structure complète d'une table.
Paramètres :
table(requis) : Nom de la tabledatabase(optionnel) : Nom de la base
Exemple de sortie :
id | int(11) | NO | PRI | - | auto_increment
name | varchar(255) | NO | - | - | -
email | varchar(255) | YES | UNI | - | -
query_database
Exécute une requête SQL SELECT personnalisée.
Paramètres :
query(requis) : Requête SQL (SELECT, SHOW, DESCRIBE uniquement)
Exemple de sortie :
id | name | email
1 | Alice | alice@example.com
2 | Bob | bob@example.com
🛡️ Sécurité
Protection intégrée : Le serveur bloque automatiquement les requêtes destructives :
- ❌ DROP, DELETE, TRUNCATE
- ❌ ALTER, CREATE
- ❌ INSERT, UPDATE
✅ Seules les requêtes en lecture sont autorisées (SELECT, SHOW, DESCRIBE)
🧪 Test manuel
Pour tester le serveur en ligne de commande :
DB_USER=votre_user DB_PASSWORD=votre_pass node index.js
📊 Optimisation des tokens
Ce serveur utilise des formats de sortie ultra-compacts :
| Type de données | Format JSON | Format optimisé | Économie |
|---|---|---|---|
| Listes simples | ["a","b","c"] |
a\nb\nc |
~93% |
| Tables | [{"col":"val"}] |
col|val |
~75% |
| Structures | JSON indenté | Pipe-separated | ~80% |
Impact : Réduction drastique des coûts d'API et des temps de réponse ! 🚀
🗺️ Roadmap & Futures évolutions
Version 1.1 (Court terme)
- [ ] Support des connexions distantes sécurisées (SSH tunnel)
- [ ] Pagination automatique pour les grandes requêtes
- [ ] Option
--limitpour limiter le nombre de résultats - [ ] Cache des schémas de tables pour réduire les requêtes
- [ ] Support des transactions en lecture seule
Version 1.2 (Moyen terme)
- [ ] Mode d'écriture optionnel avec confirmation explicite
- [ ] Export des résultats (CSV, JSON)
- [ ] Statistiques d'utilisation et monitoring
- [ ] Support de multiples connexions simultanées
- [ ] Interface web pour visualiser les résultats
Version 2.0 (Long terme)
- [ ] Support PostgreSQL et SQLite
- [ ] Génération automatique de requêtes SQL à partir de langage naturel
- [ ] Analyse et suggestions d'optimisation de schéma
- [ ] Détection automatique des relations entre tables
- [ ] Mode "explain" pour les performances des requêtes
- [ ] Snapshots de bases pour comparaisons
Idées à explorer
- [ ] Plugin pour VSCode
- [ ] Support des vues matérialisées
- [ ] Système de permissions granulaire par table
- [ ] Audit logs des requêtes exécutées
- [ ] Support des procédures stockées (lecture seule)
🤝 Contribution
Les contributions sont les bienvenues !
- Fork le projet
- Créer une branche (
git checkout -b feature/amelioration) - Commit vos changements (
git commit -m 'Ajout fonctionnalité') - Push vers la branche (
git push origin feature/amelioration) - Ouvrir une Pull Request
📝 License
MIT License - voir le fichier LICENSE pour plus de détails.
🙏 Remerciements
- Model Context Protocol par Anthropic
- mariadb - Client Node.js pour MariaDB
📧 Contact
Pour toute question ou suggestion, ouvrez une issue.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。