mcpField
U
U2 MCP Server

U2 MCP Server

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

U2 MCP Server について

U2 MCP Server は、AI アシスタントを Rocket Universe と UniData の MultiValue データベースに接続し、自然言語での検索やデータベース操作を可能にします。レコードやクエリのツールに加え、辞書アクセス、トランザクション、データベース情報の永続化を備えています。

主な機能

  1. 01接続プールと SSL に対応した接続管理
  2. 02レコードの読み取り、書き込み、削除
  3. 03RetrieVe/UniQuery と TCL/ECL コマンドの実行
  4. 04ファイル、辞書、フィールド定義の確認
  5. 05BASIC サブルーチンの呼び出しとトランザクション管理
  6. 06データベース情報の保存と検索

活用シーン

  1. 01顧客や請求書のレコードについて質問
  2. 02データベースのファイルやフィールド定義を調査
  3. 03設定可能な安全制御のもとでクエリを実行
  4. 04保存したデータベース情報をセッション間で再利用

MCP 対応

この MCP サーバーは、データベース接続、ファイル、クエリ、辞書、BASIC サブルーチン、トランザクション、知識永続化のツールを MCP クライアントに公開します。ローカル stdio のほか、集中型の HTTP/SSE と Streamable HTTP のデプロイ方式に対応します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"bpamiri-u2": {
"command": "uvx",
"args": [
"u2-mcp"
],
"env": {
"U2_HOST": "<U2_HOST>",
"U2_USER": "<U2_USER>",
"U2_PASSWORD": "<U2_PASSWORD>",
"U2_ACCOUNT": "<U2_ACCOUNT>",
"U2_SERVICE": "<U2_SERVICE>",
"U2_PORT": "<U2_PORT>",
"U2_SSL": "<U2_SSL>",
"U2_READ_ONLY": "<U2_READ_ONLY>",
"U2_MAX_RECORDS": "<U2_MAX_RECORDS>",
"U2_BLOCKED_COMMANDS": "<U2_BLOCKED_COMMANDS>"
}
}
}
}
起動コマンドuvx u2-mcp
設定が必要な環境変数
U2_HOSTUniverse/UniData server hostname or IP address
U2_USERDatabase username
U2_PASSWORDシークレットDatabase password
U2_ACCOUNTAccount name to connect to
U2_SERVICEService type: 'uvcs' for Universe, 'udcs' for UniData
U2_PORTServer port
U2_SSLEnable SSL connection
U2_READ_ONLYDisable write operations for safe exploration
U2_MAX_RECORDSMaximum records returned from SELECT queries
U2_BLOCKED_COMMANDSComma-separated list of blocked TCL commands

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypiu2-mcp0.1.1

ツール

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

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

詳細

u2-mcp

PyPI version License Python MCP

自然言語で Claude を Universe/UniData データベースに接続します。

u2-mcp は、Claude などの AI アシスタントが Rocket Universe および UniData MultiValue データベースを照会し、操作できるようにする MCP サーバーです。平易な英語で質問すると、データから実際の答えが得られます。

Pick/MultiValue データベースファミリー初の MCP サーバーです。

どのようなことができますか?

RetrieVe クエリを書く代わりに、Claude に尋ねるだけです。

質問Claude の動作
「カリフォルニア州には顧客が何人いますか?」データベースを照会し、「顧客は1,247人です」と回答します
「注文 ORD001 を表示して」レコードを読み取り、すべてのフィールドを表示します
「利用できるファイルは何ですか?」アカウント内のすべてのファイルを一覧表示します
「CUSTOMERS ファイルを説明して」ディクショナリからフィールド定義を表示します

仕組み

┌─────────────────┐     ┌─────────────────┐     ┌─────────────────┐
│  Claude Desktop │◄───►│     u2-mcp      │◄───►│ Universe/UniData│
│  (You ask here) │     │  (Translates)   │     │   (Your data)   │
└─────────────────┘     └─────────────────┘     └─────────────────┘
  1. データベースについて Claude に質問します
  2. Claude が適切なツールを使って u2-mcp を呼び出します
  3. u2-mcp が Universe/UniData サーバーにクエリを実行します
  4. 結果が Claude を通じて読みやすい形式で返されます

MCP を初めてお使いですか? 詳しい説明は「MCP とは?」をご覧ください。

ドキュメント

ガイド説明
MCP とは?MCP と u2-mcp の仕組みについて
インストールインストール手順の完全ガイド
クイックスタート10分で使い始める方法
設定すべての設定オプション
ツールリファレンスツールの詳しいドキュメント
使用例よくある使用パターン
OAuth の設定SSO を使った Claude.ai 連携

