Skip to main content
Glama

MCP PyODBC Server

MIT License
3
  • Apple
  • Linux

MCP-сервер ODBC через PyODBC

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

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

Установка

Клонируйте этот репозиторий:

git clone https://github.com/OpenLinkSoftware/mcp-pyodbc-server.git cd mcp-pyodbc-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-pyodbc-server", "run", "mcp-pyodbc-server"], "env": { "ODBC_DSN": "dsn_name", "ODBC_USER": "username", "ODBC_PASSWORD": "password", "API_KEY": "sk-xxx" } } } }

Использование

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

После успешной установки клиентским приложениям MCP будут доступны следующие инструменты.

Обзор

имяописание
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 (строка, необязательно): 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-pyodbc-server run mcp-pyodbc-server

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

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Легкий сервер MCP, который обеспечивает доступ к базе данных и выполнение запросов через соединения ODBC, со специальной поддержкой функций СУБД Virtuoso, таких как SPARQL и помощь ИИ с использованием естественного языка.

  1. Функции
    1. Предпосылки
      1. Установка
        1. Переменные среды
          1. Конфигурация
            1. Использование
              1. Предоставляемые инструменты
              2. Поиск неисправностей

            Related MCP Servers

            • A
              security
              A
              license
              A
              quality
              A high-performance MCP server utilizing libSQL for persistent memory and vector search capabilities, enabling efficient entity management and semantic knowledge storage.
              Last updated -
              6
              154
              64
              TypeScript
              MIT License
            • -
              security
              A
              license
              -
              quality
              The Multi DB MCP Server is a high-performance implementation of the Database Model Context Protocol designed to revolutionize how AI agents interact with databases. Currently supporting MySQL and PostgreSQL databases.
              Last updated -
              260
              Go
              MIT License
              • Linux
              • Apple
            • -
              security
              F
              license
              -
              quality
              A FastMCP server that provides natural language interaction with MS SQL databases, enabling users to query data, list tables, describe structures, and execute database operations through a conversational AI interface.
              Last updated -
              Python
            • -
              security
              A
              license
              -
              quality
              MCP-Server from your Database optimized for LLMs and AI-Agents. Supports PostgreSQL, MySQL, ClickHouse, Snowflake, MSSQL, BigQuery, Oracle Database, SQLite, ElasticSearch, DuckDB
              Last updated -
              440
              Go
              Apache 2.0
              • Linux

            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-pyodbc-server'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server