代理 365 CLI
在 Dataverse 环境中管理 MCP 服务器。 该 develop-mcp 命令提供了发布、取消发布和注册 MCP 服务器的选项,以供 Dataverse 环境中使用。
Note
develop-mcp approveAgent 365 CLI中的 , develop-mcp block, 和 develop-mcp package-mcp-server 命令被移除。 租户管理员现在在Microsoft管理中心执行服务器审批和阻断——待处理的请求会在请求代理页面进行审核。 CLI不再为管理中心提交生成MCP服务器包;管理员直接在管理中心接入和管理服务器。
所需的最低角色:因子命令而异
Syntax
a365 develop-mcp [command] [options]
选项
| Option | Description |
|---|---|
-v、--verbose |
启用详细日志记录 |
-?、-h、--help |
显示帮助和使用情况信息 |
develop-mcp evaluate
根据科学最佳实践评估你的MCP服务器,以评估生产准备度。 该工具输出一份包含评分、解释和行动项目的综合评估报告。 该命令发现MCP服务器暴露的工具,运行一套确定性和AI评分的语义检查,并生成一份HTML报告,评分模式质量并列出优先改进的行动项。
a365 develop-mcp evaluate --server-url <server-url> [--auth-token <auth-token>] [options]
evaluate 选项
| Option | Description |
|---|---|
-u、--server-url <server-url> |
Required. MCP服务器的可流式HTTP端点URL(通常以 /mcp结尾)。 |
--auth-token <auth-token> |
Optional. 只有当MCP服务器需要认证时才需要。 服务器的持有者令牌。 偏好环境 A365_MCP_AUTH_TOKEN 变量;命令行传递的令牌可用于处理列表和壳体历史。 |
-o、--output-dir <output-dir> |
目录中存放检查表和报告文件。 默认使用当前目录(.)。 |
--eval-engine <eval-engine> |
哪个本地编码代理负责语义检查评分:auto(默认;尝试GitHub Copilot,然后是Claude Code)、github-copilot、claude-code,或none(跳过AI评分,预先评分的检查表)。 |
-v、--verbose |
启用详细日志记录。 |
-?、-h、--help |
显示帮助和使用情况信息。 |
evaluate 示例
评估本地服务器的自动引擎选择:
a365 develop-mcp evaluate --server-url "http://localhost:5000/mcp"
评估一个认证服务器,令牌通过环境变量提供,工件写入子文件夹:
$env:A365_MCP_AUTH_TOKEN = "<bearer-token>"
a365 develop-mcp evaluate --server-url "https://my-mcp-server.contoso.com/mcp" --output-dir "./eval"
只生成清单,然后用你自己的大型语言模型评分:
a365 develop-mcp evaluate --server-url "https://my-mcp-server.contoso.com/mcp" --eval-engine none
强制使用特定的计分引擎:
a365 develop-mcp evaluate --server-url "http://localhost:5000/mcp" --eval-engine claude-code
evaluate 环境变量
使用以下环境变量提供认证功能,并可选择控制每个本地评分引擎使用的模型。
| Environment variable | Purpose |
|---|---|
A365_MCP_AUTH_TOKEN |
MCP服务器的持有令牌,未被传递时 --auth-token 使用。 比旗帜更受青睐,因为它能让代币不在流程中被挂牌和壳牌历史记录。 |
A365_EVAL_COPILOT_MODEL |
覆盖 GitHub Copilot 模型。 需要精确的模型编号,例如 claude-haiku-4.5。 |
A365_EVAL_CLAUDE_MODEL |
覆盖Claude代码模型。 接受模型别名(例如 haiku)或完整的模型ID。 |
develop-mcp list-environments
列出可用于 MCP 服务器管理的所有 Dataverse 环境。
a365 develop-mcp list-environments [options]
此命令显示可在其中管理 MCP 服务器的所有 Dataverse 环境。
list-environments 选项
| Option | Description |
|---|---|
--dry-run |
显示在不执行的情况下将执行的作 |
-v、--verbose |
启用详细日志记录 |
-?、-h、--help |
显示帮助和使用情况信息 |
develop-mcp list-servers
列出特定 Dataverse 环境中的 MCP 服务器。
a365 develop-mcp list-servers [options]
此命令显示当前部署在指定 Dataverse 环境中的所有 MCP 服务器。
list-servers 选项
| Option | Description |
|---|---|
-e、--environment-id <environment-id> |
Dataverse 环境 ID |
--dry-run |
显示在不执行的情况下将执行的作 |
-v、--verbose |
启用详细日志记录 |
-?、-h、--help |
显示帮助和使用情况信息 |
develop-mcp publish
将 MCP 服务器发布到 Dataverse 环境。
a365 develop-mcp publish [options]
使用此命令将 MCP 服务器发布到指定的 Dataverse 环境。
发布时,CLI会在租户中创建一个<server-name>-PublicClients Microsoft Entra应用注册。 该应用保存客户端主机(如 Visual Studio Code 和 智能 Microsoft 365 Copilot 副驾驶® CLI)用于调用已发布 MCP 服务器的 OAuth 权限。 由于该命令创建应用注册,运行CLI的账户必须拥有Application.ReadWrite.All Microsoft Graph权限。 没有它运行 publish 会失败。
Note
提供 --publisher-name 自定义(用户创建)MCP服务器。 该值写入已发布包的开发者元数据,且这些服务器是必需的。 对于第一方Microsoft拥有服务器(例如msdyn_DataverseMCPServer)则忽略了这一点,这些服务器总是以“Microsoft”发布。 当你省略时,CLI会交互式地提示; --yes 在CI或脚本化上下文中,无需提示即可通过发布。
publish 选项
| Option | Description |
|---|---|
-e、--environment-id <environment-id> |
Dataverse 环境 ID |
-s、--server-name <server-name> |
要发布的 MCP 服务器名称 |
-a、--alias <alias> |
MCP 服务器的别名 |
-d、--display-name <display-name> |
MCP 服务器的显示名称 |
-p、--publisher-name <publisher-name> |
Publisher 名称写入已发布的包元数据。 自定义(用户创建)MCP服务器必不可少;被第一方Microsoft自有服务器忽视。 省略时会互动提示。 |
-y、--yes |
跳过互动式的“继续发布吗? (y/N)" confirmation. 在人工干预或脚本化情境中使用。 |
--dry-run |
显示在不执行的情况下将执行的作 |
-v、--verbose |
启用详细日志记录 |
-?、-h、--help |
显示帮助和使用情况信息 |
develop-mcp unpublish
从 Dataverse 环境取消发布 MCP 服务器。
a365 develop-mcp unpublish [options]
使用此命令从指定的 Dataverse 环境中删除 MCP 服务器。
unpublish 选项
| Option | Description |
|---|---|
-e、--environment-id <environment-id> |
Dataverse 环境 ID |
-s、--server-name <server-name> |
用于取消发布的 MCP 服务器名称 |
--dry-run |
显示在不执行的情况下将执行的作 |
-?、-h、--help |
显示帮助和使用情况信息 |
develop-mcp register-external-mcp-server
用Entra、外部OAuth、API密钥或无认证注册外部MCP服务器。
a365 develop-mcp register-external-mcp-server [options]
使用该命令向租户注册一个外部托管的(第三方)MCP服务器。 该命令创建平台所需的 Microsoft Entra 应用注册,调用 Agent 365 平台添加 MCP 服务器,并为新应用注册配置重定向 URI 和 API 权限。
服务器名称必须以 ext_ 前缀开头,且长度最多为20个字符,例如 ext_MyServer。 工具名称必须与远程MCP服务器暴露的名称完全一致。 名称不匹配会导致工具调用在运行时失败。
你可以通过三种方式提供参数:
- 把它们当作命令行选项传递。
- 提供一个带有
--input-file的 JSON 文件。 命令行选项覆盖文件中的数值。 文件结构请参见register-external-mcp-server-sample.jsonCLI模板。 - 省略任何需要交互提示的值。
注册成功后,请租户管理员批准新的MCP服务器,确保代理可以使用。 如果你注册了 ExternalOAuth,也将显示的重定向 URI 添加到你的外部 IDP 应用中。
Important
如果注册失败,而 Microsoft Entra 应用注册创建后,应用不会自动回滚。 在重新尝试前,先在Azure门户手动删除它们。
register-external-mcp-server 选项
某些选项仅适用于特定认证类型,如描述栏所述。
| Option | Description |
|---|---|
-s、--server-name <server-name> |
MCP服务器名称。 例如,必须以 ext_ 最多20字符开头 ext_MyServer |
-u、--server-url <server-url> |
远程MCP服务器URL。 必须是有效的 HTTP 或 HTTPS URL |
-a、--auth-type <auth-type> |
认证类型: EntraOAuth, ExternalOAuth, APIKey, 或 NoAuth |
--publisher <publisher> |
Publisher 名称(用于包元数据) |
--description <description> |
服务器描述(用于包元数据) |
--tools <tools> |
例如,该服务器暴露的工具名称列表被逗号分隔 tool1,tool2,tool3 |
-f、--input-file <input-file> |
指向带有注册参数的JSON文件的路径 |
--remote-scopes <remote-scopes> |
例如 api://{appId-guid}/{scopeName},远程MCP服务器的示域。 与 EntraOAuth 配合使用 |
-t、--tenant-id <tenant-id> |
Entra租户ID用于应用注册。 默认归 az login 当前租户 |
--service-tree-id <service-tree-id> |
用于Entra应用注册的ServiceTree ID。 Microsoft企业租户中必备 |
-l、--secret-lifetime-months <months> |
在创建的Entra应用中生成的客户端秘密,生命周期以月为单位(1-24)。 默认为24个月(2年)。 如果你的租户保单要求更高上限更短,可以把租户的价值设定在低于上限的 appManagementPolicies 范围内 |
--idp-authorization-url <url> |
外部OAuth授权URL。
--auth-type
ExternalOAuth 时必需 |
--idp-token-url <url> |
外部OAuth令牌URL。
--auth-type
ExternalOAuth 时必需 |
--idp-scopes <scopes> |
外部OAuth示波器。
--auth-type
ExternalOAuth 时必需 |
--idp-client-id <client-id> |
外部OAuth客户端ID。
--auth-type
ExternalOAuth 时必需 |
--idp-client-secret <client-secret> |
外部OAuth客户端秘密。
--auth-type
ExternalOAuth 时必需 |
--api-key-location <location> |
API密钥位置: Header 或 Query。
--auth-type
APIKey 时必需 |
--api-key-name <name> |
API 键参数或头部名称,例如 X-API-Keytoken或 。
--auth-type
APIKey 时必需 |
--dry-run |
显示在不执行的情况下将执行的作 |
-v、--verbose |
启用详细日志记录 |
-?、-h、--help |
显示帮助和使用情况信息 |