写点什么

MCP 客户端与服务端使用教程

作者:测试人
  • 2025-07-03
    北京
  • 本文字数:1222 字

    阅读完需:约 4 分钟

MCP 是一种标准化协议,用于连接大模型与外部工具(如数据库、API 等),通过客户端-服务器架构实现统一调用。以下是客户端与服务端的配置和使用详解:


一、服务端创建与部署

服务端负责提供工具能力(如 API 调用、数据查询等),需提前配置工具并生成访问端点。

1. 创建 MCP 服务

阿里云平台创建

  • 登录阿里云 OpenAPI Explorer → 创建 MCP 服务 → 填写名称(如 mcp-demo)、选择文档语言 → 添加云产品 API(单个服务不超过 30 个 API) → 生成 Streamable HTTP Endpoint 和 SSE Endpoint。

自建本地服务(Python 示例)

  • 使用 FastMCP 库创建工具(如网络搜索):

from mcp.server import FastMCPapp = FastMCP('web-search')@app.tool()async def web_search(query: str) -> str:    # 调用搜索API(示例为智谱AI)    return search_resultsif __name__ == "__main__":    app.run(transport='stdio')  # 通过标准输入输出运行
复制代码

2. 服务端类型

Stdio 模式

  • 本地进程间通信,无需网络(命令示例:npx -y exa-mcp-server)。

SSE 模式

  • 远程服务,通过 HTTP 传输(需配置 SSE Endpoint)。

二、客户端(MCP Client)配置

客户端是集成 MCP 服务的应用(如 IDE、聊天工具),需连接服务端端点。

1. 主流客户端配置

通义灵码(VS Code/JetBrains)

  • → 插件设置 → 添加 MCP 服务 → 类型选 STDIO → 命令填 npx mcp-remote ${SSE Endpoint} → 完成 OAuth 授权。

Cherry Studio

  • → 模型服务设置 → 添加 MCP 服务器 → URL 填入 Streamable HTTP Endpoint → 授权并启动服务。

Windsurf

  • → 设置 → 粘贴 MCP 服务的 JSON 配置(含命令和环境变量) → 保存后显示绿点即成功。

2. 通用配置参数


三、使用流程与调优

1. 调用示例

自然语言指令

  • 在客户端输入:查询成都地域的 ECS 实例列表,设置 x_mcp_region_id 为 cn-chengdu。

结果返回

  • 客户端显示 API 调用结果(如实例列表)或错误提示。

2. 常见调优技巧

参数传递问题

  • 若未正确传递地域参数(如 x_mcp_region_id),需在服务端修改 API 描述:

  • → 编辑 API 概述 → 补充“必须传递 RegionId 和 x_mcp_region_id”。

简化非必填参数

  • 删除 API 文档中冗余参数,减少 Token 消耗并提高准确性。

权限控制

  • 确保 RAM 用户有 API 调用权限,避免授予删除等高危权限。

四、进阶场景与生态

1. 工具扩展案例

本地文件操作

  • 配置 Filesystem MCP Server,支持读写桌面文件(命令:npx @modelcontextprotocol/server-filesystem)。

AI 搜索整合

  • 组合时间服务(uvx mcp-server-time)和 Exa 搜索(npx exa-mcp-server),实现时效性检索。

数据库管理

  • Neon MCP Server 连接 GitHub Copilot,直接生成 PostgreSQL 查询代码。

2. 开发框架支持

Java/Spring 生态

  • 使用 @Tool 注解暴露业务方法,通过 ToolCallbackProvider 注册服务。

容器化部署

  • Docker 封装 MCP Server 增强安全性(防止远程代码执行风险)。

五、常见问题

服务无法连接

  • 检查 Endpoint 是否正确、OAuth 是否授权、网络是否通畅。

API 调用失败

  • 确认 RAM 用户权限,或检查参数是否符合 API 文档要求。

性能限制

  • 单个 MCP Server 建议不超过 30 个 API,过多会降低模型选择准确性。

用户头像

测试人

关注

专注于软件测试开发 2022-08-29 加入

霍格沃兹测试开发学社,测试人社区:https://ceshiren.com/t/topic/22284

评论

发布
暂无评论
MCP客户端与服务端使用教程_软件测试_测试人_InfoQ写作社区