mcpField
C
C# based Model Context Procotol (MCP) Server for ADO.NET

C# based Model Context Procotol (MCP) Server for ADO.NET

ローカル
github.com/OpenLinkSoftwareデータベース766 週間前に更新

C# based Model Context Procotol (MCP) Server for ADO.NET について

ADO.NET 経由でデータベースにアクセスする C# 製 MCP サーバーです。Virtuoso 固有のクエリ機能も備え、スキーマ確認や SQL 実行を行う MCP クライアント向けです。

主な機能

  1. 01データベースのスキーマとテーブル一覧
  2. 02テーブルの列とキーの確認
  3. 03名前によるテーブル検索
  4. 04SQL とストアドプロシージャの実行
  5. 05JSONL または Markdown 形式で結果を返却
  6. 06Virtuoso の SPARQL と SPASQL の実行

活用シーン

  1. 01接続先データベースのスキーマ確認
  2. 02クエリ前のテーブル定義の確認
  3. 03SQL 実行と結果のレポート形式への整形
  4. 04SPARQL または SPASQL による Virtuoso の検索

MCP 対応

データベースのスキーマ、クエリ、Virtuoso 固有の操作をツールとして MCP クライアントに公開します。Claude Desktop の設定例も記載されています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細


ADO.NET 向け OpenLink MCP Server

ADO.NET 用の軽量な C# ベースの MCP(Model Context Protocol)サーバーです。このサーバーは Virtuoso と互換性があります。現在、このサーバーで正常にテストできているのは、Windows および Linux 上の .NET ランタイムのみです。

mcp-client-and-servers|648x499

機能

  • スキーマの取得:接続先のデータベースからすべてのスキーマ名を取得して一覧表示します。
  • テーブルの取得:指定したスキーマ、またはすべてのスキーマのテーブル情報を取得します。
  • テーブルの説明:以下を含む、テーブル構造の詳細な説明を生成します。
    • 列名とデータ型
    • NULL 許容属性
    • 主キーと外部キー
  • テーブルの検索:名前の部分一致に基づいてテーブルを絞り込み、取得します。
  • ストアドプロシージャの実行:Virtuoso に接続している場合、ストアドプロシージャを実行して結果を取得します。
  • クエリの実行:
    • JSONL 形式の結果:構造化された応答に最適化されています。
    • Markdown テーブル形式の結果:レポートや視覚化に最適です。

前提条件

  1. NET.8
    • 次のコマンドを実行して、プロジェクトファイル(MCP_AdoNet_Server.csproj)がご利用の環境に対応していることを確認します。
      dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      
  2. NET.9
    • 次のコマンドを実行して、プロジェクトファイル(MCP_AdoNet_Server.csproj)がご利用の環境に対応していることを確認します。
      dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      
    • 必要に応じて、次のコマンドを実行して MCP_AdoNet_Server.csproj の再ビルドを試すこともできます。
      dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      dotnet build /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
      

インストール

このリポジトリをクローンします。

git clone https://github.com/OpenLinkSoftware/mcp-adonet-server.git  
cd mcp-adonet-server

環境変数

.env のデフォルト値を上書きして、お好みの設定に変更します。

ADO_URL="HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo"
API_KEY=xxx

設定

Claude Desktop ユーザーの場合: claude_desktop_config.json に次の内容を追加します。

  1. NET.8

    {
      "mcpServers": {
        "my_database": {
          "command": "dotnet",
          "args": ["run", "--framework", "net8.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"],
          "env": {
            "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo",
            "API_KEY": "sk-xxx"
          }
        }
      }
    }
    
  2. NET.9

    {
      "mcpServers": {
        "my_database": {
          "command": "dotnet",
          "args": ["run", "--framework", "net9.0", "--project", "/path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj"],
          "env": {
            "ADO_URL": "HOST=localhost:1111;Database=Demo;UID=demo;PWD=demo",
            "API_KEY": "sk-xxx"
          }
        }
      }
    }
    

使用方法

提供されるツール

インストールが正常に完了すると、MCP クライアントアプリケーションで次のツールを利用できます。

