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-адресу.

Проверено на MseeP

-
security - not tested
-
license - not tested
-
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
              -
              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
              253
              74
              MIT License
            • -
              security
              -
              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 -
              295
              MIT License
              • Linux
              • Apple
            • -
              security
              -
              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 -
            • -
              security
              -
              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 -
              484
              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