Customer MCP Server
Customer MCP Server
Customer MCP Server ist ein Projekt zur Verbindung von LLMs mit Kundendaten mithilfe des Model Context Protocol (MCP), damit KI-Clients sicher und mit einem klaren Kontrollrahmen auf Kundendaten zugreifen können.
Systemüberblick
Dieses System ist so konzipiert, dass LLMs nur über definierte Tools auf Kundendaten zugreifen können, ohne direkten Zugriff auf die Datenbank.
Unterstützte Funktionen
Grundlegende Kundeninformationen abrufen
Semantische Suche im Kundenkommunikationsverlauf mithilfe von Vektor-Embeddings
Zusammenfassung von Kauf- und Finanztransaktionsdaten mit exakten Werten
Audit-Log für Transaktionen erfassen
Schutz vor Prompt Injection und unbefugtem Datenzugriff
Related MCP server: safedb-mcp
Architektur
LLM Client
|
| MCP Protocol
v
MCP Server (Python)
|
+-------------------+
| |
v v
Semantic Search SQL / Financial
PostgreSQL + pgvector PostgreSQLHauptfunktionen
1. Kundenprofil
Grundlegende Kundendaten abrufen, z. B. customer_id, name, email, phone, created_at
2. Semantische Suche nach Interaktionen
Den Chat-/Interaktionsverlauf des Kunden mithilfe von Embedding-Vektoren durchsuchen
Geeignet für die semantische Suche nach Bedeutung in allgemeinen Fragen wie „refund issue“, „complaint“, „billing concern“
3. Finanzübersicht
Berechnet die Anzahl der Bestellungen und den Gesamtkaufbetrag aus der Datenbank
Verwendet SQL-Aggregation, um genaue und zuverlässige Werte zu erhalten
Gibt ein Audit-Log der Transaktionen mit Hash-Referenz zurück
Beispiel für eine Hybridabfrage
Beispielfrage:
„Welche Probleme hat der Kunde gemeldet und wie hoch ist der Gesamtkaufbetrag?“
Ablauf:
search_customer_interactions()
|
vpgvector-Ähnlichkeitssuche
+get_customer_purchase_summary()
|
vSQL-Aggregation
|
vKombinierte verifizierte Antwort
Prozess:
Der MCP-Server ruft die semantische Suche in interaction_history mithilfe von pgvector auf.
Der MCP-Server ruft die Finanzübersicht aus purchase_orders per SQL-Aggregation ab.
Fasst die Ergebnisse zusammen:
Kundenkontext
Relevante Interaktion
Exakter Finanzbetrag
und sendet sie an das LLM zurück.
4. Sicherheitsvorkehrungen
Erkennt Prompt-Injection-Muster
Überprüft die customer_id vor dem Datenzugriff
Beschränkt den Datenzugriff ausschließlich auf MCP-Tools
Verwendete Technologien
Python 3.12+
FastMCP
asyncpg
pydantic
openai
google-genai
PostgreSQL 17 + pgvector
Docker Compose
Projektstruktur
customer-mcp/
├── app/
│ ├── config.py
│ ├── database.py
│ ├── embeddings.py
│ ├── mcp_server.py
│ ├── security.py
│ └── tools/
│ ├── customer.py
│ ├── financial.py
│ └── semantic_search.py
├── docs/
│ └── ARCHITECTURE.md
├── sql/
│ ├── 01_extensions.sql
│ ├── 02_schema.sql
│ ├── 03_indexes.sql
│ ├── 04_seed.sql
│ └── 05_security.sql
├── docker-compose.yml
├── requirements.txt
├── test_customer.py
├── test_embedding.py
├── test_financial.py
├── test_search.py
├── test_security.py
└── README.mdVoraussetzungen
Python 3.12 oder neuer
Docker Desktop
Netzwerkzugriff zum Installieren von Paketen aus PyPI
Installation und Konfiguration
1. Virtuelle Umgebung erstellen
py -3.12 -m venv venvUnter Windows:
venv\Scripts\activate2. Abhängigkeiten installieren
pip install -r requirements.txt3. Umgebungsvariablen konfigurieren
Erstellen Sie eine .env-Datei mit folgendem Beispiel:
DATABASE_URL=postgresql://mcp_readonly_user:CHANGE_ME@localhost:5432/customer_mcp
GEMINI_API_KEY=your_gemini_api_key_here4. PostgreSQL-Datenbank starten
docker compose up -dDocker Compose erstellt PostgreSQL- und pgvector-Container und initialisiert die Datenbank automatisch mit SQL-Skripten im Ordner sql/
Hinweis:
Die SQL-Skripte in docker-entrypoint-initdb.d werden nur beim ersten Erstellen des PostgreSQL-Volumes ausgeführt.
Wenn Sie eine vollständige Neuinitialisierung durchführen möchten:
docker compose down -v
docker compose up -d
Initialisierungsreihenfolge
sql/01_extensions.sql PostgreSQL-Erweiterungen aktivieren pgvector aktivieren sql/02_schema.sql Kundentabellen erstellen Interaktionsverlauf-Tabelle erstellen Kauftabellen erstellen Unveränderliche Audit-Struktur erstellen sql/03_indexes.sql Datenbankindizes erstellen pgvector-HNSW-Index für die semantische Suche erstellen sql/04_seed.sql Demo-Kundendaten einfügen Interaktionsverlauf einfügen Kaufdatensätze einfügen Audit-Datensätze einfügen sql/05_security.sql Schreibgeschützten Datenbankbenutzer erstellen SELECT-Berechtigung erteilen
Container überprüfen
docker ps5. MCP-Server ausführen
python -m app.mcp_serverMCP Inspector
Die MCP-Tools können auch über die Benutzeroberfläche geprüft werden.
mcp-inspector python -m app.mcp_serverVerfügbare MCP-Tools
get_customer_profile
Ruft das Profil eines Kunden ab.
Datenquelle:
customers-Tabelle
Rückgabewerte:
customer_id
first_name
last_name
email
phone
created_at
Beispieleingabe:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000"
}search_customer_interactions
Semantische Suche im Interaktionsverlauf über pgvector.
Beispieleingabe:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000",
"query": "refund issue",
"limit": 3
}get_customer_purchase_summary
Ruft den exakten Kaufbetrag per SQL-Aggregation ab.
Beispieleingabe:
{
"customer_id": "550e8400-e29b-41d4-a716-446655440000"
}Verfügbare MCP-Tools
Tool | Zweck |
get_customer_profile | Kundenprofilinformationen abrufen |
search_customer_interactions | Semantische Suche im Kundenkonversationsverlauf |
get_customer_purchase_summary | Exakte Finanzübersicht und Audit-Log abrufen |
Tests
Die folgenden Testdateien können aus dem Repository-Root-Verzeichnis ausgeführt werden:
python test_embedding.py
python test_search.py
python test_financial.py
python test_security.py
python test_customer.pySicherheitshinweise
LLMs können nicht direkt auf die Datenbank zugreifen.
Der Datenzugriff ist ausschließlich über MCP-Tools möglich.
Für customer_id wird eine Eingabevalidierung verwendet.
Prompt-Injection-Muster werden erkannt.
Finanzdaten verwenden SQL-Aggregation, um exakte Werte zurückzugeben.
Das Audit-Log ist eine unveränderliche Append-Only-Struktur.
Der Datenbankbenutzer für MCP verwendet das Prinzip der geringsten Rechte (Least Privilege).
UPDATE- / DELETE- / DDL-Operationen sind nicht zulässig.
This server cannot be deployed
Maintenance
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
The Ramp MCP server enables users to securely connect Ramp with AI assistants like ChatGPT and Claude to query financial data and take actions using natural language. It transforms Ramp's developer API into a SQL interface that LLMs can query, allowing admins to analyze spend trends, identify cost savings, and run complex SQL analyses on comprehensive datasets (transactions, purchase orders, vendors, users), while all users can manage cards, view transactions, request reimbursements, and get expense policy answers.
Hosted SQL Server MCP server for Claude, ChatGPT and Cursor, with each action switched per account.
Authenticated LLM MCP Agent
Related MCP Servers
- FlicenseAqualityDmaintenanceAn MCP server that connects LLMs to SQL databases for development assistance, enabling query execution, schema exploration, and data manipulation while providing safety controls against destructive operations.5-
- AlicenseAqualityBmaintenanceSecure MCP server for safe, read-only DB access by AI agents, with SQL guardrails, table allowlists, PII masking, and audit logs617 npm9MIT
- FlicenseNot gradedqualityDmaintenanceA governed MCP server for integrating AI agents with customer data, featuring role-based access control, field redaction, and human-in-the-loop approval for secure support operations.1-
- AlicenseNot gradedqualityDmaintenanceA governed analytics MCP server that provides LLM agents with safe, read-only access to data warehouses through a layered safety pipeline including AST validation, column/row governance, PII masking, cost limits, and audit.MIT