Skip to main content
Glama

PyODBC 経由の MCP サーバー ODBC

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

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


特徴

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

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

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

    • 列名とデータ型

    • ヌル値可能な属性

    • 主キーと外部キー

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

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

  • クエリの実行:

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

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


Related MCP server: Multi Database MCP Server

前提条件

  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 にアクセスして、サーバー相互作用のトラブルシューティングを行います。

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

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