Nova Inbox Agent by Nova (CIVAI)
Server Details
Read and send mail from your Nova Inbox (@nova.civai.co) for OTPs, directory signups, and inbound m…
- Status
- Healthy
- Uptime
- 95.4% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 7 tools
Most tools have clearly distinct purposes: compose_message sends mail, list_messages lists the inbox, list_thread lists a thread, read_message reads one message, get_attachment downloads attachments, get_inbox_address returns the address, and converse handles clarification. The main potential overlap is list_messages vs list_thread and read_message vs list_messages, but descriptions provide enough distinction.
The naming is predominantly consistent snake_case with verb_noun or verb_noun_phrase patterns: compose_message, get_attachment, get_inbox_address, list_messages, list_thread, read_message. The only outlier is converse, which is a bare verb rather than verb_noun, but it remains readable and only a minor deviation.
Seven tools is well-scoped for an email inbox agent. Each tool covers a distinct operation, and the set avoids both excessive fragmentation and missing basic actions like listing, reading, composing, and fetching attachments.
The surface covers listing, reading, threading, composing, and attachments, which supports core inbox workflows. However, it lacks common lifecycle operations such as delete, archive, mark read/unread, search, reply, or forward, which are notable gaps for an email agent.
Available Tools
7 toolscompose_messageAInspect
Send outbound email from the user's @nova.civai.co address (deterministic; no LLM draft).
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | Recipient email address. | |
| html | No | Optional HTML body (sanitized subset). Used when present. | |
| text | No | Plain-text body. Required if html is omitted. | |
| subject | No | Email subject. Required for new mail; optional when reply_to_id is set. | |
| attachments | No | Inline attachments for MCP hosts without Drive (max 5, 2 MB each). | |
| reply_to_id | No | Nova Inbox storage id of the message being replied to (threads the send). | |
| attachment_drive_ids | No | Workspace Drive file ids to attach (max 5, 2 MB each). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the sending address and that composition is deterministic, but says nothing about the fact that sending is an irreversible side effect, required permissions, or failure behavior. Schema covers body/attachment constraints, so the gap is behavioral rather than structural.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler; the verb and the distinguishing constraint ('deterministic; no LLM draft') both land immediately.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a send tool with no annotations and no output schema, the description is thinner than ideal: it does not address irreversibility, auth/permission requirements, or what success looks like. The richly documented 7-parameter schema compensates for most structural needs, leaving only these behavioral gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across all 7 parameters, including the html/text/subject relationship and attachment limits, so the schema does the heavy lifting. The description adds no parameter-level meaning beyond the schema, which matches the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Send), resource (outbound email), and scope (from the user's @nova.civai.co address), and adds 'deterministic; no LLM draft' which implicitly separates it from the sibling 'converse'. It stops short of naming the alternative sibling explicitly, so it is clear but not maximally differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'no LLM draft' hints at when this tool is appropriate versus a draft-generating sibling, but there is no explicit when-to-use/when-not guidance, no mention of prerequisites, and no routing instruction. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
converseCInspect
Reply conversationally when the request is ambiguous or needs clarification.
| Name | Required | Description | Default |
|---|---|---|---|
| reply_hint | No | Optional hint for the conversational reply. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It says nothing about whether this ends the turn, whether it mutates state, whether it should be combined with other tool calls, or what the reply consists of — significant gaps for a tool with zero structured behavioral coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence that front-loads the action and appends the trigger condition; nothing is wasted. It is efficient, though it is efficient at a fairly low level of detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low-complexity (one optional param, no output schema), so the short description is defensible, but with no annotations and no output schema the description should at least clarify the conversational fallback's role in the turn lifecycle. It stops just short of that.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is one optional parameter (reply_hint) whose schema description already covers it at 100% coverage, so the baseline of 3 applies. The description adds no syntax, format, or influence guidance beyond what the schema already supplies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
It gives a verb ('reply conversationally') and a trigger condition ('when the request is ambiguous or needs clarification'), which separates it from the calendar siblings by function. However, the 'resource' is nebulous — there is no statement of what the reply acts on or produces, so the agent must infer it is a non-action fallback.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description names one condition for use: ambiguity or need for clarification. It implies, but never states, that the event-management siblings (add/update/delete/check events) are the alternative when the request is clear, leaving the when-not boundary to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_attachmentAInspect
Download one email attachment as base64 (by drive_id or index on the message).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 0-based attachment index on the message. | |
| drive_id | No | Drive id from message attachments metadata. | |
| message_id | Yes | Message id that owns the attachment. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It usefully discloses the return encoding (base64) and that exactly one attachment is retrieved, but says nothing about attachment size limits, failure modes, or permission/auth requirements for downloading attachments.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One tight sentence with the action, the result format, and the selection options front-loaded. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, and the description correctly supplies the key return detail (base64), which is what an agent needs to handle the result. It stops short of covering error/size behavior, but is adequate for a simple single-attachment fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3, but the description adds meaning: drive_id and index are presented as alternative selectors on the required message_id, clarifying they are two addressing paths rather than required companions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Download one email attachment') plus the return encoding ('as base64') and the two addressing modes. It is clearly distinguishable from read_message and list_messages, which surface message metadata rather than attachment content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent can infer this is the tool to fetch attachment bytes, and the description notes the two ways to select an attachment. There is no explicit when-to-use/when-not guidance nor any mention of the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_inbox_addressAInspect
Return the user's Nova Inbox email address (e.g. user@nova.civai.co).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden, and it never explicitly states that this is a read-only, side-effect-free lookup with no arguments. That is strongly implied by 'Return', but there is no mention of auth requirements, caching, or stability of the returned address across calls.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that is front-loaded with the verb and resource, with no filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema getter, the description supplies enough to call it correctly and even hints at the return format. Only minor omissions (read-only nature, auth context) remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool takes zero parameters, which sets the baseline at 4. The description usefully documents the return format with an example (user@nova.civai.co), adding value beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (Return) and a specific resource (the user's Nova Inbox email address) plus a concrete example format. It does not explicitly differentiate from siblings, but none of the sibling tools (compose_message, read_message, etc.) are confusable with an address lookup, so differentiation is implicitly handled.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: an agent can infer it should call this when it needs the user's inbox address, but the description never states when to use it or when not to. There are no natural alternatives to route against, so this gap is minor.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_messagesCInspect
List messages in the signed-in user's Nova Inbox (@nova.civai.co).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max messages to return (1–50). Default 10. | |
| query | No | Optional filter on subject or from address (case-insensitive substring). | |
| unread_only | No | If true, only unread inbound messages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose a meaningful behavioral constraint (only the @nova.civai.co inbox is covered), but says nothing about ordering, pagination, whether sent/outbound messages are included, or the shape of results for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single front-loaded sentence with zero filler or redundancy. It is appropriately tight, though its brevity contributes to the gaps noted in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and no annotations, the description should compensate by covering return behavior and constraints; it covers inbox scope but omits ordering, pagination, and result format. All three parameters are schema-documented, so the remaining gap is behavioral rather than structural.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with limit, query, and unread_only all documented inline (including the 1-50 range and default). The description adds no parameter meaning beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (messages) scoped to the signed-in user's Nova Inbox, which is clear and unambiguous. It does not differentiate itself from siblings such as list_thread or read_message, so an agent gets no help choosing among the message-reading tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no when-to-use guidance, no prerequisites, and never names the alternatives (read_message for a single message, list_thread for a threaded view). Scope is implied by the phrase 'signed-in user's Nova Inbox' but nothing tells the agent when this tool is the right pick.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_threadAInspect
List all messages in an email thread (inbound + outbound), oldest first.
| Name | Required | Description | Default |
|---|---|---|---|
| message_id | No | Any message id in the thread (from list_messages or read_message). | |
| thread_key | No | Thread key from list_messages/read_message (alternative to message_id). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does add real value by disclosing ordering (oldest first) and that both inbound and outbound messages are included. However it says nothing about pagination, result limits, permissions, or behavior when the thread is empty or the id is invalid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with the scope qualifiers front-loaded. Every clause earns its place — verb, resource, inclusion rule, and ordering are all packed into one line with zero waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter read tool with no annotations and no output schema, the description covers scope and ordering adequately. It is still silent on what happens when neither optional parameter is supplied and on return size/pagination, which an agent would want before invoking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented in the schema, including that message_id and thread_key are alternatives. The description adds no parameter-level detail beyond that, which is the expected baseline when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (List) and resource (messages in an email thread) with useful scope qualifiers: inbound + outbound, oldest first. It implicitly distinguishes itself from list_messages by operating on a whole thread, though it never names that sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the word 'thread' — an agent can infer this is for retrieving an entire conversation rather than a mailbox. There is no explicit when-to-use guidance, no statement of when to prefer read_message or list_messages instead, and no mention of prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
read_messageAInspect
Read full body of one Nova Inbox message by id or list index (includes attachment metadata).
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | 0-based index from the latest list_messages result. | |
| message_id | No | Nova Inbox message id from list_messages. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose the content scope returned (full body plus attachment metadata), which implies a safe read, but it omits any side effects (e.g. whether reading marks the message read), error behavior for invalid ids/indices, and any permission requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the verb and target, then attaches the lookup modes and return scope as parenthetical detail. Nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With two simple parameters, no annotations, and no output schema, the description covers purpose and return content (body and attachment metadata), which is what an agent most needs. It stops short of side-effect and failure-mode information, a minor gap for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and both parameters are documented as coming from list_messages results. The description restates the same origin (id or list index) without adding syntax, precedence, or behavior details beyond the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (read) and resource (one Nova Inbox message) with the two lookup modes (id or list index) and the return scope (full body, attachment metadata). 'One ... message' implicitly distinguishes it from list_messages and list_thread, but no sibling is named explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: you read a single message, presumably after list_messages produces an index or id. There is no explicit when-to-use, when-not, or named alternative such as list_messages for bulk retrieval.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
14 tool updates
- Added
compose_message - Added
converse - Added
get_attachment - Added
get_inbox_address - Added
list_messages - Added
list_thread - Removed
nova_inbox__compose_message - Removed
nova_inbox__converse - Removed
nova_inbox__get_attachment - Removed
nova_inbox__get_inbox_address - Removed
nova_inbox__list_messages - Removed
nova_inbox__list_thread - Removed
nova_inbox__read_message - Added
read_message
2 tool updates
- Added
nova_inbox__get_attachment - Added
nova_inbox__list_thread
5 tool updates
- First observed
nova_inbox__compose_message - First observed
nova_inbox__converse - First observed
nova_inbox__get_inbox_address - First observed
nova_inbox__list_messages - First observed
nova_inbox__read_message
Related MCP Connectors
Email hosting from your AI: read and send mail, add domains, check DNS and manage mailboxes.
Real email inboxes for AI agents: create inboxes, catch verification codes, extract OTPs, reply.
Hosted email for AI agents: create inboxes, send, receive, and reply over MCP with scoped API keys
Disposable email inboxes for AI agents — read messages and verification codes.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceEmail for AI agents. Create inboxes, send and receive emails without phone or CAPTCHA. Inboxes are server-readable, not end-to-end encrypted.101 npmMIT
- AlicenseNot gradedqualityBmaintenanceProvides temporary email inboxes for AI agents, enabling creation, inspection, and deletion of inboxes, retrieval of messages, and extraction of OTPs and verification links via MCP tools.42 npm1MIT

Lettio MCPofficial
AlicenseAqualityBmaintenancePrivate, EU-hosted email for AI agents over the open JMAP standard. Read, search, reply in-thread, organize and send from your own mailbox; sending is pinned to the signed-in mailbox.1034 npmMIT- AlicenseNot gradedqualityDmaintenanceDisposable email for humans and AI agents. Enables AI agents to create mailboxes and receive verification emails through an MCP server.36MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.