Connect your AI Agents to Outlook GCC High in minutes

Merge lets you securely connect your agents to Outlook GCC High and thousands of tools instantly

Available tools

list_message_attachments

List attachments for an email message with pagination support. Returns metadata only (id, name, size, contentType, isInline, lastModifiedDateTime) — use getmessageattachment for one attachment's content. selectfields overrides which fields are returned. messageid runs over 150 characters: copy it exactly from search results, and do not truncate it.

get_message_attachment

Get a specific attachment from an email message by ID. Returns full attachment details including base64-encoded content. Set returndownloadurl=true for a short-lived download URL instead (file attachments only). Both messageid and attachmentid run over 150 characters: copy them exactly from listmessageattachments, and do not truncate or rebuild them.

get_message_attachments_metadata

Get metadata for all attachments in an email message without downloading content. Returns only essential fields (id, name, size, contentType) with pagination support.

get_events

Retrieve calendar events within a time range with pagination support. When starttime and endtime are provided, automatically expands recurring meetings into individual occurrences. Returns event type and seriesMasterId.

get_event

Get a specific calendar event by ID. Event bodies are returned as plain text by default; pass bodyformat='html' for raw HTML. Use selectfields to limit which fields are returned.

create_event

Create a calendar event (one-time or recurring). Use recurrence parameter for recurring events.

update_event

Update a calendar event. For recurring events: updating an occurrence ID changes only that instance (creates an exception); updating the seriesMasterId (found in occurrence's seriesMasterId field) changes all future occurrences.

delete_event

Delete a calendar event

get_today_events

Get today's calendar events

get_upcoming_events

Get upcoming calendar events

get_past_events

Get past calendar events from previous days

create_meeting

Create a meeting with attendees (one-time or recurring)

create_teams_meeting

Create a Teams meeting with enhanced online meeting support

search_events

Search for calendar events with pagination support

get_user_schedule

Get free/busy schedule information for users, distribution lists, or resources for a specified time period

find_meeting_times

Find optimal meeting times based on attendee availability, suggesting times that work for required participants

get_contacts

Retrieve contacts from a folder with pagination support

get_contact

Get a specific contact by ID

create_contact

Create a new contact

update_contact

Update a contact

delete_contact

Delete a contact

search_contacts

Search for contacts with pagination support

find_contacts_by_email

Find contacts by email address with pagination support

find_contacts_by_company

Find contacts by company name with pagination support

get_mail_folders

Get all mail folders with pagination support

get_mail_folder

Get a specific mail folder by ID

create_mail_folder

Create a new mail folder

update_mail_folder

Update a mail folder

delete_mail_folder

Delete a mail folder

copy_mail_folder

Copy a mail folder

move_mail_folder

Move a mail folder

get_child_folders

Get child folders of a parent folder with pagination support

get_well_known_folder

Get a well-known folder by name

get_folder_message_count

Get message counts for a folder

get_messages

Retrieve messages from a mailbox folder, with pagination. Default fields: id, subject, from, toRecipients, receivedDateTime, sentDateTime, isRead, hasAttachments, importance, bodyPreview, conversationId, webLink. Body NOT included: use getmessage, or pass selectfields with the fields you want plus 'body' (it replaces the default). body_format applies only when a body is included.

get_message

Get a specific message by ID, including its body. Bodies are plain text by default; pass bodyformat='html' for raw HTML (HTML bodies can be very large). Set uniquebodyonly=true on a reply chain to get only this message's new content, dropping quoted history; it returns a wide but explicit field set, so a few rarely-read metadata fields are omitted. Use selectfields to limit fields returned.

create_draft_message

Create a draft message. Attach files inline via attachments (base64 contentbytes, small files) and/or ONE large staged file via filereference (from the file upload API, POST /api/v1/files/, 3 MB to 100 MB) with filereferencefilename. Staged bytes stream into the draft without entering the model's context.

send_message

Send an email message

update_message

Update a message. Subject, body and recipients can only be changed while the message is still a draft; on sent or received mail only is_read, categories and importance are writable.

delete_message

Delete a message

move_message

Move a message to another mail folder by folder ID. Use getmailfolders or getwellknown_folder to find the destination folder ID (e.g. the 'archive' folder).

reply_to_message

Reply to an email message. Sends a reply to the original sender with the given comment text (set reply_all=true to reply to all recipients). Sends immediately; does not create a draft.

mark_message_as_read

Mark a message as read

mark_message_as_unread

Mark a message as unread

get_unread_messages

Get unread messages from a folder with pagination support. Returns the same lean field set as getmessages (no message body); use getmessage to read one, or pass select_fields including 'body' to widen.

search_messages

Search for messages with pagination support. Returns the same lean field set as getmessages (no message body); use getmessage to read one. Returns message IDs that are 150+ characters long. Copy the entire 'id' field exactly, and do not truncate or rebuild it.

list_users

List users in the organization with pagination support, filtering, ordering. B2B guests are excluded, so a page may return fewer than top rows; use pageinfo.nextskip_token to keep paging.

search_users

Search for users by name, email with pagination support and full-text search. B2B guests are excluded, so a page may return fewer than top rows; use pageinfo.nextskip_token to keep paging.

get_user_by_email

Get detailed user information by email address (userPrincipalName)

validate_credential

Validate Microsoft Graph API credentials by attempting to fetch the authenticated user's profile

View all tools by creating a free accountSee more tools

How to set up Merge Agent Handler

In an mcp.json file, add the configuration below, and restart Cursor.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "url": "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
5      "headers": {
6        "Authorization": "Bearer yMt*****"
7      }
8    }
9  }
10}
11
Copy Code

