项目简介
MCP-Use是Model Context Protocol (MCP) 的完整TypeScript框架,旨在帮助开发者高效构建和使用基于MCP协议的应用程序。它不仅支持创建能够利用工具的AI智能体,还提供了强大的功能来构建带有丰富用户界面(UI Widgets)的MCP服务器,并通过内置的Inspector工具实现便捷调试。无论您是开发AI应用还是需要提供标准化上下文服务的后端,MCP-Use都能提供一套完整的解决方案。
主要功能点
- MCP服务器构建: 提供 'createMCPServer' 函数,轻松定义和启动符合MCP协议的后端服务。
- 工具 (Tools) 注册与执行: 支持注册带有Zod验证模式的工具,允许LLM客户端调用外部功能,执行复杂任务。
- 资源 (Resources) 托管与管理: 允许定义和托管静态或动态资源(如数据、文件、UI组件),供LLM或客户端访问。
- Prompt 模板 (Prompts) 定义: 支持创建可参数化的Prompt模板,以标准化和定制LLM的交互模式。
- 多种传输协议支持: 服务器通过HTTP/SSE和WebSocket等多种协议与客户端通信。
- UI 组件 (Widgets) 集成: 能够将React组件作为UI组件托管在服务器上,并通过MCP协议与LLM交互,实现更丰富的用户体验。
- 内置Inspector调试器: 自动在 '/inspector' 路径下挂载一个Web界面调试器,类似于Swagger UI,方便实时测试工具、查看服务器状态和OAuth流程。
- TypeScript优先: 全面的类型安全和自动类型推断,提升开发效率和代码质量。
- 热重载: 开发模式下支持代码热重载,快速迭代。
安装步骤
- 创建新项目: 使用 'create-mcp-use-app' 命令行工具快速初始化一个MCP项目。
npx create-mcp-use-app my-mcp-app - 进入项目目录:
cd my-mcp-app - 启动开发服务器: 这将启动您的MCP服务器,并自动打开浏览器中的Inspector调试器。
您的MCP服务器将在 'http://localhost:3000' 运行,Inspector调试器自动打开在浏览器中。npm run dev
服务器配置
MCP服务器的配置信息通常以JSON格式提供给MCP客户端。以下是示例MCP服务器 'weather-server' 的配置方式,请注意MCP客户端不需要您提供代码,而是配置其自身的启动命令:
- 服务器名称: 'weather-server'
- 版本: '1.0.0'
- 描述: 'Weather information MCP server'
- 工具: 'get_weather' (获取城市天气)
- 资源: 'weather_map' (交互式天气地图)
- MCP访问端点: 'http://localhost:3000/mcp'
- Inspector调试器端点: 'http://localhost:3000/inspector'
MCP客户端配置示例 (非代码,仅为说明客户端如何配置此MCP服务器):
{ "mcpServers": { "weather": { "url": "http://localhost:3000/mcp", "description": "提供天气查询和天气地图的MCP服务器" } } }
- 'weather': 这是MCP客户端为这个MCP服务器定义的别名。
- 'url': 这是MCP服务器对外提供服务的HTTP/SSE端点。
- 'description': 服务器的描述,帮助LLM客户端理解其功能。
基本使用方法
一旦MCP服务器运行起来,MCP客户端(例如使用 'mcp-use' 库构建的AI智能体)就可以通过配置的URL与服务器进行通信,调用其提供的工具和访问资源。
AI智能体使用示例 (在客户端代码中):
import { MCPClient, MCPAgent } from 'mcp-use'; import { ChatOpenAI } from '@langchain/openai'; // 1. 创建MCP客户端并配置MCP服务器信息 const client = MCPClient.fromDict({ mcpServers: { weather: { // 这里使用的别名与上面JSON配置中的"weather"对应 url: 'http://localhost:3000/mcp' // 您的MCP服务器运行的URL } } }); // 2. 创建一个基于LLM的AI智能体 const agent = new MCPAgent({ llm: new ChatOpenAI({ model: 'gpt-4' }), // 配置LLM模型 client, // 传入MCP客户端实例 maxSteps: 10 }); // 3. 运行智能体,它将自动发现并使用MCP服务器提供的工具和资源 const result = await agent.run( '帮我查询巴黎现在的天气,并告诉我是否有天气地图资源可用。' ); console.log(result);
通过上述配置和调用,AI智能体能够理解用户请求,通过MCP服务器调用 'get_weather' 工具获取天气信息,并检查 'weather_map' 资源是否可用。
信息
分类
AI与计算