Skip to main content
Glama

Import Dynamics 365 View

import_dataverse_view

Microsoft Copilot only (Entra sign-in): reads a Dynamics 365 account view server to server, as the signed-in user, and stages it as an account upload. No rows pass through the agent. view_id (or an exact view_name) comes from list_dataverse_views. The server adds accountid, name, and the address1 location columns to the view; they arrive as latitude, longitude, address, city, state, postal_code, country. Returns a task (follow next_action / sleep_ms, fetch the result once); the result is the same shape as an account upload: upload_handle, row_count, csv_headers, preview, upload_warnings, geocode_plan, and suggested_ingest. Confirm the column roles with the user, then ingest_accounts(**suggested_ingest.args). Limit 100,000 accounts (DATAVERSE_VIEW_TOO_LARGE). Other clients get DATAVERSE_NOT_AVAILABLE: use request_account_upload instead.

Input Schema

NameRequiredDescriptionDefault
view_idNoAccount view id from list_dataverse_views (system or personal).
view_nameNoExact view name, when view_id is unknown. Ambiguous names return DATAVERSE_VIEW_AMBIGUOUS.
point_layerNoPoint layer name ingest_accounts will create.accounts
map_session_idNoOpen map session (msess_...) from get_map_visualization. Its Territory Solution is the input; omit ts_handle when set.
environment_urlYesDynamics 365 environment from list_dataverse_views.

Output Schema

NameRequiredDescriptionDefault
okYes
errorNoPresent when ok is false.
resultNoPresent when ok is true. A submission returns the task reference (task_id, next_action, sleep_ms); the completed task result carries the remaining fields.
warningsNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedOutput schema / properties / result / description
      Previous value: -"Present when ok is true."New value: +"Present when ok is true. A submission returns the task reference (task_id, next_action, sleep_ms); the completed task result carries the remaining fields."
    • addedOutput schema / properties / result / properties
      Added value: +{
      +  "do_this_next": {
      +    "type": "object"
      +  },
      +  "job_id": {
      +    "type": "string"
      +  },
      +  "next_action": {
      +    "type": "string"
      +  },
      +  "sleep_ms": {
      +    "type": "integer"
      +  },
      +  "status": {
      +    "type": "string"
      +  },
      +  "task_id": {
      +    "type": "string"
      +  },
      +  "terminal": {
      +    "type": "boolean"
      +  }
      +}
  2. Added

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds substantial behavior beyond the annotations: no rows pass through the agent, the server injects accountid/name/address1 columns that surface as latitude/longitude/address/city/state/postal_code/country, and the call is asynchronous via a task with next_action/sleep_ms polling. It also discloses hard limits and error codes (100,000 accounts -> DATAVERSE_VIEW_TOO_LARGE, ambiguous names). Nothing here contradicts readOnlyHint=false / openWorldHint=true, since the tool stages an upload handle rather than being a pure read.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loads the key constraint (Copilot-only, server-to-server) and packs error codes, column mapping, and the follow-up call into one dense paragraph with no filler. It is long and somewhat run-on, which slightly hurts scanability for an agent parsing the string.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an async, auth-gated import tool with an output schema, the description covers preconditions, argument sourcing, server-side column injection, the task/poll contract, the result shape, the size limit, and the ingest handoff. An agent has everything needed to call it correctly and act on the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3; the description still adds meaning by tying view_id/view_name to list_dataverse_views and warning that ambiguous names produce DATAVERSE_VIEW_AMBIGUOUS. It also explains the ts_handle/map_session_id interaction indirectly via the suggested_ingest follow-up, though point_layer is only self-documented in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('reads a Dynamics 365 account view server to server ... stages it as an account upload') and names the sibling it replaces for unsupported clients (request_account_upload). An agent can distinguish it from list_dataverse_views, ingest_accounts, and request_account_upload without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives explicit preconditions (Microsoft Copilot with Entra sign-in), the selection rule between view_id and an exact view_name, the fallback for other clients (DATAVERSE_NOT_AVAILABLE -> use request_account_upload), and the required follow-up sequence into ingest_accounts. When-to-use and when-not-to-use are both covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources