Enables querying the ProAlpha database through REST API endpoints using curl commands for SQL execution and schema exploration
Uses .env files for server configuration, allowing customization of database connections, API keys, and server settings
Connects to ProAlpha MSSQL databases, automatically captures database schemas, and provides read-only SQL query capabilities through a Python-based MCP server
ProAlpha MCP Server
Ein Model-Context-Protocol (MCP) Server für ProAlpha MSSQL-Datenbanken, der eine Read-Only-Schnittstelle zu Ihrer Datenbank bereitstellt und automatisch Schemas erfasst.
Funktionen
- Verbindung zu ProAlpha MSSQL-Datenbanken
- Automatische Erfassung des Datenbankschemas
- Bereitstellung von Tabellenstrukturen als MCP-Ressourcen
- Tools für Read-Only SQL-Abfragen
- Prompts für gängige Datenanalyseaufgaben
Anforderungen
- Python 3.8 oder höher
- Zugriff auf eine laufende ProAlpha-API (siehe .env: DB_SERVER_HOST, DB_SERVER_PORT, DB_API_KEY)
- Eine ProAlpha MSSQL-Datenbank (über die API erreichbar)
Hinweis: Ein ODBC-Treiber für SQL Server wird nur auf dem API-Server benötigt, der die Verbindung zur MSSQL-Datenbank herstellt. Für den MCP-Server selbst ist keine ODBC-Installation erforderlich.
Installation
- Repository klonen oder herunterladen
- Neue Umgebung mit conda anlegen (empfohlen):
- uv installieren (falls nicht vorhanden):
- Abhängigkeiten installieren:
Hinweis: uv ist ein schneller, moderner Ersatz für pip und wird für die Installation empfohlen. Alternativ kann weiterhin pip verwendet werden.
- Konfigurationsdateien erstellen:
Erstellen Sie eine .env
Datei mit den folgenden Einstellungen:
- MCP_TRANSPORT bestimmt das Transport-Protokoll für den Server:
Transport-Protokoll | Beschreibung | Endpoint |
---|---|---|
streamable-http | Empfohlen für Web-Deployments (Default) | http://localhost:8000/mcp |
stdio | Für lokale Tools und CLI-Skripte | |
sse | Für Kompatibilität mit bestehenden SSE-Clients | http://localhost:8000/sse |
- Optional: Erstellen Sie eine Standard-Konfiguration für MCP-Prompts:
Dies erstellt eine mcp_prompts.json
-Datei mit Standardvorlagen für Prompts und Toolbeispiele.
Verwendung
Server starten
Der Server verwendet das in der .env
konfigurierte Transport-Protokoll (MCP_TRANSPORT
).
- Für lokale CLI-Tools:
MCP_TRANSPORT=stdio
- Für Web-Deployments:
MCP_TRANSPORT=streamable-http
- Für SSE-Clients:
MCP_TRANSPORT=sse
(optional) mit fastmcp-cli:
Der Server wird standardmäßig auf Port 8000 gestartet (außer bei stdio).
Verbindung mit MCP Inspector
Öffnen Sie den MCP Inspector und verbinden Sie sich mit Ihrem Server (z.B. http://localhost:8000/sse
).
Alternativ: MCP Inspector mit uvx
Falls Sie uvx (Node.js-Toolrunner von uv) installiert haben, können Sie den Inspector auch so starten:
Hinweis: uvx funktioniert analog zu npx, ist aber oft schneller und kann für Node.js-basierte Tools verwendet werden.
HTTP REST-API verwenden
Die REST-API ist parallel zum MCP-Server auf Port 8081 verfügbar. Beispiele für Endpunkte:
GET /api/schema
– Gibt das gesamte Datenbankschema zurückGET /api/schema/tables
– Gibt eine Liste aller Tabellen zurückGET /api/schema/tables/{table_name}
– Gibt das Schema einer bestimmten Tabelle zurückGET /api/schema/views
– Gibt eine Liste aller Views zurückGET /api/schema/views/{view_name}
– Gibt das Schema einer bestimmten View zurückGET /api/schema/relationships
– Gibt alle Tabellenbeziehungen zurückPOST /api/query
– Führt eine Read-Only-SQL-Abfrage aus (JSON:{ "query": "SELECT ..." }
)POST /api/schema/refresh
– Aktualisiert den Schema-CacheGET /api/tools
– Gibt eine Liste aller verfügbaren Tools mit Name, Beschreibung und Parametern zurück (Tool-Discovery, analog zulist_tools
im MCP-Server)GET /api/tools/{tool_name}
– Gibt die Details eines bestimmten Tools (Name, Beschreibung, Parameter) zurückGET /api/prompts
– Gibt eine Liste aller verfügbaren Prompts mit Name, Titel und Beschreibung zurückGET /api/prompts/{prompt_name}
– Gibt das Template eines bestimmten Prompts zurück
Beispiel für eine SQL-Abfrage per curl:
MCP-Ressourcen
Der Server stellt folgende MCP-Ressourcen bereit:
resource://database_schema
– Das vollständige Datenbankschematable://{table_name}
– Schema jeder Tabelleview://{view_name}
– Schema jeder Viewresource://relationships
– Beziehungen zwischen den Tabellen
MCP-Tools
Der Server stellt folgende MCP-Tools bereit:
execute_sql
– Führt eine Read-Only-SQL-Abfrage ausget_table_sample
– Gibt eine Stichprobe der Daten einer Tabelle zurückrefresh_schema
– Aktualisiert den Schema-Cachelist_tools
– Gibt eine Liste aller verfügbaren Tools mit Beschreibung und Parametern zurück (nützlich für LLMs und Clients zur Tool-Discovery)
Testen des Servers
Das Repository enthält ein Test-Skript, mit dem die grundlegende Funktionalität des Servers überprüft werden kann:
Das Test-Skript prüft die MCP-Serverfunktionalität und kann auch REST-API-Endpunkte testen.
Beispiel für MCP-Anfragen
SQL-Abfrage ausführen
Tabellendaten abrufen
Integration mit LLMs
Dieser MCP-Server ist kompatibel mit jedem LLM, das das Model-Context-Protocol unterstützt.
Beispiel-Prompts
Datenbankanalyse
Datenabfrage
Schema-Erkundung
Hinweis: Mit dem Tool
list_tools
können LLMs und Clients alle verfügbaren Tools und deren Parameter dynamisch abfragen und so die Interaktion automatisieren oder Vorschläge generieren.
Deployment mit Docker und Docker Compose
Docker
Sie können den MCP-Server auch in einem Docker-Container betreiben. Ein passendes Dockerfile
ist im Repository enthalten.
Build und Starten des Containers:
- Die Umgebungsvariablen werden über die
.env
-Datei gesetzt (siehe Abschnitt Installation). - Der Server ist dann unter
http://localhost:8000
erreichbar. - Falls Sie auch die REST-API zur Verfügung stellen möchten, denken Sie daran, zusätzlich Port 8081 zu mappen:
Docker Compose
Für komplexere Setups (z.B. mit mehreren Services oder persistenter Speicherung) empfiehlt sich Docker Compose. Ein Beispiel für eine docker-compose.yml
ist im Repository enthalten:
Starten mit Docker Compose:
- Die Daten im Ordner
schema_cache
werden im Container persistiert. - Die Konfiguration erfolgt weiterhin über die
.env
-Datei.
Lizenz
MIT (LICENSE)
This server cannot be installed
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
A Model-Context-Protocol server that provides a read-only interface to ProAlpha MSSQL databases, automatically capturing database schemas and enabling data analysis through SQL queries.
Related MCP Servers
- -securityAlicense-qualityA Model Context Protocol server that enables secure and structured interaction with Microsoft SQL Server databases, allowing AI assistants to list tables, read data, and execute SQL queries with controlled access.Last updated -43PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables secure interaction with Microsoft SQL Server databases, allowing AI assistants to list tables, read data, and execute SQL queries through a controlled interface.Last updated -1199PythonMIT License
- AsecurityAlicenseAqualityA Model Context Protocol server that enables executing SQL queries and managing connections with Microsoft SQL Server databases.Last updated -11215TypeScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server that enables interaction with PostgreSQL databases to list tables, retrieve schemas, and execute read-only SQL queries.Last updated -28JavaScriptMIT License