Skip to main content
Glama
OpenLinkSoftware

MCP PyODBC Server


通过 PyODBC 实现 MCP 服务器 ODBC

使用FastAPIpyodbc构建的轻量级 ODBC MCP (模型上下文协议) 服务器。该服务器兼容 Virtuoso DBMS 以及其他支持 ODBC 驱动的 DBMS 后端。

mcp-客户端和服务器|648x499


特征

  • 获取模式:从连接的数据库中获取并列出所有模式名称。

  • 获取表:检索特定模式或所有模式的表信息。

  • Describe Table :生成表结构的详细描述,包括:

    • 列名和数据类型

    • 可空属性

    • 主键和外键

  • 搜索表:根据名称子字符串过滤和检索表。

  • 执行存储过程:在 Virtuoso 的情况下,执行存储过程并检索结果。

  • 执行查询

    • JSONL 结果格式:针对结构化响应进行了优化。

    • Markdown 表格格式:适合报告和可视化。


Related MCP server: mcp-ohmy-sql

先决条件

  1. 安装 uv

    pip install uv

    或者使用 Homebrew:

    brew install uv
  2. unixODBC 运行时环境检查

  3. 通过运行以下命令检查安装配置(即关键 INI 文件的位置): odbcinst -j

  4. 通过运行以下命令列出可用的数据源名称: odbcinst -q -s

  5. ODBC DSN 设置:为目标数据库配置 ODBC 数据源名称 ( ~/.odbc.ini )。以 Virtuoso DBMS 为例:

    [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

列出连接的数据库管理系统 (DBMS) 可访问的数据库模式。

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 特有的与 LLM 交互的功能

详细描述

  • podbc_get_schemas

    • 从连接的数据库中检索并返回所有模式名称的列表。

    • 输入参数:

      • user (字符串,可选):数据库用户名。默认为“demo”。

      • password (字符串,可选):数据库密码。默认为“demo”。

      • dsn (字符串,可选):ODBC 数据源名称。默认为“Local Virtuoso”。

    • 返回架构名称的 JSON 字符串数组。

  • podbc_get_tables

    • 检索并返回包含指定架构中表的信息的列表。如果未提供架构,则使用连接的默认架构。

    • 输入参数:

      • schema (字符串,可选):用于过滤表的数据库模式。默认为连接默认值。

      • user (字符串,可选):数据库用户名。默认为“demo”。

      • password (字符串,可选):数据库密码。默认为“demo”。

      • dsn (字符串,可选):ODBC 数据源名称。默认为“Local Virtuoso”。

    • 返回包含表信息(例如,TABLE_CAT、TABLE_SCHEM、TABLE_NAME、TABLE_TYPE)的 JSON 字符串。

  • 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 (number,可选):返回的最大行数。默认为 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

    • 使用 Virtuoso 独有的 AI 助手功能,传递提示符和可选的 API 密钥。这是 Virtuoso 独有的功能。

    • 输入参数:

      • prompt (字符串,必需):AI 功能的提示文本。

      • api_key (字符串,可选):AI 服务的 API 密钥。默认为“无”。

      • user (字符串,可选):数据库用户名。默认为“demo”。

      • password (字符串,可选):数据库密码。默认为“demo”。

      • dsn (字符串,可选):ODBC 数据源名称。默认为“Local Virtuoso”。

    • 返回 AI 支持助手函数调用的结果(例如, DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI )。


故障排除

为了更容易地排除故障:

  1. 安装 MCP 检查器:

    npm install -g @modelcontextprotocol/inspector
  2. 启动检查器:

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

访问提供的 URL 来排除服务器交互故障。

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

No tool schema history has been recorded yet.

Maintenance

ActivityInactive
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    B
    maintenance
    An MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.
    19
    -
  • -
    license
    Not graded
    quality
    C
    maintenance
    An MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.
    3
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    A versatile MCP server that connects to multiple relational databases (MySQL, PostgreSQL, Oracle, SQL Server, SQLite) and enables secure read-only SQL query execution and metadata access.
    4
    -
  • A
    license
    A
    quality
    D
    maintenance
    A database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.
    8
    16
    MIT

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

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