{"name":"com.pasteapply/mcp","slug":"pasteapply-mcp","title":"PasteApply","description":"Honest resume/cover tailor for agents. Free generate; Stripe unlock for downloads. Streamable HTTP.","url":"https://mcp.market/server/pasteapply-mcp","rating":null,"grade":"C","score":60,"certified":false,"status":"active","category":"ecommerce","tags":["ecommerce"],"presence":{"score":8,"stars":null,"forks":null,"downloads_week":null,"last_push_at":null,"license":null},"uptime":{"percent":100,"checks":7,"ok":7,"last_checked_at":"2026-09-21T02:26:04.476Z","last_ok_at":"2026-09-21T02:26:04.476Z","latency_ms":160},"claimed":false,"transport":"remote","callable_via_gateway":true,"default_price_micros":0,"repository":null,"website":"https://pasteapply.com","version":"1.0.0","remotes":[{"type":"streamable-http","url":"https://pasteapply.com/mcp"}],"packages":[],"tools":[{"name":"confirm_payment","description":"Fallback unlock when get_generation still shows paid:false after the human paid (slow webhook). Pass the cs_ session id from the success URL. Happy path: poll get_generation until paid:true — no cs_ required. When paid, returns full coverLetter, structured resume, files.pdf/docx/coverPdf absolute URLs (?dl= token lasts UTC billing month), and apiKey (Authorization Bearer pa_… for later status/generate). Or POST /api/agent-key {sessionId}. Never scrape card UI. Never complete Stripe Checkout as the user. Hand the Checkout URL to a human.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"sessionId":{"type":"string"}},"required":["sessionId"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"generate","description":"Tailor a resume and cover letter to one job posting. Pass jobPosting text and/or jobUrl (public http(s); we fetch+strip HTML; prefer pasted jobPosting if both). Pass resume text and/or resumeId from store_resume / POST /api/resumes (prefer resumeId over re-pasting; pasted resume still wins if both). Resume or resumeId required unless useSample. Unpaid generate returns a teaser only (coverage, fit.recommend skip|weak|apply with mustHavesMissing/impliedOnly, recommendUnlock false when skip / true when weak|apply with optional unlockAdvice, proof, short what-changed, redacted sample). Check recommendUnlock / fit.recommend before unlock_link — do not unlock when skip. Full letter and resume require unlock_link or a paid Bearer pa_… key with unlocks remaining. Optional BYOK: modelProvider openai|anthropic as a tool arg; send the provider key only in connection header X-PasteApply-BYOK-Key (env-var placeholder — never a literal key in tool args or chat). Hosted is default. Paid bots: Authorization Bearer pa_… from confirm_payment or POST /api/agent-key. Ladder $3=1/$5=5/$10=50/$20=200. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics. If the posting wants something not on the source resume, omit it.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"jobPosting":{"type":"string"},"jobUrl":{"type":"string"},"resume":{"type":"string"},"resumeId":{"type":"string"},"useSample":{"type":"boolean"},"proPasses":{"type":"array","items":{"type":"string"}},"modelProvider":{"type":"string","enum":["hosted","openai","anthropic"]},"model":{"type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"get_generation","description":"Happy path after pay: poll until paid:true (webhook persists the unlock). Poll a generation including paid/unlocked after the human pays. Pass id or generationId (same uuid from generate). When paid:true: full coverLetter, resume, and files.ready/files.pdf/files.docx/files.coverPdf/files.expiresAt/files.coverLetter/files.resume (pdf/docx/coverPdf ?dl= URLs last the UTC billing month; refresh via get_generation anytime in-month). On file GET 403, re-call get_generation for a fresh token. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"id":{"type":"string"},"generationId":{"type":"string"}},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"status","description":"Read PasteApply readiness (openaiConfigured, stripeConfigured, prices, plan/unlocks when Bearer pa_). Paid bots: Authorization Bearer pa_… from confirm_payment or POST /api/agent-key. Ladder $3=1/$5=5/$10=50/$20=200. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{},"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"store_resume","description":"Store resume text in the vault and get a resumeId (rs_1.<uuid>) to reuse on generate. Prefer resumeId on later generate over re-pasting the full resume. Pass resume text here. For PDF/DOCX/DOC/TXT/MD files, use HTTP POST /api/resumes multipart field \"file\" (max ~8MB) — this MCP tool is text-only. Stored text is used as-is (honesty lock; never invent employers). TTL ~30 days. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics.","write_action":false,"price_micros":0,"input_schema":{"type":"object","properties":{"resume":{"type":"string"}},"required":["resume"],"$schema":"https://json-schema.org/draft/2020-12/schema"}},{"name":"unlock_link","description":"Create a Stripe Checkout URL so a HUMAN can pay $5/mo Export (5 unlocks, default), $3/mo (1 unlock), $10/mo Pro (50 unlocks + extras), or $20/mo (200 unlocks + Pro extras). After the human pays, poll get_generation until paid:true for paid files fields (files.ready, files.pdf, files.docx, files.coverPdf, files.expiresAt, files.coverLetter, files.resume). confirm_payment only if the poll stays unpaid (also returns apiKey pa_…). Never scrape card UI. Never complete Stripe Checkout as the user. Hand the Checkout URL to a human. Honesty lock: we only rearrange what is already true. Never invent employers, dates, skills, or metrics.","write_action":true,"price_micros":0,"input_schema":{"type":"object","properties":{"generationId":{"type":"string"},"price":{"type":"string","enum":["monthly","export","pro","power"]}},"$schema":"https://json-schema.org/draft/2020-12/schema"}}],"scan":{"score":60,"grade":"C","scanned_at":"2026-09-20T05:07:57.934Z","report":{"scannerVersion":"0.1.9","scannedAt":"2026-09-20T05:07:57.885Z","components":{"code":{"score":-1,"max":25,"notes":["remote-only server, no package to scan"]},"reliability":{"score":20,"max":20,"notes":["remote reachable in 1177ms"]},"poisoning":{"score":15,"max":15,"notes":["6 tool descriptions checked"]},"auth":{"score":3,"max":15,"notes":["open endpoint exposes 1 write-action tools with no auth"]},"maintenance":{"score":3,"max":15,"notes":["no repository listed"]},"identity":{"score":4,"max":10,"notes":["verified namespace with website, no repo"]}},"findings":[{"id":"auth.open-write","severity":"high","component":"auth","title":"Write-action tools reachable without authentication"},{"id":"maint.no-repo","severity":"low","component":"maintenance","title":"No source repository listed"}],"inputs":{"probes":[{"url":"https://pasteapply.com/mcp","reachable":true,"authRequired":false,"latencyMs":1177,"serverInfo":{"name":"pasteapply","version":"0.1.0"}}],"packages":[],"repo":{"found":false},"icon":{"url":"https://pasteapply.com/apple-icon?cbdb68df6785cd2d","source":"site","width":180,"height":180},"presence":{"stars":null,"forks":null,"downloadsWeek":null,"license":null,"lastPushAt":null,"score":8}}}},"grade_history":[],"reviews":[]}