Wednesday, 11 February 2026

Building BcMCPProxy.exe and Connecting to Claude Desktop (BLOG 3 OF 4)

 

Introduction

In the previous posts, we covered the concepts (Blog 1) and the BC MCP Server setup (Blog 2). Now it’s time to get hands-on. In this post, we will create an Azure App Registration, build the BcMCPProxy as a self-contained .exe in Visual Studio, and connect it to Claude Desktop.


Prerequisites

Requirement

Details

.NET 8 SDK

Download from dotnet.microsoft.com

Visual Studio 2022

Community, Professional, or Enterprise with .NET desktop workload

Git (Optional)

To clone the BCTech repository from GitHub

Claude Desktop

Download from claude.ai/download

Azure Portal Access

Admin rights to create App Registrations

BC Environment

SaaS with MCP Server enabled (see Blog 2)


Step 1: Create the Azure App Registration

The BcMCPProxy uses delegated permissions—it authenticates as the signed-in user via Azure AD.

Register the Application

1.    Sign in to the Azure Portal (portal.azure.com).

2.    Navigate to Microsoft Entra ID → App registrations → New registration.

3.    Name: Enter a descriptive name (e.g., “BcMCPProxy-Claude”).

4.    Supported account types: Select “Accounts in this organizational directory only (Single tenant).”

5.    Redirect URI: Select “Public client/native” and enter:

ms-appx-web://Microsoft.AAD.BrokerPlugin/<Your-Client-ID>

6.    Click Register. Note down the Application (client) ID and the Directory (tenant) ID from the Overview page.

Add API Permissions

1.    In the app registration, go to API permissions → Add a permission.

2.    Select Microsoft APIs → Dynamics 365 Business Central.

3.    Select Delegated permissions.

4.    Check both Financials.ReadWrite.All and user_impersonation.

5.    Click Add permissions.

6.    Click Grant admin consent for your tenant (requires an admin role).



Step 2: Build BcMCPProxy.exe in Visual Studio

Clone the Repository or download the code manually

git clone https://github.com/microsoft/BCTech.git

cd BCTech\samples\BcMCPProxy

Open in Visual Studio

1.    Launch Visual Studio 2022.

2.    Go to File → Open → Project/Solution.

3.    Navigate to the BcMCPProxy folder and open the .csproj or .sln file.

4.    Wait for NuGet package restore to complete (check the status bar).

Publish as Self-Contained .exe

Option A: Visual Studio UI

1.    Right-click the project in Solution Explorer → Publish.

2.    Choose Folder as the target → Next → Finish.

3.    Click Show all settings in the publish profile.

4.    Set Deployment Mode to Self-contained.

5.    Set Target Runtime to win-x64 (or win-arm64 for ARM machines).

6.    Under File publish options, check Produce single file (recommended).

7.    Click Save, then click Publish.

  



Option B: Command Line (Recommended)

The command line approach is more reliable and avoids the Visual Studio UI quirks. Open PowerShell or Command Prompt in the project folder and run:

dotnet publish -c Release -r win-x64 --self-contained true ^

    -p:PublishSingleFile=true

 

# For ARM-based Windows:

dotnet publish -c Release -r win-arm64 --self-contained true ^

    -p:PublishSingleFile=true




Locate Your .exe

After publishing, you should find BcMCPProxy.exe in:

bin\Release\net8.0\win-x64\publish\BcMCPProxy.exe

 


If you are not sure where it ended up (especially after using the Visual Studio UI), run this in PowerShell from your project folder to find every copy:

Get-ChildItem -Recurse -Filter "BcMCPProxy.exe" |

    Select-Object FullName, Length

The self-contained .exe will be around 60-80 MB. Any file that is only ~150 KB is a regular build output, not the published version.

Locate and Copy the .exe

Find BcMCPProxy.exe in the publish output:

bin\Release\net8.0\win-x64\publish\BcMCPProxy.exe

Copy it to a permanent location:

C:\Tools\BcMCPProxy\BcMCPProxy.exe


✅ Already have .NET 8 installed?

If you are only running the proxy on your own machine and .NET 8 is already installed, the small ~150 KB .exe from a regular Build also works fine. The self-contained version is mainly needed for deploying to machines that may not have .NET installed.


Step 3: Configure Claude Desktop

Install Claude Desktop

1.    Download from claude.ai/download (Windows or macOS).

2.    Install and sign in to your Claude account.

Edit the Configuration

1.    Open Claude Desktop → Settings → Developer.

2.    Click Edit Config to open claude_desktop_config.json.

3.    Add the following configuration:

{

  "mcpServers": {

    "BC_MCP": {

      "command": "C:\\Tools\\BcMCPProxy\\BcMCPProxy.exe",

      "args": [

        "--TenantId",          "<Your-Tenant-ID>",

        "--ClientId",          "<Your-Client-ID>",

        "--Environment",       "<BC-Environment-Name>",

        "--Company",           "<Company-Name>",

        "--ConfigurationName", "<MCP-Config-Name>"

      ]

    }

  }

}

Parameter Reference

Parameter

Description

--TenantId

Azure AD tenant ID (GUID from App Registration overview)

--ClientId

Application (client) ID from your Azure App Registration

--Environment

BC environment name (e.g., Production, Sandbox)

--Company

BC company name (e.g., CRONUS USA, Inc.)

--ConfigurationName

MCP config name created in BC. If omitted, uses default read-only config.

 

4.    Save the file and restart Claude Desktop completely.

5.    On first launch, an Azure sign-in prompt will appear. Authenticate with a user from the same tenant.

6.    After authentication, BC MCP tools should appear in Claude Desktop’s tool list.




⚠️ Troubleshooting

If tools don’t appear: verify the .exe path uses double backslashes in JSON, confirm all required args are present, check MCP Server is enabled in BC Feature Management, and restart Claude Desktop after any config change.


What’s Next?

Your setup is complete! In Blog 4, we run through real-world testing scenarios to validate everything works end to end.

 

Blog Series Navigation

   Blog 1: UnderstandingAI Agents and MCP

   Blog 2: The BusinessCentral MCP Server

▶ Blog 3: Building BcMCPProxy.exe and Connecting to Claude Desktop (You are here)

   Blog 4: Testing Scenarios and Best Practices



Tuesday, 10 February 2026

The Business Central MCP Server (BLOG 2 OF 4)

 Enabling, Configuring, and Understanding the Architecture


Introduction

In Blog 1, we explored what AI agents and MCP are. Now let’s focus on Microsoft’s implementation: the Business Central MCP Server, announced in public preview with wave 2 (release 27.1). We will cover what it does, how to enable it, how to configure it, and the architectural role of the BcMCPProxy.


What the BC MCP Server Does

The BC MCP Server exposes Business Central’s API pages as MCP tools. This means any MCP-compatible AI client can discover and call BC operations dynamically, without needing hardcoded API knowledge.

Supported Operations

        Read: Query data from any exposed BC API page (customers, items, GL entries, vendors, etc.).

        Create: Create new records such as sales orders, purchase orders, and journal entries.

        Modify: Update existing records, modify customer details, adjust quantities, and change dates.

        Delete: Remove records (with appropriate permissions configured).

        Bound Actions: Execute OData-bound actions such as Post, Send, or Release.

Default Behavior

By default, the MCP Server gives agents read-only access to all exposed Business Central API pages. Write operations (create, modify, delete) and bound actions must be explicitly enabled through configuration.


Enabling the MCP Server

Follow these steps in your Business Central environment:

1.    Open Business Central and search for Feature Management.

2.    Locate and enable the feature: “Feature: Enable MCP Server access.”



3.    Ensure you have the MCP - ADMIN permission set assigned to your user.

Once enabled, you can create and manage MCP configurations.


Configuring the MCP Server

1.    Search for and open the Model Context Protocol (MCP) Server Configurations page.

2.    Click New to create a configuration.

3.    Enter a Code and Description (e.g., Code: BC, Description: Claude Desktop Integration).

4.    In the Tools section, add API page objects. Click “Add All Standard APIs as Tools” for a quick start.

5.    On each tool line, configure the allowed operations: Allow Read, Allow Create, Allow Modify, Allow Delete, Allow Bound Actions.

6.    At the header level, toggle Active to enable the configuration.

Configuration Options

Dynamic Tool Mode: When enabled, clients can search for tools dynamically at runtime instead of having them pre-assigned.




Architecture: The BcMCPProxy

Currently, the only officially supported MCP client is Microsoft Copilot Studio. To use other clients like Claude Desktop, VS Code, or Cursor, you need a proxy that bridges the gap.

The BcMCPProxy is a .NET 8 console application from Microsoft’s BCTech repository. It sits between your AI client and the BC MCP Server, handling authentication and protocol translation.


Data Flow

┌─────────────────────┐     ┌─────────────────────┐     ┌─────────────────────┐

│  Claude Desktop     │ --> │  BcMCPProxy.exe     │ --> │  BC MCP Server      │

│  (AI Client)        │     │  (Local Proxy)      │     │  (Business Central) │

└─────────────────────┘     └─────────────────────┘     └─────────────────────┘

      MCP/stdio                Azure Auth                  BC APIs

        Claude Desktop sends MCP requests via stdio to the proxy executable.

        BcMCPProxy.exe authenticates using Azure AD delegated permissions and forwards the request.

        The BC MCP Server executes the operation against Business Central and returns the result.

        The proxy relays the response back to Claude Desktop for natural-language presentation.


Two Proxy Options

 

