Salta l'installazione. Attivo in meno di 2 minuti.
Avvia una prova gratuita su cloud.anythingmcp.com, aggiungi Microsoft Dynamics 365 Sales (Dataverse) con un clic, poi punta il tuo client AI (Claude, ChatGPT, Copilot o Cursor) all'endpoint MCP generato. Niente Docker, niente git clone, nessuna esperienza di sviluppo richiesta.
In breve
Fai lavorare la tua AI in Dynamics 365 Sales: trova e aggiorna account, contatti, lead e opportunità, registra attività, chiamate e note, qualifica i lead e chiudi le trattative, e interroga qualsiasi tabella Dataverse con OData o FetchXML. Con il tuo account Microsoft, tramite la Dataverse Web API.
Prova a chiedere
Prompt di esempio per Microsoft Dynamics 365 Sales (Dataverse)
Clicca su un prompt per copiarlo. Incollalo in Claude, ChatGPT, Cursor, Gemini, Copilot o OpenClaw per eseguirlo contro questo connettore.
Claude è un'AI e può sbagliare. Verifica sempre le risposte.
💡 Niente installazione? Vai direttamente su cloud.anythingmcp.com. Accedi, clicca Connectors → Microsoft Dynamics 365 Sales (Dataverse), inserisci le credenziali, genera una MCP API key e hai finito. Niente Docker, niente
git clone, niente server locale.
Dynamics 365 Sales
Fai lavorare la tua AI in Dynamics 365 Sales: trova e aggiorna account, contatti, lead e opportunità, registra attività, chiamate e note, qualifica i lead e chiudi le trattative, e interroga qualsiasi tabella Dataverse con OData o FetchXML. Con il tuo account Microsoft, tramite la Dataverse Web API.
Setup
- Trova l'indirizzo del tuo ambiente: in Dynamics apri Settings (l'ingranaggio) → Advanced settings, oppure nell'interfaccia di amministrazione di Power Platform apri Environments → il tuo ambiente → Environment URL. Ha una forma come
contoso.crm4.dynamics.com. Inserisci il nome host, senzahttps://e senza percorso, inDYNAMICS_ORG_HOST. - Apri l'interfaccia di amministrazione di Microsoft Entra su
https://entra.microsoft.com→ Applications → App registrations → New registration, oppure riusa l'app che hai creato per il connettore Outlook, OneDrive o SharePoint. Di solito si sceglie Accounts in this organizational directory only. - Aggiungi un URI di reindirizzamento con la piattaforma Web:
https://cloud.anythingmcp.com/api/mcp-oauth/callback(se ospiti AnythingMCP in proprio:<your AnythingMCP URL>/api/mcp-oauth/callback). Deve corrispondere esattamente, altrimenti Microsoft rispondeAADSTS50011. - In API permissions → Add a permission → Dynamics CRM → Delegated permissions seleziona
user_impersonation. Clicca su Grant admin consent se la tua organizzazione non permette agli utenti di dare il consenso da soli. - In Certificates & secrets → New client secret copia il Value del secret. Viene mostrato una sola volta.
- Compila
MICROSOFT_CLIENT_ID,MICROSOFT_CLIENT_SECRET,MICROSOFT_TENANT_ID(la tua Directory (tenant) ID o il tuo dominio, oppureorganizationsper un'app multi-tenant) eDYNAMICS_ORG_HOST, poi installa il connettore. - Clicca su Authorize with Provider e accedi con un utente di quell'ambiente, poi esegui
d365_who_am_icome verifica rapida.
La regione è nel nome host: il numero dopo crm indica la regione del datacenter, per esempio crm per il Nord America, crm4 per Europa, Medio Oriente e Africa, crm11 per il Regno Unito o crm16 per la Germania. Copialo dall'URL dell'ambiente invece di tirare a indovinare. Se in seguito cambi DYNAMICS_ORG_HOST serve un nuovo accesso, perché l'autorizzazione vale per un solo ambiente.
Gli stessi permessi dell'utente: l'utente che accede deve avere in quell'ambiente una licenza Dynamics 365 o Power Apps e un ruolo di sicurezza come Salesperson o Sales Manager. L'AI vede e modifica esattamente ciò che quel ruolo consente.
Cosa fa: trova, crea e aggiorna account, contatti, lead e opportunità, registra attività, telefonate e note nella loro sequenza temporale, qualifica o squalifica i lead e chiude le opportunità come vinte o perse. Per tutto il resto, come offerte, ordini, prodotti o le tue tabelle personalizzate, d365_query esegue query OData e d365_fetchxml_query gestisce join e totali. d365_list_tables e d365_describe_table mostrano quali tabelle e colonne esistono.
Prima la conferma: l'AI conferma con te ogni creazione e ogni modifica. Qualificare un lead o chiudere un'opportunità come vinta o persa cambia la tua pipeline e si può annullare solo a mano in Dynamics, quindi chiede prima di ciascuna di queste azioni.
Disattivati all'installazione: i tool di eliminazione d365_delete_account, d365_delete_contact, d365_delete_lead, d365_delete_opportunity e d365_delete_record. Un'eliminazione può rimuovere anche le righe collegate, quindi attivali uno per uno solo se ti servono.
Limiti: Dataverse consente 6.000 richieste per utente in 5 minuti; oltre questa soglia chiede al connettore di attendere.
Errori comuni: 401 significa che l'autorizzazione è stata revocata, che il client secret è scaduto o che DYNAMICS_ORG_HOST è cambiato dopo l'accesso, quindi autorizza di nuovo. 403 con "principal user is missing privilege": al ruolo di sicurezza dell'utente manca quel permesso. 401 o 403 su ogni chiamata subito dopo l'accesso: l'utente non è membro di questo ambiente o non vi ha una licenza. 412: la riga è cambiata da quando è stata letta, quindi l'AI la rilegge.
Il connettore funziona anche con altri ambienti Dataverse, come Customer Service o Power Apps con le tue tabelle.
Prerequisiti: MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID, DYNAMICS_ORG_HOST
Installazione locale del connettore
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Apri http://localhost:3000/connectors/store, scegli Microsoft Dynamics 365 Sales (Dataverse) e inserisci le variabili elencate nei Prerequisiti.
Tool disponibili
| Tool | What it does |
|---|---|
d365_who_am_i | Return the signed-in user's id (UserId), business unit and organization id |
d365_list_accounts | List or search accounts (companies): name, number, phone, email, website, city, country, primary contact, owner, status |
d365_get_account | Read one account with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_account | Create an account |
d365_update_account | Change columns of one account; columns left out keep their values |
d365_delete_account | Delete one account |
d365_list_contacts | List or search contacts (people): full name, job title, email, phones, company (parentcustomerid), city, owner, status |
d365_get_contact | Read one contact with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_contact | Create a contact, optionally linked to its account |
d365_update_contact | Change columns of one contact; columns left out keep their values |
d365_delete_contact | Delete one contact |
d365_list_leads | List or search leads: topic, name, company, email, phone, source, rating, estimated value, owner, status (open, qualified, disqualified) |
d365_get_lead | Read one lead with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_lead | Create a lead |
d365_update_lead | Change columns of one open lead; columns left out keep their values |
d365_qualify_lead | Qualify an open lead: Dynamics closes it as qualified and creates the chosen records (account, contact, opportunity) from it, linked to the… |
d365_disqualify_lead | Close an open lead as disqualified with a reason: 4 Lost, 5 Cannot Contact, 6 No Longer Interested (default), 7 Canceled |
d365_delete_lead | Delete one lead |
d365_list_opportunities | List or search opportunities: topic, customer (account or contact), estimated value and close date, probability, pipeline phase, owner… |
d365_get_opportunity | Read one opportunity with every column (or the selected ones), with labels for choice and lookup columns and its @odata.etag |
d365_create_opportunity | Create an opportunity for an account or a contact |
d365_update_opportunity | Change columns of one open opportunity (value, close date, probability, description); columns left out keep their values |
d365_win_opportunity | Close an open opportunity as won, with the actual revenue and close date |
d365_lose_opportunity | Close an open opportunity as lost (canceled or out-sold), with an optional comment |
d365_delete_opportunity | Delete one opportunity |
d365_list_activities | List activities of every type (tasks, phone calls, emails, appointments) with subject, type, dates, status and the row they are about |
d365_get_email | Read one email activity: subject, body (HTML in description), sender, recipients, direction, sent date, status and the row it is about |
d365_create_task | Create a task for the signed-in user, about an account, contact, lead or opportunity |
d365_create_phone_call | Log a phone call activity about an account, contact, lead or opportunity, with notes |
d365_create_note | Add a note to the timeline of an account, contact, lead or opportunity |
d365_complete_task | Mark an open task as completed |
d365_query | Query any table by its entity set name with OData: quotes, salesorders, invoices, products, pricelevels, campaigns, competitors… |
d365_next_page | Read the next page of any list, query or FetchXML answer that carried @odata.nextLink |
d365_fetchxml_query | Run a FetchXML query: joins across tables (link-entity), aggregates (count, sum, avg with groupby) and filters the OData syntax cannot… |
d365_get_record | Read one row of any table by entity set and id, with labels for choice and lookup columns and its @odata.etag |
d365_create_record | Create a row in any table that has no dedicated tool (a quote, a product, a custom table) |
d365_update_record | Change columns of one row in any table; columns left out keep their values |
d365_delete_record | Delete one row of any table |
d365_list_tables | List tables with their logical name, entity set name (what the query tools take) and primary name column |
d365_describe_table | Describe one table: entity set name, primary id and name columns, and every column with its type, whether it is required and whether it can… |
d365_list_lookups | List the lookup columns of a table with the table each points to and the navigation property name a write needs ("<navigation… |
d365_get_choice_options | List the values and labels of a choice column (option set), e.g. industrycode of account or statuscode of opportunity, so filters and… |
Esempi di prompt
- "Mostrami le mie opportunità aperte con chiusura prevista in questo trimestre, ordinate per valore stimato."
- "Trova Anna Meyer di Contoso e registra una chiamata: vuole un'offerta entro venerdì."
- "Quali lead degli ultimi 30 giorni sono ancora aperti e non hanno ancora nessuna attività?"
- "Chiudi il rinnovo Fabrikam come vinto a 48.000 e crea un'attività di follow-up per lunedì prossimo."
Prossimi passi
Questa guida ti è stata utile?