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.
Configurazione guidata
Collega Microsoft Dynamics 365 Sales a Microsoft Copilot in 2 minuti
Avvia la prova gratuita su AnythingMCP Cloud, collega Microsoft Dynamics 365 Sales con la configurazione guidata e aggiungi il tuo URL MCP a Microsoft Copilot. Senza codice e senza server da gestire.
Nessuna carta di credito · 7 giorni di prova · Alternativa self-host disponibile
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 + Microsoft Copilot
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.
Prerequisiti
Le istruzioni di setup complete sono incluse nel connettore stesso (visibili nello store quando lo selezioni). Le variabili d'ambiente richieste sono:
MICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_SECRET, MICROSOFT_TENANT_ID, DYNAMICS_ORG_HOST
Step 1 — Ottieni le credenziali
- 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.
Step 2 — Installa l'adapter
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
Step 3 — Aggiungi il connettore in Microsoft Copilot
L'URL del tuo server: in AnythingMCP apri MCP Servers → il server su cui si trova questo connettore e copia il suo URL (
https://cloud.anythingmcp.com/mcp/…). Usalo ovunque questa guida mostraYOUR_SERVER_ID.
Microsoft Copilot usa i server MCP tramite gli agenti creati in Copilot Studio: aggiungi AnythingMCP a un agente come strumento, poi pubblichi l'agente in Microsoft 365 Copilot e in Teams. Copilot Studio si collega dal cloud di Microsoft via Streamable HTTP, che AnythingMCP supporta.
- In Copilot Studio apri il tuo agente (o creane uno), vai su Tools e scegli Add a tool → New tool → Model Context Protocol.
- Inserisci un Server name (per esempio
AnythingMCP), una Server description che dica cosa fa il connettore e il Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio usa la descrizione per decidere quando chiamare il server. - Come autenticazione scegli API key, imposta Type su Header e come nome dell'header
X-API-Key, poi seleziona Create. - In Add tool scegli Create a new connection, incolla una chiave API MCP di AnythingMCP (MCP Servers → il tuo server → API keys) e seleziona Add to agent.
- Provalo nel riquadro Test dell'agente: chiedi qualcosa che richiede i tool di
Dynamics 365 Sales. - Seleziona Publish, poi Channels → Microsoft 365 and Microsoft Teams, lascia selezionato Make agent available in Microsoft Copilot e scegli Add channel. See agent in Teams lo installa per te; in Microsoft 365 Copilot scrivi @ e scegli l'agente.
Preferisci un accesso per ogni utente? Al posto della chiave API scegli OAuth 2.0 → Dynamic discovery: ogni persona accede ad AnythingMCP la prima volta che l'agente lo chiama.
Usi il self-hosting? Usa l'indirizzo HTTPS pubblico della tua istanza al posto di https://cloud.anythingmcp.com. Copilot Studio si collega dal cloud di Microsoft, quindi localhost non funziona.
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."
FAQ
Per quale Copilot vale? Per Microsoft 365 Copilot in azienda, tramite gli agenti di Copilot Studio. L'app Microsoft Copilot per account personali non permette di aggiungere un proprio server MCP.
Cosa mi serve? Un account di lavoro con accesso a Copilot Studio (licenza o prova) per creare l'agente. Chi lo usa in Microsoft 365 Copilot o in Teams deve avere accesso all'agente: condividilo, oppure chiedi a un amministratore di pubblicarlo per l'organizzazione. Se la tua organizzazione applica criteri sui dati ai connettori di Power Platform, valgono anche per i server MCP.
L'agente non chiama i tool. Controlla che il nome dell'header sia esattamente X-API-Key e che la chiave appartenga allo stesso server MCP dell'URL, e scrivi una Server description precisa: Copilot Studio la usa per decidere quando chiamare il server. Dopo ogni modifica pubblica di nuovo l'agente; in una chat già aperta scrivi "start over" per passare alla nuova versione.
Prossimi passi
- Landing del connettore
- Collegare a Claude
- Collegare a ChatGPT
- Collegare a Cursor
- Collegare a Gemini
- Collegare a Meta Muse
Questa guida ti è stata utile?