PayPal
공식PayPal Model Context Protocol 서버를 사용하면 함수 호출을 통해 PayPal API와 통합할 수 있습니다. 이 프로토콜은 다양한 PayPal 서비스와 상호작용할 수 있는 여러 도구를 지원합니다.
PayPal MCP(으)로 무엇을 할 수 있나요?
어시스턴트에게 "인보이스를 작성해서 보내줘"라고 요청하거나 결제, 분쟁, 배송 등 기타 PayPal 작업을 처리하도록 요청하세요.
- 인보이스 작성 및 전송 — 청구 세부 정보와 라인 항목이 포함된 새 인보이스를 생성한 후
create_invoice및send_invoice를 통해 전송합니다. - 인보이스 알림 전송 —
send_invoice_reminder를 사용하여 기존 인보이스에 대한 알림을 전송합니다. - 결제 처리 —
create_order및pay_order를 사용하여 주문을 생성하고 결제를 처리합니다. - 분쟁 관리 —
list_disputes및accept_dispute_claim을 사용하여 열린 분쟁을 나열하고 클레임을 수락합니다. - 배송 추적 —
create_shipment_tracking및update_shipment_tracking을 사용하여 배송 추적 기록을 생성하고 업데이트합니다. - 거래 목록 조회 —
list_transactions를 통해 선택적 필터링을 적용하여 거래 내역을 검색합니다.
문서
PayPal Agent Toolkit
PayPal Agent Toolkit은 OpenAI의 Agent SDK, LangChain, Vercel의 AI SDK, Model Context Protocol(MCP) 등 인기 있는 에이전트 프레임워크가 함수 호출을 통해 PayPal API와 통합할 수 있게 해줍니다. TypeScript를 지원하며 PayPal API와 PayPal SDK를 기반으로 구축되었습니다.
사용 가능한 도구
PayPal Agent Toolkit은 다음 도구를 제공합니다.
인보이스
create_invoice: 받는 사람의 청구 세부 정보, 라인 항목, 인보이스 메모, 사용자 정의 색상 테마, 선택적 배송 비용 및 결제 방법으로 PAY_BY_BANK를 활성화하는 옵션을 포함하여 PayPal 시스템에 새 인보이스를 생성합니다.create_recurring_series: 일정에 따라 인보이스를 자동으로 생성하고 전송하는 반복 인보이스 시리즈를 생성합니다.list_invoices: 선택적 페이지네이션 및 필터링을 사용하여 인보이스를 나열합니다.get_invoice: 특정 인보이스의 세부 정보를 조회합니다.send_invoice: 인보이스를 수신자에게 전송합니다.send_invoice_reminder: 기존 인보이스에 대한 알림을 전송합니다.cancel_sent_invoice: 전송된 인보이스를 취소합니다.generate_invoice_qr_code: 인보이스에 대한 QR 코드를 생성합니다.
결제
create_order: 제공된 세부 정보를 기반으로 PayPal 시스템에 주문을 생성합니다.get_order: 주문의 세부 정보를 조회합니다.pay_order: 승인된 주문에 대한 결제를 처리합니다.create_refund: 캡처된 결제에 대한 환불을 처리합니다.get_refund: 특정 환불의 세부 정보를 가져옵니다.
분쟁 관리
list_disputes: 모든 진행 중인 분쟁의 요약을 조회합니다.get_dispute: 특정 분쟁의 상세 정보를 조회합니다.accept_dispute_claim: 분쟁 청구를 수락합니다.
배송 추적
create_shipment_tracking: 배송 추적 기록을 생성합니다.get_shipment_tracking: 배송 추적 정보를 조회합니다.update_shipment_tracking: 배송 추적 정보를 업데이트합니다.
카탈로그 관리
create_product: PayPal 카탈로그에 새 제품을 생성합니다.list_products: 선택적 페이지네이션 및 필터링을 사용하여 제품을 나열합니다.show_product_details: 특정 제품의 세부 정보를 조회합니다.
구독 관리
create_subscription_plan: 새 구독 플랜을 생성합니다.list_subscription_plans: 구독 플랜을 나열합니다.show_subscription_plan_details: 특정 구독 플랜의 세부 정보를 조회합니다.create_subscription: 새 구독을 생성합니다.show_subscription_details: 특정 구독의 세부 정보를 조회합니다.update_subscription: 기존 구독을 업데이트합니다.cancel_subscription: 활성 구독을 취소합니다.
보고 및 인사이트
list_transactions: 선택적 페이지네이션 및 필터링을 사용하여 거래를 나열합니다.get_merchant_insights: 판매자를 위한 비즈니스 인텔리전스 지표 및 분석을 조회합니다.
TypeScript
설치
패키지를 수정하려는 경우가 아니라면 이 소스 코드는 필요하지 않습니다. 패키지를 사용하려면 다음을 실행하세요.
npm install @paypal/agent-toolkit
요구 사항
- Node 18+
사용법
라이브러리는 PayPal 개발자 대시보드에서 제공되는 계정의 클라이언트 ID와 시크릿으로 구성해야 합니다.
도구 모음은 Vercel의 AI SDK와 함께 작동하며 도구 목록으로 전달할 수 있습니다. 자세한 내용은 예제를 참조하세요.
import { PayPalAgentToolkit } from '@paypal/agent-toolkit/ai-sdk';
const paypalToolkit = new PayPalAgentToolkit({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: {
invoices: {
create: true,
createRecurringSeries: true,
list: true,
send: true,
sendReminder: true,
cancel: true,
generateQRC: true,
},
products: { create: true, list: true, update: true },
subscriptionPlans: { create: true, list: true, show: true },
shipment: { create: true, show: true, cancel: true },
orders: { create: true, get: true },
disputes: { list: true, get: true },
},
},
});
샌드박스 모드를 사용하려면 구성에 컨텍스트를 추가하세요.
configuration: {
context: {
sandbox: true,
}
}
워크플로 초기화
import { PayPalWorkflows, ALL_TOOLS_ENABLED } from '@paypal/agent-toolkit/ai-sdk';
const paypalWorkflows = new PayPalWorkflows({
clientId: process.env.PAYPAL_CLIENT_ID,
clientSecret: process.env.PAYPAL_CLIENT_SECRET,
configuration: {
actions: ALL_TOOLS_ENABLED,
},
});
사용법
도구 모음 사용
const llm: LanguageModelV1 = getModel(); // The model to be used with ai-sdk
const { text: response } = await generateText({
model: llm,
tools: paypalToolkit.getTools(),
maxSteps: 10,
prompt: `Create an order for $50 for custom handcrafted item and get the payment link.`,
});
환경 변수
다음 환경 변수를 사용할 수 있습니다.
PAYPAL_ACCESS_TOKEN: PayPal 액세스 토큰PAYPAL_ENVIRONMENT: 샌드박스 모드로 설정하려면SANDBOX, 프로덕션으로 설정하려면PRODUCTION(기본값은SANDBOX모드)
이 가이드는 PayPal API 통합을 위한 액세스 토큰을 생성하는 방법과 클라이언트 ID 및 클라이언트 시크릿을 찾는 방법을 설명합니다.
사전 요구 사항
- PayPal 개발자 계정 (샌드박스용)
- PayPal 비즈니스 계정 (프로덕션용)
클라이언트 ID 및 클라이언트 시크릿 찾기
-
PayPal 개발자 계정 생성:
- PayPal 개발자 대시보드로 이동
- PayPal 자격 증명으로 가입하거나 로그인
-
자격 증명 액세스:
- 개발자 대시보드에서 메뉴의 앱 및 자격 증명을 클릭
- 필요에 따라 샌드박스와 라이브 모드 간 전환
-
앱 생성 또는 보기:
- 새 앱을 만들려면 앱 만들기를 클릭
- 앱 이름을 지정하고 연결할 비즈니스 계정을 선택
- 기존 앱의 경우 앱 이름을 클릭하여 세부 정보를 확인
-
자격 증명 검색:
- 앱이 생성되거나 선택되면 다음이 표시된 화면이 나타납니다:
- 클라이언트 ID: 앱의 공개 식별자
- 클라이언트 시크릿: "표시"를 클릭한 후 표시되는 개인 키
- 액세스 토큰 생성에 필요하므로 이 자격 증명을 안전하게 저장하세요.
- 앱이 생성되거나 선택되면 다음이 표시된 화면이 나타납니다:
액세스 토큰 생성
cURL 사용
curl -v https://api-m.sandbox.paypal.com/v1/oauth2/token \\
-H \"Accept: application/json\" \\
-H \"Accept-Language: en_US\" \\
-u \"CLIENT_ID:CLIENT_SECRET\" \\
-d \"grant_type=client_credentials\"
CLIENT_ID 및 CLIENT_SECRET을 실제 자격 증명으로 바꾸세요. 프로덕션에서는 샌드박스 URL 대신 https://api-m.paypal.com을 사용하세요.
Postman 사용
https://api-m.sandbox.paypal.com/v1/oauth2/token에 대한 새 요청을 생성- 메서드를 POST로 설정
- Authorization에서 Basic Auth를 선택하고 클라이언트 ID와 클라이언트 시크릿을 입력
- Body에서 x-www-form-urlencoded를 선택하고
grant_type키를client_credentials값으로 추가 - 요청 전송
응답
성공적인 응답은 다음과 같습니다.
{
"scope": "...",
"access_token": "Your Access Token",
"token_type": "Bearer",
"app_id": "APP-80W284485P519543T",
"expires_in": 32400,
"nonce": "..."
}
Claude Desktop 통합에 사용하기 위해 access_token 값을 복사하세요.
토큰 세부 정보
- 샌드박스 토큰: 3~8시간 유효
- 프로덕션 토큰: 8시간 유효
- 만료 전에 토큰 갱신 로직을 구현하는 것이 좋습니다.
Claude Desktop에서 토큰 사용
액세스 토큰을 얻은 후 Claude Desktop 커넥터 구성에서 PAYPAL_ACCESS_TOKEN 값을 업데이트하세요.
{
"env": {
"PAYPAL_ACCESS_TOKEN": "YOUR_NEW_ACCESS_TOKEN",
"PAYPAL_ENVIRONMENT": "SANDBOX"
}
}
모범 사례
- 클라이언트 ID와 클라이언트 시크릿을 안전하게 저장
- 토큰 만료를 처리하기 위한 토큰 갱신 로직 구현
- 환경별 토큰 사용 (테스트용 샌드박스, 실제 거래용 프로덕션)
- 애플리케이션 코드에 토큰을 하드코딩하지 않기
면책 조항
AI 생성 콘텐츠는 부정확하거나 불완전할 수 있습니다. 사용자는 정보를 신뢰하기 전에 독립적으로 확인할 책임이 있습니다. PayPal은 출력 정확성에 대해 보장하지 않으며, 그 사용으로 인한 결정, 조치 또는 결과에 대해 책임을 지지 않습니다.