Skip to content

Add NuGet Package Support for Microsoft.DataApiBuilder.Mcp #3658

@anushakolan

Description

@anushakolan

Summary

Add NuGet package support for Microsoft.DataApiBuilder.Mcp so the MCP project can be packaged as a valid NuGet package and later consumed by the internal DAB pipeline.

This issue covers the source repository changes required to make the MCP package ready for pipeline packaging. It follows the final pattern used for the Core NuGet package work, including package authoring metadata, package file inclusion, and dependency/package correctness.

Goal

Prepare the MCP project so it can produce a valid NuGet package named:

Microsoft.DataApiBuilder.Mcp

The package should allow partner teams to consume DAB MCP functionality directly as an SDK without requiring a full standalone DAB MCP server deployment.

Scope

This issue includes all GitHub-side work needed for MCP NuGet package readiness.

1. Add NuGet authoring metadata to the MCP project

Update the MCP .csproj file to make it packageable and provide the required NuGet metadata.

Expected metadata includes:

<PropertyGroup>
  <IsPackable>true</IsPackable>
  <PackageId>Microsoft.DataApiBuilder.Mcp</PackageId>
  <Authors>Microsoft</Authors>
  <Description>SDK package for Data API Builder MCP functionality.</Description>
  <PackageTags>Data API Builder;DAB;MCP;SQL;SDK</PackageTags>
  <PackageProjectUrl>https://github.com/Azure/data-api-builder</PackageProjectUrl>
  <RepositoryUrl>https://github.com/Azure/data-api-builder</RepositoryUrl>
  <PackageLicenseExpression>MIT</PackageLicenseExpression>
</PropertyGroup>

The exact metadata should follow the final conventions used by the Core NuGet package.

2. Add package file requirements for MCP

Ensure MCP has the required package files configured correctly.

Validate whether MCP needs package-specific handling for:

  • README file
  • NOTICE file
  • License/package metadata
  • Package icon, if required by existing repo conventions

Expected behavior:

  • MCP package files should be separate from CLI package files.
  • MCP package files should not reuse the CLI package NOTICE output.
  • MCP should be ready to consume a package-specific NOTICE file generated by the pipeline.
  • README and NOTICE files should be included consistently with the Core package pattern, if required.

3. Validate MCP dependency/package correctness

Review MCP project references and package dependencies to ensure the generated .nupkg contains the required assemblies and does not miss dependency DLLs.

This should account for the issue Core hit in #3618, where the generated Core NuGet package was missing DLLs from dependencies.

Validate that:

  • MCP references Core where required.
  • MCP includes required dependency DLLs.
  • MCP does not expose unnecessary implementation-only dependencies.
  • MCP does not duplicate logic from Core.
  • MCP package dependency behavior matches the intended SDK consumption model.

If MCP requires dependency pruning or special packaging behavior, align with the Core package approach and coordinate with the ADO pipeline work.

4. Ensure MCP can be packed locally

Validate that MCP can be packed locally before pipeline changes are added.

Example validation commands:

dotnet build <path-to-dab-solution-or-mcp-project> --configuration Release
dotnet pack <path-to-mcp-csproj> --configuration Release --no-build

Then inspect the generated .nupkg and .nuspec to confirm:

  • Package ID is Microsoft.DataApiBuilder.Mcp.
  • Required package metadata is present.
  • README/NOTICE package file behavior is correct.
  • Required DLLs are included.
  • Unexpected dependencies are not exposed.

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

Status
In Progress

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions