unopost

MCP bağlayıcısı

Yapay zekâ asistanınızdan mektup postalayın

Claude'a, ChatGPT'ye veya herhangi bir MCP istemcisine tek bir URL ekleyin. Asistanınız orijinal belgenizi A4'e basılmak ve Australia Post ile takipli olarak postalanmak üzere hazırlar. Önizlemeyi kontrol edip ödemeyi web sitemizde siz yaparsınız; yani siz olmadan hiçbir şey postalanmaz.

$10 Normal posta$20 Express Post

Sunucu URL'si
https://unopost.com.au/api/mcp

Web sitesindekiyle aynı fiyatlar, GST dahil. Hesap, oturum açma veya API anahtarı yok.

Kendi kodunuzdan mı gönderiyorsunuz? Bağlayıcı her MCP istemcisinden veya düz HTTP ile çalışır, ancak her mektubun ödemesi web sitemizde yapılır. Kimsenin müdahalesi olmadan göndermek için x402 API'yi kullanın.

BağlayınSunucu kartı

Bağlayın

Bağlayıcı, Streamable HTTP üzerinden çalışan uzak bir MCP sunucusudur. Oturum açma gerektirmez, bu yüzden kimlik doğrulamayı kapalı bırakın.

  • Claude: Customize → Connectors'ı açın, Add custom connector'ı seçin, adını Unopost koyun ve sunucu URL'sini yapıştırın. Bir sohbette Unopost'u araçlar menüsünden açın.
  • ChatGPT: geliştirici modunda, sunucu URL'siyle ve kimlik doğrulama olmadan özel bir bağlayıcı ekleyin, ardından sohbette açın.
  • Claude Code ve diğer istemciler: uzak bir HTTP sunucusu olarak ekleyin. Özel MCP sunucularını kabul eden her istemci aynı URL'yi kullanır.
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"
    }
  }
}

Bir mektup nasıl gider

  1. Adresleri teyit edin
  2. Mektubu hazırlayın
  3. Yerleşimi bekleyin
  4. Kullanıcı web sitesinde öder

Asistan adresleri kullanıcıyla teyit eder, mektubu hazırlar ve kullanıcıya özel bir inceleme bağlantısı verir. Kullanıcı önizlemeyi orada kontrol eder, bir e-posta adresi girer ve kartla öder. Mektubu postalatan şey ödemedir.

Kullanıcının söylediği
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.

Araçlar

Asistanlar bunları kendileri çağırır. prepare_letter, finish_letter_upload ve get_letter_status araçlarının her sonucunda, kullanıcının önizlemeyi kontrol edip ödediği özel sayfa olan reviewUrl ve kullanıcıya sırada ne söyleneceğini belirten instructions bulunur.

prepare_letter

TOOLprepare_letter

Ana makineden (host), örneğin ChatGPT'deki bir ekten, bir dosya referansı alır, orijinali indirir ve mektubu başlatır. Dosya hiçbir zaman yeniden yazılmaz, yeniden oluşturulmaz veya metin olarak gönderilmez. Her çağrı yeni bir mektup oluşturur, bu yüzden asistan onu bir kez çağırır.

Bağımsız değişkenler

