siebel-mcp-gateway
Siebel MCP Gateway
Oracle Siebel REST API をストリーミング可能な HTTP 上の MCP ツールとして公開し、エージェント型クライアントが Siebel の資格情報を保持することなく、Siebel レコードの照会・作成・更新・削除やオブジェクトカタログの取得を行えるようにします。
モックモードは、合成されたヘルスケア紹介のデモスキーマ(患者 → コミュニティ/病院紹介 → Form 17 コミットメント → 治療履歴)をモデル化しており、文書化された意図的なデータ品質の問題を滑らかにするのではなく、忠実に伝えるように構築されています。2 つの組織にまたがる重複患者レコード、実際には緊急度を保持しているステータスフィールド、ワークフローの明示された制限を静かに上書きするスクリプト、乖離する 2 つの「残り訪問回数」フィールドなどです。すべてのデータは合成です。
スタック
Python 3.12+、公式 mcp SDK(MCPServer。古い SDK バージョンでは FastMCP と呼ばれていたものの現在の名前)、外部への Siebel 呼び出し用の httpx、ASGI サーバーとしての uvicorn。
Related MCP server: MuleSoft Code MCP
ローカル実行
python3 -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# Fill in .env, or for a first run without a live Siebel instance:
# MOCK_MODE=true
# MCP_GATEWAY_TOKEN=<any string you'll also give your client>
MOCK_MODE=true MCP_GATEWAY_TOKEN=dev-token \
uvicorn app.server:app --host 0.0.0.0 --port 8000ヘルスチェック: curl http://localhost:8000/healthz → {"status":"ok"}(認証不要のため、プラットフォームのヘルスチェッカーが動作します)。
MCP エンドポイント: http://localhost:8000/mcp — すべてのリクエストに Authorization: Bearer <MCP_GATEWAY_TOKEN> が必要です。公開デプロイ後、このエンドポイント自体には他のアクセス制御がないためです。
テスト
python3 -m pytest -vすべてのテストはインメモリのモックストアまたはモックされた HTTP トランスポートに対して実行されます。ネットワーク呼び出しや実 Siebel インスタンスは不要です。
Render へのデプロイ
このリポジトリを GitHub にプッシュします。
まだ接続していない場合は、まず Render にリポジトリへのアクセスを許可します。 Render の GitHub App は、明示的にアクセスを許可されたリポジトリしか認識しません。新しいリポジトリは、あなたが所有しているだけでは Render のリポジトリ選択に表示されません。github.com/settings/installations に移動し、Render を見つけて Configure をクリックし、「All repositories」に切り替えるか、このリポジトリを許可リストに追加して Save します。その後、Render の接続画面に再び表示されます。
Render ダッシュボードで: New → Blueprint(「Web Service」ではありません。このリポジトリには
render.yamlがあり、Blueprint がそれを読み取ります)。リポジトリを接続し、ブランチmainとデフォルトのrender.yamlパスを確認します。Render は
render.yamlでsync: falseとマークされたすべての環境変数のフォームを表示します。デプロイ前にこれらを入力してください:MCP_GATEWAY_TOKEN— 生成します。例:openssl rand -hex 32MOCK_MODE— モックデータをすぐに提供する場合はtrue(実際の Siebel インスタンスがまだ準備できていない間は推奨)、下記に実際の Siebel 資格情報を入力する準備ができている場合はfalseSIEBEL_BASE_URL/SIEBEL_USERNAME/SIEBEL_PASSWORD—MOCK_MODE=falseの場合のみ必須。モックモードで開始する場合は空白のままにします
Deploy Blueprint をクリックします。Render は
https://<your-service>.onrender.comを割り当てます。
後でこれらを変更する場合(例: 実際の Siebel インスタンスの準備ができたら MOCK_MODE を切り替える): サービス(Blueprint ではなく)を開き、Environment タブで値を編集し、Save Changes をクリックすると再デプロイがトリガーされます。
デプロイされたゲートウェイに MCP クライアントを向ける
URL:
https://<your-service>.onrender.com/mcpトランスポート: ストリーミング可能な HTTP
認証: OAuth ではなく静的なベアラートークン/API キー。ヘッダーを
Authorization: Bearer <MCP_GATEWAY_TOKEN>に設定します(上記ステップ 4 と同じ値)。クライアントの認証 UI がヘッダー名と生の値を別々に要求する場合(1 つの結合ヘッダーではなく)、ヘッダー名はAuthorization、値はBearer <token>(「Bearer」という単語を含む)です。401 が返る場合は、生のトークンだけを渡してみてください。一部のクライアントはBearerプレフィックスを自分で追加するためです。
実際にデプロイした際の注意点
モックストアはインメモリのみです。 セッション中に作成・更新・削除されたものは、そのサーバープロセスが稼働している間だけ保持されます。再デプロイ、または Render の無料ティアインスタンスが約 15 分のアイドル後にスピンダウンし、次のリクエストでコールドスタートすると、元のシードデータにリセットされます。これはモックモードの想定された動作であり、バグではありません。
mcpPython SDK のクライアント側トランスポート依存関係はhttpx2であり、通常のhttpxではありません。これは、このゲートウェイに対して SDK のstreamable_http_clientヘルパーを使用して独自の MCP クライアントを書く場合にのみ関係します。高レベルなクライアントアプリではなく、http_client=引数には通常のhttpx.AsyncClientではなくhttpx2.AsyncClientが期待されます。
本番切り替えチェックリスト
実際の Siebel インスタンスが起動したら:
SIEBEL_BASE_URLを実際のインスタンスに設定(末尾スラッシュなし)。例:https://<siebel-host>/siebel/v1.0SIEBEL_USERNAME/SIEBEL_PASSWORDを設定インスタンスがまだ自己署名証明書を使用している場合のみ
SIEBEL_VERIFY_TLS=falseに設定。実際の証明書を取得したらtrueに戻すMOCK_MODE=falseに設定再デプロイし、実際のエージェントトラフィックを向ける前に
siebel_list_objectsとsearch_facilitiesでスモークテストを実行
ツール
汎用(任意のビジネスコンポーネントで動作: Contact、Employee、Medical Facility、Appointment Slot、Referral Request、Commitment Form、Treatment History):
ツール | 目的 |
| レコードの一覧/検索: |
|
|
|
|
|
|
|
|
| アカウントが公開しているビジネスコンポーネントを一覧表示 |
便利なラッパー。一般的なデモの要求に対してより薄い表面:
ツール | 目的 |
| 専門コードおよび/または正確な市区町村で検索 |
| 姓のプレフィックスで検索 |
| 患者 + 医師 + 専門 + 緊急度; ステージコード = COMMUNITY_SEARCH から開始 |
ここに組み込まれている Siebel REST API の前提に関する注記
認証は、すべての外部呼び出しで HTTP Basic です(このゲートウェイ自体の受信 MCP リクエストに対するベアラートークンチェックとは別です。2 つの異なる認証レイヤーであり、混同しないでください)。
URL 構文は
{BASE}/data/{BusinessObject}/{BusinessComponent}です。BO と BC はここでは常に同じ名前ではありません。例:Referral RequestはPatient ReferralBO の子 BC、Appointment SlotはAppointment Managementの子 BC です。ツールは BC 名を受け取り、クライアントが内部で正しい BO を検索します。パスセグメントは URL エンコードされるため、複数単語の名前も機能します。リスト応答は
{"items": [...]}として届きます。各レコードの"links"配列は、トークンを節約するためにモデルに返す前に削除されます。2xx 以外の応答は、HTTP ステータスコードと Siebel 自身のメッセージテキストとして表面化されます。401 には「Siebel 資格情報を確認してください」という明確なプレフィックスが付きます。外部呼び出しは 30 秒でタイムアウトします。
いくつかのフィールドは計算され、保存されません(Age、Days Waiting、Visits Remaining、Is Expired、Entry Gap Days、および Facility/Doctor/Patient 結合フィールド)。これらは読み取りのたびに新たに導出され、実際のビジネスコンポーネントの計算フィールド/結合フィールドとしての動作(物理的な列ではなく)と一致します。
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 Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for Salesforce that exposes CLI, REST, Connect, Data 360, Bulk 2.0, and Einstein Models APIs as tools for any MCP-compatible client to manage orgs, data, and metadata.Apache 2.0
- FlicenseNot gradedqualityCmaintenanceRemote MCP server for MuleSoft APIs that enables agents to discover operations and execute validated API calls with a fixed low-context tool surface.
- FlicenseNot gradedqualityBmaintenanceA generic MCP gateway that exposes any HTTP-based SQL portal as LLM-friendly MCP tools and standard REST endpoints, serving both human users and AI agents simultaneously.
- FlicenseNot gradedqualityDmaintenanceMCP server for Siebel CRM with HTTP/SSE transport, enabling secure access to Siebel data and operations like accounts, contacts, opportunities, and queries. Designed to be deployed on Phala Cloud TEE for credential protection.
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
MCP server exposing the Backtest360 engine API as tools for AI agents.
MCP server for AI access to Swagger by SmartBear.
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/yanivshoval0104/siebel-mcp-gateway'
If you have feedback or need assistance with the MCP directory API, please join our Discord server