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

特徴
スキーマの取得: 接続されたデータベースからすべてのスキーマ名を取得して一覧表示します。
テーブルの取得: 特定のスキーマまたはすべてのスキーマのテーブル情報を取得します。
テーブルの説明: 次の内容を含むテーブル構造の詳細な説明を生成します:
列名とデータ型
ヌル値可能な属性
主キーと外部キー
テーブルの検索: 名前の部分文字列に基づいてテーブルをフィルタリングおよび取得します。
ストアド プロシージャの実行: Virtuoso の場合は、ストアド プロシージャを実行して結果を取得します。
クエリの実行:
JSONL 結果形式: 構造化された応答に最適化されています。
Markdown テーブル形式: レポートと視覚化に最適です。
Related MCP server: mcp-ohmy-sql
前提条件
uvをインストールします:
pip install uvまたは Homebrew を使用します:
brew install uvunixODBC ランタイム環境チェック:
odbcinst -jを実行してインストール構成(つまり、主要な INI ファイルの場所)を確認します。odbcinst -q -sを実行して、利用可能なデータソース名を一覧表示します。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 | 選択したデータベース スキーマに関連付けられた、 |
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)。
トラブルシューティング
トラブルシューティングを簡単にするには:
MCP Inspector をインストールします。
npm install -g @modelcontextprotocol/inspectorインスペクターを起動します。
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.
This server cannot be installed
Maintenance
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
- mcpOAuthcom.gibsonai
GibsonAI MCP server: manage your databases with natural language
Cloud-hosted MCP server for secure AI access to enterprise data sources via CData Connect AI.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors — no code.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceAn MCP server that exposes relational databases (PostgreSQL/MySQL) to AI agents with natural language to SQL query support.19-
- -licenseNot gradedqualityCmaintenanceAn MCP server that bridges AI assistants with SQL databases, enabling natural language querying across multiple database types with built-in optimization and security.3-
- FlicenseNot gradedqualityDmaintenanceA 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-
- AlicenseAqualityDmaintenanceA database-agnostic MCP server that enables natural language queries to your database through Claude or Copilot, automatically writing and executing SQL.816MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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