Skip to main content
Glama

mcp-sqlalchemy

MIT License
15
  • Apple
  • Linux

MCP Server ODBC через SQLAlchemy

Легкий сервер MCP (Model Context Protocol) для ODBC, созданный с помощью FastAPI , pyodbc и SQLAlchemy . Этот сервер совместим с Virtuoso DBMS и другими бэкэндами DBMS, которые реализуют провайдера SQLAlchemy.

mcp-клиент-и-серверы|648x499


Функции

  • Получить схемы : извлечь и составить список всех имен схем из подключенной базы данных.
  • Получить таблицы : извлечь информацию о таблицах для определенных схем или всех схем.
  • Опишите таблицу : создайте подробное описание структур таблиц, включая:
    • Имена столбцов и типы данных
    • Атрибуты, допускающие значение NULL
    • Первичные и внешние ключи
  • Поиск таблиц : фильтрация и извлечение таблиц на основе подстрок имен.
  • Выполнение хранимых процедур : в случае Virtuoso выполнение хранимых процедур и получение результатов.
  • Выполнение запросов :
    • Формат результата JSONL: оптимизирован для структурированных ответов.
    • Формат таблицы Markdown: идеально подходит для составления отчетов и визуализации.

Предпосылки

  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
PostgreSQLpostgresql://user:password@localhost/dbname
MySQLmysql+pymysql://user:password@localhost/dbname
SQLitesqlite:///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-адресу.

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

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

  1. Функции
    1. Предпосылки
      1. Установка
        1. Переменные среды
          1. Конфигурация
            1. Использование
              1. URL-адреса подключения к системе управления базами данных (СУБД)
              2. Предоставляемые инструменты
              3. Поиск неисправностей

            Related MCP Servers

            • -
              security
              F
              license
              -
              quality
              Connects to CockroachDB instances and exposes database structures as resources, enabling SQL query execution and analysis through Claude's interface.
              Last updated -
              3
              TypeScript
              • Apple
            • -
              security
              A
              license
              -
              quality
              Enables 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.
              Last updated -
              1
              Python
              MIT License
            • A
              security
              A
              license
              A
              quality
              Connect and interact with MySQL databases seamlessly. Execute SQL queries, manage database connections, and retrieve data directly through AI assistants. Enhance your AI capabilities with structured access to your MySQL data.
              Last updated -
              9
              4
              15
              TypeScript
              MIT License
            • -
              security
              A
              license
              -
              quality
              Provides generic Open Database Connectivity (ODBC) to any Database Management System (DBMS) that's accessible via an ODBC Connector (Driver).
              Last updated -
              8
              TypeScript
              MIT License
              • Apple

            View all related MCP servers

            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