Integrations
Built with FastAPI to provide a lightweight MCP server for ODBC database connections.
Provides capability to format query results as Markdown tables for better readability and visualization.
Connects to MySQL databases through PyMySQL, supporting schema exploration, table information retrieval, and query execution.
MCP Server ODBC über SQLAlchemy
Ein leichter MCP-Server (Model Context Protocol) für ODBC, erstellt mit FastAPI , pyodbc und SQLAlchemy . Dieser Server ist kompatibel mit Virtuoso DBMS und anderen DBMS-Backends, die einen SQLAlchemy-Provider implementieren.
Merkmale
- Schemas abrufen : Ruft alle Schemanamen aus der verbundenen Datenbank ab und listet sie auf.
- Tabellen abrufen : Rufen Sie Tabelleninformationen für bestimmte oder alle Schemata ab.
- Tabelle beschreiben : Erstellen Sie eine detaillierte Beschreibung der Tabellenstrukturen, einschließlich:
- Spaltennamen und Datentypen
- Nullable-Attribute
- Primär- und Fremdschlüssel
- Tabellen durchsuchen : Filtern und Abrufen von Tabellen basierend auf Namensteilzeichenfolgen.
- Gespeicherte Prozeduren ausführen : Führen Sie im Fall von Virtuoso gespeicherte Prozeduren aus und rufen Sie Ergebnisse ab.
- Abfragen ausführen :
- JSONL-Ergebnisformat: Optimiert für strukturierte Antworten.
- Markdown-Tabellenformat: Ideal für Berichte und Visualisierung.
Voraussetzungen
- Installieren Sie uv :Oder verwenden Sie Homebrew:CopyCopy
- Überprüfungen der unixODBC-Laufzeitumgebung :
- Überprüfen Sie die Installationskonfiguration (d. h. den Speicherort der wichtigsten INI-Dateien), indem Sie Folgendes ausführen:
odbcinst -j
- Listen Sie die verfügbaren Datenquellennamen auf, indem Sie Folgendes ausführen:
odbcinst -q -s
- ODBC-DSN-Setup : Konfigurieren Sie Ihren ODBC-Datenquellennamen (
~/.odbc.ini
) für die Zieldatenbank. Beispiel für Virtuoso DBMS:Copy - SQLAlchemy-URL-Bindung : Verwenden Sie das Format:Copy
Installation
Klonen Sie dieses Repository:
Umgebungsvariablen
Aktualisieren Sie Ihre .env
indem Sie die Standardeinstellungen entsprechend Ihren Präferenzen überschreiben
Konfiguration
Für Claude Desktop- Benutzer: Fügen Sie Folgendes zu claude_desktop_config.json
hinzu:
Verwendung
Verbindungs-URLs für Datenbankverwaltungssysteme (DBMS)
Hier sind die Pyodbc-URL-Beispiele für die Verbindung mit DBMS-Systemen, die mit diesem MCP-Server getestet wurden.
Datenbank | URL-Format |
---|---|
Virtuoses DBMS | virtuoso+pyodbc://user:password@ODBC_DSN |
PostgreSQL | postgresql://user:password@localhost/dbname |
MySQL | mysql+pymysql://user:password@localhost/dbname |
SQLite | sqlite:///path/to/database.db |
Sobald die Verbindung hergestellt ist, können Sie über Claude mit Ihren WhatsApp-Kontakten interagieren und die KI-Funktionen von Claude in Ihren WhatsApp-Konversationen nutzen. |
Mitgelieferte Werkzeuge
Überblick
Name | Beschreibung |
---|---|
podbc_get_schemas | Listen Sie Datenbankschemata auf, auf die das verbundene Datenbankverwaltungssystem (DBMS) zugreifen kann. |
podbc_get_tables | Listen Sie Tabellen auf, die mit einem ausgewählten Datenbankschema verknüpft sind. |
podbc_describe_table | Geben Sie die Beschreibung einer Tabelle an, die mit einem bestimmten Datenbankschema verknüpft ist. Dies umfasst Informationen zu Spaltennamen, Datentypen, Nullverarbeitung, Autoinkrementierung, Primärschlüssel und Fremdschlüsseln. |
podbc_filter_table_names | Listen Sie Tabellen auf, basierend auf einem Teilzeichenfolgenmuster aus dem Eingabefeld q , das mit einem ausgewählten Datenbankschema verknüpft ist. |
podbc_query_database | Führen Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück. |
podbc_execute_query | Führen Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück. |
podbc_execute_query_md | Führen Sie eine SQL-Abfrage aus und geben Sie die Ergebnisse im Markdown-Tabellenformat zurück. |
podbc_spasql_query | Führen Sie eine SPASQL-Abfrage aus und geben Sie Ergebnisse zurück. |
podbc_sparql_query | Führen Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück. |
podbc_virtuoso_support_ai | Interagieren Sie mit dem Virtuoso Support Assistant/Agent – einer Virtuoso-spezifischen Funktion für die Interaktion mit LLMs |
Detaillierte Beschreibung
- podbc_get_schemas
- Rufen Sie eine Liste aller Schemanamen aus der verbundenen Datenbank ab und geben Sie sie zurück.
- Eingabeparameter:
user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt ein JSON-String-Array mit Schemanamen zurück.
- podbc_get_tables
- Ruft eine Liste mit Informationen zu Tabellen in einem angegebenen Schema ab und gibt sie zurück. Wenn kein Schema angegeben ist, wird das Standardschema der Verbindung verwendet.
- Eingabeparameter:
schema
(Zeichenfolge, optional): Datenbankschema zum Filtern von Tabellen. Standardmäßig wird der Verbindungsstandard verwendet.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt eine JSON-Zeichenfolge mit Tabelleninformationen zurück (z. B. TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).
- podbc_filter_table_names
- Filtert und gibt Informationen zu Tabellen zurück, deren Namen eine bestimmte Teilzeichenfolge enthalten.
- Eingabeparameter:
q
(Zeichenfolge, erforderlich): Die Teilzeichenfolge, nach der in Tabellennamen gesucht werden soll.schema
(Zeichenfolge, optional): Datenbankschema zum Filtern von Tabellen. Standardmäßig wird der Verbindungsstandard verwendet.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt eine JSON-Zeichenfolge zurück, die Informationen zu übereinstimmenden Tabellen enthält.
- podbc_describe_table
- Rufen Sie detaillierte Informationen zu den Spalten einer bestimmten Tabelle ab und geben Sie sie zurück.
- Eingabeparameter:
schema
(Zeichenfolge, erforderlich): Der Datenbankschemaname, der die Tabelle enthält.table
(Zeichenfolge, erforderlich): Der Name der zu beschreibenden Tabelle.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt eine JSON-Zeichenfolge zurück, die die Spalten der Tabelle beschreibt (z. B. COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).
- podbc_query_database
- Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse im JSON-Format zurück.
- Eingabeparameter:
query
(Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt Abfrageergebnisse als JSON-Zeichenfolge zurück.
- podbc_query_database_md
- Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse als Markdown-Tabelle formatiert zurück.
- Eingabeparameter:
query
(Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt Abfrageergebnisse als Markdown-Tabellenzeichenfolge zurück.
- podbc_query_database_jsonl
- Führen Sie eine Standard-SQL-Abfrage aus und geben Sie die Ergebnisse im JSON-Zeilenformat (JSONL) zurück (ein JSON-Objekt pro Zeile).
- Eingabeparameter:
query
(Zeichenfolge, erforderlich): Die auszuführende SQL-Abfragezeichenfolge.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt Abfrageergebnisse als JSONL-Zeichenfolge zurück.
- podbc_spasql_query
- Führen Sie eine SPASQL-Abfrage (SQL/SPARQL-Hybrid) aus, um Ergebnisse zurückzugeben. Dies ist eine Virtuoso-spezifische Funktion.
- Eingabeparameter:
query
(Zeichenfolge, erforderlich): Die SPASQL-Abfragezeichenfolge.max_rows
(Zahl, optional): Maximale Anzahl der zurückzugebenden Zeilen. Der Standardwert ist 20.timeout
(Zahl, optional): Abfrage-Timeout in Millisekunden. Standardmäßig 30000.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt das Ergebnis des zugrunde liegenden gespeicherten Prozeduraufrufs zurück (z. B.
Demo.demo.execute_spasql_query
).
- podbc_sparql_query
- Führen Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück. Dies ist eine Virtuoso-spezifische Funktion.
- Eingabeparameter:
query
(Zeichenfolge, erforderlich): Die SPARQL-Abfragezeichenfolge.format
(Zeichenfolge, optional): Gewünschtes Ergebnisformat. Standardmäßig „json“.timeout
(Zahl, optional): Abfrage-Timeout in Millisekunden. Standardmäßig 30000.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt das Ergebnis des zugrunde liegenden Funktionsaufrufs zurück (z. B.
"UB".dba."sparqlQuery"
).
- podbc_virtuoso_support_ai
- Nutzt eine Virtuoso-spezifische KI-Assistentenfunktion und übergibt eine Eingabeaufforderung und einen optionalen API-Schlüssel. Dies ist eine Virtuoso-spezifische Funktion.
- Eingabeparameter:
prompt
(Zeichenfolge, erforderlich): Der Eingabeaufforderungstext für die KI-Funktion.api_key
(Zeichenfolge, optional): API-Schlüssel für den KI-Dienst. Standardmäßig „keine“.user
(Zeichenfolge, optional): Datenbankbenutzername. Standardmäßig „demo“.password
(Zeichenfolge, optional): Datenbankkennwort. Standardmäßig „demo“.dsn
(Zeichenfolge, optional): Name der ODBC-Datenquelle. Standardmäßig „Local Virtuoso“.
- Gibt das Ergebnis des Funktionsaufrufs des AI Support Assistant zurück (z. B.
DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI
).
Fehlerbehebung
Zur einfacheren Fehlerbehebung:
- Installieren Sie den MCP Inspector:Copy
- Starten Sie den Inspektor:Copy
Greifen Sie auf die bereitgestellte URL zu, um Probleme mit Serverinteraktionen zu beheben.
You must be authenticated.
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.
Tools
Bietet SQLAlchemy-Konnektivität (über pyodbc) zu jedem Datenbankverwaltungssystem (DBMS), das über SQLAlchemy zugänglich ist.
Related Resources
Related MCP Servers
- -securityAlicense-qualityAn MCP server that enables MySQL database integration with Claude. You can execute SQL queries and manage database connections.Last updated -1PythonMIT License
- -securityAlicense-qualityA server that helps people access and query data in databases using the Query Runner with integration of the Model Context Protocol (MCP) Python SDK. Support databases including PostgreSQL Redshift MySQL Microsoft SQL Server Google APIs Amazon Web Services (via boto3) CockroachDB SQLiteLast updated -26PythonGPL 3.0
- -securityAlicense-qualityProvides generic Open Database Connectivity (ODBC) to any Database Management System (DBMS) that's accessible via an ODBC Connector (Driver).Last updated -1TypeScriptMIT License
- -security-license-qualityA connector that gives Claude direct access to MySQL databases through the Model Context Protocol, enabling natural language querying, schema exploration, and database management.Last updated -PythonMIT License