代理 365 CLI develop-mcp 命令参考

在 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-copilotclaude-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.json CLI模板。
  • 省略任何需要交互提示的值。

注册成功后,请租户管理员批准新的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> 认证类型: EntraOAuthExternalOAuthAPIKey, 或 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密钥位置: HeaderQuery--auth-type APIKey 时必需
--api-key-name <name> API 键参数或头部名称,例如 X-API-Keytoken或 。 --auth-type APIKey 时必需
--dry-run 显示在不执行的情况下将执行的作
-v--verbose 启用详细日志记录
-?-h--help 显示帮助和使用情况信息