unopost

MCP 커넥터

AI 어시스턴트로 편지 보내기

Claude, ChatGPT 또는 모든 MCP 클라이언트에 URL 하나만 추가하세요. 어시스턴트가 원본 문서를 A4에 인쇄해 Australia Post로 배송 조회와 함께 보낼 수 있도록 준비합니다. 미리보기 확인과 결제는 저희 웹사이트에서 직접 하므로, 직접 확인하지 않은 편지는 발송되지 않습니다.

$10 일반 우편$20 Express Post

서버 URL
https://unopost.com.au/api/mcp

웹사이트와 같은 가격, GST 포함. 계정, 로그인, API 키가 필요 없습니다.

직접 작성한 코드에서 보내시나요? 커넥터는 모든 MCP 클라이언트나 일반 HTTP로 사용할 수 있지만, 편지마다 결제는 저희 웹사이트에서 합니다. 사람의 개입 없이 보내려면 x402 API를 사용하세요.

연결하기서버 카드

연결하기

이 커넥터는 Streamable HTTP를 사용하는 원격 MCP 서버입니다. 로그인이 필요 없으므로 인증은 꺼 두세요.

  • Claude: Customize → Connectors를 열고 Add custom connector를 선택한 뒤, 이름을 Unopost로 정하고 서버 URL을 붙여 넣습니다. 채팅에서는 도구 메뉴에서 Unopost를 켭니다.
  • ChatGPT: 개발자 모드에서 서버 URL로 인증 없는 사용자 지정 커넥터를 추가한 뒤, 채팅에서 켭니다.
  • Claude Code 및 기타 클라이언트: 원격 HTTP 서버로 추가합니다. 사용자 지정 MCP 서버를 지원하는 클라이언트는 모두 같은 URL을 사용합니다.
Claude Code
claude mcp add --transport http unopost https://unopost.com.au/api/mcp
.mcp.json
{
  "mcpServers": {
    "unopost": {
      "type": "http",
      "url": "https://unopost.com.au/api/mcp"
    }
  }
}

편지가 발송되는 과정

  1. 주소 확인
  2. 편지 준비
  3. 배치 완료 대기
  4. 사용자가 웹사이트에서 결제

어시스턴트가 사용자에게 주소를 확인하고, 편지를 준비한 뒤, 사용자에게 비공개 검토 링크를 줍니다. 사용자는 그곳에서 미리보기를 확인하고, 이메일을 입력한 뒤 카드로 결제합니다. 결제해야 편지가 발송됩니다.

사용자의 요청
Post this letter by Express Post to Jane Citizen,
12 Example Street, Southbank VIC 3006.
My return address is 1 Sample Road, Carlton VIC 3053.

도구

어시스턴트가 직접 호출합니다. prepare_letter, finish_letter_upload, get_letter_status의 모든 결과에는 사용자가 미리보기를 확인하고 결제하는 비공개 페이지인 reviewUrl과, 다음에 사용자에게 무엇을 안내할지 알려 주는 instructions가 들어 있습니다.

prepare_letter

TOOLprepare_letter

ChatGPT의 첨부 파일처럼 호스트가 제공하는 파일 참조를 받아 원본을 내려받고 편지를 시작합니다. 파일을 다시 입력하거나, 새로 만들거나, 텍스트로 보내는 일은 없습니다. 호출할 때마다 새 편지가 만들어지므로 어시스턴트는 한 번만 호출합니다.

인수

