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