MCP PyODBC Server
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.
Related MCP server: mcp-ohmy-sql
Voraussetzungen
UV installieren :
pip install uvOder verwenden Sie Homebrew:
brew install uvÜberprüfungen der unixODBC-Laufzeitumgebung :
Überprüfen Sie die Installationskonfiguration (d. h. den Speicherort der wichtigsten INI-Dateien), indem Sie Folgendes ausführen:
odbcinst -jListen Sie die verfügbaren Datenquellennamen auf, indem Sie Folgendes ausführen:
odbcinst -q -sODBC-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-serverUmgebungsvariablen
Aktualisieren Sie Ihre .env indem Sie die Standardeinstellungen entsprechend Ihren Präferenzen überschreiben
ODBC_DSN=VOS
ODBC_USER=dba
ODBC_PASSWORD=dba
API_KEY=xxxKonfiguration
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 |
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:
npm install -g @modelcontextprotocol/inspectorStarten 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.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.19-
- -licenseNot gradedqualityCmaintenanceAn MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.3-
- FlicenseNot gradedqualityDmaintenanceA versatile MCP server that connects to multiple relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) and enables secure read-only SQL query execution and metadata access.4-
- AlicenseAqualityDmaintenanceA database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.816MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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