overmind-postgres -mcp
Un serveur MCP performant pour interagir avec PostgreSQL, doublé d'une bibliothèque TypeScript pour l'intelligence sémantique avec embeddings SOTA (Qwen 8B).
Fonctionnalités
La puissance ultime pour vos bases de données PostgreSQL
Mémoire 4096D
Système RAG intégré via PostgreSQL + pgvector supportant les embeddings SOTA (Qwen 8B) pour une recherche sémantique ultra-précise.
Mémoire Ségréguée
Chaque agent peut posséder ses propres souvenirs isolés tout en ayant accès au socle de connaissances global.
Navigation Autonome
L'agent interagit naturellement avec la base de données via le modèle d'embedding par défaut, sans SQL complexe.
Recherche Hybride
Combinaison puissante de recherche vectorielle et full-text pour des résultats ultra-précis en毫isecondes.
Auto-Embedding
Génération automatique d'embeddings lors de l'insertion de données avec support multi-modèles (Qwen, OpenAI, etc).
Type-Safe
API entièrement typée avec TypeScript et Zod pour une validation robuste des données et IntelliSense complet.
Installation
# Via npm
npm install -g overmind-postgres-mcp
# Via pnpm (recommandé)
pnpm add -g overmind-postgres-mcp
{
"mcpServers": {
"postgresql": {
"command": "npx",
"args": ["-y", "overmind-postgres-mcp"]
}
}
}
POSTGRES_URL=postgresql://user:pass@localhost:5432/db
OPEN_ROUTER_API_KEY=sk-or-v1-...
# 1. Cloner le repo
git clone https://github.com/DeamonDev888/PostgreSQL-MCP-Serveur
cd serveur_PostGreSQL
# 2. Installer les dépendances
pnpm install
# 3. Build le projet
pnpm run build
# 4. Configuration MCP
{
"mcpServers": {
"postgresql": {
"command": "node",
"args": ["PATH/ABSOLU/dist/index.js"]
}
}
}
Utilisation comme Bibliothèque
import { embedText } from "overmind-postgres-mcp/services/embeddings";
import { IntelligentSearchService } from "overmind-postgres-mcp/services/search";
// 1. Générer des embeddings haute qualité
const { embedding, model } = await embedText("Votre texte ici");
// 2. Recherche hybride vectorielle + full-text
const searchService = new IntelligentSearchService();
const results = await searchService.hybridSearch({
query: "Comment configurer le serveur ?",
table: "documents",
mode: "hybrid"
});
// 3. Gestion de la mémoire 4096D
const memory = await searchService.storeKnowledge({
text: "Nouvelle connaissance critique...",
table: "knowledge_base",
metadata: { source: "user", priority: "high" }
});
Cas d'Usage Avancés
Exemples concrets pour vos projets IA
Chatbot avec Mémoire
RAGCréez un chatbot qui se souvient de toutes les conversations et retrouve le contexte pertinent.
// 1. Stocker une conversation
await searchService.storeKnowledge({
text: "User: Comment installer ?\nBot: Via npx -y overmind-postgres-mcp",
table: "chat_history",
metadata: { userId: "123", date: "2026-02-22" }
});
// 2. Rechercher le contexte pertinent
const context = await searchService.hybridSearch({
query: "Installation avec npx",
table: "chat_history",
filters: { userId: "123" }
});
Analyse de Documents
EnterpriseIndexez et recherchez dans des milliers de documents PDF, Markdown ou textes.
// Indexer un document
await searchService.storeKnowledge({
text: documentContent,
table: "enterprise_docs",
metadata: {
title: "Guide Technique",
category: "Engineering",
author: "John Doe",
tags: ["technical", "guide"]
}
});
// Recherche sémantique par catégorie
const results = await searchService.hybridSearch({
query: "Comment déployer en production ?",
table: "enterprise_docs",
filters: { category: "Engineering" }
});
Agent Multi-Tâches
OrchestrationPlusieurs agents partagent une mémoire commune tout en gardant leurs souvenirs privés.
// Agent 1: Expert SEO
await searchService.storeKnowledge({
text: "Meilleures pratiques SEO 2026",
table: "shared_knowledge",
agentName: "seo-expert"
});
// Agent 2: Analyste Marketing
await searchService.storeKnowledge({
text: "Stratégie marketing Q1",
table: "shared_knowledge",
agentName: "marketing-analyst"
});
// Les deux agents accèdent à la mémoire commune
const insights = await searchService.hybridSearch({
query: "Stratégie SEO et marketing",
table: "shared_knowledge"
});
Base de Code Intelligente
DevToolsIndexez votre codebase pour permettre des recherches sémantiques naturelles.
// Indexer un fichier
await searchService.storeKnowledge({
text: `
// Fonction d'authentification
export async function authenticate(user) {
return await db.users.findOne({ email: user.email });
}
`,
table: "codebase",
metadata: {
file: "auth.ts",
language: "typescript",
functions: ["authenticate"]
}
});
// Rechercher par intention
const authCode = await searchService.hybridSearch({
query: "Comment authentifier un utilisateur ?",
table: "codebase"
});
Recherche E-Commerce
BusinessRecherche produits par description, caractéristiques et avis clients.
// Indexer un produit
await searchService.storeKnowledge({
text: `
Laptop ultra-léger, 16GB RAM, 512GB SSD,
Écran 4K, Parfait pour les développeurs
`,
table: "products",
metadata: {
id: "prod_123",
price: 1299.99,
category: "Computers",
rating: 4.8
}
});
// Recherche naturelle
const laptops = await searchService.hybridSearch({
query: "Ordinateur portable pour développeur",
table: "products",
filters: { category: "Computers" }
});
Système de Tutorat IA
EducationCréez un tuteur personnalisé qui s'adapte au niveau de l'étudiant.
// Enregistrer les progrès
await searchService.storeKnowledge({
text: `
Étudiant maîtrise: variables, boucles
Difficultés: récursion, algorithmes
Niveau: intermédiaire
`,
table: "student_progress",
metadata: {
studentId: "student_456",
subject: "programming",
lastUpdate: "2026-02-22"
}
});
// Générer un cours personnalisé
const lessons = await searchService.hybridSearch({
query: "Exercices pour améliorer la récursion",
table: "tutorials",
mode: "vector"
});
Exemples d'Usage Agent
Préparer une Table Qwen
use_tool("manage_vectors", {
action: "create",
table: "knowledge_base",
dimensions: 4096
});
Insertion Auto-Embedding
use_tool("insert", {
table: "knowledge_base",
data: { content: "Guide..." },
generateEmbedding: true
});
Recherche Hybride RAG
use_tool("search", {
query: "Comment installer ?",
table: "knowledge_base",
mode: "hybrid"
});