fileobject · 필수
사용자 원본 첨부 파일에 대한 호스트의 참조: download_url과 file_id, 알고 있다면 file_name과 mime_type도 포함.
fileNamestring · 선택
확장자를 포함한 파일 이름(예: letter.pdf). file.file_name이 없을 때만 필요합니다.
recipientAddress · 필수
사용자가 확인한 편지 수신인. service가 international이 아니면 호주 내 주소입니다.
senderAddress · 필수
봉투에 인쇄되는 사용자의 반송 주소. 어느 나라든 괜찮습니다.
servicestring · 선택
express(기본값)는 B4 봉투에 접지 않고 넣습니다. regular는 접어서 DL 봉투에 넣으며 최대 12페이지입니다. international은 수령 시 서명을 받습니다.
signatureboolean · 선택
수령 시 서명, 호주 내에서는 $6 추가. 서명을 추가한 일반 우편은 등기 우편으로 보냅니다.
duplexboolean · 선택
양면으로 인쇄합니다. 법정 선언서는 항상 단면으로 인쇄합니다.
monoboolean · 선택
흑백으로 인쇄합니다. 기본적으로 컬러는 추가 비용 없이 컬러로 인쇄합니다.
stapleboolean · 선택
페이지 왼쪽 위 모서리를 스테이플러로 한 번 고정합니다. 최대 12페이지 문서에만 가능하며, 그보다 긴 문서는 가격을 계산할 때 거부됩니다. 기본값은 false입니다.
foldboolean · 선택
최대 12페이지의 Express Post 또는 국제 우편 편지를 접어 더 작은 봉투에 넣습니다.
preparedForstring · 선택
사업체를 위해 그 고객에게 편지를 쓸 때만: 사업체 이름, 최대 60자. 결제 페이지에는 확인된 정보가 아니라 어시스턴트가 알려 준 내용으로 표시되며, Unopost, Australia Post, 은행, 정부 기관과 같은 이름은 거부됩니다.
notifyEmailstring · 선택
preparedFor와 함께: 사업체의 이메일. 결제부터 배달까지 편지에 관한 모든 이메일의 사본을 받으며, 고객은 결제하기 전에 이 주소를 확인합니다.
customerEmailstring · 선택
알고 있다면 결제하는 고객의 이메일. 결제 페이지에 미리 입력되어 있으며, 추적 이메일이 이 주소로 갑니다.

주소

name, line1, suburb는 필수이며, 이름과 각 줄은 최대 40자입니다. 호주에서는 우편번호로 주(state)가 정해집니다. 해외로 보낼 때는 country를 추가하고, 중국으로 보내는 편지는 phone에 중국 휴대폰 번호를 넣습니다.

namestring · 필수
사람의 성명.
companystring · 선택
사업체 또는 단체.
line1string · 필수
도로명 주소, 또는 "PO Box 123" 같은 PO Box.
line2string · 선택
주소 둘째 줄.
suburbstring · 필수
서버브(suburb) 또는 타운.
statestring · 선택
호주 주소에서는 생략하세요. 우편번호로 정해집니다. 지정하는 경우 우편번호와 일치하는 ACT, NSW, NT, QLD, SA, TAS, VIC 또는 WA 중 하나여야 합니다. 해외 주소는 해당 국가에서 쓰는 경우 지역명을 넣습니다.
postcodestring · 선택
네 자리 숫자이며 호주 주소에서는 필수입니다. 해외 주소는 해당 국가에서 쓰는 경우 우편번호를 넣습니다.
countrystring · 선택
호주인 경우 생략하세요. 그 밖에는 국가명을 영어로 넣습니다. 받는 사람이 해외에 있을 수 있는 것은 service가 international일 때뿐입니다.
phonestring · 선택
중국에 있는 받는 사람만 해당: China Post에 필요한 중국 휴대전화 번호입니다.
tools/call
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "prepare_letter",
    "arguments": {
      "file": {
        "download_url": "https://files.example.com/letter.pdf",
        "file_id": "file_abc123",
        "file_name": "letter.pdf",
        "mime_type": "application/pdf"
      },
      "recipient": {
        "name": "Jane Citizen",
        "line1": "12 Example Street",
        "suburb": "Southbank",
        "postcode": "3006"
      },
      "sender": {
        "name": "Sam Sender",
        "line1": "1 Sample Road",
        "suburb": "Carlton",
        "postcode": "3053"
      },
      "service": "express"
    }
  }
}
structuredContent
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "CONVERTING",
  "service": "express",
  "instructions": "The letter is being laid out, usually for a few seconds. Then give the user reviewUrl to check the preview, enter an email and pay. Nothing is posted until payment. …"
}

파일 직접 업로드하기

TOOLcreate_letter_upload → finish_letter_upload

