클라우드플레어 워커와 스트라이프로 구축하는 유료 MCP 서버
분야
프로그래밍/소프트웨어 개발
대상자
AI 모델 API 서비스를 제공하고자 하는 개발자, 클라우드플레어 워커 및 스트라이프를 활용한 결제 시스템 구축에 관심 있는 개발자
핵심 요약
- *_MCP 프로토콜_**을 기반으로 클라우드플레어 워커와 스트라이프를 결합해 유료 서비스를 구현하는 방법을 제시합니다.
- _McpServer_ 클래스를 통해 AI 모델과 상호작용하는 API를 구축합니다.
- _PaidMcpAgent_ 클래스는 스트라이프 결제 시스템 통합 및 사용자 인증을 관리합니다.
- _Durable Objects_를 활용해 사용자별 결제 상태를 저장하고, _meterEvent_를 통해 사용량 기반 요금제를 구현합니다.
섹션별 세부 요약
- 구성 요소 및 기능
- 클라우드플레어 워커로 MCP 서버를 서버리스 환경에서 실행하고, 스트라이프로 결제를 처리합니다.
- *_GitHub OAuth_**를 통해 사용자 인증을 구현하며, WordPress.org API를 데이터 소스로 활용합니다.
- _McpServer_ 클래스는
init()
메서드에서 도구를 정의하고, _paidTool_ 메서드로 유료 기능을 설정합니다.
- 유료 도구 정의 및 결제 흐름
paidTool
메서드는 도구 이름, 파라미터 스키마, 실행 로직, 결제 설정을 정의합니다.- 결제 시 _Stripe checkout session_을 생성하고, 사용자에게 결제 링크를 제공합니다.
- 결제 완료 후 도구 실행 권한을 부여하며, _meterEvent_를 통해 사용량 기반 요금제를 적용할 수 있습니다.
- 인증 및 상태 관리
- _OAuthProvider_를 사용해 GitHub 인증을 구현하고, 사용자 식별 및 개인화된 결제를 지원합니다.
- _Durable Objects_를 통해 사용자별 결제 상태를 저장하고,
PaymentState
타입으로 _stripe_, _customerId_, _paidToolsToCheckoutSession_ 등을 관리합니다.
- 유료/무료 도구 혼합 및 확장성
- 동일한 MCP 서버에서 _free tool_과 _paid tool_를 혼합하여 제공할 수 있습니다.
- _meterEvent_ 파라미터를 사용해 사용량 기반 요금제를 구현하고, 유연한 결제 모델을 지원합니다.
결론
클라우드플레어 워커와 스트라이프를 결합해 유료 MCP 서버를 구축하면, 확장성과 관리 용이성을 확보할 수 있습니다. _Durable Objects_를 활용한 상태 관리와 _meterEvent_ 기반 요금제는 실무에서 유용한 패턴입니다.
- 유료 MCP 도구 SDK: https://github.com/stripe/agent-toolkit/tree/main/typescript/src/cloudflare
- 간단한 유료 MCP 서버 예제: https://github.com/stripe/agent-toolkit/tree/main/typescript/examples/cloudflare
- GitHub OAuth 기반 원격 MCP 서버 예제: https://github.com/cloudflare/ai/tree/main/demos/remote-mcp-github-oauth