](https://smithery.ai/server/@knowall-ai/mcp-business-central)
微软商务中心MCP服务器
用于Microsoft Dynamics 365 Business Central的模型上下文协议(MCP)服务器。通过正确格式化的API v2.0调用,为人工智能助手提供对Business Central数据的直接访问。
特性
- ✅ 更正API URL:使用得当
/companies(id)/resource格式(无ODataV4段) - ✅ 零安装:跑步
npx-无需预安装 - ✅ Azure CLI身份验证:利用现有的Azure CLI身份验证
- ✅ 客户端凭据验证:AI代理的服务到服务身份验证
- ✅ 清洁工具名称:没有前缀,只是
get_schema,list_items等等。 - ✅ 完整CRUD:创建、读取、更新和删除Business Central记录
安装
使用npx(推荐)
无需安装!在克劳德桌面或克劳德代码中配置:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "cmd",
"args": ["/c", "npx", "-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/{environment}/api/v2.0",
"BC_COMPANY": "Your Company Name",
"BC_AUTH_TYPE": "azure_cli"
}
}
}
}Windows注意事项:使用 cmd 和 /c 如上所示,以正确执行npx。
使用Smithery
通过安装 铁匠铺:
npx -y @smithery/cli install @knowall-ai/mcp-business-central --client claude本地开发
git clone https://github.com/knowall-ai/mcp-business-central.git
cd mcp-business-central
npm install
npm run build
node build/index.js配置
环境变量
| 变量 | 必填 | 描述 | 示例 |
|---|---|---|---|
BC_URL_SERVER | 是 | Business Central API基础URL | https://api.businesscentral.dynamics.com/v2.0/{tenant}/Production/api/v2.0 |
BC_COMPANY | 是 | 公司显示名称 | KnowAll Ltd |
BC_AUTH_TYPE | 否 | 身份验证类型(默认值: azure_cli) | azure_cli 或 client_credentials |
BC_TENANT_ID | 对于客户端凭据 | Azure AD租户ID | 00000000-0000-0000-0000-000000000000 |
BC_CLIENT_ID | 对于client_credentials | 应用程序注册客户端ID | 00000000-0000-0000-0000-000000000000 |
BC_CLIENT_SECRET | 对于client_credentials | 应用程序注册客户端密钥 | your-secret-value |
获取配置值
- 租户ID:在Azure门户中查找→ Azure Active Directory→ 概述
- 环境:通常
Production或Sandbox - 公司名称:Business Central中显示的显示名称
示例URL格式:
https://api.businesscentral.dynamics.com/v2.0/00000000-0000-0000-0000-000000000000/Production/api/v2.0认证
推荐:使用azure_cli身份验证-设置更简单,更可靠。这client_credentials该方法也受支持,但在Business Central的Microsoft Entra应用程序设置中存在已知的配置挑战。看 docs/TROUBLESHOOTING.adoc 了解详情。
选项1:Azure CLI(推荐)
最简单、最可靠的身份验证方法。使用您现有的Azure CLI登录名。
先决条件:
- 安装Azure命令行界面:https://docs.microsoft.com/cli/azure/install-azure-cli
- 登录:
az login - 验证访问权限:
az account get-access-token --resource https://api.businesscentral.dynamics.com
配置:
{
"mcpServers": {
"business-central": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@knowall-ai/mcp-business-central"],
"env": {
"BC_AUTH_TYPE": "azure_cli",
"BC_URL_SERVER": "https://api.businesscentral.dynamics.com/v2.0/{tenant-id}/Production/api/v2.0",
"BC_COMPANY": "My Company"
}
}
}
}选项2:客户端凭据(服务对服务)
适用于需要在没有用户交互的情况下运行的自动化系统。此方法使用OAuth 2.0客户端凭据流。
备注:此方法存在已知的配置挑战。Business Central的“Microsoft Entra应用程序”设置可能很复杂,应用程序用户创建可能无法按预期工作。看 docs/TROUBLESHOOTING.adoc 获取详细指导。
安装概述:
- 创建Azure应用程序注册:
- 转到Azure门户→ Azure Active Directory→ 应用注册 - 创建新注册(单租户) - 添加API权限:Dynamics 365 Business Central→ app_access (应用程序权限,未委托) - 授予管理员对权限的同意 - 添加重定向URI: https://businesscentral.dynamics.com/OAuthLanding.htm
- 生成客户端密码:
- 在您的应用程序注册中,转到证书和机密 - 创建新的客户端密钥并安全保存
- 配置商务中心:
- 在Business Central中,搜索“Microsoft Entra应用程序” - 点击 新 并输入应用程序的客户端ID - 设置描述(这将成为应用程序用户名) - 将状态设置为“已启用”-您应该看到“将创建名为'\[Description\]'的用户” - 添加权限集: D365 BUS FULL ACCESS (推荐)或 D365 READ - 将“公司”字段留空,以便所有公司访问 - 点击“授予同意”
- 验证设置:
- 应用程序用户应出现在Business Central的“用户”列表中 - 如果没有,请参阅 docs/TROUBLESHOOTING.adoc 解决方案
参考文献:
可用工具
1. get_schema
获取Business Central资源的OData元数据。
参数:
resource(string,必填):资源名称(例如。,customers,contacts,salesOpportunities)
例子:
{
"resource": "customers"
}2. list_items
列出具有可选过滤和分页功能的项目。
参数:
resource(字符串,必填):资源名称filter(字符串,可选):OData筛选器表达式top(数字,可选):要返回的最大项目数skip(number,可选):分页时要跳过的项目数
例子:
{
"resource": "customers",
"filter": "displayName eq 'Contoso'",
"top": 10
}3. get_items_by_field
获取与特定字段值匹配的项目。
参数:
resource(字符串,必填):资源名称field(字符串,必填):要筛选的字段名value(字符串,必填):要匹配的值
例子:
{
"resource": "contacts",
"field": "companyName",
"value": "Contoso Ltd"
}4. create_item
在Business Central中创建新项目。
参数:
resource(字符串,必填):资源名称item_data(对象,必填):要创建的项目数据
例子:
{
"resource": "contacts",
"item_data": {
"displayName": "John Doe",
"companyName": "Contoso Ltd",
"email": "john.doe@contoso.com"
}
}5. update_item
更新现有项目。
参数:
resource(字符串,必填):资源名称item_id(字符串,必填):项目ID(GUID)item_data(对象,必填):要更新的字段
例子:
{
"resource": "customers",
"item_id": "1366066e-7688-f011-b9d1-6045bde9b95f",
"item_data": {
"displayName": "Updated Name"
}
}6. delete_item
从Business Central删除项目。
参数:
resource(字符串,必填):资源名称item_id(字符串,必填):项目ID(GUID)
例子:
{
"resource": "contacts",
"item_id": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6"
}公共资源
companies-公司信息customers-客户记录contacts-联系人记录salesOpportunities-销售机会salesQuotes-销售报价salesOrders-销售订单salesInvoices-销售发票items-产品/服务项目vendors-供应商记录
故障排除
看 docs/TROUBLESHOOTING.adoc 有关详细的故障排除指南,包括:
- 身份验证问题(401错误、令牌问题)
client_credentials设置挑战和已知问题- 公司未发现错误
- 环境特定配置(生产与沙盒)
发展
# Install dependencies
npm install
# Build TypeScript
npm run build
# Watch mode for development
npm run dev许可证
麻省理工学院
贡献
问题和拉取请求欢迎访问https://github.com/knowall-ai/mcp-business-central
相关项目
- MCP规范: 模型上下文协议.io