사용자의 파일을 읽고 HTTP 요청을 보낼 수 있지만, 호스트에 파일 참조가 없는 클라이언트를 위한 방법입니다. create_letter_upload는 파일 이름을 받아 5분 후 만료되는 uploadUrl을 반환합니다. 원본 바이트를 그곳에 PUT한 다음, jobId와 prepare_letter와 같은 편지 필드로 finish_letter_upload를 호출합니다.

PUT uploadUrl
curl -X PUT "$UPLOAD_URL" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @letter.pdf

get_letter_status

TOOLget_letter_status

편지의 진행 상황을 알려 주며, 배치가 끝나면 최종 pageCount와 costCents를 함께 반환합니다. 편지는 보통 몇 초면 됩니다. 확인은 5초에 한 번 이하로 하세요.

CONVERTED
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "CONVERTED",
  "pageCount": 3,
  "costCents": 2000,
  "previewUrl": "https://unopost.com.au/preview/019d7a7f-a183-752d-9b3b-11511179033b/letter.pdf?Expires=...&Signature=...",
  "service": "express",
  "instructions": "Ready: give the user reviewUrl to check the preview, enter an email and pay by card. The letter is posted only once it's paid for. pageCount and costCents (AUD cents) are final."
}
FAILED
{
  "jobId": "019d7a7f-a183-752d-9b3b-11511179033b",
  "reviewUrl": "https://unopost.com.au/pay?job=019d7a7f-a183-752d-9b3b-11511179033b",
  "currency": "AUD",
  "status": "FAILED",
  "error": "document has more than 80 pages",
  "instructions": "Not posted, and nothing was charged. The document has more than 80 pages. Suggest splitting it into separate letters of up to 80 pages each. …"
}

get_letter_info

TOOLget_letter_info

AUD 센트 단위의 현재 가격, 각 가격에 포함되는 페이지 수, 페이지와 파일 제한, 그리고 발송 시간, 배달, 배송 조회, 취소에 관한 쉬운 답변. 어시스턴트는 무엇이든 준비하기 전에 질문에 답할 때 이것을 사용합니다.

tools/call
{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "get_letter_info",
    "arguments": {}
  }
}

제한

pages
편지 1통당 최대 80페이지. 더 긴 문서는 여러 편지로 나누세요.
regular
일반 우편과 접어서 보내는 모든 편지는 최대 12페이지입니다. 더 긴 편지는 Express Post로 접지 않고 보냅니다.
size
파일당 최대 50 MB.
files
PDF, Word(.doc, .docx), JPEG 또는 PNG. Word 문서는 A4에 맞춰 배치합니다.
letter
커넥터로는 편지 1통당 파일 1개. 웹사이트에서는 최대 10개까지 받습니다.
rate
AI 호스트마다 시간당 200통.

상태

CREATED
예약되었고 파일을 기다리는 중입니다.
CONVERTING
배치하는 중입니다.
CONVERTED AWAITING_PAYMENT
사용자가 reviewUrl에서 확인하고 결제할 준비가 되었습니다.
PAID PAYING SENDING RETRYING MANUAL_CHECK
결제되었습니다. 영업일 멜버른 시간 오후 2시 30분까지 결제한 편지는 그날 발송합니다.
POSTED UNDELIVERED
Australia Post에 접수했습니다. 운송장 번호를 사용자에게 이메일로 보냈습니다.
DELIVERED
Australia Post 배송 조회에 배달 완료로 표시됩니다.
FAILED
발송되지 않았습니다. 이유는 error에, 다음에 할 일은 instructions에 있습니다. 결제한 편지는 전액 환불됩니다.
PAYMENT_EXPIRED
기한 내에 결제되지 않았습니다. 문서는 삭제되었습니다.
REFUNDED
취소되었거나 발송할 수 없어 카드로 환불되었습니다.

오류

실패한 도구는 무엇이 잘못되었고 무엇을 해야 하는지를 어시스턴트를 위해 적은 텍스트가 담긴 오류 결과를 반환합니다. 오류 코드는 없으며 메시지 문구는 바뀔 수 있으므로, 정확한 문구가 아니라 오류의 종류에 따라 대응하세요.

