分享和总结如何通过AI快速开发一款MCP(模型上下文协议)服务插件,并进行本地和线上部署测试,最后上架MCP以及智能体调用MCP插件

MCP(模型上下文协议)简介

MCP(Model Context Protocol)是由Anthropic主导的开放标准协议,旨在为大型语言模型(LLM)提供统一、安全的方式访问外部工具、数据源和上下文信息。它允许开发者将第三方服务封装成MCP服务器(插件),便于AI智能体调用外部能力,如网络搜索、数据查询等。通过AI工具(如代码生成模型)可以加速开发过程。下面总结如何使用AI快速开发一款MCP服务插件(以网络搜索插件为例),并覆盖本地/线上部署测试、上架及智能体调用。全过程可借助AI(如Claude或Gemini)生成代码框架,减少手动编写。

步骤1: 使用AI快速开发MCP服务插件

利用AI模型(如Claude、DeepSeek或Gemini)生成代码框架,加速开发。核心使用Python的MCP库。

  • 准备环境:安装Python 3.11+,使用uv工具管理项目。
  • AI提示示例:”生成一个Python MCP服务器项目初始化脚本,使用uv init,并安装mcp[cli]和httpx依赖。”
  • 执行: uv init mcp_web_search cd mcp_web_search uv venv source .venv/bin/activate # 或Windows对应命令 uv add "mcp[cli]" httpx
  • 开发MCP服务器:创建web_search.py文件。使用FastMCP类定义工具。
  • AI提示:”基于MCP协议,生成一个网络搜索工具的Python代码,使用httpx调用外部API,返回搜索结果总结。”
  • 示例代码: import httpx from mcp.server import FastMCP app = FastMCP('web-search') # 初始化服务器,名称为'web-search' @app.tool() async def web_search(query: str) -> str: """搜索互联网内容。 Args: query: 要搜索的内容。 Returns: 搜索结果的总结。 """ async with httpx.AsyncClient() as client: response = await client.get(f"https://example-search-api.com?q={query}") # 替换为实际API,如Google Custom Search或开源API return response.text # 处理并返回结果 if __name__ == "__main__": app.run(transport='stdio') # 本地stdio模式运行
  • AI可自动生成工具描述、参数schema,确保兼容MCP协议。

步骤2: 本地部署测试

在本地运行并测试插件,确保功能正常。

  • 运行服务器
  uv run web_search.py
  • 测试工具
  • 使用MCP Inspector(Node.js工具)调试:npx @modelcontextprotocol/inspector uv run web_search.py。浏览器访问localhost,连接服务器,列出工具并执行测试(如输入查询”AI发展历史”,查看返回)。
  • 或者用mcp dev web_search.py命令行测试。
  • 集成本地AI测试:使用OpenAI兼容库模拟智能体调用。
  • AI提示:”生成Python客户端代码,连接本地MCP服务器并调用web_search工具。”
  • 示例客户端代码(mcp_client.py): import asyncio from mcp.client.stdio import stdio_client from mcp import ClientSession, StdioServerParameters async def main(): server_params = StdioServerParameters(command='uv', args=['run', 'web_search.py']) async with stdio_client(server_params) as (stdio, write): async with ClientSession(stdio, write) as session: await session.initialize() result = await session.call_tool('web_search', {'query': '测试查询'}) print(result.content[0].text) asyncio.run(main())
  • 测试通过后,确认无错误。

步骤3: 线上部署测试

将MCP服务器部署到云平台,支持远程访问。使用Serverless避免运维负担。

  • 修改为SSE模式(支持远程)
  • 更新代码:app = FastMCP('web-search', port=9000)app.run(transport='sse')
  • 部署到云平台(示例:阿里云函数计算FC或Google Cloud Run):
  • 阿里云FC
    1. 创建Web函数,选择Python运行时。
    2. 上传代码,设置启动命令uv run web_search.py,端口9000。
    3. 添加MCP层(搜索”mcp”公共层)。
    4. 部署后获取URL,如https://your-fc-url/sse
    5. 测试:用客户端代码替换stdio_clientsse_client('https://your-fc-url/sse'),远程调用工具。
  • Google Cloud Run
    1. 创建项目,启用API。
    2. 准备Dockerfile:
      FROM python:3.11-slim COPY . /app WORKDIR /app RUN pip install uv && uv venv && uv add "mcp[cli]" httpx CMD ["uv", "run", "web_search.py"]
    3. 构建并部署:gcloud run deploy mcp-web-search --source . --port=9000
    4. 测试:获取服务URL,远程调用。
  • 测试线上:使用Inspector或客户端代码连接URL,执行工具调用,验证响应时间和稳定性。

步骤4: 上架到MCP市场

将插件上架到MCP市场,便于他人发现和使用。目前无单一官方市场,但多个平台支持(如Higress、阿里云百炼、腾讯云)。

  • 准备:确保代码开源(GitHub仓库),包含config.json(描述工具、依赖)。
  • 上架流程(示例:Higress MCP市场或阿里云百炼):
  1. 提交到社区:将代码推到GitHub,通过Higress社区Review(提交PR或模板)。
  2. 填写信息:MCP名称、仓库URL、环境变量、联系方式。
  3. 测试模板:提供测试账号或环境,确保兼容。
  4. 上架:社区审核后,一键上架。用户可通过Web界面获取接入点。
  • 阿里云百炼:封装为MCP服务,发布到npm或直接提交平台市场。
  • 腾讯云:使用控制台提交模板,勾选”提交云开发MCP Server模板”,等待审核。
  • 注意:上架后,提供SLA保障(如99.99%可用性),支持企业级推广。

步骤5: 智能体调用MCP插件

上架后,智能体(如阿里云百炼智能体、Claude、Gemini)可直接调用。

  • 集成到智能体
  • 阿里云百炼:在智能体应用配置中添加自定义MCP(URL或ID),发布应用。智能体接收任务时自动调用(如天气查询调用你的搜索插件)。
  • Claude/Cursor:编辑config.json添加服务器:
    json {"mcpServers": {"web-search": {"url": "https://your-deployed-url/sse"}}}
    重启客户端,AI提示中指定调用工具。
  • Gemini CLI:安装Gemini CLI,配置MCP服务器URL,运行命令如gemini --mcp-server=https://your-url/sse "使用web_search查询AI新闻"
  • 调用示例:在系统提示中强制调用工具:”You must call web_search tool before answering.” 智能体会规划任务、调用插件、整合响应。
  • 高级:添加Sampling功能(人工确认),如在工具中用app.get_context().session.create_message请求用户输入。

通过AI辅助,整个开发可在数小时内完成。建议从GitHub示例起步,逐步迭代。

文章已创建 3707

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部