{"name":"io.github.cnohall/emptyinbox","slug":"cnohall-emptyinbox","title":"EmptyInbox","description":"Zero-config disposable email inboxes for AI agents: create, read mail, await verify codes.","url":"https://mcp.market/server/cnohall-emptyinbox","rating":null,"grade":"B","score":78,"certified":false,"status":"active","category":"email","tags":["email"],"presence":{"score":34,"stars":4,"forks":1,"downloads_week":246,"last_push_at":"2026-09-19T01:46:01.000Z","license":"MIT"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/blockonomics/emptyinbox-me","website":null,"version":"1.3.0","remotes":[],"packages":[{"registryType":"npm","registryBaseUrl":"https://registry.npmjs.org","identifier":"emptyinbox-mcp","version":"1.3.0","transport":{"type":"stdio"},"environmentVariables":[{"description":"Existing EmptyInbox API key. Omit to auto-register a free account on the first tool call that needs one; the key is then written to ~/.emptyinbox.json.","isSecret":true,"name":"EMPTYINBOX_API_KEY"}]}],"tools":[{"name":"buy_quota","description":"Buy inbox credits with Bitcoin. Only call this after the user has chosen a bundle or amount. Returns a pay_url to give the user: a page with a QR code, the exact amount and a live payment status, which works with any Bitcoin wallet. Also returns the raw address, amount and BIP21 URI for paying directly. Credits are added as soon as the payment is seen on the network. Call check_payment once the us","write_action":true,"price_micros":0,"input_schema":null},{"name":"check_payment","description":"Check whether a Bitcoin payment from buy_quota has landed. Pass wait_seconds (around 120) once the user says they have paid, to wait for the credits in one call. Credit usually arrives within seconds of broadcast, well before confirmation.","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_inbox","description":"Create a new disposable email inbox. Returns the email address. Use this before triggering any signup or email verification flow.","write_action":true,"price_micros":0,"input_schema":null},{"name":"get_message","description":"Get one email message by ID. Returns the parsed message: extracted code, action_url, every link with its anchor text, and the body as plain text. Set format='text' for a flat rendering to read directly, or include_html=true only if the raw HTML is genuinely needed.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_quota","description":"Check how many inbox credits remain on this account. When credits are low, the result says how to buy more with Bitcoin.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_bundles","description":"List the inbox credit bundles for sale and their USD prices, paid in Bitcoin. Show these to the user before calling buy_quota.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_inboxes","description":"List all disposable email inboxes on this account.","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_messages","description":"List received email messages, newest first, already parsed: each entry carries the extracted one-time code, the link to open, and a text preview — no HTML parsing needed. Filter by inbox and use limit to keep responses small.","write_action":false,"price_micros":0,"input_schema":null},{"name":"register_account","description":"Register a new EmptyInbox account and get an API key. Use this only if there is no account configured yet, or if authentication is failing. Prefer reusing an existing key: repeatedly registering from one network reduces the free credits each new account receives. Saves the key locally for future sessions.","write_action":false,"price_micros":0,"input_schema":null},{"name":"wait_for_message","description":"Poll an inbox until a new message arrives. Use after triggering an email verification, OTP, or signup confirmation. Returns the parsed message — including the extracted code and the link to open — as soon as it lands, or a timeout result.","write_action":false,"price_micros":0,"input_schema":null}],"scan":{"score":78,"grade":"B","scanned_at":"2026-09-19T20:03:41.694Z","report":{"scannerVersion":"0.1.5","scannedAt":"2026-09-19T20:03:41.664Z","components":{"code":{"score":25,"max":25,"notes":["5 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":6,"max":15,"notes":["static API keys via environment variables"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":5,"max":10,"notes":["namespace and repository owner differ","GitHub account older than a year"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"emptyinbox-mcp","version":"1.3.0","found":true,"license":"MIT","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-09-14T06:09:28.166Z","repositoryUrl":"git+https://github.com/blockonomics/emptyinbox-me.git"}],"repo":{"found":true,"owner":"blockonomics","repo":"emptyinbox-me","archived":false,"pushedAt":"2026-09-19T01:46:01Z","stars":4,"forks":1,"openIssues":4,"ownerType":"User","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/22165583?v=4","ownerCreatedAt":"2016-09-13T06:01:37Z"},"icon":{"url":"https://avatars.githubusercontent.com/u/22165583?v=4&s=128","source":"registry","width":128,"height":128},"presence":{"stars":4,"forks":1,"downloadsWeek":246,"license":"MIT","lastPushAt":"2026-09-19T01:46:01.000Z","score":34}}}},"grade_history":[],"reviews":[]}