前言MCPModel Context Protocol是一种开放的模型上下文协议它规范了应用程序向大语言模型LLM提供上下文的方式。在鸿蒙智能体平台中MCP插件允许开发者通过标准化接口将智能体Agent与各种外部工具、数据源相连接让大模型能够按需自动执行计算、操作外部系统甚至与真实世界交互。本文是「鸿蒙智能体开发实战」系列的第四十四篇系统讲解MCP插件的开发流程、注册方式、合规要求和发布渠道帮助开发者快速构建和发布自己的MCP插件。前置条件建议先了解MCP协议基础概念参考MCP官方文档。已阅读本系列第6篇《插件开发与使用》。一、MCP协议与鸿蒙智能体1.1 什么是MCPMCPModel Context Protocol由Anthropic提出并开源是一种旨在替代传统API集成模式的开放协议标准。它定义了一套统一的接口规范让LLM应用能够以标准化的方式连接外部工具和数据源。MCP的核心价值标准化集成一套接口对接所有工具无需为每个API单独适配动态发现LLM可以动态发现可用的工具和资源安全可信提供数据安全的最佳实践和访问控制机制灵活切换能够在不同LLM提供商和供应商之间灵活切换1.2 鸿蒙智能体中的MCP定位在小艺开放平台中MCP插件与云插件、端插件并列为三大插件类型各自定位如下插件类型能力提供方适用场景示例云插件云端API服务在线数据查询、第三方服务天气查询、新闻检索端插件HarmonyOS设备侧应用设备端应用操控发短信、打开应用MCP插件MCP Server自部署自建工具链、私有数据内部API、数据库查询提示MCP插件最大的优势在于开发者自部署、自管控。你可以将已经搭建的MCP Server直接注册到小艺开放平台无需重新开发适配接口。二、MCP插件的注册方式MCP插件的创建入口位于小艺开放平台的「资源库」-「MCP」页面支持两种注册方式2.1 标准注册 - 手动配置标准注册需要手动填写MCP Server的连接信息和认证方式// MCP插件标准注册配置{mcp_server:{name:my-custom-tools,description:自定义工具集合提供数据分析与报告生成能力,server_url:https://api.example.com/mcp,transport:streamable-http,auth:{type:api-key,header_name:X-API-Key,api_key:${api_key_variable}}},tools:[{name:analyze-data,description:分析数据集并返回统计结果,input_schema:{type:object,properties:{data_source:{type:string,description:数据源名称或URL},analysis_type:{type:string,enum:[summary,trend,correlation],description:分析类型}},required:[data_source]}}]}注意如果插件图标上传后未显示工具列表请等待几分钟后重新进入后台加载存在延时。如仍无法显示请检查服务连接和鉴权信息配置。2.2 外部平台导入如果开发者在魔搭平台ModelScope已有自部署的长期有效MCP插件可以通过此方式批量导入# 魔搭平台MCP插件导入流程# 1. 在魔搭平台获取访问令牌Access Token# 2. 在小艺开放平台选择「外部平台导入」# 3. 输入访问令牌触发同步# 4. 选择要导入的MCP插件列表# 5. 确认创建# MCP Server端示例Python FastMCPfromfastmcpimportFastMCP# 创建MCP ServermcpFastMCP(data-analysis-server)mcp.tool()defanalyze_sales_trend(region:str,period:str)-dict:分析指定区域和时段的销售趋势# 实际的销售数据分析逻辑return{region:region,period:period,total_revenue:1250000,growth_rate:0.15,top_category:电子产品,trend:上升}mcp.tool()defgenerate_report(template:str,data:dict)-str:根据模板和数据生成报告report_contentf#{template}报告\n\nforkey,valueindata.items():report_contentf-{key}:{value}\nreturnreport_content注册方式适用条件公开范围审核要求标准注册任何MCP Server可发布到插件市场需完整合规材料外部平台导入魔搭平台自部署的长期有效插件仅智能体渠道调试无需审核重要外部平台导入方式创建的MCP插件仅支持发布到智能体渠道供本账号调试无法发布到插件市场和主对话渠道公开使用。三、MCP插件信息配置3.1 插件市场信息如果需要发布到插件市场需要补充以下信息{marketplace_info:{usage_description:使用Markdown格式描述插件功能概述包含API Key申请方式。\n\n## 快速开始\n1. 申请API Key访问 https://api.example.com/keys\n2. 在小艺开放平台完成开发者自认证\n3. 在智能体中添加本插件即可使用,auth_type:developer-self-auth,auth_guide_url:https://api.example.com/auth-guide,icon_url:https://example.com/plugin-icon.png}}开发者自认证与华为统一认证的对比认证方式说明适用场景开发者自认证使用者自行申请认证Key插件面向广泛开发者每个使用者需独立Key华为统一认证华为统一申请并配置插件面向特定合作伙伴统一管理认证3.2 人工智能生成合成服务填写根据国家法律法规要求MCP插件公开上架前需填写人工智能生成合成服务信息{ai_generated_content:{has_ai_content:true,content_types:[text,code],labeling_method:digital-watermark,label_position:左上角,label_display_mode:始终显示}}法律依据《生成式人工智能服务管理暂行办法》、《人工智能生成合成内容标识办法》3.3 个人信息收集声明插件公开上架前需声明个人信息收集情况该信息会在插件市场的插件详情页「隐私声明」中展示{privacy_declaration:{collect_personal_info:true,data_items:[{field:user_ip,purpose:请求来源验证,storage:in-memory},{field:query_content,purpose:服务响应,storage:no-storage}],storage_statement:不存储用户个人信息处理完成后立即清除,privacy_policy_url:https://example.com/privacy}}3.4 大模型备案信息如果MCP插件中使用了非小艺开放平台提供的三方大模型需要在此处申报备案# 查询备案信息# 生成式AI服务备案查询# https://www.cac.gov.cn/2024-04/02/c_1713729983803145.htm# 算法备案查询# https://beian.cac.gov.cn/#/index# 示例在插件中配置备案信息{model_filing:{service_filing_number:生成式2024XXXXX,algorithm_filing_number:算法备2024XXXXX}}四、发布渠道与审核4.1 三种发布渠道上图展示了MCP插件的三种发布渠道智能体、小艺对话和插件市场不同渠道的审核标准和公开范围不同。MCP插件支持发布到以下三个渠道渠道审核要求可见范围智能体无需人工审核即发即上架仅开发者账号内使用小艺对话需华为侧人工审核小艺对话场景公开使用插件市场需华为侧人工审核所有开发者发现和使用4.2 发布流程# MCP插件发布流程# 1. 完成插件信息配置和合规材料填写# 2. 点击「发布」-「提交审核」# 3. 勾选待发布渠道可多选# 4. 确认后提交# 小艺对话和插件市场发布后需联系华为侧人员进行审核# 审核周期一般为3-5个工作日4.3 开发者自认证对于发布到插件市场的MCP插件其他开发者使用时需要进行开发者自认证# 使用插件市场MCP插件的认证流程# 1. 在插件详情页找到「开发者自认证」信息# 2. 点击认证链接进入认证页面# 3. 在页面中填写从MCP Server获取的API Key# 4. 完成认证后即可在智能体中使用提示认证信息配置完成后该MCP插件会自动导入到开发者账号的MCP插件列表中状态为「已认证」。五、MCP插件实战示例5.1 构建完整的MCP Server以下是一个完整的MCP Server示例使用Python FastMCP框架构建# server.py - 完整的MCP Server实现fromfastmcpimportFastMCPfromtypingimportOptionalimportjson# 初始化MCP ServermcpFastMCP(enterprise-tools,description企业级工具集包含文档查询、代码评审、项目管理等功能)mcp.tool()defsearch_documents(query:str,category:Optional[str]None)-list:搜索内部文档库根据关键词返回匹配的文档列表# 模拟文档搜索all_docs[{id:1,title:API设计规范,category:技术规范},{id:2,title:数据库备份方案,category:运维},{id:3,title:测试流程指南,category:QA}]results[]fordocinall_docs:ifquery.lower()indoc[title].lower():ifcategoryanddoc[category]!category:continueresults.append(doc)returnresultsmcp.tool()defanalyze_code_quality(code_snippet:str,language:str)-dict:分析代码片段的质量返回问题和改进建议analysis{language:language,lines:len(code_snippet.split(\n)),issues:[],score:0}# 简单的代码质量检查linescode_snippet.split(\n)fori,lineinenumerate(lines):strippedline.strip()iflen(stripped)100:analysis[issues].append({line:i1,type:line_too_long,message:f第{i1}行超过100字符建议拆分})# 计算得分total_issueslen(analysis[issues])analysis[score]max(0,100-total_issues*10)returnanalysismcp.tool()defcreate_project_task(project:str,title:str,assignee:str,priority:strmedium)-dict:在项目管理系统中创建新任务importuuid task{task_id:str(uuid.uuid4())[:8],project:project,title:title,assignee:assignee,priority:priority,status:todo,created_at:2026-05-14T08:00:00Z}returntaskif__name____main__:# 启动MCP Servermcp.run(transportstreamable-http)5.2 测试MCP Server在将插件注册到平台前可以先在本地测试MCP Server是否正常工作# 启动MCP Serverpython server.py# 使用MCP Inspector工具测试npx modelcontextprotocol/inspector# 或者在代码中测试工具调用curl-XPOST https://api.example.com/mcp\-HContent-Type: application/json\-HX-API-Key: your-api-key\-d{ jsonrpc: 2.0, method: tools/call, params: { name: search_documents, arguments: { query: API设计 } }, id: 1 }// MCP工具调用响应示例{jsonrpc:2.0,id:1,result:{content:[{type:text,text:[{\id\: 1, \title\: \API设计规范\, \category\: \技术规范\}]}],isError:false}}六、常见问题与解决方案6.1 工具列表未加载问题标准注册完成后工具列表未显示。排查步骤检查MCP Server的URL是否可公开访问验证鉴权信息是否正确配置检查MCP Server实现是否符合协议规范等待几分钟后重新进入页面6.2 外部平台导入失败问题外部平台导入方式同步后未创建插件。原因解决方案访问令牌无效重新在魔搭平台生成访问令牌MCP插件非长期有效在魔搭平台更新插件的有效性设置插件已存在检查已创建的插件列表下架并删除重复插件后重新同步6.3 上架限制注意受隐私风险影响当前暂不支持上架包含私有云插件及私有MCP插件的个人智能体。仅支持页面调试能力。企业开发者不受此限制。七、MCP插件在智能体中的集成7.1 在工作流中使用MCP插件MCP插件可以像其他插件一样作为插件节点添加到工作流中# 代码节点引用MCP插件输出defprocess_mcp_result(mcp_output:dict)-str:处理MCP插件的返回结果content_listmcp_output.get(content,[])texts[]forcontentincontent_list:ifcontent.get(type)text:texts.append(content.get(text,))return\n.join(texts)7.2 在大模型节点中使用MCP插件也可以作为大模型节点的技能进行配置大模型会自动决定何时调用插件{llm_node:{skills:[{type:mcp_plugin,plugin_id:enterprise-tools,tool_ids:[search_documents,analyze_code_quality]}],system_prompt:你是一个企业助手。当用户需要查询文档时使用search_documents工具当用户需要代码评审时使用analyze_code_quality工具。}}总结本文详细介绍了鸿蒙智能体平台中MCP插件的完整开发流程从协议理解、注册配置、合规填写到发布上架。MCP协议作为LLM工具集成的开放标准正在成为AI应用生态的关键基础设施。掌握MCP插件开发意味着可以零适配成本地将已有的工具链和能力接入智能体生态。关键要点MCP插件支持标准注册和外部平台导入两种注册方式发布到插件市场需要完成AI内容合规、隐私声明、备案信息等合规工作三种发布渠道对应不同的审核标准和公开范围MCP插件可集成到工作流节点和大模型节点技能中使用如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源MCP协议官方文档链接MCP插件创建指南链接MCP标准注册文档链接MCP外部平台导入文档链接MCP插件发布说明链接插件认证指南链接FastMCP Python框架链接鸿蒙智能体开发实战系列链接生成式AI服务备案查询链接互联网信息服务算法备案系统链接