概要
namedescription
ado_get_schemas接続先のデータベース管理システム(DBMS)からアクセス可能なデータベーススキーマを一覧表示します。
ado_get_tables選択したデータベーススキーマに関連付けられたテーブルを一覧表示します。
ado_describe_table指定したデータベーススキーマに関連付けられたテーブルの説明を返します。列名、データ型、NULL の処理、自動採番、主キー、外部キーに関する情報が含まれます。
ado_filter_table_names選択したデータベーススキーマに関連付けられたテーブルを、入力フィールド q の部分一致パターンに基づいて一覧表示します。
ado_query_databaseSQL クエリを実行し、結果を JSONL 形式で返します。
ado_execute_querySQL クエリを実行し、結果を JSONL 形式で返します。
ado_execute_query_mdSQL クエリを実行し、結果を Markdown テーブル形式で返します。
ado_spasql_querySPASQL クエリを実行し、結果を返します。
ado_sparql_querySPARQL クエリを実行し、結果を返します。
ado_virtuoso_support_aiVirtuoso 固有の機能である Virtuoso Support Assistant/Agent を介して、LLM とやり取りします。
詳細
  • ado_get_schemas

    • 接続先のデータベースからすべてのスキーマ名を取得して返します。
    • 入力パラメーター:
      • url(文字列、任意):ADO.NET の URL 接続文字列。
    • スキーマ名を格納した JSON 文字列配列を返します。
  • ado_get_tables

    • 指定したスキーマ内のテーブル情報を含む一覧を取得して返します。スキーマが指定されていない場合は、接続のデフォルトスキーマを使用します。
    • 入力パラメーター:
      • schema(string、任意):テーブルを絞り込むデータベーススキーマです。デフォルトでは接続のデフォルトスキーマが使用されます。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • テーブル情報(例:TABLE_CAT、TABLE_SCHEM、TABLE_NAME、TABLE_TYPE)を含む JSON 文字列を返します。
  • ado_filter_table_names

    • 名前に特定の部分文字列を含むテーブルの情報を絞り込んで返します。
    • 入力パラメーター:
      • q(string、必須):テーブル名から検索する部分文字列です。
      • schema(string、任意):テーブルを絞り込むデータベーススキーマです。デフォルトでは接続のデフォルトスキーマが使用されます。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • 該当するテーブルの情報を含む JSON 文字列を返します。
  • ado_describe_table

    • 特定のテーブルの列に関する詳細情報を取得して返します。
    • 入力パラメーター:
      • schema(string、必須):テーブルを含むデータベーススキーマ名です。
      • table(string、必須):説明を取得するテーブル名です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • テーブルの列を説明する JSON 文字列(例:COLUMN_NAME、TYPE_NAME、COLUMN_SIZE、IS_NULLABLE)を返します。
  • ado_query_database

    • 標準的な SQL クエリを実行し、結果を JSON 形式で返します。
    • 入力パラメーター:
      • query(string、必須):実行する SQL クエリ文字列です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • クエリ結果を JSON 文字列として返します。
  • ado_query_database_md

    • 標準的な SQL クエリを実行し、結果を Markdown テーブル形式で返します。
    • 入力パラメーター:
      • query(string、必須):実行する SQL クエリ文字列です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • クエリ結果を Markdown テーブル文字列として返します。
  • ado_query_database_jsonl

    • 標準的な SQL クエリを実行し、結果を JSON Lines(JSONL)形式(1 行につき 1 つの JSON オブジェクト)で返します。
    • 入力パラメーター:
      • query(string、必須):実行する SQL クエリ文字列です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • クエリ結果を JSONL 文字列として返します。
  • ado_spasql_query

    • SPASQL(SQL/SPARQL ハイブリッド)クエリを実行し、結果を返します。これは Virtuoso 固有の機能です。
    • 入力パラメーター:
      • query(string、必須):SPASQL クエリ文字列です。
      • max_rows(number、任意):返す行の最大数です。デフォルトは 20 です。
      • timeout(number、任意):クエリのタイムアウト時間(ミリ秒)です。デフォルトは 30000 です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • 基盤となるストアドプロシージャの呼び出し(例:Demo.demo.execute_spasql_query)の結果を返します。
  • ado_sparql_query

    • SPARQL クエリを実行し、結果を返します。これは Virtuoso 固有の機能です。
    • 入力パラメーター:
      • query(string、必須):SPARQL クエリ文字列です。
      • format(string、任意):希望する結果形式です。デフォルトは 'json' です。
      • timeout(number、任意):クエリのタイムアウト時間(ミリ秒)です。デフォルトは 30000 です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • 基盤となる関数の呼び出し(例:"UB".dba."sparqlQuery")の結果を返します。
  • ado_virtuoso_support_ai

    • Virtuoso 固有の AI アシスタント機能を利用し、プロンプトと任意の API キーを渡します。これは Virtuoso 固有の機能です。
    • 入力パラメーター:
      • prompt(string、必須):AI 機能に渡すプロンプトのテキストです。
      • api_key(string、任意):AI サービスの API キーです。デフォルトは "none" です。
      • url(string、任意):ADO.NET の URL 接続文字列です。
    • AI Support Assistant 関数の呼び出し(例:DEMO.DBA.OAI_VIRTUOSO_SUPPORT_AI)の結果を返します。

トラブルシューティング

トラブルシューティングを簡単に行うには、次の手順に従います。

  1. MCP Inspector をインストールします。

    npm install -g @modelcontextprotocol/inspector
    
  2. 使用している .Net のバージョンに応じて、Inspector を起動します。

    dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
    
    npx @modelcontextprotocol/inspector dotnet run --framework net8.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
    

    -- または --

    dotnet clean /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj
    
    npx @modelcontextprotocol/inspector dotnet run --framework net9.0 --project /path/to/mcp-adonet-server/MCP_AdoNet_Server.csproj -e ADO_URL="HOST=localhost:1111;Database=Demo;UID=username;PWD=password" -e API_KEY="sk-xxx-myapikey-xxx"
    

表示された URL にアクセスして、サーバーとのやり取りをトラブルシューティングします。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。