Skip to main content
Glama

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: MySql MCP Server

Предпосылки

  1. Установить УФ :

    pip install uv

    Или используйте Homebrew:

    brew install uv
  2. Проверки среды выполнения unixODBC :

  3. Проверьте конфигурацию установки (т.е. расположение ключевых INI-файлов), выполнив: odbcinst -j

  4. Выведите список доступных имен источников данных, выполнив команду: odbcinst -q -s

  5. Настройка ODBC DSN : Настройте имя источника данных ODBC ( ~/.odbc.ini ) для целевой базы данных. Пример для СУБД Virtuoso:

    [VOS] Description = OpenLink Virtuoso Driver = /path/to/virtodbcu_r.so Database = Demo Address = localhost:1111 WideAsUTF16 = Yes
  6. Привязка 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-адреса

Виртуозная СУБД

virtuoso+pyodbc://user:password@ODBC_DSN

PostgreSQL

postgresql://user:password@localhost/dbname

MySQL

mysql+pymysql://user:password@localhost/dbname

SQLite

sqlite:///path/to/database.db

После подключения вы сможете взаимодействовать со своими контактами WhatsApp через Claude, используя возможности искусственного интеллекта Claude в своих разговорах в WhatsApp.

Предоставляемые инструменты

Обзор

имя

описание

podbc_get_schemas

Перечислить схемы баз данных, доступные для подключенной системы управления базами данных (СУБД).

podbc_get_tables

Список таблиц, связанных с выбранной схемой базы данных.

podbc_describe_table

Предоставьте описание таблицы, связанной с указанной схемой базы данных. Это включает информацию об именах столбцов, типах данных, обработке нулей, автоинкременте, первичном ключе и внешних ключах

podbc_filter_table_names

Список таблиц на основе шаблона подстроки из поля ввода

q

, связанного с выбранной схемой базы данных.

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 ).


Поиск неисправностей

Для облегчения устранения неполадок:

  1. Установите MCP Inspector:

    npm install -g @modelcontextprotocol/inspector
  2. Запустите инспектор:

    npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-sqlalchemy-server run mcp-sqlalchemy-server

Для устранения неполадок во взаимодействии с сервером перейдите по предоставленному URL-адресу.

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