AI在线 AI在线

React + AI = ?

AI 的飞速发展正在重塑前端开发的边界。 除了生成 UI、编写代码,AI 现在具备了更强的“执行能力”——而 MCP,正是实现这一能力的关键技术。 2024 年 11 月,Anthropic 提出了 MCP(Model Context Protocol),一个开放协议,旨在为 AI 模型提供标准化的接口,用于调用外部工具与数据源,从而生成更准确、更具上下文理解的响应。

AI 的飞速发展正在重塑前端开发的边界。除了生成 UI、编写代码,AI 现在具备了更强的“执行能力”——而 MCP,正是实现这一能力的关键技术。

2024 年 11 月,Anthropic 提出了 MCP(Model Context Protocol),一个开放协议,旨在为 AI 模型提供标准化的接口,用于调用外部工具与数据源,从而生成更准确、更具上下文理解的响应。

如果说大模型是大脑,那么 MCP 就是它的“手脚”。它为 AI 模型提供与世界交互的通道。

近期,Cloudflare 推出了 useMcp 库,将 MCP 与 React 无缝连接,只需三行代码即可完成接入。这意味着,前端开发者现在可以像调用本地函数一样,远程触发 AI 能力与后端服务。

什么是 MCP?

MMCP(Model Context Protocol) 是一种为 AI 模型设计的标准化协议,目标是简化与外部服务集成的复杂性。它就像 AI 的“USB-C 接口”,统一了模型调用外部工具的方式。

一句话总结:MCP 让 AI 能“点击按钮”一样地调用真实世界的服务与工具。

想象你在用一个 AI 聊天机器人,它不仅能回答问题,还能查数据库、发邮件、搜索网页、下单订票。AI 如何完成这些动作?这正是 MCP 的作用 —— 它把各种后端服务抽象成“工具”,AI 则通过一套统一协议来调用这些工具,完成任务。

什么是 useMcp?

useMcp 是 Cloudflare 开源的 React Hooks 库,用于将任意 React 应用连接到远程 MCP Server。它封装了底层协议细节,包括连接管理、OAuth 认证、工具发现、工具调用等。

Github:https://github.com/modelcontextprotocol/use-mcp

它的优势包括:

  • 简洁:三行代码即可完成接入;
  • 自动化连接管理:支持自动重连、重试;
  • OAuth 支持:兼容生产环境的身份验证流程;
  • 类型定义:完整 TypeScript 类型,增强开发体验;
  • 调试功能:详细日志输出,便于排查问题。

如何使用 useMcp?

当调用 useMcp() 时,它在后台做了很多事:

  1. 连接 MCP Server,并检测其支持的传输协议(优先使用 streamable HTTP)
  2. 若需认证,自动跳转 OAuth 页面,回调后提取 Token
  3. 获取服务器公开的工具清单(名称、参数、描述等)
  4. 暴露 state(连接状态)、tools(工具元数据)、callTool()(工具调用函数)等对象供组件使用

基本使用

  1. 安装包:首先在项目中安装 use-mcp 包
复制
npm install use-mcp
  1. 导入Hooks:在 React 组件中导入 useMcp:
复制
import { useMcp } from 'use-mcp/react';
  1. 初始化连接:在 React 组件内调用 useMcp,传入配置参数对象。常用的参数包括:
  • url:MCP 服务器地址(必填)
  • clientName:OAuth 注册客户端名称
  • callbackUrl:回调地址,默认为 /oauth/callback
  • autoReconnect:是否启用断线重连
  • debug:是否输出日志
复制
const {
  state, tools, error,
  callTool, retry,
  authenticate, clearStorage
} = useMcp({
  url: 'https://mcp-server.com',
  clientName: 'MyApp',
  autoReconnect: true,
  debug: true
})

useMcp 的返回对象包括:

  • state:当前连接状态,如 connecting、ready、failed 等
  • tools:来自 MCP Server 的工具列表,每项包含名称、参数结构、描述等
  • error:出错信息
  • log:按照日志级别收集的事件信息数组(需启用 debug 才填充详细日志)。
  • callTool(name, args):调用指定工具,返回异步结果
  • retry:手动重连
  • disconnect:手动断开
  • authenticate:触发认证
  • clearStorage:清理凭证

身份验证

如果使用 OAuth 认证,需要在应用中配置一个回调路由,将 OAuth 提供商返回的代码传递给 useMcp。例如,在 React Router 中创建一个 /oauth/callback 路由,在该组件中调用 onMcpAuthorization():

复制
import { onMcpAuthorization } from 'use-mcp/react';

