Vexa
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
제작자가 쓴 설명(영어 원문)
Real email inboxes for AI agents: create addresses, send, wait for mail and verification codes.
이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.
이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
필요한 것
어떤 앱을 쓰세요?
위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.
웹, 데스크톱, 모바일의 Claude에서 쓸 수 있어요:
https://mcp.agentboxd.com/mcp터미널에서 이 명령어를 실행하세요
claude mcp add --transport http agentboxd https://mcp.agentboxd.com/mcp프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요
{
"mcpServers": {
"agentboxd": {
"url": "https://mcp.agentboxd.com/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
프로젝트의 .vscode/mcp.json에 붙여 넣으세요
{
"servers": {
"agentboxd": {
"type": "http",
"url": "https://mcp.agentboxd.com/mcp"
}
}
}브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.
ChatGPT는 인터넷에 있는 서버에만 연결할 수 있어요:
https://mcp.agentboxd.com/mcp메뉴 이름은 요금제나 시기에 따라 조금 다를 수 있어요.
선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.
이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 6일 점검
레지스트리 이름이 도메인 agentboxd.com 기준으로 확인되었어요(레지스트리가 도메인 소유를 확인해요)
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 GitHub에서 이 저장소를 읽어 오지 않았어요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요
아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.
GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.2.0)은 41일 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.
같은 카테고리에는: Vexa, emailmd, MCP WhatsApp Cloud
같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.
카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Meeting bot and transcripts for Google Meet, Teams and Zoom. Live or after, speakers labelled.
Render markdown into email-safe HTML, lint drafts for deliverability problems, and preview emails.
MCP server for WhatsApp Cloud API (Meta) — messages, media, and templates via Graph API
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
MCP server for Agentboxd: real email inboxes for AI agents.
Add it to Claude Desktop, Claude Code, Cursor or any MCP client, and the model can create an email address, send and reply, wait for the next email, and pull verification codes and magic links out of sign-up and login emails. All it needs is an API key.
npx -y @agentboxd/mcp # stdio; needs AGENTBOXD_API_KEY in the environment
Get a key from the dashboard (the Free plan needs no card). Keys start with mr_.
No install needed? The same tools (minus signup) are hosted at https://mcp.agentboxd.com/mcp: add that URL as a custom connector in Claude, or run claude mcp add --transport http agentboxd https://mcp.agentboxd.com/mcp, and sign in to Agentboxd when asked. See the docs.
Edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/, Windows: %APPDATA%\Claude\) and restart Claude Desktop:
{
"mcpServers": { "agentboxd": { "command": "npx", "args": ["-y", "@agentboxd/mcp"], "env": { "AGENTBOXD_API_KEY": "mr_..." } } } }
claude mcp add agentboxd -e AGENTBOXD_API_KEY=mr_... -- npx -y @agentboxd/mcp
Add --scope user to make it available in every project.
.cursor/mcp.json in a project, or ~/.cursor/mcp.json for all projects:
{
"mcpServers": { "agentboxd": { "command": "npx", "args": ["-y", "@agentboxd/mcp"], "env": { "AGENTBOXD_API_KEY": "mr_..." } } } }
Same shape everywhere: command npx, args ["-y", "@agentboxd/mcp"], env AGENTBOXD_API_KEY. Or install globally and run the binary directly:
npm install -g @agentboxd/mcp
AGENTBOXD_API_KEY=mr_... agentboxd-mcp
AGENTBOXD_API_KEY=mr_... npx -y @agentboxd/mcp --http # http://127.0.0.1:3333/mcp
AGENTBOXD_API_KEY=mr_... npx -y @agentboxd/mcp --http --port=4000
HTTP mode is stateless and has no authentication of its own: anyone who can reach the port acts with your key. It binds to 127.0.0.1 by default; don't expose it without a reverse proxy that adds auth.
| Env var | Required | Default |
|---|---|---|
AGENTBOXD_API_KEY | no | none. The legacy name MAILROOM_API_KEY is also read. Without a key the server still starts and the agent can create its own workspace with the signup tool (see below). |
AGENTBOXD_BASE_URL | no | https://api.agentboxd.com. Set it for an Enterprise deployment. Legacy name: MAILROOM_URL. |
MCP_HTTP_PORT | no | unset, so the server uses stdio. Set it (or pass --http [--port=N], default 3333) to serve Streamable HTTP at /mcp. |
MCP_HTTP_HOST | no | 127.0.0.1 (HTTP mode only) |
| Flag | Default |
|---|---|
--save-key= | unset. After signup, write AGENTBOXD_API_KEY=mr_... to this file (owner-only permissions), and read it back on the next start when no AGENTBOXD_API_KEY is set. |
Start the server without AGENTBOXD_API_KEY and the agent gets a signup tool. It solves a short proof-of-work challenge (a few seconds of CPU), creates an unclaimed workspace with one inbox, and the server uses the new key for the rest of the session. Nothing is written to disk by default: the tool returns the key once and tells the agent to hand it to you. Pass --save-key= if the server should keep it across restarts.
Until a person claims the workspace (the agent passes owner_email to signup, or calls request_claim later), it is limited: one inbox, email to at most 20 new recipients a day (replies in threads someone started with the agent are not limited), no webhooks or custom domains. Idle unclaimed workspaces are deleted after 30 days. get_account shows the status and limits. Details: https://agentboxd.com/docs/agent-signup
| Tool | What it does | When the agent should use it |
|---|---|---|
create_inbox | { username?, display_name?, client_id? } creates a real address. Idempotent on client_id. | Needs an email address (signups, outreach). |
create_temporary_inbox | { ttl_seconds? } (60-86400, default 900) creates a throwaway, receive-only address that deletes itself with all its mail at expires_at. | One-off sign-ups: create, trigger the email, then get_verification_code. |
list_inboxes | { limit?, cursor? } lists your inboxes. | Finding an existing inbox_id. |
send_email | { inbox_id, to, cc?, bcc?, subject, text?, html?, data?, type? } starts a new thread. Agentboxd recipients get it natively (a signed agent message); the result reports channel and delivery_summary. | Emailing someone new. |
send_message | Same as send_email, described for agents: structured data and a type (message, task, event). | Giving another AI agent a task. |
reply_to_email | { inbox_id, message_id, text?, html?, reply_all?, data?, type? } replies in the same thread. | Answering a received email. |
reply_to_message | Same as reply_to_email, described for agents. | Reporting a task's result to the agent that asked. |
list_messages | { inbox_id, direction?, labels?, is_read?, limit?, cursor? } lists messages, newest first, with shortened bodies. | Checking an inbox. |
get_message | { message_id, include_full_text?, include_html? } returns one message in full. | Reading one message in detail. |
get_thread | { thread_id } returns the whole conversation in order. | Following a back-and-forth. |
search_email | { query, inbox_id?, limit? } runs a ranked full-text search with snippets. | Finding old mail. |
wait_for_email | { inbox_id, timeout_seconds? (1-60, default 30), from?, subject?, since? } long-polls for the next matching email. | Expecting a reply or a triggered email. |
get_verification_code | { inbox_id, timeout_seconds?, from?, since? } waits for a code or magic link and returns it with a confidence score. | Right after triggering a signup, login or "confirm your email" step. |
get_contact | { contact_id?, address? } returns what the workspace knows about a correspondent: name, notes, metadata, labels, message count, 10 recent threads. | Before answering someone, to recall context. |
update_contact | { contact_id, notes?, metadata?, add_labels?, remove_labels? } replaces notes, merges metadata (null deletes a key), edits labels. | Remembering facts about a correspondent. |
search_knowledge | { query, inbox_id?, limit? } ranked full-text search over the workspace's knowledge docs. | Looking up policies, FAQs, product facts. |
draft_reply | { message_id, instructions?, save? } writes a suggested reply from the thread, the contact and the top knowledge docs (with citations). Never sends. save: true also stores it as a draft. Needs the workspace's AI processing set to full. | Preparing an answer to review before reply_to_email or send_draft. |
create_draft | { inbox_id, to?, cc?, bcc?, subject?, text?, html?, reply_to_message_id?, reply_all?, labels?, send_at? } saves an email as a draft. Nothing is sent. | Human in the loop: a person reviews before it goes out. |
list_drafts | { inbox_id?, status?, thread_id?, limit?, cursor? } lists drafts, newest first. | Seeing what waits for approval, is scheduled, or failed. |
get_draft | { inbox_id, draft_id } returns one draft with its status, send_at and last error. | Checking a draft before sending it. |
send_draft | { inbox_id, draft_id } sends it now through every send check (lists, suppressions, quota, caps, burst limit). | After approval. |
schedule_draft | { inbox_id, draft_id, send_at } sends it automatically at send_at (1 minute to 30 days ahead). | Send later, e.g. in the recipient's morning. |
cancel_draft | { inbox_id, draft_id } cancels a draft or its scheduled send. | Changing your mind. |
get_identity_token | { inbox_id, audience, nonce?, scope? } returns a short-lived (at most 5 minutes), single-use OpenID Connect ID token proving the agent owns the inbox (or identity: inbox_id may be an identity id), for the app whose client_id is audience. Needs the identity:sign permission. | "Sign in with Agentboxd": an app asks the agent to prove who it is. |
create_identity | { display_name?, username?, client_id? } creates an identity without a mailbox: it signs in to apps with get_identity_token but can't send or receive mail. Idempotent on client_id. | The agent only needs to log in to apps, not an email address. |
list_identities | { limit?, cursor? } lists the identities without a mailbox. | Finding an existing identity id. |
signup | { agent_name?, owner_email?, kind? } creates the agent's own workspace, inbox (or with kind: "identity" an identity without a mailbox) and API key when the server has no key. Refused (already_configured) when it has one. | First run without a key. |
get_account | {} returns the claim status, effective limits and, for an unclaimed workspace, today's recipient count and expiry date. | Understanding a 429 unclaimed_recipient_limit. |
request_claim | { email } emails a person a single-use link to claim the agent's workspace (at most 3 a day). | After signup, when the user agrees to own the workspace. |
get_attachment_text | { message_id, attachment_id, offset?, max_chars? } returns the text extracted from an attachment (PDF, Word, Excel, CSV, HTML, text; scans and photos by OCR), marked untrusted, paged with offset / next_offset. text is null while extraction is still running. | Reading an emailed invoice, contract or form. |
extract_attachment | { message_id, attachment_id, schema, instructions? } returns JSON matching "invoice", "receipt", "tax_form" or a JSON Schema object; values the document doesn't state are null. Needs full AI processing and the attachments:extract permission. | Pulling invoice totals, due dates or tax-form boxes into a workflow. |
pause_inbox | { inbox_id, reason? } refuses every send from the inbox (423 inbox_paused) until it is resumed; inbound mail is still stored, its events wait. | Kill switch: a reply loop, wrong recipients. |
resume_inbox | { inbox_id } turns sending back on; held events are delivered in arrival order. | After the problem is fixed. |
get_deliverability | {} returns bounce and complaint rates (7 and 30 days), suppressed contacts, domain SPF/DKIM/DMARC status and the shared IP's blocklist status. | Before a bigger send, or when replies stop coming. |
claim_messages | { inbox_id, limit?, lease_seconds?, wait?, enriched? } leases the next inbound messages (hidden from other workers until lease_until) with a lease_id each. The first claim starts the inbox's queue. | Working through incoming mail as a task queue that survives crashes. |
ack_message | { message_id, lease_id, mark_read? } marks a claimed message done. Idempotent; lease_expired if the lease ran out and someone else took it. | Only after the work for the message is finished. |
Messages come back as compact JSON: id, thread_id, direction, from, to, subject, received_at/sent_at, extracted_text (the new content, with quoted history and signatures removed, cut at 8,000 characters with a note), ai.verification, attachment metadata and labels. Raw HTML is left out unless you pass include_html: true. API errors come back as tool errors (isError) with the API's { error: { code, message } }, so the server keeps running.
Tip for `since`: the wait tools only count mail that arrives after the call starts. If the email may already have arrived, record the time before you tri
앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요