Business Central MCP代理工具

一个实验性工具,用于连接Claude Desktop或VS Code到Business Central MCP服务器,实现与Business Central数据的自然语言交互。

  • by demiliani
  • C#
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 demiliani/BCMCPProxyVNEXT

使用说明

商务中心MCP代理

⚠️ 实验工具-不用于生产

此工具用于 仅限于实验 并且是 不用于生产用途它允许您将Claude Desktop或VS Code连接到业务中心模型上下文协议(MCP)服务器。

概述

BC MCP Proxy充当MCP兼容客户端(如Claude Desktop)和Business Central之间的桥梁,实现与Business Central数据和操作的自然语言交互。

先决条件

  • Microsoft Dynamics 365商务中心环境
  • 具有适当权限的Azure租户
  • Claude桌面应用程序(用于Claude集成)

安装说明

1.设置Azure AD应用程序注册

  1. 创建应用程序注册

    • 打开 portal.azure.com
    • 导航到 Azure Active Directory → 应用程序注册
    • 点击 +新注册
    • 姓名: BcMCPProxy (或您喜欢的任何名称)
    • 支持的帐户类型: 仅此组织目录中的帐户(单租户)
    • 重定向URI:暂时留空
    • 点击 注册
    • 复制应用程序(客户端)ID -您需要这个进行配置
  2. 配置身份验证

    • 在左侧菜单中,单击 认证
    • 点击 +添加平台 → 选择 移动和桌面应用程序
    • 检查此重定向URI:
      • ☑ https://login.microsoftonline.com/common/oauth2/nativeclient
    • 点击 配置
    • 向下滚动至 高级设置 → 允许公共客户端流
    • 设置为: 是 (切换应启用/蓝色)
    • 点击 保存

    备注:设备代码流用于所有平台上的身份验证,只需要本地客户端重定向URI。

  3. 配置API权限

    • 在左侧菜单中,单击 API权限
    • 点击 +添加权限
    • 选择 我的组织使用的API 标签
    • 搜索: Dynamics 365 Business Central
    • 点击它,然后选择 委托权限
    • 检查这些权限:
      • ☑ Financials.ReadWrite.All
      • ☑ user_impersonation
    • 点击 添加权限
    • 点击 授予[您的租户]管理员同意 (如果您有管理员权限)

    所需权限:

    • Dynamics 365商务中心
      • Financials.ReadWrite.All (委托)
      • user_impersonation (委托)

