Skip to main content
Glama
OpenLinkSoftware

MCP PyODBC Server


PyODBC 経由の MCP サーバー ODBC

FastAPIpyodbcを使用して構築されたODBC用の軽量MCP(Model Context Protocol)サーバー。このサーバーは、Virtuoso DBMSおよびODBCドライバーを備えたその他のDBMSバックエンドと互換性があります。

mcpクライアントとサーバー|648x499


特徴

  • スキーマの取得: 接続されたデータベースからすべてのスキーマ名を取得して一覧表示します。

  • テーブルの取得: 特定のスキーマまたはすべてのスキーマのテーブル情報を取得します。

  • テーブルの説明: 次の内容を含むテーブル構造の詳細な説明を生成します:

    • 列名とデータ型

    • ヌル値可能な属性

    • 主キーと外部キー

  • テーブルの検索: 名前の部分文字列に基づいてテーブルをフィルタリングおよび取得します。

  • ストアド プロシージャの実行: Virtuoso の場合は、ストアド プロシージャを実行して結果を取得します。

  • クエリの実行:

    • JSONL 結果形式: 構造化された応答に最適化されています。

    • Markdown テーブル形式: レポートと視覚化に最適です。


Related MCP server: mcp-ohmy-sql

前提条件

  1. uvをインストールします:

    pip install uv

    または Homebrew を使用します:

    brew install uv
  2. unixODBC ランタイム環境チェック:

  3. odbcinst -jを実行してインストール構成(つまり、主要な INI ファイルの場所)を確認します。

  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

指定されたデータベーススキーマに関連付けられたテーブルの説明を提供します。これには、列名、データ型、NULL値の扱い、自動増分、主キー、外部キーに関する情報が含まれます。

podbc_filter_table_names

選択したデータベース スキーマに関連付けられた、 q入力フィールドのサブ文字列パターンに基づいてテーブルを一覧表示します。

podbc_query_database

SQL クエリを実行し、結果を JSONL 形式で返します。

podbc_execute_query

SQL クエリを実行し、結果を JSONL 形式で返します。

podbc_execute_query_md

SQL クエリを実行し、結果を Markdown テーブル形式で返します。

podbc_spasql_クエリ

SPASQL クエリを実行し、結果を返します。

podbc_sparql_クエリ

SPARQL クエリを実行し、結果を返します。

podbc_virtuoso_support_ai

Virtuoso サポート アシスタント/エージェントと対話する - LLM と対話するための 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」です。

    • テーブル情報 (例: 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 Lines (JSONL) 形式 (1 行につき 1 つの JSON オブジェクト) で返します。

    • 入力パラメータ:

      • query (文字列、必須): 実行する SQL クエリ文字列。

      • user (文字列、オプション): データベースのユーザー名。デフォルトは「demo」です。

      • password (文字列、オプション): データベースのパスワード。デフォルトは「demo」です。

      • dsn (文字列、オプション): ODBC データソース名。デフォルトは「Local Virtuoso」です。

    • クエリ結果を JSONL 文字列として返します。

  • podbc_spasql_クエリ

    • 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_クエリ

    • 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 Inspector をインストールします。

    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