Skip to main content
Glama
yanivshoval0104

siebel-mcp-gateway

Siebel MCP Gateway

Oracle Siebel REST API를 streamable HTTP를 통해 MCP 도구로 노출하여, 에이전트 클라이언트가 Siebel 자격 증명을 직접 보유하지 않고도 Siebel 레코드를 조회/생성/업데이트/삭제하고 객체 카탈로그를 가져올 수 있게 합니다.

Mock 모드는 합성 헬스케어 추천 데모 스키마(환자 → 커뮤니티/병원 추천 → Form 17 약정 → 치료 이력)를 모델링하며, 문서화된 의도적인 데이터 품질 문제를 매끄럽게 덮지 않고 충실히 전달하도록 설계되었습니다. 두 조직에 걸친 중복 환자 레코드, 실제로는 긴급도를 담고 있는 상태 필드, Workflow의 명시된 한도를 조용히 덮어쓰는 스크립트, 서로 어긋나는 두 개의 "방문 잔여 횟수" 필드 등이 포함됩니다. 모든 데이터는 합성 데이터입니다.

스택

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

모든 테스트는 인메모리 mock 저장소 또는 mock HTTP 전송을 대상으로 실행됩니다. 네트워크 호출 없음, 실제 Siebel 인스턴스 불필요.

Render에 배포하기

  1. 이 저장소를 GitHub에 푸시합니다.

  2. 아직 연결되지 않았다면 먼저 Render에 저장소 접근 권한을 부여합니다. Render의 GitHub App은 명시적으로 접근 권한이 부여된 저장소만 볼 수 있습니다. 새 저장소는 소유자라도 Render의 저장소 선택기에 표시되지 않습니다. github.com/settings/installations로 이동 → Render 찾기 → Configure → "All repositories"로 전환하거나 이 저장소를 허용 목록에 추가 → Save. 그 후에야 Render의 연결 화면에 다시 나타납니다.

  3. Render 대시보드에서: New → Blueprint ("Web Service"가 아님 — 이 저장소에는 render.yaml이 있으며 Blueprint가 이를 읽습니다). 저장소를 연결하고 main 브랜치와 기본 render.yaml 경로를 확인합니다.

  4. Render는 render.yaml에서 sync: false로 표시된 모든 환경 변수에 대한 양식을 표시합니다. 배포 전에 다음을 입력하세요:

    • MCP_GATEWAY_TOKEN — 생성, 예: openssl rand -hex 32

    • MOCK_MODEtrue로 설정하면 즉시 mock 데이터를 제공하기 시작합니다(실제 Siebel 인스턴스가 아직 준비되지 않은 경우 권장). 아래에 실제 Siebel 자격 증명을 입력할 수 있다면 false로 설정

    • SIEBEL_BASE_URL / SIEBEL_USERNAME / SIEBEL_PASSWORDMOCK_MODE=false인 경우에만 필요. mock 모드로 시작하는 경우 비워 둡니다.

  5. Deploy Blueprint를 클릭합니다. Render가 https://<your-service>.onrender.com을 할당합니다.

나중에 이러한 값을 변경하려면(예: 실제 Siebel 인스턴스가 준비되면 MOCK_MODE 전환): 서비스(Blueprint 아님)를 열고 → Environment 탭 → 값 편집 → Save Changes를 클릭하면 재배포가 트리거됩니다.

배포된 게이트웨이에 MCP 클라이언트 연결하기

  • URL: https://<your-service>.onrender.com/mcp

  • 전송: streamable HTTP

  • 인증: OAuth가 아닌 정적 bearer 토큰/API 키 — 헤더를 Authorization: Bearer <MCP_GATEWAY_TOKEN>(위 4단계의 동일한 값)으로 설정합니다. 클라이언트의 인증 UI가 결합된 헤더 대신 헤더 이름과 원시 값을 별도로 요구하는 경우, 헤더 이름은 Authorization이고 값은 Bearer <token>("Bearer" 단어 포함)입니다. 401이 발생하면 일부 클라이언트가 Bearer 접두사를 자체적으로 추가하므로 원시 토큰만 제공해 보세요.

실제 배포에서 얻은 참고 사항

  • Mock 저장소는 인메모리 전용입니다. 세션 중 생성/업데이트/삭제된 모든 것은 해당 서버 프로세스가 유지되는 동안만 유지됩니다. 재배포 또는 Render 무료 티어 인스턴스가 약 15분 유휴 후 종료되고 다음 요청 시 콜드 스타트되면 원래 시드 데이터로 재설정됩니다. 이는 예상된 mock 모드 동작이며 버그가 아닙니다.

  • mcp Python SDK의 클라이언트 측 전송 종속성은 httpx2 입니다. 일반 httpx가 아닙니다. 이 게이트웨이에 대해 SDK의 streamable_http_client 헬퍼를 사용하여 자체 MCP 클라이언트를 작성하는 경우에만 관련됩니다. 고수준 클라이언트 앱 대신 http_client= 인수에 일반 httpx.AsyncClient가 아닌 httpx2.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_objectssearch_facilities로 스모크 테스트

도구

일반용(모든 비즈니스 컴포넌트에서 작동: Contact, Employee, Medical Facility, Appointment Slot, Referral Request, Commitment Form, Treatment History):

도구

목적

siebel_query

레코드 목록/검색: searchspec, fields, page_size, start_row

siebel_get

row_id로 레코드 하나 가져오기

siebel_create

fields 딕셔너리에서 레코드 생성

siebel_update

row_id로 레코드의 fields 업데이트

siebel_delete

row_id로 레코드 삭제

siebel_list_objects

계정이 노출하는 비즈니스 컴포넌트 목록

편의 래퍼, 일반적인 데모 요청에 더 얇은 표면:

도구

목적

search_facilities

전문 코드 및/또는 정확한 도시로 검색

search_contacts

성 접두사로 검색

create_referral

환자 + 의사 + 전문 + 긴급도; Stage Code = COMMUNITY_SEARCH에서 시작

여기에 내장된 Siebel REST API 가정에 대한 참고 사항

  • 모든 아웃바운드 호출에 HTTP Basic 인증이 사용됩니다(이 게이트웨이의 인바운드 MCP 요청에 대한 자체 bearer 토큰 검사와는 별개 — 두 개의 서로 다른 인증 계층, 혼동하지 마세요).

  • URL 문법은 {BASE}/data/{BusinessObject}/{BusinessComponent}입니다. BO와 BC는 여기서 항상 같은 이름이 아닙니다. 예: Referral RequestPatient Referral BO의 하위 BC이고, Appointment SlotAppointment 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 조인 필드) — 실제 비즈니스 컴포넌트의 계산/조인 필드처럼 물리적 열이 아닌 매 읽기마다 새로 파생됩니다.

F
license - not found
Not graded
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

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

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP 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
  • F
    license
    Not graded
    quality
    B
    maintenance
    A 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.
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP 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.

View all related MCP servers

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.

View all MCP Connectors

Latest Blog Posts

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