도구는 결제나 발송을 하지 않으므로, 오류로 사용자에게 비용이 드는 일은 없습니다. 하지만 오류에 작업이 언급되었다면 그 편지는 이미 존재합니다. 두 번째 편지를 준비하지 말고 get_letter_status로 확인하세요.

arguments
인수가 없거나 잘못되었습니다. 사용자가 확인해야 할 주소, 함께 쓸 수 없는 옵션, 지원하지 않는 파일 형식, 거부된 preparedFor, 형식이 잘못된 이메일 등입니다. 메시지에 무엇인지 나옵니다. 고쳐서 다시 호출하세요. 아무것도 생성되지 않았습니다.
file
호스트에서 원본 파일을 가져오지 못했습니다. 링크가 만료되었거나, 거부되었거나, 너무 느렸거나, 리디렉션이 너무 많았거나, 비공개 주소를 가리키거나, 파일이 비어 있거나 50 MB를 넘습니다. 아무것도 발송되지 않았습니다. 새 파일 참조를 받거나 create_letter_upload를 사용하세요. 대신 텍스트 사본을 보내서는 절대 안 됩니다.
job …
편지는 생성되었지만 이후 단계가 실패하면 메시지가 job …:로 시작합니다. 그 작업 ID로 get_letter_status를 호출하고, 아직 주소를 기다리고 있다면 finish_letter_upload를 호출하세요. 다른 편지를 준비하지 마세요.
rate limit
이번 시간에 이 AI 호스트에서 보낸 편지가 너무 많거나, 커넥터의 하루 한도에 도달했습니다. 반복해서 재시도하지 말고, 사용자에게 나중에 다시 시도하거나 Unopost 웹사이트에서 보내라고 안내하세요.
paused
새 편지 접수를 잠시 중단했습니다. 이미 진행 중인 편지는 계속 처리됩니다. 나중에 다시 시도하세요.
not found
해당 jobId의 편지가 없거나, 업로드가 24시간 후 만료되었습니다. Unopost가 이 사용자에게 반환한 작업 ID만 사용하고, 만료되었다면 처음부터 다시 시작하세요.
server
저희 쪽에서 문제가 발생했습니다: Unopost API returned HTTP 5xx. 몇 초 기다린 뒤 한 번 더 시도하세요.
FAILED
인쇄할 수 없는 편지는 도구 오류가 아닙니다. get_letter_status는 error와 알기 쉬운 instructions과 함께 FAILED를 반환합니다. 예를 들어 80페이지가 넘는 문서를 나누거나 비밀번호를 해제하라는 안내입니다.

결제와 개인정보

  • 결제나 발송을 대신 하지 않습니다. 커넥터는 결제 링크를 반환하지 않습니다. 사용자는 미리보기를 본 뒤 웹사이트에서만 결제합니다.
  • 원본 파일 그대로. 파일은 MCP 메시지에 담겨 오가지 않으며, 텍스트로 바뀌지도 않습니다.
  • 비공개 링크. 작업 ID가 편지에 접근하는 유일한 열쇠이므로, 어시스턴트는 작업 ID와 reviewUrl을 사용자에게만 공유합니다.
  • 인쇄 전 취소 가능. 결제한 편지는 인쇄를 시작하기 전까지 reviewUrl에서 취소하고 전액 환불받을 수 있습니다.
  • 발송 후 삭제. 문서는 편지가 발송되면 삭제하며, 결제되지 않은 편지의 문서는 24시간 후 삭제합니다.

웹훅이 필요하다면 받은편지함을 쓰세요