function OauthCallback() {
  useEffect(() => {
    onMcpAuthorization()
  }, [])
  
  return <div>正在重定向...</div>;
}

并在路由中注册:

复制
<Route path="/oauth/callback" element={<OAuthCallback />} />

这样,用户完成授权后页面会自动处理令牌并关闭窗口。

使用返回值

useMcp 返回的 state 表示连接状态,可能的值包括:

状态

描述

discovering

正在发现服务器

authenticating

正在进行身份验证

connecting

正在建立连接

loading

正在加载数据

ready

连接成功

failed

连接失败

可以根据状态动态调整 AI:

复制
if (state === 'failed') {
  return <div>连接失败: {error}<button oniClick={retry}>重试</button></div>;
}
if (state !== 'ready') {
  return <div>连接中...</div>;
}

连接成功后,可从 tools 数组获取可用工具,通过 callTool(name, args) 调用它们:

复制
const handleClick = async () => {
  const result = await callTool('search', { query: 'MCP 是什么?' })
  console.log(result)
}

如果连接失败,可以调用 retry() 进行手动重连,或调用 authenticate() 弹出授权窗口。退出登录时可调用 clearStorage() 清空本地 token。

完整例子

复制
import React from'react';
import { useMcp } from'use-mcp/react';

exportdefaultfunction AIExample() {
const { state, tools, callTool, retry, clearStorage } = useMcp({
    url: 'https://your-mcp-server.com',
    clientName: 'DemoApp',
    debug: true,
    autoReconnect: true
  });

const handleCall = async () => {
    const res = await callTool('search', { query: 'React + MCP 有什么用?' });
    alert(JSON.stringify(res, null, 2));
  };

if (state === 'connecting') return<p>连接中...</p>;
if (state === 'failed') return<p>连接失败 <button onClick={retry}>重试</button></p>;

return (
    <div>
      <h2>状态:{state}</h2>
      <p>工具列表:{tools.map(t => t.name).join(', ') || '暂无'}</p>
      <button onClick={handleCall}>调用 search 工具</button>
      <button onClick={clearStorage}>退出登录</button>
    </div>
  );
}

React + MCP 能做什么?

useMcp 的本质是让前端调用 MCP Server 上的工具。这些工具可以:

  • 调用 AI 能力:如问答、翻译、摘要、多轮对话等;
  • 查询结构化数据:如数据库查询、搜索、报告生成等;
  • 触发远程操作:如创建任务、发邮件、控制后端系统等;
  • 执行智能计划:结合 Agent 生成动态操作序列;
  • 增强前端交互:如表单智能推荐、输入纠错、操作建议等。

小结

从“生成文字”到“执行动作”,AI 的边界正在扩展。前端开发者将成为智能代理(Agent)触达用户的重要接口。而 useMcp 正是这一变革的关键桥梁。

三行代码接入,调用真实世界的工具。

React + AI,会是什么?无限可能!

相关资讯

让AI成为你的React代码专家的3个秘诀

深夜,我盯着眼前庞大的React项目,一行行代码仿佛在跳动。 作为一名全栈开发者,我深知重构这样的项目将耗费无数个不眠之夜。 然而,当我尝试让AI协助修改代码时,却屡屡遇到挫折:组件太复杂导致AI理解困难,代码结构混乱让AI无从下手,项目依赖关系复杂使得AI难以准确推断......如何让AI真正成为我们的得力助手?
1/26/2025 12:00:30 AM
coderidea

React 正式接入 AI,你知道吗?

最近,React 官方在其 GitHub 仓库中引入了一个实验性项目 —— React MCP Server,通过 MCP 将大模型与 React 编译工具链连接起来。 简单来说,它使 AI 助手不仅能够生成代码,还能以“工具调用”的方式直接参与 React 代码的编译优化和文档查询。 MCP Server 实现了 MCP 协议,并定义了两个主要工具供 AI 使用:编译工具:通过集成 babel-plugin-react-compiler,该工具允许 AI 对传入的 React 组件代码进行编译优化。
6/16/2025 9:36:18 AM
CUGGZ

如何运用DeepSeek R1构建一款全栈简历筛选应用

译者 | 核子可乐审校 | 重楼在本文中,我们将共同了解如何使用DeepSeek R1大模型构建智能简历分析应用,节约运营成本。 DeepSeek开源大模型的发布已经在技术社区引发巨大轰动。 如今,开发者们无需接入Claude、ChatGPT等在线AI模型,即可轻松实现本地应用程序构建。
2/8/2025 8:18:39 AM
核子可乐
  • 1