MCP server for Nylas — read email, calendars, events and contacts, and send email or create events.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Creates a draft email (does NOT send — safe/additive). Nylas v3: POST /v3/grants/{grant_id}/drafts.
Recipient email addresses (array of strings).
CC email addresses (array of strings).
BCC email addresses (array of strings).
Email body (HTML or plain text).
Email subject line.
Connected-account grant id. Overrides NYLAS_GRANT_ID for this call.
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
Creates a draft email (does NOT send — safe/additive). Nylas v3: POST /v3/grants/{grant_id}/drafts.
| Argument | Type | Description |
|---|---|---|
| cc | array | CC email addresses (array of strings). |
| to* | array | Recipient email addresses (array of strings). |
| bcc | array | BCC email addresses (array of strings). |
| body | string | Email body (HTML or plain text). |
| subject | string | Email subject line. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"description": "CC email addresses (array of strings)."
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient email addresses (array of strings)."
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"description": "BCC email addresses (array of strings)."
},
"body": {
"type": "string",
"description": "Email body (HTML or plain text)."
},
"subject": {
"type": "string",
"description": "Email subject line."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
}
}
}Creates a calendar event (may send invites to participants). Requires calendar_id (sent as a query param). Nylas v3: POST /v3/grants/{grant_id}/events.
| Argument | Type | Description |
|---|---|---|
| title* | string | Event title. |
| end_time* | integer | Event end, Unix timestamp (seconds). |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| location | string | Event location. |
| start_time* | integer | Event start, Unix timestamp (seconds). |
| calendar_id* | string | REQUIRED. The calendar id to create the event in (sent as a query param). |
| description | string | Event description. |
| participants | array | Participant email addresses (array of strings). |
Get a single calendar by id. Nylas v3: GET /v3/grants/{grant_id}/calendars/{calendar_id}.
| Argument | Type | Description |
|---|---|---|
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| calendar_id* | string | The calendar id to fetch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"calendar_id"
],
"properties": {
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"calendar_id": {
"type": "string",
"description": "The calendar id to fetch."
}
}
}Get a single contact by id. Nylas v3: GET /v3/grants/{grant_id}/contacts/{contact_id}.
| Argument | Type | Description |
|---|---|---|
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| contact_id* | string | The contact id to fetch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"contact_id"
],
"properties": {
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"contact_id": {
"type": "string",
"description": "The contact id to fetch."
}
}
}Get a single calendar event by id. Requires calendar_id (sent as a query param). Nylas v3: GET /v3/grants/{grant_id}/events/{event_id}.
| Argument | Type | Description |
|---|---|---|
| event_id* | string | The event id to fetch. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| calendar_id* | string | REQUIRED. The calendar id (sent as a query param). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"event_id",
"calendar_id"
],
"properties": {
"event_id": {
"type": "string",
"description": "The event id to fetch."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"calendar_id": {
"type": "string",
"description": "REQUIRED. The calendar id (sent as a query param)."
}
}
}Get details for a single connected account (grant). Nylas v3: GET /v3/grants/{grant_id}.
| Argument | Type | Description |
|---|---|---|
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
}
}
}Get a single email message by id. Nylas v3: GET /v3/grants/{grant_id}/messages/{message_id}.
| Argument | Type | Description |
|---|---|---|
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| message_id* | string | The message id to fetch. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"message_id"
],
"properties": {
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"message_id": {
"type": "string",
"description": "The message id to fetch."
}
}
}List calendars for the connected account (each has a calendar_id used by the events tools). Nylas v3: GET /v3/grants/{grant_id}/calendars.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max calendars to return. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| page_token | string | Pagination cursor (next_cursor from a prior page). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max calendars to return.",
"exclusiveMinimum": 0
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"page_token": {
"type": "string",
"description": "Pagination cursor (next_cursor from a prior page)."
}
}
}List contacts for the connected account, with optional email/phone filters. Nylas v3: GET /v3/grants/{grant_id}/contacts.
| Argument | Type | Description |
|---|---|---|
| string | Filter by email address. | |
| limit | integer | Max contacts to return. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| page_token | string | Pagination cursor (next_cursor from a prior page). |
| phone_number | string | Filter by phone number. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"email": {
"type": "string",
"description": "Filter by email address."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max contacts to return.",
"exclusiveMinimum": 0
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"page_token": {
"type": "string",
"description": "Pagination cursor (next_cursor from a prior page)."
},
"phone_number": {
"type": "string",
"description": "Filter by phone number."
}
}
}List draft emails for the connected account. Nylas v3: GET /v3/grants/{grant_id}/drafts.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max drafts to return. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| page_token | string | Pagination cursor (next_cursor from a prior page). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max drafts to return.",
"exclusiveMinimum": 0
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"page_token": {
"type": "string",
"description": "Pagination cursor (next_cursor from a prior page)."
}
}
}List calendar events. Requires calendar_id (sent as a query param). Nylas v3: GET /v3/grants/{grant_id}/events.
| Argument | Type | Description |
|---|---|---|
| end | integer | Filter: latest event start, Unix timestamp (seconds). |
| limit | integer | Max events to return. |
| start | integer | Filter: earliest event start, Unix timestamp (seconds). |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| page_token | string | Pagination cursor (next_cursor from a prior page). |
| calendar_id* | string | REQUIRED. The calendar id (sent as a query param). |
| show_cancelled | boolean | Include cancelled events. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"calendar_id"
],
"properties": {
"end": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Filter: latest event start, Unix timestamp (seconds)."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max events to return.",
"exclusiveMinimum": 0
},
"start": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Filter: earliest event start, Unix timestamp (seconds)."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"page_token": {
"type": "string",
"description": "Pagination cursor (next_cursor from a prior page)."
},
"calendar_id": {
"type": "string",
"description": "REQUIRED. The calendar id (sent as a query param)."
},
"show_cancelled": {
"type": "boolean",
"description": "Include cancelled events."
}
}
}List mail folders/labels for the connected account. Nylas v3: GET /v3/grants/{grant_id}/folders.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max folders to return. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max folders to return.",
"exclusiveMinimum": 0
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
}
}
}List the connected accounts (grants) on this Nylas application, each with a grant_id used to scope other tools. Not grant-scoped. Nylas v3: GET /v3/grants.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Max grants to return. |
| offset | integer | Pagination offset. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max grants to return.",
"exclusiveMinimum": 0
},
"offset": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": 0,
"description": "Pagination offset."
}
}
}List email messages for the connected account, with optional filters. Nylas v3: GET /v3/grants/{grant_id}/messages.
| Argument | Type | Description |
|---|---|---|
| in | string | Filter by folder id. |
| to | string | Filter by recipient email address. |
| from | string | Filter by sender email address. |
| limit | integer | Max messages to return. |
| unread | boolean | If set, filter by unread status. |
| starred | boolean | If set, filter by starred status. |
| subject | string | Filter by subject. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| page_token | string | Pagination cursor (next_cursor from a prior page). |
| search_query_native | string |
SENDS a real email via the connected account. This dispatches an actual message. Nylas v3: POST /v3/grants/{grant_id}/messages/send.
| Argument | Type | Description |
|---|---|---|
| cc | array | CC email addresses (array of strings). |
| to* | array | Recipient email addresses (array of strings). |
| bcc | array | BCC email addresses (array of strings). |
| body | string | Email body (HTML or plain text). |
| subject | string | Email subject line. |
| grant_id | string | Connected-account grant id. Overrides NYLAS_GRANT_ID for this call. |
| reply_to_message_id | string | Id of the message this is a reply to. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"to"
],
"properties": {
"cc": {
"type": "array",
"items": {
"type": "string"
},
"description": "CC email addresses (array of strings)."
},
"to": {
"type": "array",
"items": {
"type": "string"
},
"description": "Recipient email addresses (array of strings)."
},
"bcc": {
"type": "array",
"items": {
"type": "string"
},
"description": "BCC email addresses (array of strings)."
},
"body": {
"type": "string",
"description": "Email body (HTML or plain text)."
},
"subject": {
"type": "string",
"description": "Email subject line."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"reply_to_message_id": {
"type": "string",
"description": "Id of the message this is a reply to."
}
}
}{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"calendar_id",
"title",
"start_time",
"end_time"
],
"properties": {
"title": {
"type": "string",
"description": "Event title."
},
"end_time": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Event end, Unix timestamp (seconds)."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"location": {
"type": "string",
"description": "Event location."
},
"start_time": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Event start, Unix timestamp (seconds)."
},
"calendar_id": {
"type": "string",
"description": "REQUIRED. The calendar id to create the event in (sent as a query param)."
},
"description": {
"type": "string",
"description": "Event description."
},
"participants": {
"type": "array",
"items": {
"type": "string"
},
"description": "Participant email addresses (array of strings)."
}
}
}| Provider-native search query string. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"in": {
"type": "string",
"description": "Filter by folder id."
},
"to": {
"type": "string",
"description": "Filter by recipient email address."
},
"from": {
"type": "string",
"description": "Filter by sender email address."
},
"limit": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Max messages to return.",
"exclusiveMinimum": 0
},
"unread": {
"type": "boolean",
"description": "If set, filter by unread status."
},
"starred": {
"type": "boolean",
"description": "If set, filter by starred status."
},
"subject": {
"type": "string",
"description": "Filter by subject."
},
"grant_id": {
"type": "string",
"description": "Connected-account grant id. Overrides NYLAS_GRANT_ID for this call."
},
"page_token": {
"type": "string",
"description": "Pagination cursor (next_cursor from a prior page)."
},
"search_query_native": {
"type": "string",
"description": "Provider-native search query string."
}
}
}