MCP Context Forge는 IBM에서 오픈 소스로 제공하는 기능이 풍부한 FastAPI 기반 모델 컨텍스트 프로토콜(MCP) 게이트웨이입니다. 이 게이트웨이는 도구, 리소스, 프롬프트, 서버 및 피어 게이트웨이를 통합하고 연합하여 모든 REST API를 MCP 표준을 준수하는 도구 또는 가상 서버로 래핑합니다. 이 프로젝트는 HTTP/JSON-RPC, WebSocket, 서버 전송 이벤트(SSE) 및 stdio 전송 프로토콜을 통해 모든 기능을 공개하고, 풍부한 대화형 관리 UI를 제공하며, 컨테이너 형태로 패키징되어 모든 SQLAlchemy 지원 데이터베이스를 지원합니다.
이 프로젝트는 모듈식 아키텍처 설계를 채택했습니다.
┌─────────────────┐ ┌──────────────────┐
│ 🖥️ Admin UI │ │ 🔐 인증 권한 부여 │
│ 관리 인터페이스 │ │ JWT + Basic │
└─────────────────┘ └──────────────────┘
│ │
└────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 🚪 MCP 게이트웨이 코어 │
│ 프로토콜 초기화 Ping 완료 │
│ 연합 관리자 │
│ 전송 프로토콜 HTTP WS SSE Stdio │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 서비스 계층 │
│ 🧰 도구 서비스 📁 리소스 서비스 │
│ 📝 프롬프트 서비스 🧩 서버 서비스 │
└─────────────┬─────────────────┘
│
┌─────────────▼─────────────────┐
│ 영구 저장 계층 │
│ 💾 데이터베이스 SQLAlchemy │
│ ⚡ 캐시 Redis/Memory │
└───────────────────────────────┘
/health
엔드포인트 및 지연 지표 데코레이터# 애플리케이션 기본 구성
APP_NAME=MCP Gateway
HOST=0.0.0.0
PORT=4444
DATABASE_URL=sqlite:///./mcp.db
APP_ROOT_PATH=/gateway # 선택적 하위 경로 접두사
# Basic 인증(관리 인터페이스 및 API)
BASIC_AUTH_USER=admin
BASIC_AUTH_PASSWORD=changeme
# JWT 구성
JWT_SECRET_KEY=my-test-key
JWT_ALGORITHM=HS256
TOKEN_EXPIRY=10080 # 분
# 인증 제어
AUTH_REQUIRED=true
AUTH_ENCRYPTION_SECRET=my-test-salt
# 연합 기능
FEDERATION_ENABLED=true
FEDERATION_DISCOVERY=false
FEDERATION_PEERS=["http://peer1:4444","http://peer2:4444"]
FEDERATION_TIMEOUT=30
FEDERATION_SYNC_INTERVAL=300
docker run -d --name mcpgateway \
-p 4444:4444 \
-e HOST=0.0.0.0 \
-e JWT_SECRET_KEY=my-secret-key \
-e BASIC_AUTH_USER=admin \
-e BASIC_AUTH_PASSWORD=changeme \
-e AUTH_REQUIRED=true \
-e DATABASE_URL=sqlite:///./mcp.db \
ghcr.io/ibm/mcp-context-forge:latest
# 가상 환경을 만들고 종속성을 설치합니다.
make venv install serve
# 또는 수동으로 설치합니다.
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
uvicorn mcpgateway.main:app --host 0.0.0.0 --port 4444
export MCPGATEWAY_BEARER_TOKEN=$(python3 -m mcpgateway.utils.create_jwt_token --username admin --exp 10080 --secret my-test-key)
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"protocol_version":"2025-03-26",
"capabilities":{},
"client_info":{"name":"MyClient","version":"1.0.0"}
}' \
http://localhost:4444/protocol/initialize
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"clock_tool",
"url":"http://localhost:9000/rpc",
"description":"Returns current time",
"input_schema":{
"type":"object",
"properties":{"timezone":{"type":"string"}},
"required":[]
}
}' \
http://localhost:4444/tools
curl -X POST -u admin:changeme \
-H "Content-Type: application/json" \
-d '{
"name":"greet",
"template":"Hello, {{ user }}!",
"argument_schema":{
"type":"object",
"properties":{"user":{"type":"string"}},
"required":["user"]
}
}' \
http://localhost:4444/prompts
이 프로젝트는 완전한 IBM Cloud Code Engine 배포를 지원합니다.
IBMCLOUD_REGION=us-south
IBMCLOUD_RESOURCE_GROUP=default
IBMCLOUD_PROJECT=my-codeengine-project
IBMCLOUD_CODE_ENGINE_APP=mcpgateway
IBMCLOUD_IMAGE_NAME=us.icr.io/myspace/mcpgateway:latest
IBMCLOUD_API_KEY=your_api_key_here
make ibmcloud-check-env # 환경 변수 확인
make ibmcloud-cli-install # IBM Cloud CLI 설치
make ibmcloud-login # IBM Cloud 로그인
make ibmcloud-ce-login # Code Engine 프로젝트 선택
make ibmcloud-tag # 컨테이너 이미지 태그 지정
make ibmcloud-push # IBM Container Registry에 푸시
make ibmcloud-deploy # Code Engine에 배포
mcpgateway/
├── admin.py # FastAPI 라우트 및 관리 UI 컨트롤러
├── cache/
│ └── resource_cache.py # 리소스의 메모리 LRU+TTL 캐시
├── config.py # Pydantic 설정 로더
├── db.py # SQLAlchemy ORM 모델 및 데이터베이스 설정
├── federation/
│ ├── discovery.py # 피어 게이트웨이 검색
│ ├── forward.py # RPC 전달 로직
│ └── manager.py # 연합 조정 및 상태 확인
├── handlers/
│ └── sampling.py # MCP 스트리밍 샘플링 요청 처리기
├── services/
│ ├── completion_service.py # 프롬프트 및 리소스 매개변수 완료 로직
│ ├── gateway_service.py # 피어 게이트웨이 등록 및 관리
│ ├── prompt_service.py # 프롬프트 템플릿 CRUD 및 렌더링
│ ├── resource_service.py # 리소스 등록, 검색, 구독
│ ├── server_service.py # 서버 등록 및 상태 모니터링
│ └── tool_service.py # 도구 등록, 호출, 지표
├── transports/
│ ├── sse_transport.py # 서버 전송 이벤트 전송
│ ├── stdio_transport.py # stdio 전송
│ └── websocket_transport.py # WebSocket 전송
└── utils/
├── create_jwt_token.py # JWT 생성 및 검사 도구
└── verify_credentials.py # FastAPI 인증 종속성
# 개발 종속성 설치
make install-dev
# 코드 검사 실행
make lint
# 테스트 실행
make test
# 커버리지 테스트 실행
make coverage
이 프로젝트는 다양한 코드 품질 도구를 통합합니다.
MCP Context Forge는 완전한 기능을 갖춘 프로덕션 준비 모델 컨텍스트 프로토콜 게이트웨이 솔루션으로, 특히 엔터프라이즈급 LLM 애플리케이션의 도구 통합 및 관리 요구 사항에 적합합니다. MCP 프로토콜의 완전한 기능을 구현했을 뿐만 아니라 연합 검색, 프로토콜 변환, 가상화 서비스 등과 같은 풍부한 확장 기능을 제공하여 복잡한 AI 애플리케이션 생태계를 구축하기 위한 이상적인 인프라 구성 요소입니다.