MCP Server ODBC через SQLAlchemy
Легкий сервер MCP (Model Context Protocol) для ODBC, созданный с помощью FastAPI , pyodbc и SQLAlchemy . Этот сервер совместим с Virtuoso DBMS и другими бэкэндами DBMS, которые реализуют провайдера SQLAlchemy.
👁 mcp-клиент-и-серверы|648x499
Функции
Получить схемы : извлечь и составить список всех имен схем из подключенной базы данных.
Получить таблицы : извлечь информацию о таблицах для определенных схем или всех схем.
Опишите таблицу : создайте подробное описание структур таблиц, включая:
Имена столбцов и типы данных
Атрибуты, допускающие значение NULL
Первичные и внешние ключи
Поиск таблиц : фильтрация и извлечение таблиц на основе подстрок имен.
Выполнение хранимых процедур : в случае Virtuoso выполнение хранимых процедур и получение результатов.
Выполнение запросов :
Формат результата JSONL: оптимизирован для структурированных ответов.
Формат таблицы Markdown: идеально подходит для составления отчетов и визуализации.
Related MCP server: mcp-odbc
Предпосылки
Установить УФ :
pip install uvИли используйте Homebrew:
brew install uvПроверки среды выполнения unixODBC :
Проверьте конфигурацию установки (т.е. расположение ключевых INI-файлов), выполнив:
odbcinst -jВыведите список доступных имен источников данных, выполнив команду:
odbcinst -q -sНастройка ODBC DSN : Настройте имя источника данных ODBC (
~/.odbc.ini) для целевой базы данных. Пример для СУБД Virtuoso:[VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so Database = Demo Address = localhost:1111 WideAsUTF16 = YesПривязка URL-адреса SQLAlchemy : используйте следующий формат:
virtuoso+pyodbc://user:password@VOS
Установка
Клонируйте этот репозиторий:
git clone https://github.com/OpenLinkSoftware/mcp-sqlalchemy-server.git
cd mcp-sqlalchemy-serverПеременные среды
Обновите свой .env , переопределив значения по умолчанию в соответствии со своими предпочтениями.
ODBC_DSN=VOS
ODBC_USER=dba
ODBC_PASSWORD=dba
API_KEY=xxxКонфигурация
Для пользователей Claude Desktop : добавьте следующее в claude_desktop_config.json :
{
"mcpServers": {
"my_database": {
"command": "uv",
"args": ["--directory", "/path/to/mcp-sqlalchemy-server", "run", "mcp-sqlalchemy-server"],
"env": {
"ODBC_DSN": "dsn_name",
"ODBC_USER": "username",
"ODBC_PASSWORD": "password",
"API_KEY": "sk-xxx"
}
}
}
}Использование
URL-адреса подключения к системе управления базами данных (СУБД)
Ниже приведены примеры URL-адресов pyodbc для подключения к системам СУБД, которые были протестированы с использованием этого mcp-сервера.
База данных | Формат URL-адреса |
Виртуозная СУБД |
|
PostgreSQL |
|
MySQL |
|
SQLite |
|
После подключения вы сможете взаимодействовать со своими контактами WhatsApp через Claude, используя возможности искусственного интеллекта Claude в своих разговорах в WhatsApp. |
Предоставляемые инструменты
Обзор
имя | описание |
podbc_get_schemas | Перечислить схемы баз данных, доступные для подключенной системы управления базами данных (СУБД). |
podbc_get_tables | Список таблиц, связанных с выбранной схемой базы данных. |
podbc_describe_table | Предоставьте описание таблицы, связанной с указанной схемой базы данных. Это включает информацию об именах столбцов, типах данных, обработке нулей, автоинкременте, первичном ключе и внешних ключах |
podbc_filter_table_names | Список таблиц на основе шаблона подстроки из поля ввода |
podbc_query_database | Выполнить SQL-запрос и вернуть результаты в формате JSONL. |
podbc_execute_query | Выполнить SQL-запрос и вернуть результаты в формате JSONL. |
podbc_execute_query_md | Выполнить SQL-запрос и вернуть результаты в формате таблицы Markdown. |
podbc_spasql_query | Выполнить запрос SPASQL и вернуть результаты. |
podbc_sparql_query | Выполнить запрос SPARQL и вернуть результаты. |
podbc_virtuoso_support_ai | Взаимодействие с помощником/агентом поддержки Virtuoso — специфической функцией Virtuoso для взаимодействия с магистрами права |
Подробное описание
podbc_get_schemas
Извлечь и вернуть список всех имен схем из подключенной базы данных.
Входные параметры:
user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает массив строк JSON с именами схем.
podbc_get_tables
Извлечь и вернуть список, содержащий информацию о таблицах в указанной схеме. Если схема не указана, используется схема соединения по умолчанию.
Входные параметры:
schema(строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает строку JSON, содержащую информацию о таблице (например, TABLE_CAT, TABLE_SCHEM, TABLE_NAME, TABLE_TYPE).
podbc_filter_table_names
Фильтрует и возвращает информацию о таблицах, имена которых содержат определенную подстроку.
Входные параметры:
q(строка, обязательно): подстрока для поиска в именах таблиц.schema(строка, необязательно): Схема базы данных для фильтрации таблиц. По умолчанию используется соединение по умолчанию.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает строку JSON, содержащую информацию для сопоставления таблиц.
podbc_describe_table
Извлечение и возврат подробной информации о столбцах определенной таблицы.
Входные параметры:
schema(строка, обязательно): имя схемы базы данных, содержащей таблицу.table(строка, обязательно): Имя таблицы, которую нужно описать.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает строку JSON, описывающую столбцы таблицы (например, COLUMN_NAME, TYPE_NAME, COLUMN_SIZE, IS_NULLABLE).
podbc_query_database
Выполнить стандартный SQL-запрос и вернуть результаты в формате JSON.
Входные параметры:
query(строка, обязательно): Строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает результаты запроса в виде строки JSON.
podbc_query_database_md
Выполнить стандартный SQL-запрос и вернуть результаты, отформатированные в виде таблицы Markdown.
Входные параметры:
query(строка, обязательно): строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает результаты запроса в виде строки таблицы Markdown.
podbc_query_database_jsonl
Выполнить стандартный SQL-запрос и вернуть результаты в формате строк JSON (JSONL) (один объект JSON на строку).
Входные параметры:
query(строка, обязательно): Строка SQL-запроса для выполнения.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает результаты запроса в виде строки JSONL.
podbc_spasql_query
Выполнить запрос SPASQL (гибрид SQL/SPARQL) и получить результаты. Это специфическая функция Virtuoso.
Входные параметры:
query(строка, обязательно): строка запроса SPASQL.max_rows(число, необязательно): Максимальное количество возвращаемых строк. По умолчанию 20.timeout(число, необязательно): Время ожидания запроса в миллисекундах. По умолчанию 30000.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает результат вызова базовой хранимой процедуры (например,
Demo.demo.execute_spasql_query).
podbc_sparql_query
Выполнить запрос SPARQL и вернуть результаты. Это специфическая функция Virtuoso.
Входные параметры:
query(строка, обязательно): строка запроса SPARQL.format(строка, необязательно): Желаемый формат результата. По умолчанию 'json'.timeout(число, необязательно): Время ожидания запроса в миллисекундах. По умолчанию 30000.user(строка, необязательно): Имя пользователя базы данных. По умолчанию "demo".password(строка, необязательно): Пароль базы данных. По умолчанию "demo".dsn(строка, необязательно): Имя источника данных ODBC. По умолчанию "Local Virtuoso".
Возвращает результат вызова базовой функции (например,
"UB".dba."sparqlQuery").
podbc_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 Inspector:
npm install -g @modelcontextprotocol/inspectorЗапустите инспектор:
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-sqlalchemy-server run mcp-sqlalchemy-server
Для устранения неполадок во взаимодействии с сервером перейдите по предоставленному URL-адресу.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
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-sqlalchemy-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
