Connect your AI Agents to Dynamics 365 Sales in minutes

Available tools
create_account
Create a new account (company/organization) in Dynamics 365. Accounts represent businesses or organizations you work with.
get_account
Retrieve a Dynamics 365 account by ID. Returns full account details including company info, contact details, and custom fields.
update_account
Update an existing Dynamics 365 account. Modify company information, contact details, or custom fields.
delete_account
Delete a Dynamics 365 account. This is a permanent operation - consider deactivating instead.
list_accounts
List Dynamics 365 accounts with filtering, sorting, and pagination. Find accounts by name, industry, location, or custom criteria.
search_accounts
Search Dynamics 365 accounts by text query. Find accounts matching name, description, or other text fields.
create_appointment
Create an appointment in Dynamics 365. Schedule meetings associated with accounts, contacts, or opportunities.
get_appointment
Retrieve an appointment by ID from Dynamics 365.
update_appointment
Update an appointment in Dynamics 365. Reschedule, change location, or mark as completed.
delete_appointment
Delete an appointment from Dynamics 365.
list_appointments
List appointments in Dynamics 365 with filtering by date range, status, or related records.
create_case
Create a new case (incident) in Dynamics 365. Cases track customer service issues, support requests, and inquiries.
get_case
Retrieve a Dynamics 365 case by ID. Returns case details including priority, status, customer, and SLA information.
update_case
Update an existing Dynamics 365 case. Modify priority, status, description, or resolve the case.
delete_case
Delete a Dynamics 365 case. Consider resolving or canceling instead to preserve service history.
list_cases
List Dynamics 365 cases with filtering. Find cases by status, priority, customer, or SLA dates.
search_cases
Search Dynamics 365 cases by text query. Find cases matching title or description.
create_contact
Create a new contact in Dynamics 365. Contacts represent individual people you work with, often associated with accounts.
get_contact
Retrieve a Dynamics 365 contact by ID. Returns full contact details including personal info, contact methods, and relationships.
update_contact
Update an existing Dynamics 365 contact. Modify personal information, contact methods, or preferences.
delete_contact
Delete a Dynamics 365 contact. This is a permanent operation.
list_contacts
List Dynamics 365 contacts with filtering, sorting, and pagination. Find contacts by account, name, email, or custom criteria.
search_contacts
Search Dynamics 365 contacts by text query. Find contacts matching name, email, or other text fields.
discover_entity_metadata
Discover available fields and their properties for a Dynamics 365 entity. Essential for understanding what fields can be used in create, update, and filter operations.
list_entities
List all available entities in the Dynamics 365 organization. Useful for discovering what data types are available.
create_email
Create an email activity in Dynamics 365. Track sent or received emails associated with CRM records.
get_email
Retrieve an email activity by ID from Dynamics 365.
update_email
Update an email activity in Dynamics 365. Modify subject, content, or mark as completed.
delete_email
Delete an email activity from Dynamics 365.
list_emails
List email activities in Dynamics 365 with filtering by date, status, or related records.
create_lead
Create a new lead in Dynamics 365. Requires subject (topic) and lastname. If no contact name provided, lastname defaults to 'Contact'. Use list_leads to verify creation.
get_lead
Retrieve a Dynamics 365 lead by ID or name. Accepts GUID or subject/company name. Use search_leads if multiple matches expected.
update_lead
Update an existing Dynamics 365 lead. Modify contact information, qualification status, or estimated value.
delete_lead
Delete a Dynamics 365 lead. Consider qualifying the lead instead to preserve data.
list_leads
List Dynamics 365 leads with filtering, sorting, and pagination. Find leads by status, rating, source, or custom criteria.
search_leads
Search Dynamics 365 leads by text query. Find leads matching name, company, or subject.
qualify_lead
Qualify (convert) a Dynamics 365 lead to Account, Contact, and/or Opportunity. This is the standard way to advance a lead in the sales process.
create_note
Create a new note (annotation) in Dynamics 365. Notes can include text content and file attachments, attached to any record.
get_note
Retrieve a Dynamics 365 note by ID. Returns note content including text and attachment metadata.
update_note
Update an existing Dynamics 365 note. Modify the text content, subject, or attachment.
delete_note
Delete a Dynamics 365 note. This is a permanent operation.
list_notes
List Dynamics 365 notes with filtering. Find notes by parent record, date, or content.
create_opportunity
Create a new opportunity in Dynamics 365. Opportunities represent potential sales deals in your pipeline.
get_opportunity
Retrieve a Dynamics 365 opportunity by ID. Returns full deal details including value, probability, and stage.
update_opportunity
Update an existing Dynamics 365 opportunity. Modify deal value, probability, stage, or other fields.
delete_opportunity
Delete a Dynamics 365 opportunity. Consider closing as won/lost instead to preserve history.
list_opportunities
List Dynamics 365 opportunities with filtering, sorting, and pagination. Find deals by stage, value, customer, or custom criteria.
search_opportunities
Search Dynamics 365 opportunities by text query. Find deals matching name or description.
win_opportunity
Close a Dynamics 365 opportunity as Won. Records the successful deal closure with revenue and date.
lose_opportunity
Close a Dynamics 365 opportunity as Lost. Records the unsuccessful deal closure with reason.
get_owner
Retrieve a Dynamics 365 system user (owner) by ID. Get user details for record assignment or team management.
list_owners
List Dynamics 365 system users (owners) with filtering. Find users for record assignment or team management.
create_phonecall
Create a phone call activity in Dynamics 365. Log incoming or outgoing calls with notes and duration.
get_phonecall
Retrieve a phone call activity by ID from Dynamics 365.
update_phonecall
Update a phone call activity in Dynamics 365. Add notes, mark as completed, or update details.
delete_phonecall
Delete a phone call activity from Dynamics 365.
list_phonecalls
List phone call activities in Dynamics 365 with filtering by date, status, or related records.
create_task
Create a new task in Dynamics 365. Tasks are activities for tracking follow-up work related to accounts, contacts, leads, opportunities, or cases.
get_task
Retrieve a Dynamics 365 task by ID. Returns task details including subject, due date, priority, and related records.
update_task
Update an existing Dynamics 365 task. Modify subject, due date, priority, completion status, or other fields.
delete_task
Delete a Dynamics 365 task. Consider completing or canceling instead to preserve history.
list_tasks
List Dynamics 365 tasks with filtering. Find tasks by status, priority, due date, or related records.
search_tasks
Search Dynamics 365 tasks by text query. Find tasks matching subject or description.
validate_credential
Validate Dynamics 365 credentials. Verifies credentials during setup.

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}
11Open 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}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 }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}FAQs on using Merge's Dynamics 365 Sales MCP server
FAQs on using Merge's Dynamics 365 Sales MCP server
What is a Dynamics 365 Sales MCP?
A Dynamics 365 Sales MCP is an MCP server that gives your agents direct access to data and functionality within your Dynamics 365 Sales instance via tools. Your agents can invoke these tools to retrieve and qualify leads, update opportunity stages, query account and contact records, log activities, and more.
Microsoft offers an official MCP server, but you can also use one from a third-party platform, like Merge Agent Handler.
How can I use the Dynamics 365 Sales MCP server?
The use cases naturally depend on the agent you've built, but here are a few common ones:
- Lead handoff automation: When a marketing platform scores a lead above a qualification threshold, an agent creates the lead record in Dynamics 365 Sales and assigns it to the right rep based on territory or product line rules
- Pipeline review digest: An agent queries open opportunities by stage and projected close date each Monday and posts a structured summary to a Slack channel, giving the sales team visibility before their weekly review
- Cross-system deal tracking: When an opportunity is marked closed-won in Dynamics 365 Sales, an agent detects the update and automatically creates a corresponding onboarding project in a project management tool like Asana or Jira
- Activity logging from communication tools: An agent monitors a calling or email tool and logs completed interactions as activity records against the relevant contact in Dynamics 365 Sales, keeping the CRM current without manual entry
What are popular tools for Dynamics 365 Sales's MCP server?
Here are some of the most commonly used tools:
list_leads: retrieves lead records filtered by status, owner, or date range. Call this when an agent needs to triage incoming leads or generate a pipeline intake report.
create_lead: creates a new lead record in Dynamics 365 Sales. Useful for agents that pick up signals from external systems (form submissions, enrichment events) and need to register them in the CRM automatically
list_opportunities: returns open opportunities with stage, value, and close date data. Good for workflows that monitor pipeline health or flag deals that are past their expected close date
update_opportunity: modifies fields on an existing opportunity, such as stage, probability, or close date. Use this when an agent detects a trigger event and needs to advance or correct the deal record
list_contacts: retrieves contact records associated with an account or opportunity. Helpful when an agent needs to identify the right stakeholder before initiating outreach or logging an activity
create_activity: logs a new activity (call, email, or task) against a contact or opportunity. Call this when an agent completes an action in another system and needs to record it in the CRM for visibility and audit purposes
What makes Merge Agent Handler's Dynamics 365 Sales MCP server better than alternative Dynamics 365 Sales MCP servers?
Here is why teams choose Merge Agent Handler's Dynamics 365 Sales MCP server over building or using an alternative:
- Enterprise-grade security and DLP: Merge Agent Handler includes built-in data loss prevention controls that let you block or redact sensitive fields before they reach an agent. For Dynamics 365 Sales, this means you can prevent deal values, contact details, and revenue forecasts from being exposed even when the agent has broad read access
- Managed authentication and credentials: Merge stores and refreshes Dynamics 365 Sales credentials on your behalf. You never expose raw API keys or OAuth tokens to an agent or handle token rotation manually
- Real-time observability and audit trail: Every tool call made against Dynamics 365 Sales is logged with timestamp, tool name, input parameters, and response metadata. You can audit exactly what an agent read or wrote without instrumenting anything yourself
- Tool Packs and controlled access: Tool Packs let you bundle specific Dynamics 365 Sales tools with tools from other connectors into a single MCP endpoint, scoped to a specific use case. An agent gets exactly the tools it needs, nothing more
How can I start using Merge Agent Handler's Dynamics 365 Sales MCP server?
You can take the following steps:
1. Create or log into your Merge Agent Handler account and navigate to Tool Packs (collections of connector tools scoped to a specific use case).
2. Create a new Tool Pack, then find and enable the Dynamics 365 Sales connector. Choose which tools to include: enable read tools for data retrieval and reporting use cases, or add write tools if your agent needs to create or update leads, opportunities, contacts, or activities.
3. Add a Registered User inside the Tool Pack. This is the identity context under which your agent operates. Merge generates a unique MCP URL scoped to this user once it's created.
4. From the Registered User detail page, authenticate Dynamics 365 Sales by completing the OAuth flow. Merge stores and manages the credentials going forward.
5. Copy the MCP URL from the Tool Pack detail page and generate an API key from Settings. You'll need both to connect your agent.
6. Add the MCP server to your agent or IDE using the MCP URL and API key. Your Dynamics 365 Sales tools are now accessible through that endpoint.
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

























