create_dataverse_publisher
Create a publisher identity in Dataverse to establish customization prefixes for schema names and enable solution creation for custom components.
Instructions
Creates a new publisher in Dataverse. Publishers are required for creating solutions and provide customization prefixes for schema names. Use this to establish a publisher identity before creating solutions and custom components.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| customizationOptionValuePrefix | Yes | Option value prefix (e.g., 72700) | |
| customizationPrefix | Yes | Customization prefix for schema names (e.g., 'sample') | |
| description | No | Description of the publisher | |
| friendlyName | Yes | Friendly name for the publisher | |
| uniqueName | Yes | Unique name for the publisher (e.g., 'examplepublisher') |
Implementation Reference
- src/tools/solution-tools.ts:40-71 (handler)The handler function that constructs the publisher definition object and uses DataverseClient.post to create the publisher in Dataverse, returning formatted success or error response.async (params) => { try { const publisherDefinition = { friendlyname: params.friendlyName, uniquename: params.uniqueName, description: params.description || `Publisher for ${params.friendlyName}`, customizationprefix: params.customizationPrefix, customizationoptionvalueprefix: params.customizationOptionValuePrefix }; const result = await client.post('publishers', publisherDefinition); return { content: [ { type: "text", text: `Successfully created publisher '${params.friendlyName}' with prefix '${params.customizationPrefix}'.\n\nResponse: ${JSON.stringify(result, null, 2)}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error creating publisher: ${error instanceof Error ? error.message : 'Unknown error'}` } ], isError: true }; } }
- src/tools/solution-tools.ts:32-38 (schema)Zod input schema defining the parameters required to create a Dataverse publisher.inputSchema: { friendlyName: z.string().describe("Friendly name for the publisher"), uniqueName: z.string().describe("Unique name for the publisher (e.g., 'examplepublisher')"), description: z.string().optional().describe("Description of the publisher"), customizationPrefix: z.string().describe("Customization prefix for schema names (e.g., 'sample')"), customizationOptionValuePrefix: z.number().describe("Option value prefix (e.g., 72700)") }
- src/tools/solution-tools.ts:27-72 (registration)The server.registerTool call that defines and registers the 'create_dataverse_publisher' tool including its name, title, description, input schema, and handler function.server.registerTool( "create_dataverse_publisher", { title: "Create Dataverse Publisher", description: "Creates a new publisher in Dataverse. Publishers are required for creating solutions and provide customization prefixes for schema names. Use this to establish a publisher identity before creating solutions and custom components.", inputSchema: { friendlyName: z.string().describe("Friendly name for the publisher"), uniqueName: z.string().describe("Unique name for the publisher (e.g., 'examplepublisher')"), description: z.string().optional().describe("Description of the publisher"), customizationPrefix: z.string().describe("Customization prefix for schema names (e.g., 'sample')"), customizationOptionValuePrefix: z.number().describe("Option value prefix (e.g., 72700)") } }, async (params) => { try { const publisherDefinition = { friendlyname: params.friendlyName, uniquename: params.uniqueName, description: params.description || `Publisher for ${params.friendlyName}`, customizationprefix: params.customizationPrefix, customizationoptionvalueprefix: params.customizationOptionValuePrefix }; const result = await client.post('publishers', publisherDefinition); return { content: [ { type: "text", text: `Successfully created publisher '${params.friendlyName}' with prefix '${params.customizationPrefix}'.\n\nResponse: ${JSON.stringify(result, null, 2)}` } ] }; } catch (error) { return { content: [ { type: "text", text: `Error creating publisher: ${error instanceof Error ? error.message : 'Unknown error'}` } ], isError: true }; } } );
- src/index.ts:167-167 (registration)Top-level call to createPublisherTool which performs the actual registration of the tool on the MCP server.createPublisherTool(server, dataverseClient);