Skip to main content
Glama

create-account

Create new accounts in Microsoft Dynamics 365 CRM to manage customer relationships and business data through the MCP server.

Instructions

Create a new account in Dynamics 365

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
accountDataYes

Implementation Reference

  • MCP tool handler for 'create-account': extracts accountData from params, calls d365.createAccount, returns JSON response or error.
    async (params) => { try { const { accountData } = params; const response = await d365.createAccount(accountData); return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : "Unknown error" }, please check your input and try again.`, }, ], isError: true, }; } }
  • Input schema for the tool: accepts an object accountData with any properties.
    { accountData: z.object({}) },
  • src/tools.ts:104-134 (registration)
    Registration of the 'create-account' tool using server.tool, including name, description, schema, and handler.
    server.tool( "create-account", "Create a new account in Dynamics 365", { accountData: z.object({}) }, async (params) => { try { const { accountData } = params; const response = await d365.createAccount(accountData); return { content: [ { type: "text", text: JSON.stringify(response, null, 2), }, ], }; } catch (error) { return { content: [ { type: "text", text: `Error: ${ error instanceof Error ? error.message : "Unknown error" }, please check your input and try again.`, }, ], isError: true, }; } } );
  • Helper method in Dynamics365 class that performs the actual API POST to create account via makeApiRequest.
    public async createAccount(accountData: any): Promise<any> { if (!accountData) { throw new Error("Account data is required to create an account."); } const endpoint = "api/data/v9.2/accounts"; return this.makeApiRequest(endpoint, "POST", accountData); }
  • Core helper for all API requests: handles auth token, constructs request, makes fetch call to Dynamics 365.
    private async makeApiRequest( endpoint: string, method: string, body?: any, additionalHeaders?: Record<string, string> ): Promise<any> { const token = await this.authenticate(); const baseUrl = this.d365Url.endsWith("/") ? this.d365Url : `${this.d365Url}/`; const url = `${baseUrl}${endpoint}`; const headers: Record<string, string> = { Authorization: `Bearer ${token}`, Accept: "application/json", "Content-Type": "application/json", "OData-MaxVersion": "4.0", "OData-Version": "4.0", ...additionalHeaders, }; try { const response = await fetch(url, { method, headers, body: body ? JSON.stringify(body) : undefined, }); if (!response.ok) { throw new Error( `API request failed with status: ${ response.status }, message: ${await response.text()}` ); } return await response.json(); } catch (error) { console.error(`API request to ${url} failed:`, error); throw new Error( `Failed to make API request: ${ error instanceof Error ? error.message : String(error) }` ); } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/srikanth-paladugula/mcp-dynamics365-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server