An MCP server enabling access to ODBC-compliant databases via configurable DSNs for querying and schema inspection.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent โ or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag โ we're steadily working through the catalog.
๐ก Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Server Odbc.
get_schemasList database schemas accessible to connected database management system (DBMS).
get_tablesList tables associated with a selected database schema.
describe_tableProvide the description of a table associated with a designated database schema. This includes information about column names, data types, null handling, autoincrement, primary key, and foreign keys
filter_table_namesList tables associated with a selected database schema, based on a substring pattern from the `q` input field.
query_databaseExecute a SQL query and return results in JSON Lines (JSONL) format.
execute_queryExecute a SQL query and return results in JSON Lines (JSONL) format.
This document covers the set up and use of a generic ODBC server for the Model Context Protocol (MCP), referred to as an mcp-odbc server. It has been developed to provide Large Language Models with transparent access to ODBC-accessible data sources via a Data Source Name configured for a specific ODBC Connector (also called an ODBC Driver).

This MCP Server for ODBC is a small TypeScript layer built on top of node-odbc. It routes calls to the host system's local ODBC Driver Manager via node.js (specifically using npx for TypeScript).
While the examples that follow are oriented toward the Virtuoso ODBC Connector, this guide will also work with other ODBC Connectors. We strongly encourage code contributions and submissions of usage demos related to other database management systems (DBMS) for incorporation into this project.
node.js version. If it's not 21.1.0 or higher, upgrade or install explicitly using:
nvm version using:
As good security practice, you should use the .env file situated in the same directory as the mcp-ser to set bindings for the ODBC Data Source Name (ODBC_DSN), the User (ODBC_USER), the Password (ODBC_PWD), the ODBC INI (ODBCINI), and, if you want to use the OpenLink AI Layer (OPAL) via ODBC, the target Large Language Model (LLM) API Key (API_KEY).
After successful installation, the following tools will be available to MCP client applications.
| name | description |
|---|---|
get_schemas | List database schemas accessible to connected database management system (DBMS). |
get_tables | List tables associated with a selected database schema. |
describe_table | Provide the description of a table associated with a designated database schema. This includes information about column names, data types, null handling, autoincrement, primary key, and foreign keys |
filter_table_names | List tables associated with a selected database schema, based on a substring pattern from the q input field. |
query_database | Execute a SQL query and return results in JSON Lines (JSONL) format. |
execute_query | Execute a SQL query and return results in JSON Lines (JSONL) format. |
execute_query_md | Execute a SQL query and return results in Markdown table format. |
spasql_query | Execute a SPASQL query and return results. |
sparql_query | Execute a SPARQL query and return results. |
virtuoso_support_ai | Interact with the Virtuoso Support Assistant/Agent โ a Virtuoso-specific feature for interacting with LLMs |
get_schemas
user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".get_tables
schema (string, optional): Database schema to filter tables. Defaults to connection default.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).filter_table_names
q (string, required): The substring to search for within table names.schema (string, optional): Database schema to filter tables. Defaults to connection default.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".describe_table
schema (string, required): The database schema name containing the table.table (string, required): The name of the table to describe.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).query_database
query (string, required): The SQL query string to execute.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".query_database_md
query (string, required): The SQL query string to execute.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".query_database_jsonl
query (string, required): The SQL query string to execute.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".spasql_query
query (string, required): The SPASQL query string.max_rows (number, optional): Maximum number of rows to return. Defaults to 20.timeout (number, optional): Query timeout in milliseconds. Defaults to 30000, i.e., 30 seconds.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".Demo.demo.execute_spasql_query).sparql_query
query (string, required): The SPARQL query string.format (string, optional): Desired result format. Defaults to 'json'.timeout (number, optional): Query timeout in milliseconds. Defaults to 30000, i.e., 30 seconds.user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso"."UB".dba."sparqlQuery").virtuoso_support_ai
prompt (string, required): The prompt text for the AI function.api_key (string, optional): API key for the AI service. Defaults to "none".user (string, optional): Database username. Defaults to "demo".password (string, optional): Database password. Defaults to "demo".dsn (string, optional): ODBC data source name. Defaults to "Local Virtuoso".DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI).Factual signals from GitHub, npm, and our automated checks โ not a rating.
No reviews yet โ be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/openlink-mcp-server-odbc)<a href="https://allmcps.com/mcp/openlink-mcp-server-odbc"><img src="https://allmcps.com/api/badge/openlink-mcp-server-odbc?style=directory" alt="MCP Server Odbc on AllMCPs" /></a>