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

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
              A
              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
              154
              64
              TypeScript
              MIT License
            • -
              security
              A
              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 -
              260
              Go
              MIT License
              • Linux
              • Apple
            • -
              security
              F
              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 -
              Python
            • -
              security
              A
              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 -
              440
              Go
              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