MCP PyODBC Server

Integrations

  • Allows interaction with WhatsApp contacts through Claude, leveraging AI capabilities in WhatsApp conversations by connecting to a database backend via ODBC.


MCP-Server-ODBC über PyODBC

Ein leichter MCP-Server (Model Context Protocol) für ODBC, erstellt mit FastAPI und pyodbc . Dieser Server ist kompatibel mit Virtuoso DBMS und anderen DBMS-Backends mit ODBC-Treiber.


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

  1. Installieren Sie uv :
    pip install uv
    Oder verwenden Sie Homebrew:
    brew install uv
  2. Überprüfungen der unixODBC-Laufzeitumgebung :
  3. Überprüfen Sie die Installationskonfiguration (d. h. den Speicherort der wichtigsten INI-Dateien), indem Sie Folgendes ausführen: odbcinst -j
  4. Listen Sie die verfügbaren Datenquellennamen auf, indem Sie Folgendes ausführen: odbcinst -q -s
  5. ODBC-DSN-Setup : Konfigurieren Sie Ihren ODBC-Datenquellennamen ( ~/.odbc.ini ) für die Zieldatenbank. Beispiel für Virtuoso DBMS:
    [VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so Database = Demo Address = localhost:1111 WideAsUTF16 = Yes

Installation

Klonen Sie dieses Repository:

git clone https://github.com/OpenLinkSoftware/mcp-pyodbc-server.git cd mcp-pyodbc-server

Umgebungsvariablen

Aktualisieren Sie Ihre .env indem Sie die Standardeinstellungen entsprechend Ihren Präferenzen überschreiben

ODBC_DSN=VOS ODBC_USER=dba ODBC_PASSWORD=dba API_KEY=xxx

Konfiguration

Für Claude Desktop- Benutzer: Fügen Sie Folgendes zu claude_desktop_config.json hinzu:

{ "mcpServers": { "my_database": { "command": "uv", "args": ["--directory", "/path/to/mcp-pyodbc-server", "run", "mcp-pyodbc-server"], "env": { "ODBC_DSN": "dsn_name", "ODBC_USER": "username", "ODBC_PASSWORD": "password", "API_KEY": "sk-xxx" } } } }

Verwendung

Mitgelieferte Werkzeuge

Nach erfolgreicher Installation stehen den MCP-Clientanwendungen die folgenden Tools zur Verfügung.

Überblick

NameBeschreibung
podbc_get_schemasListen Sie Datenbankschemata auf, auf die das verbundene Datenbankverwaltungssystem (DBMS) zugreifen kann.
podbc_get_tablesListen Sie Tabellen auf, die mit einem ausgewählten Datenbankschema verknüpft sind.
podbc_describe_tableGeben 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_namesListen Sie Tabellen auf, basierend auf einem Teilzeichenfolgenmuster aus dem Eingabefeld q , das mit einem ausgewählten Datenbankschema verknüpft ist.
podbc_query_databaseFühren Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.
podbc_execute_queryFühren Sie eine SQL-Abfrage aus und geben Sie Ergebnisse im JSONL-Format zurück.
podbc_execute_query_mdFühren Sie eine SQL-Abfrage aus und geben Sie die Ergebnisse im Markdown-Tabellenformat zurück.
podbc_spasql_queryFühren Sie eine SPASQL-Abfrage aus und geben Sie Ergebnisse zurück.
podbc_sparql_queryFühren Sie eine SPARQL-Abfrage aus und geben Sie Ergebnisse zurück.
podbc_virtuoso_support_aiInteragieren 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:

  1. Installieren Sie den MCP Inspector:
    npm install -g @modelcontextprotocol/inspector
  2. Starten Sie den Inspektor:
    npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-pyodbc-server run mcp-pyodbc-server

Greifen Sie auf die bereitgestellte URL zu, um Probleme mit Serverinteraktionen zu beheben.

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Ein leichtgewichtiger MCP-Server, der Datenbankzugriff und -abfragen über ODBC-Verbindungen ermöglicht, mit spezieller Unterstützung für Virtuoso DBMS-Funktionen wie SPARQL und KI-Unterstützung durch natürliche Sprache.

  1. Merkmale
    1. Voraussetzungen
      1. Installation
        1. Umgebungsvariablen
          1. Konfiguration
            1. Verwendung
              1. Mitgelieferte Werkzeuge
              2. Fehlerbehebung

            Related MCP Servers

            • A
              security
              F
              license
              A
              quality
              MCP server that allows Claude AI to interact directly with MySQL databases, enabling query execution and table information retrieval through natural language.
              Last updated -
              1
              6
              3
              JavaScript
            • -
              security
              A
              license
              -
              quality
              Open source MCP server specializing in easy, fast, and secure tools for Databases.
              Last updated -
              870
              Go
              Apache 2.0
              • Linux
            • -
              security
              -
              license
              -
              quality
              An MCP server that enables natural language interaction with Apache Iceberg data lakehouses, allowing users to query table metadata, schemas, and properties through Claude, Cursor, or other MCP clients.
              Last updated -
              31
              Python
              Apache 2.0
            • -
              security
              -
              license
              -
              quality
              An MCP server that allows working with MySQL databases by providing tools for executing read-only SQL queries, getting table schemas, and listing database tables.
              Last updated -
              1
              JavaScript

            View all related MCP servers

            ID: nryz2kz7w4