.NET Proxy (BcMCPProxy)

Python Proxy

Platform

Windows only (.exe)

Windows, Mac, Linux

Installation

Build from source

pip install bc-mcp-proxy

Best For

Windows-only teams

Cross-platform teams

Repository

BCTech/BcMCPProxy

BCTech/BcMCPProxyPython



What’s Next?

In Blog 3, we walk through the hands-on steps: creating the Azure App Registration, building BcMCPProxy.exe in Visual Studio, and connecting it to Claude Desktop.

  

Blog Series Navigation

   Blog 1: Understanding AI Agents and MCP

▶ Blog 2: The Business Central MCP Server (You are here)

   Blog 3: Building BcMCPProxy.exe and Connecting to Claude Desktop

   Blog 4: Testing Scenarios and Best Practices



Monday, 9 February 2026

Understanding AI Agents and MCP (BLOG 1 OF 4)

 What They Are and Why They Matter for Business Central


Introduction

The world of enterprise software is being reshaped by AI agents. Imagine telling your ERP system, in plain English, to look up a customer, check inventory levels, or create a sales order. No clicking through menus, no memorizing page names, just a natural conversation that gets work done.

In this first post of our four-part series, we cover the foundational concepts: what AI agents are, how the Model Context Protocol (MCP) works, and why these matter for anyone working with Dynamics 365 Business Central.


What Are AI Agents?

An AI agent is a software program powered by a large language model (LLM) that can understand instructions, reason about tasks, and take actions on your behalf. Unlike a simple chatbot that only generates text, an agent can interact with external systems, call APIs, retrieve data, and execute workflows autonomously or semi-autonomously.


Key Characteristics

        Reasoning: They understand natural language, maintain context across a conversation, and can break complex requests into smaller steps.

        Tool Use: They can call external tools, APIs, databases, and services to perform real work, not just talk about it.

        Planning: They decompose a high-level goal (e.g., “create a sales order”) into sub-tasks (find customer, find item, create header, add line).

        Human-in-the-Loop: For sensitive actions like creating or deleting records, agents ask for explicit user confirmation before proceeding.


Agents vs. Chatbots vs. Copilots

 

Chatbot

Copilot

Agent

Interaction

Q&A only

Suggests & assists

Plans & executes

Tool Access

None

Limited

Full (APIs, DBs)

Autonomy

None

Low

High (with guardrails)

Example

FAQ bot

GitHub Copilot

BC MCP Agent

 

Why Agents Matter for Business Central

Business Central is a powerful ERP, but navigating its rich feature set often requires training and familiarity. AI agents lower the barrier by letting users interact with BC through conversation. A project manager can ask for a budget-vs-actual report, a warehouse worker can check stock levels, and a finance lead can review outstanding invoices, all without opening a single BC page.

The critical enabler for this is a standardized way for agents to discover and call BC’s capabilities. That is exactly what the Model Context Protocol provides.


What Is the Model Context Protocol (MCP)?

MCP is an open API standard, originally championed by Anthropic, that defines how AI applications discover, describe, and invoke operations on external services. Think of it as a universal adapter between any AI client (Claude, Copilot, a custom agent) and any backend system (Business Central, GitHub, Salesforce, etc.).

How MCP Works

The protocol follows a four-step pattern:

1.    Discovery – The AI client connects to an MCP server and asks: “What tools do you offer?”

2.    Description – The MCP server responds with a list of tools, their parameters, and plain-English descriptions.

3.    Invocation – Based on the user’s request, the AI selects the right tool, fills in parameters, and calls it.

4.    Response – The MCP server executes the operation and returns the result to the AI client.

This self-describing, plug-and-play architecture means agents do not need hardcoded knowledge of every API endpoint. They dynamically learn what is available and how to use it at runtime.


MCP vs. Traditional API Integration

Aspect

Traditional API

MCP

Discovery

Manual documentation

Auto-discovery of tools

Integration

Custom code per system

Standardized protocol

AI Compatibility

Requires wrapper logic

Native LLM support

Operations

Fixed endpoints

Dynamic tool listing

Security

API keys / OAuth

Delegated auth + config

 

✅ Key Takeaway

MCP eliminates the need to write custom integration code for every AI client. Once a system exposes an MCP server, any MCP-compatible agent can work with it out of the box.






What’s Next?

Now that you understand agents and MCP, you are ready for Blog 2, where we dive into the Business Central MCP Server itself, what it exposes, how to enable it, and the role of the BcMCPProxy in connecting non-Copilot-Studio clients.

 

Blog Series Navigation

▶ Blog 1: Understanding AI Agents and MCP (You are here)

   Blog 2: The Business Central MCP Server

   Blog 3: Building BcMCPProxy.exe and Connecting to Claude Desktop

   Blog 4: Testing Scenarios and Best Practices