siebel-mcp-gateway
Siebel MCP Gateway
Предоставляет Oracle Siebel REST API в виде MCP-инструментов через потоковый HTTP, чтобы агентный клиент мог запрашивать/создавать/обновлять/удалять записи Siebel и получать каталог объектов, не храня у себя учётные данные Siebel.
Режим mock моделирует синтетическую демо-схему направления в здравоохранении (пациент → направление в сообщество/больницу → обязательство по форме 17 → история лечения), созданную так, чтобы честно отражать набор задокументированных, намеренных дефектов качества данных, а не сглаживать их — дублирующиеся записи пациентов в двух организациях, поле статуса, которое на самом деле содержит срочность, скрипт, который молча переопределяет заявленные ограничения Workflow, два поля «осталось визитов», которые расходятся. Все данные синтетические.
Стек
Python 3.12+, официальный SDK mcp (MCPServer, текущее название того, что в старых версиях SDK называлось FastMCP), httpx для исходящих вызовов Siebel, uvicorn в качестве ASGI-сервера.
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 доступ к репозиторию, если он ещё не подключён. GitHub App от Render видит только те репозитории, к которым ему явно предоставлен доступ — новый репозиторий не появится в списке выбора репозиториев Render только потому, что вы его владелец. Перейдите на github.com/settings/installations → найдите Render → Configure → либо переключитесь на «All repositories», либо добавьте этот репозиторий в список разрешённых → Save. Только после этого он снова появится на экране подключения Render.
В панели Render: New → Blueprint (не «Web Service» — в этом репозитории есть
render.yaml, и именно Blueprint его читает). Подключите репозиторий, подтвердите веткуmainи путь по умолчаниюrender.yaml.Render покажет форму для каждой переменной окружения, помеченной
sync: falseвrender.yaml— заполните их перед развёртыванием:MCP_GATEWAY_TOKEN— сгенерируйте, например,openssl rand -hex 32MOCK_MODE—true, чтобы сразу начать обслуживать mock-данные (рекомендуется, пока реальный экземпляр Siebel ещё не готов),false, если у вас уже есть реальные учётные данные Siebel для ввода нижеSIEBEL_BASE_URL/SIEBEL_USERNAME/SIEBEL_PASSWORD— требуются только еслиMOCK_MODE=false; оставьте пустыми, если начинаете в mock-режиме
Нажмите Deploy Blueprint. Render назначит
https://<your-service>.onrender.com.
Чтобы позже изменить любые из этих значений (например, переключить MOCK_MODE, когда реальный экземпляр Siebel будет готов): откройте сервис (не Blueprint) → вкладка Environment → измените значение → Save Changes, что вызовет повторное развёртывание.
Подключение вашего MCP-клиента к развёрнутому шлюзу
URL:
https://<your-service>.onrender.com/mcpТранспорт: потоковый HTTP
Аутентификация: статический bearer-токен/API-ключ, не OAuth — установите заголовок
Authorization: Bearer <MCP_GATEWAY_TOKEN>(то же значение из шага 4 выше). Если интерфейс аутентификации вашего клиента запрашивает имя заголовка и значение по отдельности, а не один объединённый заголовок, имя заголовка —Authorization, значение —Bearer <token>(включая слово «Bearer») — если это даёт 401, попробуйте передать только сам токен, так как некоторые клиенты добавляют префиксBearerсами.
Заметки из реального развёртывания
Mock-хранилище только в памяти. Всё, что создано/обновлено/удалено во время сеанса, сохраняется только до тех пор, пока работает процесс сервера. Повторное развёртывание или остановка бесплатного экземпляра Render после ~15 минут простоя и холодный старт при следующем запросе сбрасывают его обратно к исходным данным. Это ожидаемое поведение mock-режима, а не ошибка.
Зависимость клиентского транспорта Python SDK
mcp— этоhttpx2, а не обычныйhttpx— это актуально только если вы пишете собственного MCP-клиента для этого шлюза, используя хелперstreamable_http_clientиз SDK, а не высокоуровневое клиентское приложение; он ожидаетhttpx2.AsyncClientдля аргументаhttp_client=, а не обычныйhttpx.AsyncClient.
Контрольный список перехода на реальный экземпляр
Когда реальный экземпляр Siebel будет готов:
Установите
SIEBEL_BASE_URLна реальный экземпляр (без завершающего слэша), напримерhttps://<siebel-host>/siebel/v1.0Установите
SIEBEL_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):
Инструмент | Назначение |
| Список/поиск записей: |
| Получить одну запись по |
| Создать запись из словаря |
| Обновить |
| Удалить запись по |
| Список бизнес-компонентов, доступных учётной записи |
Удобные обёртки, более тонкая поверхность для типовых демо-запросов:
Инструмент | Назначение |
| По коду специальности и/или точному городу |
| По префиксу фамилии |
| Пациент + врач + специальность + срочность; начинается с Stage Code = COMMUNITY_SEARCH |
Примечания о допущениях Siebel REST API, заложенных здесь
Аутентификация — HTTP Basic на каждом исходящем вызове (отдельно от собственной проверки bearer-токена этого шлюза на входящих MCP-запросах — два разных уровня аутентификации, не путайте их).
Грамматика URL:
{BASE}/data/{BusinessObject}/{BusinessComponent}. BO и BC не всегда имеют одинаковые имена — например,Referral Request— дочерний BC в BOPatient Referral,Appointment Slot— дочерний BC вAppointment Management. Инструменты принимают имя 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