커넥터에는 웹훅이 없습니다. 대신 소프트웨어가 읽는 받은편지함 주소를 notifyEmail로 어시스턴트에게 알려 주세요. 편지에 관한 모든 이메일은 notifications@unopost.com.au에서 발송되며 헤더에 편지 정보가 담겨 있으므로, Amazon SES, Postmark, Mailgun, SendGrid처럼 수신 메일에 코드를 실행하는 메일 서비스라면 업데이트가 도착할 때마다 처리할 수 있습니다.

  1. notifyEmail을 메일 서비스가 받는 주소로 지정하세요. 예: letters@yourbusiness.com.au.
  2. notifications@unopost.com.au에서 온 메일 중 DMARC을 통과한 것만 받고 나머지는 버리세요.
  3. 문구는 바뀔 수 있으니 본문이 아닌 헤더를 읽으세요. 이미 받은 Unopost-Event-Id는 버리세요.

헤더

Unopost-Letter-Id
커넥터가 반환한 편지의 jobId.
Unopost-Event
일어난 일: receipt, posted, tracking, retrying, delayed, awaiting-collection, delivered, cancelled, failed, refunded 또는 refunded-printed.
Unopost-Event-Id
같은 소식은 몇 번을 보내도 같은 값이므로 중복을 버릴 수 있습니다.
Unopost-Letter-Status
그 이후 편지의 상태: TO_POST, POSTED, DELAYED, AWAITING_AT_COLLECTION, DELIVERED, CANCELLED 또는 REFUNDED.
Unopost-Tracking-Number
편지가 발송된 후의 Australia Post 운송장 번호.
Unopost-Copy
사업자가 받는 사본에서는 business. 고객 본인이 받는 이메일에는 없습니다.
Headers
From: Unopost <notifications@unopost.com.au>
Unopost-Letter-Id: 019d7a7f-a183-752d-9b3b-11511179033b
Unopost-Event: tracking
Unopost-Event-Id: evt_3f9a1c0b7e2d4a6b8c1d0e2f
Unopost-Letter-Status: POSTED
Unopost-Tracking-Number: 33LQV507012301000935005
Unopost-Copy: business
Amazon SES · receipt rule Lambda
export const handler = async (event) => {
  const { mail, receipt } = event.Records[0].ses;
  const { from } = mail.commonHeaders;
  const fromUs = from.length === 1 && /(^|<)notifications@unopost\.com\.au>?$/i.test(from[0]);
  // DMARC, not DKIM alone: only a DMARC pass means unopost.com.au signed it.
  if (!fromUs || receipt.dmarcVerdict.status !== 'PASS') return;
  const header = name =>
    mail.headers.find(h => h.name.toLowerCase() === name.toLowerCase())?.value;
  await recordUpdate({
    letterId: header('Unopost-Letter-Id'),
    event: header('Unopost-Event'),
    eventId: header('Unopost-Event-Id'), // drop one you've seen
    status: header('Unopost-Letter-Status'),
    trackingNumber: header('Unopost-Tracking-Number'),
  });
};

사본은 고객이 결제한 뒤부터 오므로, 결제되지 않은 편지에 대해서는 아무것도 오지 않습니다. 그전까지는 get_letter_status로 확인하세요. 고객이 받는 이메일에도 같은 헤더가 담겨 있습니다. 헤더를 추가할 수는 있지만, 이 헤더들의 이름을 바꾸거나 없애지는 않습니다.

검색 노출

에이전트는 따로 알려 주지 않아도 커넥터를 찾을 수 있습니다. 커넥터는 저희 AI 카탈로그에 등록되어 있고, 카탈로그는 MCP 서버 카드를 가리킵니다.

가격

항목가격
일반 우편, 우편함에 들어가도록 접어서 발송: 최대 12페이지$10
등기 우편, 수령 시 서명을 받는 일반 우편: 최대 12페이지$16
Express Post, 접지 않고 B4 봉투로 발송: 20페이지 포함, 이후 추가 페이지당 $0.30$20
수령 시 서명을 받는 Express Post: 20페이지 포함, 이후 추가 페이지당 $0.30$26
배송 조회, 컬러, 양면 또는 흑백 인쇄, 스테이플러 고정무료

모든 편지는 배송 조회가 됩니다. 최종 가격은 페이지 수에 따라 정해지며, 페이지 수는 편지 배치가 끝나면 확정됩니다.

커넥터로 준비한 편지에도 다른 편지와 마찬가지로 저희 이용약관과 개인정보 처리방침이 적용됩니다.