mcp-odbc
Введение
В этом документе описывается настройка и использование универсального сервера ODBC для Model Context Protocol (MCP), называемого сервером mcp-odbc . Он был разработан для предоставления Большим языковым моделям прозрачного доступа к доступным ODBC источникам данных через Имя источника данных, настроенное для определенного ODBC-коннектора (также называемого драйвером ODBC).

Реализация сервера
Этот MCP Server для ODBC представляет собой небольшой слой TypeScript, построенный поверх node-odbc . Он направляет вызовы локальному диспетчеру драйверов ODBC хост-системы через node.js (в частности, используя npx для TypeScript).
Related MCP server: mcp-sqlalchemy
Настройка и предварительные условия операционной среды
Хотя примеры, которые следуют ниже, ориентированы на Virtuoso ODBC Connector, это руководство также будет работать с другими ODBC Connector. Мы настоятельно рекомендуем вносить вклад в код и отправлять демонстрационные примеры использования, связанные с другими системами управления базами данных (СУБД), для включения в этот проект.
Ключевые компоненты системы
Проверьте версию
node.jsЕсли она не ниже21.1.0, обновите или установите явно с помощью:nvm install v21.1.0Установите компоненты MCP с помощью:
npm install @modelcontextprotocol/sdk zod tsx odbc dotenvУстановите версию
nvmс помощью:nvm alias default 21.1.0
Установка
Бегать
git clone https://github.com/OpenLinkSoftware/mcp-odbc-server.gitИзменить каталог
cd mcp-odbc-serverБегать
npm init -yБегать
npm install @modelcontextprotocol/sdk zod tsx odbc dotenv
Проверки среды выполнения unixODBC
Проверьте конфигурацию установки (т. е. расположение ключевых INI-файлов), выполнив:
odbcinst -jВыведите список доступных имен источников данных (DSN), выполнив команду:
odbcinst -q -s
Переменные среды
В целях безопасности следует использовать файл .env , расположенный в том же каталоге, что и mcp-ser для установки привязок для имени источника данных ODBC ( ODBC_DSN ), пользователя ( ODBC_USER ), пароля ( ODBC_PWD ), ODBC INI ( ODBCINI ) и, если вы хотите использовать OpenLink AI Layer (OPAL) через ODBC, целевого API-ключа большой языковой модели (LLM) ( API_KEY ).
API_KEY=sk-xxx
ODBC_DSN=Local Virtuoso
ODBC_USER=dba
ODBC_PASSWORD=dba
ODBCINI=/Library/ODBC/odbc.ini Использование
Инструменты
После успешной установки клиентским приложениям MCP будут доступны следующие инструменты.
Обзор
имя | описание |
| Перечислить схемы баз данных, доступные для подключенной системы управления базами данных (СУБД). |
| Список таблиц, связанных с выбранной схемой базы данных. |
| Предоставьте описание таблицы, связанной с назначенной схемой базы данных. Это включает информацию об именах столбцов, типах данных, обработке null, автоинкременте, первичном ключе и внешних ключах |
| Вывести список таблиц, связанных с выбранной схемой базы данных, на основе шаблона подстроки из поля ввода |
| Выполнить SQL-запрос и вернуть результаты в формате строк JSON (JSONL). |
| Выполнить SQL-запрос и вернуть результаты в формате строк JSON (JSONL). |
| Выполнить SQL-запрос и вернуть результаты в формате таблицы Markdown. |
| Выполнить запрос SPASQL и вернуть результаты. |
| Выполнить запрос SPARQL и вернуть результаты. |
| Взаимодействие с помощником/агентом поддержки Virtuoso — специфическая функция Virtuoso для взаимодействия с LLM |
Подробное описание
get_schemasИзвлечь и вернуть список всех имен схем из подключенной базы данных.
Входные параметры:
user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает массив строк JSON с именами схем.
get_tablesИзвлечь и вернуть список, содержащий информацию о таблицах в указанной схеме. Если схема не указана, используется схема соединения по умолчанию.
Входные параметры:
schema(строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает строку JSON, содержащую информацию о таблице (например,
TABLE_CAT,TABLE_SCHEM,TABLE_NAME,TABLE_TYPE).
filter_table_namesФильтрует и возвращает информацию о таблицах, имена которых содержат определенную подстроку.
Входные параметры:
q(строка, обязательно): подстрока для поиска в именах таблиц.schema(строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает строку JSON, содержащую информацию для сопоставления таблиц.
describe_tableИзвлечение и возврат подробной информации о столбцах определенной таблицы.
Входные параметры:
schema(строка, обязательно): имя схемы базы данных, содержащей таблицу.table(строка, обязательно): Имя таблицы, которую нужно описать.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает строку JSON, описывающую столбцы таблицы (например,
COLUMN_NAME,TYPE_NAME,COLUMN_SIZE,IS_NULLABLE).
query_databaseВыполнить стандартный SQL-запрос и вернуть результаты в формате JSON.
Входные параметры:
query(строка, обязательно): Строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результаты запроса в виде строки JSON.
query_database_mdВыполнить стандартный SQL-запрос и вернуть результаты, отформатированные в виде таблицы Markdown.
Входные параметры:
query(строка, обязательно): Строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результаты запроса в виде строки таблицы Markdown.
query_database_jsonlВыполнить стандартный SQL-запрос и вернуть результаты в формате строк JSON (JSONL) (один объект JSON на строку).
Входные параметры:
query(строка, обязательно): Строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результаты запроса в виде строки JSONL.
spasql_queryВыполнить запрос SPASQL (гибрид SQL/SPARQL) и получить результаты. Это специфическая функция Virtuoso.
Входные параметры:
query(строка, обязательно): строка запроса SPASQL.max_rows(число, необязательно): Максимальное количество возвращаемых строк. По умолчанию20.timeout(число, необязательно): Время ожидания запроса в миллисекундах. По умолчанию30000, т.е. 30 секунд.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результат вызова базовой хранимой процедуры (например,
Demo.demo.execute_spasql_query).
sparql_queryВыполнить запрос SPARQL и вернуть результаты. Это специфическая функция Virtuoso.
Входные параметры:
query(строка, обязательно): строка запроса SPARQL.format(string, необязательно): Желаемый формат результата. По умолчанию'json'.timeout(число, необязательно): Время ожидания запроса в миллисекундах. По умолчанию30000, т.е. 30 секунд.user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результат вызова базовой функции (например,
"UB".dba."sparqlQuery").
virtuoso_support_aiИспользует функцию AI Assistant, специфичную для Virtuoso, передавая подсказку и необязательный ключ API. Это специфичная для Virtuoso функция.
Входные параметры:
prompt(строка, обязательно): текст подсказки для функции ИИ.api_key(string, необязательно): API-ключ для службы AI. По умолчанию"none".user(строка, необязательно): Имя пользователя базы данных. По умолчанию"demo".password(строка, необязательно): Пароль базы данных. По умолчанию"demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию"Local Virtuoso".
Возвращает результат вызова функции AI Support Assistant (например,
DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI).
Базовое тестирование установки и устранение неполадок
Инструмент инспектора MCP
Canonical MCP Inspector Tool Edition
Запустите инспектор из каталога/папки mcp-server с помощью следующей команды:
ODBCINI=/Library/ODBC/odbc.ini npx -y @modelcontextprotocol/inspector npx tsx ./src/main.tsНажмите кнопку «Подключиться», затем нажмите вкладку «Инструменты», чтобы начать работу.

Издание инструмента OpenLink MCP Inspector
Это ответвление канонической версии, включающее исправление ошибки обработки JSON, связанной с использованием этого сервера MCP.
бегать
git clone git@github.com:OpenLinkSoftware/inspector.git cd inspectorбегать
npm run startВведите следующее значение в поле ввода
Argumentsпользовательского интерфейса MCP Inspectors с http://localhost:6274tsx /path/to/mcp-odbc-server/src/main.tsНажмите кнопку
Connect, чтобы инициализировать сеанс с назначенным сервером MCP.
Совместимость Apple Silicon (ARM64) с проблемами сервера MCP ODBC
Проблема конфликта узлов x86_64 и arm64
Возможно, используется версия node x86_64, а не arm64, но мост ODBC и сервер MCP являются компонентами на базе arm64.
Эту проблему можно решить, выполнив следующие действия:
Удалите версию
nodex86_64, выполнив:nvm uninstall 21.1.0Выполните следующую команду, чтобы убедиться, что ваша текущая оболочка находится в режиме arm64:
archесли возвращается x86_64, выполните следующую команду, чтобы изменить активный режим:
arch arm64
Установите версию arm64
node, выполнив:nvm install 21.1.0
Несовместимость уровня моста узла с ODBC
При попытке использовать Model Context Protocol (MCP) ODBC Server на машинах Apple Silicon вы можете столкнуться с ошибками несоответствия архитектуры. Они возникают из-за того, что собственный модуль Node.js ODBC ( odbc.node ) скомпилирован для архитектуры ARM64, но загружается версия среды выполнения unixODBC на базе x86_64.
Типичное сообщение об ошибке:
Error: dlopen(...odbc.node, 0x0001): tried: '...odbc.node' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e' or 'arm64'))Эту проблему можно решить, выполнив следующие шаги:
Убедитесь, что ваш Node.js работает в режиме ARM64:
node -p "process.arch" # Should output: `arm64`Установите unixODBC для ARM64:
# Verify Homebrew is running in ARM64 mode which brew # Should point to /opt/homebrew/bin/brew # Remove existing unixODBC brew uninstall --force unixodbc # Install ARM64 version arch -arm64 brew install unixodbcПересоберите модуль Node.js ODBC для ARM64:
# Navigate to your project cd /path/to/mcp-odbc-server # Remove existing module rm -rf node_modules/odbc # Set architecture environment variable export npm_config_arch=arm64 # Reinstall with force build npm install odbc --build-from-sourceУбедитесь, что модуль теперь ARM64:
file node_modules/odbc/lib/bindings/napi-v8/odbc.node # Should show "arm64" instead of "x86_64"
Ключевые моменты
И unixODBC, и модуль Node.js ODBC должны быть совместимы с ARM64.
Использование переменных окружения (
export npm_config_arch=arm64) более надежно, чем команды npm config.Всегда проверяйте архитектуру с помощью команды
fileилиnode -p "process.arch"При использовании Homebrew на Apple Silicon команды можно префиксировать с помощью
arch -arm64чтобы принудительно использовать двоичные файлы ARM64.
Использование приложения MCP
Конфигурация рабочего стола Клода
Путь к этому файлу конфигурации: ~{username}/Library/Application Support/Claude/claude_desktop_config.json .
{
"mcpServers": {
"ODBC": {
"command": "/path/to/.nvm/versions/node/v21.1.0/bin/node",
"args": [
"/path/to/mcp-odbc-server/node_modules/.bin/tsx",
"/path/to/mcp-odbc-server/src/main.ts"
],
"env": {
"ODBCINI": "/Library/ODBC/odbc.ini",
"NODE_VERSION": "v21.1.0",
"PATH": "~/.nvm/versions/node/v21.1.0/bin:${PATH}"
},
"disabled": false,
"autoApprove": []
}
}
}Использование рабочего стола Клода
Запустите приложение.
Примените конфигурацию (см. выше) через Настройки | Интерфейс разработчика.
Убедитесь, что у вас есть работающее ODBC-соединение с именем источника данных (DSN).
Представить приглашение на выполнение запроса, например,
Execute the following query: SELECT TOP * from Demo..Customers
Конфигурация Cline (расширение Visual Studio)
Путь к этому файлу конфигурации: ~{username}/Library/Application\ Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
{
"mcpServers": {
"ODBC": {
"command": "/path/to/.nvm/versions/node/v21.1.0/bin/node",
"args": [
"/path/to/mcp-odbc-server/node_modules/.bin/tsx",
"/path/to/mcp-odbc-server/src/main.ts"
],
"env": {
"ODBCINI": "/Library/ODBC/odbc.ini",
"NODE_VERSION": "v21.1.0",
"PATH": "/path/to/.nvm/versions/node/v21.1.0/bin:${PATH}"
},
"disabled": false,
"autoApprove": []
}
}
}Использование Cline (расширение Visual Studio)
Используйте Shift+Command+P, чтобы открыть палитру команд.
Введите:
Cline.Выберите: Cline View, чтобы открыть пользовательский интерфейс Cline на боковой панели VSCode.
Используйте значок с четырьмя квадратами для доступа к пользовательскому интерфейсу для установки и настройки серверов MCP.
Примените конфигурацию Клайна (см. выше).
Вернитесь в основной пользовательский интерфейс расширения и запустите новую задачу, запросив обработку следующего запроса:
"Execute the following query: SELECT TOP 5 * from Demo..Customers"
Конфигурация курсора
Используйте шестеренку настроек, чтобы открыть меню конфигурации, которое включает пункт меню MCP для регистрации и настройки mcp servers .
Использование курсора
Используйте комбинацию клавиш
Command + IилиControl + I, чтобы открыть интерфейс чата.Выберите
Agentв раскрывающемся списке в левом нижнем углу пользовательского интерфейса, где по умолчанию установленоAsk.Введите приглашение, определяющее использование
mcp-server for odbcиспользуя шаблон:@odbc {rest-of-prompt}.Нажмите «Принять», чтобы выполнить запрос.

Связанный
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 Servers
- Alicense-qualityDmaintenanceEnables LLM tools like Claude Desktop to query databases via ODBC connections, allowing access, analysis, and insight generation from database data while maintaining security through read-only safeguards.3MIT
- AlicenseCqualityFmaintenanceProvides SQLAlchemy (via pyodbc) connectivity to any Database Management System (DBMS) that's accessible via SQLAlchemy.1124MIT
- Alicense-qualityFmaintenanceA lightweight MCP server that enables database access and querying through ODBC connections, with special support for Virtuoso DBMS features like SPARQL and AI assistance through natural language.4MIT
- Alicense-qualityDmaintenanceA Python MCP server that connects to any ODBC data source and exposes schema discovery + query tools. Read-only by default, write access available per-connection.2MIT
Related MCP Connectors
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Explore your Messages SQLite database to browse tables and inspect schemas with ease. Run flexible…
Geocode, reverse geocode, and run Overpass spatial queries on OpenStreetMap data.
Appeared in Searches
- System capable of integrating with ERP and other information system databases
- Information about Java programming language or related topics
- Connecting to PostgreSQL database, retrieving table schema, and executing SQL queries
- Information or resources about SQL Server
- Running MySQL Queries Through a MySQL Socket
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-odbc-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server