U2 MCP Server について
U2 MCP Server は、AI アシスタントを Rocket Universe と UniData の MultiValue データベースに接続し、自然言語での検索やデータベース操作を可能にします。レコードやクエリのツールに加え、辞書アクセス、トランザクション、データベース情報の永続化を備えています。
主な機能
- 01接続プールと SSL に対応した接続管理
- 02レコードの読み取り、書き込み、削除
- 03RetrieVe/UniQuery と TCL/ECL コマンドの実行
- 04ファイル、辞書、フィールド定義の確認
- 05BASIC サブルーチンの呼び出しとトランザクション管理
- 06データベース情報の保存と検索
活用シーン
- 01顧客や請求書のレコードについて質問
- 02データベースのファイルやフィールド定義を調査
- 03設定可能な安全制御のもとでクエリを実行
- 04保存したデータベース情報をセッション間で再利用
MCP 対応
この MCP サーバーは、データベース接続、ファイル、クエリ、辞書、BASIC サブルーチン、トランザクション、知識永続化のツールを MCP クライアントに公開します。ローカル stdio のほか、集中型の HTTP/SSE と Streamable HTTP のデプロイ方式に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx u2-mcpU2_HOSTUniverse/UniData server hostname or IP addressU2_USERDatabase usernameU2_PASSWORDシークレットDatabase passwordU2_ACCOUNTAccount name to connect toU2_SERVICEService type: 'uvcs' for Universe, 'udcs' for UniDataU2_PORTServer portU2_SSLEnable SSL connectionU2_READ_ONLYDisable write operations for safe explorationU2_MAX_RECORDSMaximum records returned from SELECT queriesU2_BLOCKED_COMMANDSComma-separated list of blocked TCL commandsローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
u2-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) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
- データベースについて Claude に質問します
- Claude が適切なツールを使って u2-mcp を呼び出します
- u2-mcp が Universe/UniData サーバーにクエリを実行します
- 結果が 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_SSL | SSL を有効にするかどうか | false |
U2_TIMEOUT | 接続タイムアウト(秒) | 30 |
U2_READ_ONLY | 書き込み操作を無効にするかどうか | false |
U2_MAX_RECORDS | SELECT の最大結果数 | 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_HOST | HTTP サーバーをバインドするホスト | 0.0.0.0 |
U2_HTTP_PORT | HTTP サーバーのポート | 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 のカスタムコネクターとしてデプロイします。
クイックセットアップ
- OAuth を有効にして u2-mcp をデプロイします:
u2-mcp --streamable-http --host 0.0.0.0 --port 8080
.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
- 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をご覧ください。
ドキュメント
はじめに
- クイックスタートガイド - 10 分で実行を開始できます
- MCP とは? - MCP と u2-mcp の仕組みについて
- インストールガイド - 詳細なインストール手順
リファレンス
- 設定リファレンス - すべての環境変数
- ツールリファレンス - ツールの完全なドキュメント
- 使用例 - 一般的な使用パターン
- OAuth と Claude.ai の連携 - Claude.ai のカスタムコネクターとしてデプロイする方法
ライセンス
このプロジェクトは Apache License 2.0 の下でライセンスされています。詳細については、LICENSEファイルをご覧ください。
謝辞
uopyパッケージを提供してくださった Rocket Software- Model Context Protocol の仕様を提供してくださった Anthropic
- MultiValue データベースコミュニティ
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。