项目简介

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优先: 全面的类型安全和自动类型推断,提升开发效率和代码质量。
  • 热重载: 开发模式下支持代码热重载,快速迭代。

安装步骤

  1. 创建新项目: 使用 'create-mcp-use-app' 命令行工具快速初始化一个MCP项目。
    npx create-mcp-use-app my-mcp-app
  2. 进入项目目录:
    cd my-mcp-app
  3. 启动开发服务器: 这将启动您的MCP服务器,并自动打开浏览器中的Inspector调试器。
    npm run dev
    您的MCP服务器将在 'http://localhost:3000' 运行,Inspector调试器自动打开在浏览器中。

服务器配置

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与计算