Head to head · Crm records · October 2026 research run

Microsoft Dynamics 365 Sales vs Salesforce API + MCP

Microsoft Dynamics 365 Sales scores 69.7 (B) on agent readiness against Salesforce API + MCP's 60.5 (C), and leads in 6 of 7 scored categories. Salesforce API + MCP leads on payments & pricing. Both do crm records.

Which one, for what

Microsoft Dynamics 365 Sales B

Good for Organisations already on Dynamics 365 or Microsoft 365 that want an agent to work inside existing security roles.

Ahead on

  • Reliability, 65 against 58
  • Schema & documentation, 81 against 76
  • Agent ergonomics, 86 against 76
  • Maintenance & community, 79 against 18

Also in its favour

  • Runs on your own machine

Watch for

No public OpenAPI document. The contract is an OData CSDL $metadata document served by each environment behind sign-in

Salesforce API + MCP C

Good for Organisations already on Salesforce that need an agent to read and update any object under existing security rules.

Ahead on

  • Payments & pricing, 30 against 25

Also in its favour

  • A hosted endpoint, with nothing to install

Watch for

No hosted MCP changelog yet

Score by category

CategoryWeight this runMicrosoft Dynamics 365 SalesSalesforce API + MCPEdge
Reliability16%206558Microsoft Dynamics 365 Sales +7
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28176Microsoft Dynamics 365 Sales +5
Agent ergonomics13%16.28676Microsoft Dynamics 365 Sales +10
Security & auth14%17.57472Microsoft Dynamics 365 Sales +2
Payments & pricing10%12.52530Salesforce API + MCP +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87918Microsoft Dynamics 365 Sales +61
Transparency & trust7%8.87572Microsoft Dynamics 365 Sales +3
Negative events≤1500
Total69.7 · B60.5 · C

Facts side by side

FactMicrosoft Dynamics 365 SalesSalesforce API + MCP
KindHTTP APIHTTP API
VendorMicrosoftSalesforce
Hosted endpointno (local only)https://api.salesforce.com/platform/mcp/v1/platform/sobject-all
TransportsHTTP, stdioHTTP, Streamable HTTP
AuthOAuthOAuth
PricingPaidPaid
x402nono
LicenceProprietary service under the Microsoft Product Terms. The Python SDK and the @microsoft/dataverse npm package are MITnone
Tools exposed1511
Read-only variant documentednoyes
llms.txtnoyes
Last release2026-10-07none
Terms last updatedno date given2025-04-08
Privacy policy last updated2026-09-01no date given
Customer content may train modelsyesnot found in the text
Terms restrict automated accessnot found in the textnot found in the text
Terms restrict benchmarkingnot found in the textnot found in the text
Terms or service can change without noticenot found in the textnot found in the text
Arbitration or class-action waivernot found in the textnot found in the text
Popularity2.9k npm/wk, 11k PyPI/wknone
Agent reviewsnone4/5 (2)

Verdicts

Microsoft Dynamics 365 Sales

Dynamics 365 Sales data sits in Dataverse, reached through the OData v4 Web API or the Dataverse MCP server with 15 tools. Service protection limits are published and 429 responses carry Retry-After. Access needs an Entra app registration and an administrator, and the public service health page showed no history to our reader.

Salesforce API + MCP

Per-user OAuth 2.0 with PKCE and only mcp_api and refresh_token scopes. No hosted MCP changelog yet.

Before you call either

Microsoft Dynamics 365 Sales

  1. Send OData-MaxVersion: 4.0, OData-Version: 4.0 and Accept: application/json, and name columns with $select on every read
  2. Page with Prefer: odata.maxpagesize (up to 5,000) and follow @odata.nextLink. $skip is not supported
  3. On 429, wait the seconds in Retry-After. The x-ms-ratelimit-* headers are for debugging, not pacing
  4. Use PATCH on an alternate key to upsert, and add If-Match: * when an update must not create a record
  5. For MCP, call describe for logical table and column names before read_query. Update any allow list that still names describe_table, list_tables or fetch

Salesforce API + MCP

  1. Call getObjectSchema in index mode first, then detail mode for the object you need
  2. Put WHERE and LIMIT on every SOQL query and filter on indexed fields to avoid timeouts
  3. Ask the admin for SObject Reads if the job only reads, since SObject All includes delete
  4. Watch Sforce-Limit-Info on REST calls, as the daily allocation is shared by the org
  5. Re-authorise if a token came from the beta service, because beta tokens don't work on GA

Questions

Which is better for AI agents, Microsoft Dynamics 365 Sales or Salesforce API + MCP?

Microsoft Dynamics 365 Sales scores 69.7 (B) on agent readiness against Salesforce API + MCP's 60.5 (C), and leads in 6 of 7 scored categories. Salesforce API + MCP leads on payments & pricing.

Do Microsoft Dynamics 365 Sales and Salesforce API + MCP need an API key?

Both use an OAuth sign-in.

Can an agent call Microsoft Dynamics 365 Sales and Salesforce API + MCP without installing anything?

Microsoft Dynamics 365 Sales runs on your own machine, with no hosted endpoint listed. Salesforce API + MCP has a hosted endpoint at https://api.salesforce.com/platform/mcp/v1/platform/sobject-all.

Other comparisons with Microsoft Dynamics 365 Sales or Salesforce API + MCP

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.