Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions nuget/nuget_mcp/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# Data API builder MCP Library

[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

## About

**Microsoft.DataApiBuilder.Mcp** provides Model Context Protocol (MCP) integration for [Data API builder](https://learn.microsoft.com/azure/data-api-builder/) (DAB).

This package is intended for teams that want to host DAB MCP tools in their own .NET applications.

## Key capabilities

- Registers DAB MCP services in dependency injection
- Maps DAB MCP endpoints for HTTP hosting
- Uses Data API builder Core capabilities for entity and tool execution

## Installation

```bash
dotnet add package Microsoft.DataApiBuilder.Mcp
```

## Usage

This package is designed for ASP.NET Core applications that expose MCP endpoints.

Use it to register DAB MCP services in dependency injection and map DAB MCP endpoints in your app's hosting pipeline.

Current distribution scope is internal Azure Artifacts feeds.

## Resources

- [Official Documentation](https://learn.microsoft.com/azure/data-api-builder/)
- [GitHub Repository](https://github.com/Azure/data-api-builder)
- [Samples](https://aka.ms/dab/samples)
26 changes: 26 additions & 0 deletions src/Azure.DataApiBuilder.Mcp/Azure.DataApiBuilder.Mcp.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,29 @@
<TargetFramework>net8.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<PackageOutputPath>./nupkg</PackageOutputPath>
<PackageId>Microsoft.DataApiBuilder.Mcp</PackageId>
<Title>Microsoft.DataApiBuilder.Mcp</Title>
<Authors>Microsoft</Authors>
<Copyright>© Microsoft Corporation. All rights reserved.</Copyright>
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
<RepositoryType>git</RepositoryType>
<PackageProjectUrl>https://go.microsoft.com/fwlink/?linkid=2224253</PackageProjectUrl>
<PackageTags>microsoft mcp model-context-protocol dab dataApiBuilder azure sql graphql rest sdk internal</PackageTags>
<AssemblyName>Microsoft.DataApiBuilder.Mcp</AssemblyName>
<Description>MCP integration library for Data API builder with services and endpoint mapping for exposing DAB tools through Model Context Protocol.</Description>
<PackageIcon>nuget_icon.png</PackageIcon>
<PackageReadmeFile>README.md</PackageReadmeFile>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<!-- Suppress transitive dependency version mismatch warnings from MCP SDK -->
<NoWarn>$(NoWarn);NU1603</NoWarn>
</PropertyGroup>

<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>

<ItemGroup>
<InternalsVisibleTo Include="Azure.DataApiBuilder.Service.Tests" />
</ItemGroup>
Expand All @@ -21,6 +40,13 @@
<ProjectReference Include="..\Core\Azure.DataApiBuilder.Core.csproj" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\nuget\nuget_mcp\README.md" Pack="true" PackagePath="\" />
<None Include="..\..\nuget\nuget_icon.png" Pack="true" PackagePath="\" />
<None Include="..\..\LICENSE.txt" Pack="true" PackagePath="\" />
<None Include="..\..\nuget_mcp\NOTICE.txt" Pack="true" PackagePath="\" Condition="Exists('..\..\nuget_mcp\NOTICE.txt')" />

@souvikghosh04 souvikghosh04 Jun 16, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NOTICE.txt path seems wrong.
The csproj includes: <None Include="..\..\nuget_mcp\NOTICE.txt" Pack="true" PackagePath="\" Condition="Exists('..\..\nuget_mcp\NOTICE.txt')" />
But the README lives at nuget/nuget_mcp/README.md, so the NOTICE path should be ....\nuget\nuget_mcp\NOTICE.txt (note the nuget prefix). Compare with the Core csproj at Azure.DataApiBuilder.Core.csproj:74 which uses ....\nuget_core\NOTICE.txt — that's also missing the nuget prefix, so either both are wrong or there's a top-level nuget_core/ and nuget_mcp/ directory at repo root used by the build pipeline. Worth verifying the intended location — the Condition="Exists(...)" will silently skip it if wrong, meaning the package ships without a NOTICE even when one exists.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the callout. I checked the generated package layout, and the NOTICE.txt location is intentional. The package uses nuget_mcp/NOTICE.txt as the generated NOTICE output, while the README is sourced from nuget\nuget_mcp\README.md. So the Exists(...) path in the MCP csproj matches the current build output convention rather than the README location.

That said, I also noticed the current implementation follows the same pattern used by the Core package, so I believe this is consistent with the existing packaging setup. If needed, I can add a short note in the PR to make that distinction clearer.
Screenshot 2026-06-16 144214

</ItemGroup>

<ItemGroup>
<Folder Include="CustomTools\" />
</ItemGroup>
Expand Down