fileobject · zorunlu
Ana makinenin kullanıcının orijinal ekine ait referansı: download_url ve file_id, biliniyorsa file_name ve mime_type ile.
fileNamestring · isteğe bağlı
Uzantısıyla birlikte dosya adı, örneğin letter.pdf. Yalnızca file.file_name yoksa gerekir.
recipientAddress · zorunlu
Mektubun kime gideceği, kullanıcının teyit ettiği şekliyle. service international olmadıkça Avustralya'dadır.
senderAddress · zorunlu
Kullanıcının zarfa basılan iade adresi. Herhangi bir ülkede olabilir.
servicestring · isteğe bağlı
express (varsayılan), B4 zarfta düz; regular, DL zarfa katlanmış, en fazla 12 sayfa; veya international, teslimatta imzalı.
signatureboolean · isteğe bağlı
Teslimatta imza, Avustralya'da ek $6. İmzalı Normal posta, Taahhütlü posta olarak gider.
duplexboolean · isteğe bağlı
Çift taraflı basar. Statutory declaration belgeleri (yasal beyannameler) her zaman tek taraflı basılır.
monoboolean · isteğe bağlı
Siyah beyaz basar. Varsayılan olarak renkler renkli kalır, ek ücret olmadan.
stapleboolean · isteğe bağlı
Sayfaları sol üst köşeden bir kez zımbalar. Yalnızca en fazla 12 sayfalık belgeler için; daha uzun bir belge fiyatlandırılırken reddedilir. Varsayılan değer false.
foldboolean · isteğe bağlı
En fazla 12 sayfalık bir Express Post veya uluslararası mektubu daha küçük bir zarfa katlar.
preparedForstring · isteğe bağlı
Yalnızca bir işletme adına onun müşterilerinden birine yazdığınızda: işletmenin adı, en fazla 60 karakter. Ödeme sayfası bunu doğrulanmış olarak değil, asistanın bize söylediği bilgi olarak gösterir; Unopost, Australia Post, bir banka veya bir devlet kurumu gibi adlar reddedilir.
notifyEmailstring · isteğe bağlı
preparedFor ile birlikte: işletmenin e-posta adresi. Ödemeden teslimata kadar mektupla ilgili her e-postanın bir kopyası bu adrese gider ve müşteri bu adresi ödeme yapmadan önce görür.
customerEmailstring · isteğe bağlı
Varsa, ödemeyi yapan müşterinin e-posta adresi. Ödeme sayfası bu adres doldurulmuş olarak açılır; takip e-postaları bu adrese gider.

Adres

name, line1 ve suburb zorunludur; adlar ve satırlar en fazla 40 karakter olabilir. Avustralya'da eyaleti posta kodu belirler. Yurt dışı için country ekleyin; Çin'e giden bir mektupta phone alanına bir Çin cep telefonu numarası ekleyin.

namestring · zorunlu
Kişinin tam adı.
companystring · isteğe bağlı
Bir işletme veya kuruluş.
line1string · zorunlu
Sokak adresi veya "PO Box 123" gibi bir PO Box.
line2string · isteğe bağlı
İkinci adres satırı.
suburbstring · zorunlu
Semt (suburb) veya kasaba.
statestring · isteğe bağlı
Avustralya için boş bırakın: posta kodu eyaleti belirler. Verilirse, posta koduyla eşleşen ACT, NSW, NT, QLD, SA, TAS, VIC veya WA değerlerinden biri olmalıdır. Yurt dışında, ülke kullanıyorsa bölge.
postcodestring · isteğe bağlı
Dört hane, Avustralya'da zorunludur. Yurt dışında, ülke kullanıyorsa posta kodu.
countrystring · isteğe bağlı
Avustralya için boş bırakın. Aksi hâlde ülkenin İngilizce adı. Alıcı yalnızca service international olduğunda yurt dışında olabilir.
phonestring · isteğe bağlı
Yalnızca Çin'deki bir alıcı için: China Post'un istediği Çin cep telefonu numarası.
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. …"
}

Dosyayı kendiniz yükleyin

TOOLcreate_letter_upload → finish_letter_upload

Kullanıcının dosyasını okuyup HTTP isteği yapabilen, ancak ana makinesinde dosya referansı olmayan istemciler için. create_letter_upload dosya adını alır ve 5 dakika içinde süresi dolan uploadUrl döndürür. Orijinal baytları buraya PUT ile gönderin, ardından jobId ve prepare_letter ile aynı mektup alanlarıyla finish_letter_upload çağrısını yapın.

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

get_letter_status

TOOLget_letter_status

Mektubun hangi aşamada olduğunu, yerleşimi tamamlandığında son pageCount ve costCents değerleriyle bildirir. Bir mektup genellikle birkaç saniye sürer. En fazla 5 saniyede bir kontrol edin.

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 sent cinsinden güncel fiyatlar, her fiyatın kapsadığı sayfalar, sayfa ve dosya sınırları ile postalama saatleri, teslimat, takip ve iptal hakkında sade dilde yanıtlar. Asistanlar bunu, herhangi bir şey hazırlamadan önce soruları yanıtlamak için kullanır.

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

Sınırlar

pages
Mektup başına en fazla 80 sayfa. Daha uzun bir belgeyi ayrı mektuplara bölün.
regular
Normal posta ve katlanan her mektup en fazla 12 sayfa alır. Daha uzun mektuplar Express Post ile, düz olarak gider.
size
Dosya başına en fazla 50 MB.
files
PDF, Word (.doc, .docx), JPEG veya PNG. Word belgeleri A4'e yerleştirilir.
letter
Bağlayıcı üzerinden mektup başına bir dosya. Web sitesi en fazla 10 dosya alır.
rate
Her yapay zekâ ana makinesinden saatte 200 mektup.

Durumlar

CREATED
Ayrıldı, dosyasını bekliyor.
CONVERTING
Yerleşimi yapılıyor.
CONVERTED AWAITING_PAYMENT
Kullanıcının reviewUrl adresinde kontrol edip ödemesine hazır.
PAID PAYING SENDING RETRYING MANUAL_CHECK
Ödendi. Bir iş gününde Melbourne saatiyle 14:30'a kadar ödenen mektuplar aynı gün postalanır.
POSTED UNDELIVERED
Australia Post'a teslim edildi. Takip numarası kullanıcıya e-postayla gönderildi.
DELIVERED
Australia Post'un takip bilgisi teslim edildiğini gösteriyor.
FAILED
Postalanmadı. error nedenini, instructions ise sırada ne yapılacağını belirtir. Ödenmiş bir mektubun ücreti tamamen iade edilir.
PAYMENT_EXPIRED
Zamanında ödenmedi. Belgesi silindi.
REFUNDED
İptal edildi veya postalanamadı ve ücreti karta iade edildi.

Hatalar

Başarısız olan bir araç, metni asistan için yazılmış ve neyin yanlış gittiğini ve ne yapılacağını söyleyen bir hata sonucu döndürür. Hata kodu yoktur ve mesajları yeniden ifade edebiliriz; bu yüzden tam kelimelere göre değil, hatanın türüne göre hareket edin.

Bir araç asla ücret almaz veya postalamaz; bu yüzden bir hata kullanıcıya asla bir maliyet çıkarmaz. Ancak bir hata bir işi andığında o mektup vardır: ikinci bir mektup hazırlamak yerine onu get_letter_status ile kontrol edin.

arguments
Bir argüman eksik veya hatalı: kullanıcının teyit etmesi gereken bir adres, birlikte kullanılamayan seçenekler, desteklenmeyen bir dosya türü, reddedilen bir preparedFor veya hatalı biçimlendirilmiş bir e-posta. Mesaj hangisi olduğunu belirtir. Düzeltin ve yeniden çağırın; hiçbir şey oluşturulmadı.
file
Orijinal dosya ana makineden alınamadı: bağlantının süresi doldu, bağlantı reddedildi, çok yavaştı veya çok fazla yönlendirme yaptı, özel bir adresi gösteriyor ya da dosya boş veya 50 MB'tan büyük. Hiçbir şey postalanmadı. Yeni bir dosya referansı alın veya create_letter_upload kullanın; asla onun yerine metin kopyası göndermeyin.
job …
Mektup oluşturulduğu hâlde sonraki bir adım başarısız olduğunda mesaj job …: ile başlar. Bu iş kimliğiyle get_letter_status çağrısı yapın, mektup hâlâ adreslerini bekliyorsa ardından finish_letter_upload çağrısı yapın. Başka bir mektup hazırlamayın.
rate limit
Bu saat içinde bu yapay zekâ ana makinesinden çok fazla mektup geldi veya bağlayıcının günlük sınırına ulaşıldı. Döngü içinde yeniden denemeyin: kullanıcıya daha sonra denemesini veya mektubu Unopost web sitesinden göndermesini söyleyin.
paused
Yeni mektupları bir süreliğine durdurduk; yolda olan mektuplar devam ediyor. Daha sonra yeniden deneyin.
not found
Bu jobId değerine sahip bir mektup yok ya da yüklemesinin süresi 24 saat sonra doldu. Yalnızca Unopost'un bu kullanıcıya döndürdüğü bir iş kimliğini kullanın ve süresi dolduysa baştan başlayın.
server
Bizim tarafımızda bir sorun oluştu: Unopost API returned HTTP 5xx. Birkaç saniye bekleyin ve bir kez daha deneyin.
FAILED
Basılamayan bir mektup bir araç hatası değildir: get_letter_status, error ve anlaşılır instructions ile birlikte FAILED döndürür; örneğin 80 sayfayı aşan bir belgeyi bölmek veya bir parolayı kaldırmak gibi.