機能

  • 接続管理 - コネクションプーリングと SSL に対応し、Universe/UniData サーバーに接続します
  • ファイル操作 - MultiValue のセマンティクスを保持しながら、レコードの読み取り、書き込み、削除を行います
  • クエリ実行 - 安全制御付きで RetrieVe/UniQuery 文を実行します
  • ディクショナリアクセス - ファイル構造とフィールド定義を調べます
  • BASIC サブルーチンの呼び出し - カタログ登録済みの BASIC プログラムを実行します
  • トランザクション対応 - コミット/ロールバックを含む完全なトランザクション管理を行います
  • AI に最適化 - LLM とのやり取りを改善するクエリ例と構文ヘルプを内蔵しています

インストール

pip install u2-mcp

または、分離して実行するには uvx を使用します。

uvx u2-mcp

クイックスタート

前提条件
  • Python 3.10+
  • Rocket Universe または UniData サーバーへのアクセス
  • uopy パッケージ(依存関係として自動的にインストールされます)
設定

データベース接続用の環境変数を設定します。

export U2_HOST=server.example.com
export U2_USER=username
export U2_PASSWORD=password
export U2_ACCOUNT=MYACCOUNT
export U2_SERVICE=uvcs  # or 'udcs' for UniData
Claude Desktop の設定

claude_desktop_config.json に追加します。

{
  "mcpServers": {
    "u2": {
      "command": "uvx",
      "args": ["u2-mcp"],
      "env": {
        "U2_HOST": "server.example.com",
        "U2_USER": "user",
        "U2_PASSWORD": "password",
        "U2_ACCOUNT": "MYACCOUNT"
      }
    }
  }
}

使用例

接続すると、自然言語で Universe データベースを操作できます。

  • 「カリフォルニア州の顧客をすべて一覧表示して」
  • 「CUSTOMERS ファイルからレコード CUST001 を読み取って」
  • 「ORDERS ファイルのディクショナリを表示して」
  • 「1,000ドルを超える未決済の請求書をすべて数えて」

利用可能なツール

接続管理
  • connect - Universe/UniData サーバーへの接続を確立します
  • disconnect - 接続を閉じます
  • list_connections - アクティブな接続を表示します
ファイル操作
  • list_files - アカウント内で利用可能なファイルを一覧表示します
  • read_record - ID を指定して単一のレコードを読み取ります
  • read_records - 複数のレコードを読み取ります
  • write_record - レコードを書き込み/更新します
  • delete_record - レコードを削除します
  • get_file_info - ファイルの統計情報を取得します
クエリの実行
  • execute_query - RetrieVe/UniQuery ステートメントを実行します
  • execute_tcl - TCL/ECL コマンドを実行します
  • get_select_list - SELECT を実行してレコード ID を返します
ディクショナリへのアクセス
  • list_dictionary - ディクショナリ項目を一覧表示します
  • get_field_definition - フィールドの詳細を取得します
  • describe_file - ファイルの概要を説明します
高度な機能
  • call_subroutine - BASIC サブルーチンを呼び出します
  • begin_transaction / commit_transaction / rollback_transaction - トランザクションを管理します
ナレッジの永続化
  • save_knowledge - データベースについて学習した情報を保存します
  • list_knowledge - 保存済みのナレッジトピックをすべて一覧表示します
  • get_knowledge_topic - 特定のトピックを取得します
  • search_knowledge - 保存済みのナレッジを検索します
  • delete_knowledge - ナレッジトピックを削除します

設定オプション

変数説明デフォルト
U2_HOSTサーバーのホスト名または IP アドレス必須
U2_USERユーザー名必須
U2_PASSWORDパスワード必須
U2_ACCOUNTアカウント名必須
U2_SERVICEサービスタイプ(uvcs または udcs)uvcs
U2_PORTサーバーポート31438
U2_SSLSSL を有効にするかどうかfalse
U2_TIMEOUT接続タイムアウト(秒)30
U2_READ_ONLY書き込み操作を無効にするかどうかfalse
U2_MAX_RECORDSSELECT の最大結果数10000
U2_BLOCKED_COMMANDSブロックする TCL コマンド(カンマ区切り)DELETE.FILE,CLEAR.FILE
U2_KNOWLEDGE_PATHナレッジファイルのカスタムパス~/.u2-mcp/knowledge.md

ナレッジの永続化

MCP サーバーには、Claude がデータベースについて学習した情報をセッションをまたいで保存・再利用できる、ナレッジの永続化機能が含まれています。これにより、繰り返し発生する調査作業が不要になり、以降のやり取りを効率化できます。

仕組み

Claude がデータベースに関する有用な情報(ファイルの用途、フィールドの意味、動作するクエリなど)を見つけると、save_knowledge ツールを使ってそのナレッジを保存できます。この情報は Markdown ファイルに保存され、u2://knowledge リソースを通じて、今後の会話でも自動的に利用できます。

保存される情報
  • ファイルの説明 - 各ファイルに含まれる情報(例:「AR-CUST は顧客マスターファイルです」)
  • フィールドのマッピング - 各フィールドに含まれるデータ(例:「フィールド 1 は顧客名です」)
  • クエリのパターン - 良好な結果が得られたクエリ
  • データ形式 - 日付形式、コードの意味、変換に関する注意事項
  • 関係 - ファイル同士の関連性
