Skip to main content
Glama

MCP PyODBC Server

MIT License
3
  • Apple
  • Linux

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.

mcp-client-und-servers|648x499


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. UV installieren :

    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

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:

  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.

Verifiziert auf MseeP

-
security - not tested
-
license - not tested
-
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
              -
              license
              A
              quality
              A high-performance MCP server utilizing libSQL for persistent memory and vector search capabilities, enabling efficient entity management and semantic knowledge storage.
              Last updated -
              6
              253
              74
              MIT License
            • -
              security
              -
              license
              -
              quality
              The Multi DB MCP Server is a high-performance implementation of the Database Model Context Protocol designed to revolutionize how AI agents interact with databases. Currently supporting MySQL and PostgreSQL databases.
              Last updated -
              295
              MIT License
              • Linux
              • Apple
            • -
              security
              -
              license
              -
              quality
              A FastMCP server that provides natural language interaction with MS SQL databases, enabling users to query data, list tables, describe structures, and execute database operations through a conversational AI interface.
              Last updated -
            • -
              security
              -
              license
              -
              quality
              MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
              Last updated -
              484
              Apache 2.0
              • Linux

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/OpenLinkSoftware/mcp-pyodbc-server'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server