Ödeme ve gizlilik

  • Asla ödeme yapmaz veya postalamaz. Bağlayıcı hiçbir ödeme bağlantısı döndürmez. Kullanıcı yalnızca web sitesinde, önizlemeyi gördükten sonra öder.
  • Orijinal dosya, değiştirilmeden. Dosyalar hiçbir zaman MCP mesajlarının içinde taşınmaz ve hiçbir zaman metinle değiştirilmez.
  • Özel bağlantılar. Bir iş kimliği (job ID) bir mektubun tek anahtarıdır; bu yüzden asistanlar onu ve reviewUrl adresini yalnızca kullanıcıyla paylaşır.
  • Baskıdan önce iptal edin. Ödenmiş bir mektup, biz basmaya başlayana kadar reviewUrl üzerinden tam iadeyle iptal edilebilir.
  • Postalandıktan sonra silinir. Belgeler mektup postalanınca, ödenmemiş bir mektubunkiler ise 24 saat sonra silinir.

Webhook mu? Bir gelen kutusu kullanın

Bağlayıcının webhook'u yoktur. Bunun yerine asistana, yazılımınızın okuduğu bir gelen kutusunu notifyEmail olarak verin. Bir mektupla ilgili her e-posta notifications@unopost.com.au adresinden gelir ve mektubu başlıklarında taşır; böylece gelen postada kod çalıştıran bir e-posta hizmeti, örneğin Amazon SES, Postmark, Mailgun veya SendGrid, her güncellemeye geldiği anda işlem yapabilir.

  1. notifyEmail değerini e-posta hizmetinizin aldığı bir adrese yönlendirin; örneğin letters@yourbusiness.com.au.
  2. Yalnızca notifications@unopost.com.au adresinden gelen ve DMARC doğrulamasını geçen postaları kabul edin, gerisini atın.
  3. Değişebilecek metni değil, başlıkları okuyun. Daha önce gördüğünüz bir Unopost-Event-Id değerini atın.

Başlıklar

Unopost-Letter-Id
Mektubun, bağlayıcının döndürdüğü haliyle jobId değeri.
Unopost-Event
Ne olduğu: receipt, posted, tracking, retrying, delayed, awaiting-collection, delivered, cancelled, failed, refunded veya refunded-printed.
Unopost-Event-Id
Aynı haber kaç kez gönderilirse gönderilsin aynıdır; böylece tekrarları atabilirsiniz.
Unopost-Letter-Status
Mektubun bu olaydan sonraki durumu: TO_POST, POSTED, DELAYED, AWAITING_AT_COLLECTION, DELIVERED, CANCELLED veya REFUNDED.
Unopost-Tracking-Number
Mektup postalandıktan sonra Australia Post takip numarası.
Unopost-Copy
Bir işletmenin aldığı kopyada business; müşterinin kendi e-postasında yer almaz.
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'),
  });
};

Kopyalar müşteri ödeme yaptığında başlar; yani hiç ödenmeyen bir mektup için hiçbir şey gelmez: o zamana kadar get_letter_status ile kontrol edin. Müşterinin kendi e-postaları da aynı başlıkları taşır. Yeni başlıklar ekleyebiliriz, ancak bunları asla yeniden adlandırmaz veya kaldırmayız.

Keşif

Ajanlar bağlayıcıyı kendilerine söylenmeden bulabilir. Bağlayıcı, MCP sunucu kartına yönlendiren yapay zekâ kataloğumuzda listelenir.

Fiyatlar

KalemFiyat
Normal posta, posta kutusuna sığacak şekilde katlanmış: en fazla 12 sayfa$10
Taahhütlü posta, teslimatta imzalı Normal posta: en fazla 12 sayfa$16
Express Post, B4 zarfta düz: 20 sayfa dahil, sonraki her sayfa için $0.30$20
Teslimatta imzalı Express Post: 20 sayfa dahil, sonraki her sayfa için $0.30$26
Takip, renkli, çift taraflı veya siyah beyaz baskı ve zımbalamaÜcretsiz

Her mektup takiplidir. Son fiyat, mektubun yerleşimi yapıldığında belli olan sayfa sayısına bağlıdır.

Bağlayıcı üzerinden hazırlanan mektuplar da diğerleri gibi Koşullarımıza ve Gizlilik Politikamıza tabidir.