保存場所

ナレッジはデフォルトで ~/.u2-mcp/knowledge.md に保存されます。U2_KNOWLEDGE_PATH 環境変数を使って保存場所を変更できます。

{
  "env": {
    "U2_KNOWLEDGE_PATH": "/path/to/custom/knowledge.md"
  }
}
使用例

Claude が AR-CUST に顧客レコードが含まれていることを見つけた後:

Claude: I found that AR-CUST is the customer master file. Let me save this for future reference.
[Calls save_knowledge("AR-CUST file", "Customer master file. Key is customer number. Field 1=name, Field 2=address...")]

次の会話では、Claude はこの情報をすでに把握しているため、再度調査する必要はありません。

集中型デプロイ(HTTP/SSE モード)

チーム環境では、ローカルの stdio モードの代わりに、u2-mcp を集中型 HTTP サーバーとして実行できます。これにより、以下が可能になります。

  • チーム全体でデータベース接続を共有
  • ナレッジベースの共有
  • 認証情報の一元管理
  • MCP 互換クライアントからのアクセス
HTTP サーバーの実行
# Basic HTTP server on default port 8080
u2-mcp --http

# Custom host and port
u2-mcp --http --host 0.0.0.0 --port 3000

# Or using environment variables
export U2_HTTP_HOST=0.0.0.0
export U2_HTTP_PORT=3000
u2-mcp --http
Docker によるデプロイ
FROM python:3.12-slim

RUN pip install u2-mcp

ENV U2_HOST=your-universe-server
ENV U2_USER=username
ENV U2_PASSWORD=password
ENV U2_ACCOUNT=MYACCOUNT
ENV U2_HTTP_PORT=8080

EXPOSE 8080

CMD ["u2-mcp", "--http"]
docker build -t u2-mcp-server .
docker run -p 8080:8080 u2-mcp-server
HTTP の設定オプション
変数説明デフォルト
U2_HTTP_HOSTHTTP サーバーをバインドするホスト0.0.0.0
U2_HTTP_PORTHTTP サーバーのポート8080
U2_HTTP_CORS_ORIGINS許可する CORS オリジン(カンマ区切り、または *)*
クライアントの接続

HTTP サーバーは /sse に SSE(Server-Sent Events)エンドポイントを公開します。リモートサーバーに対応する MCP クライアントは、次の接続先に接続できます。

http://your-server:8080/sse

注記: 2024 年後半時点で、Claude Desktop が対応しているのはローカルの stdio MCP サーバーのみです。HTTP/SSE モードは、以下を対象としています。

  • カスタム MCP クライアント
  • リモートサーバーに対応する今後の Claude Desktop バージョン
  • HTTP 経由の MCP に対応する他の AI ツールとの連携

Claude.ai との連携(Streamable HTTP + OAuth)

ID プロバイダー(Duo、Auth0、Okta など)によるエンタープライズ認証を使用して、u2-mcp を Claude.ai のカスタムコネクターとしてデプロイします。

クイックセットアップ
  1. OAuth を有効にして u2-mcp をデプロイします:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080
  1. .env で OAuth を設定します:
U2_AUTH_ENABLED=true
U2_AUTH_ISSUER_URL=https://u2-mcp.example.com
U2_IDP_PROVIDER=duo
U2_IDP_DISCOVERY_URL=https://sso-xxx.sso.duosecurity.com/oidc/CLIENT_ID/.well-known/openid-configuration
U2_IDP_CLIENT_ID=your_client_id
U2_IDP_CLIENT_SECRET=your_client_secret
  1. Claude.ai に追加します:[Settings]→[Connectors]→[Add Custom Connector]に移動し、URL を入力します

ユーザーは ID プロバイダーを通じて認証すると、Claude.ai からデータベースに直接クエリを実行できます。

対応する ID プロバイダー
  • Cisco Duo - エンタープライズ向け MFA と SSO
  • Auth0 - 柔軟な ID プラットフォーム
  • 任意の OIDC プロバイダー - Okta、Azure AD、Google Workspace、Keycloak など

詳しいセットアップ手順については、OAuth ガイドをご覧ください。

セキュリティ

  • 認証情報はログに記録されません
  • 設定可能なコマンドのブロックリストにより、危険な操作を防止します
  • 安全な調査のための読み取り専用モードを任意で有効にできます
  • Universe に組み込まれたセキュリティモデルに準拠します

セキュリティの脆弱性を報告する場合は、SECURITY.mdをご覧ください。

貢献

貢献を歓迎します!ガイドラインについては、CONTRIBUTING.mdをご覧ください。

ドキュメント

はじめに
リファレンス

ライセンス

このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については、LICENSEファイルをご覧ください。

謝辞

  • uopy パッケージを提供してくださった Rocket Software
  • Model Context Protocol の仕様を提供してくださった Anthropic
  • MultiValue データベースコミュニティ

コメント

MCP は初めてですか?

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

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