Labsco
MCP SERVER

SQLAlchemy ODBC

by OpenLinkSoftware

Point an assistant at any database you can reach over ODBC - schemas, tables, column detail, and query results as JSONL or as a Markdown table.

Relational SQL Databases
Summary
One connection covers every database your ODBC layer already reaches.

Because the connection is a DSN rather than a driver compiled into the server, adding a second database is an ODBC entry rather than another MCP server - and the same query can come back as JSONL for a machine or as a table for a person.

What it is

An ODBC bridge built on SQLAlchemy and pyodbc. It connects through a DSN you have already configured, so any backend with a SQLAlchemy provider is in reach - Virtuoso included - and the same six calls work across all of them.

What you get
  • Every schema name on the connected database
  • Tables for one schema, or across all of them
  • Tables filtered by a substring, for the one whose name you half-remember
  • A table described in full: columns and data types, nullability, primary and foreign keys
  • Queries executed and returned as JSONL, for a result the next step will consume
  • The same query returned as a Markdown table, for a result a person will read
Requirements

unixODBC with your driver installed and a DSN configured in ~/.odbc.ini, plus uv to run the server. Connection settings — the DSN, the user and the password — go in .env, and the SQLAlchemy URL takes the form virtuoso+pyodbc://user:password@VOS. Check the ODBC side first with odbcinst -j and odbcinst -q -s, before wiring the client up.