该技能面向使用 mcp-use SDK 编写或审计 TypeScript MCP 客户端代码的场景。MCP 客户端是连接 MCP 服务器的一侧,负责列出并调用工具、读取资源、管理会话和处理认证,不由 LLM 决定调用什么。
用途
当出现以下情况时使用该技能:代码从 "mcp-use"、"mcp-use/browser" 或 "mcp-use/react" 导入;代码构造 new MCPClient(...)、调用 createSession()/createAllSessions() 或使用 client.close()/closeAllSessions();React 应用使用 useMcp、McpClientProvider、useMcpClient 或 useMcpServer;项目运行 npx mcp-use client 或包含 mcp.json、mcp.config.json、.vscode/mcp.json 配置文件;工作涉及连接现有 MCP 服务器、确定性列出/调用工具与资源、或在客户端侧接入 auth/sampling/elicitation 回调;涉及通过客户端使用 executeCode()/search_tools() 的 code mode;修复客户端问题如 404 会话恢复、空闲代理超时、重连失败、OAuth 重复认证或 React StrictMode 重复会话。
不适用情况
如果由 LLM 通过 MCPAgent 选择并编排工具,应改用 build-mcp-use-agent;如果从 "mcp-use/server" 导入或定义 server.tool/server.resource/server.prompt,应改用 build-mcp-use-server;如果直接从未封装的 @modelcontextprotocol/sdk 导入,应改用 build-mcp-server-sdk-v1 或 build-mcp-server-sdk-v2;如果目标只是用 mcpc 对已运行服务器做无头 CLI 验证,应改用 test-by-mcpc-cli。
关键规则
仅从 mcp-use、mcp-use/browser 或 mcp-use/react 导入;使用前必须 await createSession()/createAllSessions();普通客户端用 closeAllSessions() 清理,code mode 用 client.close();在硬编码名称前先发现工具/资源/提示词;有意处理 CallToolResult.isError、content、structuredContent 和 _meta;为长耗时工具设置 timeout、maxTotalTimeout 和 AbortSignal;令牌应放在服务端或 OAuth 流程中,浏览器头只携带公开值;使用 mcp.state(不是 status)和 storageProvider(不是 persistenceProvider);调用前检查可选能力;报告实际运行的验证,不能仅凭 tsc 推断运行时覆盖。
工作流程
- 检测现有代码:查看目标路径是否存在客户端信号,确认依赖与导入,运行版本预检脚本。 2A. 若已存在客户端则先审计再修复:运行诊断脚本,按表面映射审计后做针对性修复,不要从零重建。 2B. 若不存在客户端则构建最小可用集成:先选定服务器目标(仓库内现有服务器、用于冒烟测试的 @modelcontextprotocol/server-everything,或先构建服务器),上下文缺失时只问无法回答的问题(环境、服务器数量、传输方式、认证、React 形态、回调、code mode、生产加固)。
- 按顺序构建或修复:对齐当前 npm 元数据、使用正确导入路径、配置真实服务器 ID 并先发现能力、安全添加认证、添加超时中止清理与重连、用类型/检查/测试及真实连接冒烟测试验证。
决策规则
运行时与版本以 npm view mcp-use version engines peerDependencies --json 为准,复制示例前运行版本检查脚本。React 方面多服务器应用使用一个 McpClientProvider,动态 addServer() 在 StrictMode 下保持幂等并用 removeServer() 清理,对 discovering、authenticating、pending_auth、ready、failed 每个状态都做处理。Code mode 中 VM 执行器仅用于可信本地代码,不可信或多租户代码使用 E2B 或自定义隔离,并且必须调用 client.close()。流式传输优先使用 Streamable HTTP,不为 MCP 构建 WebSocket 客户端。
验证与输出
验证使用最小且真实的命令集,如 npm run typecheck、npm run lint、npm test、npx tsx src/client.ts 及 npx mcp-use client connect 冒烟测试;React 需覆盖每个渲染状态;认证问题需测试 401/403、过期刷新令牌、弹窗拦截、重定向回调失败与 pending_auth 循环。完成任务后需报告目标路径与环境、发现或配置的服务器、使用的关键 API、实际运行的验证命令、是否执行了运行时行为、查阅的参考资料,以及认证/密钥注意事项(不得打印密钥值)。
限制
资料未提供具体价格、平台支持矩阵的完整细节、性能数据或所有边界情况,部分内容需查阅技能内引用的参考文件。