2.使用Business Central MCP服务器设置Claude桌面

  1. 下载并安装Claude Desktop

    • 从官方网站下载桌面版Claude
    • 安装并登录您的Claude帐户
  2. 配置Claude桌面版

    • 打开克劳德桌面
    • 导航到 设置 → 开发者
    • 点击 “编辑配置” 创建/编辑 claude_desktop_config.json
  3. 编辑配置文件

    将BC MCP服务器配置添加到您的 claude_desktop_config.json:

    对于Windows:

    {
      "mcpServers": {
        "BC_MCP": {
          "command": "C:\\Path\\To\\BcMCPProxy.exe",
          "args": [
            "--TenantId",
            "<Your-Tenant-ID>",
            "--ClientId", 
            "<Your-Client-ID>",
            "--Environment",
            "<BC-Environment-Name>",
            "--Company",
            "<Company-Name>",
            "--ConfigurationName",
            "<Configuration-Name>"
          ]
        }
      }
    }
    

    对于macOS:

    {
      "mcpServers": {
        "BC_MCP": {
          "command": "/usr/local/share/dotnet/dotnet",
          "args": [
            "/Users/<username>/path/to/BcMCPProxy.dll",
            "--TenantId",
            "<Your-Tenant-ID>",
            "--ClientId", 
            "<Your-Client-ID>",
            "--Environment",
            "<BC-Environment-Name>",
            "--Company",
            "<Company-Name>",
            "--ConfigurationName",
            "<Configuration-Name>"
          ]
        }
      }
    }
    

    参数详细信息:

    • <Your-Tenant-ID>:您的Azure租户ID(GUID格式)
    • <Your-Client-ID>:Azure应用注册中的应用程序(客户端)ID
    • <BC-Environment-Name>:您的Business Central环境的名称(例如。, Production, SandboxUS)
    • <Company-Name>:Business Central公司名称(区分大小写)
    • <Configuration-Name>:Business Central配置的名称(可选)
  4. 首次身份验证

    所有平台(Windows、macOS、Linux):

    • 重新启动克劳德桌面
    • 您的浏览器将自动打开设备登录页面(https://microsoft.com/devicelogin)
    • 设备代码会自动复制到剪贴板
    • 在浏览器中粘贴代码(Ctrl+V或Cmd+V)
    • 使用您的Microsoft帐户登录
    • 批准权限
    • 您的令牌将被安全缓存以备将来使用

    平台具体细节:

    • 视窗:通过剪贴板复制代码,浏览器自动打开
    • macOS:通过剪贴板复制代码,浏览器自动打开,显示通知
    • Linux:如果剪贴板/浏览器助手不可用,则手动输入代码

    身份验证使用 设备代码流 在所有平台上提供一致、可靠的体验。

  5. 验证设置

    成功验证后,您应该看到Claude中提供的BC MCP工具:

用法

配置后,您可以通过Claude Desktop中的自然语言与Business Central进行交互。MCP服务器将处理对Business Central环境的身份验证和API调用。

交互示例:

  • “显示最新的销售订单”
  • “创建新客户记录”
  • “目前的库存水平是多少?”

身份验证方法

代理使用 设备代码流 适用于所有平台(Windows、macOS和Linux)上的身份验证,提供一致可靠的身份验证体验:

  • 浏览器自动打开 https://microsoft.com/devicelogin
  • 设备代码会自动复制到剪贴板
  • 将代码粘贴到浏览器中,然后使用您的Microsoft帐户登录
  • 令牌被安全缓存以备将来使用

平台特定功能:

  • 视窗:剪贴板复制+浏览器自动打开
  • macOS:剪贴板复制+浏览器自动打开+通知
  • Linux:如果剪贴板/浏览器助手不可用,则手动输入代码

令牌使用特定于平台的安全存储(由SST管理)安全缓存:

  • 视窗:Windows凭据管理器(DPAPI)
  • macOS:macOS钥匙扣(~/Library/Caches/BcMCPProxy/)
  • Linux:特勤局API/钥匙圈

首次身份验证成功后,令牌会自动重复使用,直到过期。

配置参数

参数 说明 必填
TenantId Azure租户标识符 是
ClientId Azure应用程序注册客户端ID 是
Environment Business Central环境名称 是
Company Business Central公司名称 是
ConfigurationName Business Central配置的名称 否

故障排除

常见问题

  1. 身份验证失败

    • “允许公共客户端流”错误(AADST7000218):
      • 转到Azure门户→ 您的应用程序注册→ 认证→ 设置标签
      • 滚动到 高级设置 → 允许公共客户端流
      • 设置为 是 然后单击 保存
      • 等待5-10分钟,让Azure AD传播更改
    • 重定向URI不匹配:
      • 确保配置了本机客户端重定向URI: https://login.microsoftonline.com/common/oauth2/nativeclient
      • 所有平台上的设备代码流都需要此URI
    • API权限:
      • 确保授予所有必需的API权限
      • 检查是否已提供管理员同意(如果需要)
      • 验证权限是否适用于“Dynamics 365 Business Central”
  2. 设备代码流问题

    • 浏览器不会自动打开:
      • 手动导航到https://microsoft.com/devicelogin
      • 设备代码已复制到剪贴板-将其粘贴到浏览器中
      • 如果剪贴板复制失败,请检查Claude Desktop Developer日志中的设备代码
    • 设备代码不可见(macOS):
      • 检查macOS通知(右上角)以获取代码
      • 代码会自动复制到剪贴板
    • 令牌缓存问题:
      • Windows:令牌缓存在凭据管理器(DPAPI)中
      • macOS:令牌缓存在Keychain中 ~/Library/Caches/BcMCPProxy/
      • Linux:通过Secret Service API缓存的令牌
      • 要强制重新身份验证,请删除令牌缓存并重新启动Claude Desktop
  3. 连接问题

    • 验证Business Central环境名称是否正确
    • 确保公司名称完全匹配(区分大小写)
    • 检查与Business Central的网络连接
    • 确认环境支持MCP预览功能
  4. Claude Desktop未检测到MCP服务器

    • 视窗:验证路径 BcMCPProxy.exe 是正确的
    • macOS:
      • 验证.NET路径: /usr/local/share/dotnet/dotnet (使用 which dotnet 在终端)
      • 验证路径 BcMCPProxy.dll 正确(使用完整的绝对路径)
    • 检查是否提供了所有必需的参数
    • 配置更改后重新启动Claude Desktop
    • 检查Claude Desktop Developer日志中的错误
  5. Claude中的JSON解析错误

    • 如果您看到“意外令牌”错误,请检查服务器日志
    • 确保没有特殊字符破坏JSON-RPC通信
    • 重新启动Claude Desktop以清除任何缓存状态

安全注意事项

  • 此工具使用委托权限,需要用户身份验证
  • 凭据通过Azure的身份验证流程进行处理
  • 配置文件中没有存储密码或机密
  • 设置集成时,始终遵循组织的安全策略

支持

这是一个实验工具,按原样提供,用于开发和测试目的。有关Business Central的特定问题,请参阅Microsoft Dynamics 365 Business Central官方文档。

许可证

此项目受Microsoft示例代码许可条款的约束。