Open your Claude Desktop configuration file and add the server configuration below. You'll also need to restart the application for the changes to take effect.

Make sure Claude is using the Node v20+.

Learn more in the official documentation ↗

1{
2  "mcpServers": {
3    "agent-handler": {
4      "command": "npx",
5      "args": [
6        "-y",
7        "mcp-remote@latest",
8        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
9        "--header",
10        "Authorization: Bearer ${AUTH_TOKEN}"
11      ],
12      "env": {
13        "AUTH_TOKEN": "yMt*****"
14      }
15    }
16  }
17}
Copy Code
Copied!

Open your Windsurf MCP configuration file and add the server configuration below.
Click on the refresh button in the top right of the Manage MCP server page or in the top right of the chat box in the box icon.

Learn more in the official documentation ↗

1{
2    "mcpServers": {
3      "agent-handler": {
4        "command": "npx",
5        "args": [
6          "-y",
7          "mcp-remote@latest",
8          "https://ah-api.merge.dev/api/v1/tool-packs/<tool-pack-id>/registered-users/<registered-user-id>/mcp",
9          "--header",
10          "Authorization: Bearer ${AUTH_TOKEN}"
11        ],
12        "env": {
13          "AUTH_TOKEN": "<ah-production-access-key>"
14        }
15      }
16    }
17  }
Copy Code

In Command Palette (Cmd+Shift+P on macOS, Ctrl+Shift+P on Windows), run "MCP: Open User Configuration".

You can then add the configuration below and press "start" right under servers. Enter the auth token when prompted.

Learn more in the official documentation ↗

1{
2  "inputs": [
3    {
4      "type": "promptString",
5      "id": "agent-handler-auth",
6      "description": "Agent Handler AUTH_TOKEN", // "yMt*****" when prompt
7      "password": true
8    }
9  ],
10  "servers": {
11    "agent-handler": {
12      "type": "stdio",
13      "command": "npx",
14      "args": [
15        "-y",
16        "mcp-remote@latest",
17        "https://ah-api-develop.merge.dev/api/v1/tool-packs/{TOOL_PACK_ID}/registered-users/{REGISTERED_USER_ID}/mcp",
18        "--header",
19        "Authorization: Bearer ${input:agent-handler-auth}"
20      ]
21    }
22  }
23}
Copy Code

FAQs on using Merge's Outlook GCC High  MCP server

FAQs on using Merge's Outlook GCC High  MCP server

Explore other MCP servers built and managed by Merge

browserbase
Browserbase
calendly
Calendly
canva
Canva
casepeer
CasePeer
clay
Clay
clickup
ClickUp
clinicaltrials
ClinicalTrials.gov
clio
Clio
cloudflare
Cloudflare
cms_coverage
CMS Coverage
coda
Coda
compliancequest
ComplianceQuest
concur
Concur
confluence
Confluence
contentful
Contentful
copper
Copper
crustdata
Crustdata
databricks
Databricks
datadog
Datadog
dealops
Dealops
deel
Deel
discord
Discord
docrio
Docrio
docusign
DocuSign

Ready to try it out?

Whether you're an engineer experimenting with agents or a product manager looking to add tools, you can get started for free now