MCP 课程文档
使用 MCP 和 Hugging Face Hub 构建小型智能体
并获得增强的文档体验
开始使用
使用 MCP 和 Hugging Face Hub 构建小型智能体
既然我们已经在 Gradio 中构建了 MCP 服务器并学习了如何创建 MCP 客户端,那么让我们通过构建一个可以与我们的情感分析工具无缝交互的智能体来完成我们的端到端应用程序。本节基于小型智能体项目,该项目演示了一种超级简单的方式来部署可以连接到我们 Gradio 情感分析服务器等服务的 MCP 客户端。
在第二单元的最后一个练习中,我们将引导您如何实现 TypeScript (JS) 和 Python MCP 客户端,它们可以与任何 MCP 服务器通信,包括我们在前几节中构建的基于 Gradio 的情感分析服务器。这完成了我们的端到端 MCP 应用程序流程:从构建公开情感分析工具的 Gradio MCP 服务器,到创建一个可以结合其他功能使用此工具的灵活智能体。
安装
让我们安装必要的包来构建我们的小型智能体。
一些 MCP 客户端,特别是 Claude Desktop,尚不支持基于 SSE 的 MCP 服务器。在这些情况下,您可以使用诸如 mcp-remote 之类的工具。首先安装 Node.js。然后,将以下内容添加到您自己的 MCP 客户端配置中
Tiny Agent 可以在命令行环境中运行 MCP 服务器。为此,我们需要安装 npm
并使用 npx
运行服务器。Python 和 JavaScript 都需要这些。
让我们使用 npm
安装 npx
。如果您没有安装 npm
,请查看 npm 文档。
# install npx
npm install -g npx
然后,我们需要安装 mcp-remote
包。
npm i mcp-remote
对于 JavaScript,我们需要安装 tiny-agents
包。
npm install @huggingface/tiny-agents
命令行中的小型智能体 MCP 客户端
让我们重复 单元 1 中的示例来创建一个基本的小型智能体。小型智能体可以根据 JSON 配置文件从命令行创建 MCP 客户端。
让我们用一个基本的小型智能体来设置一个项目。
mkdir my-agent
touch my-agent/agent.json
JSON 文件将如下所示
{
"model": "Qwen/Qwen2.5-72B-Instruct",
"provider": "nebius",
"servers": [
{
"type": "stdio",
"config": {
"command": "npx",
"args": [
"mcp-remote",
"https://:7860/gradio_api/mcp/sse" // This is the MCP Server we created in the previous section
]
}
}
]
}
然后我们可以使用以下命令运行智能体
npx @huggingface/tiny-agents run ./my-agent
这里我们有一个基本的小型智能体,可以连接到我们的 Gradio MCP 服务器。它包括一个模型、提供者和一个服务器配置。
字段 | 描述 |
---|---|
模型 | 用于智能体的开源模型 |
提供者 | 用于智能体的推理提供者 |
服务器 | 用于智能体的服务器。我们将使用 mcp-remote 服务器作为我们的 Gradio MCP 服务器。 |
我们还可以使用在本地运行的开源模型与小型智能体配合使用。如果我们在本地启动一个推理服务器,使用
{
"model": "Qwen/Qwen3-32B",
"endpointUrl": "https://:1234/v1",
"servers": [
{
"type": "stdio",
"config": {
"command": "npx",
"args": [
"mcp-remote",
"https://:1234/v1/mcp/sse"
]
}
}
]
}
这里我们有一个可以连接到本地模型的小型智能体。它包括一个模型、端点 URL (https://:1234/v1
) 和一个服务器配置。该端点应该是一个 OpenAI 兼容的端点。
自定义小型智能体 MCP 客户端
现在我们已经了解了小型智能体和 Gradio MCP 服务器,让我们看看它们如何协同工作!MCP 的美妙之处在于它提供了一种标准化的方式,让智能体可以与任何兼容 MCP 的服务器交互,包括我们之前章节中基于 Gradio 的情感分析服务器。
将 Gradio 服务器与小型智能体结合使用
要将我们的小型智能体连接到我们在本单元早期构建的 Gradio 情感分析服务器,我们只需将其添加到我们的服务器列表中即可。以下是我们如何修改智能体配置
const agent = new Agent({
provider: process.env.PROVIDER ?? "nebius",
model: process.env.MODEL_ID ?? "Qwen/Qwen2.5-72B-Instruct",
apiKey: process.env.HF_TOKEN,
servers: [
// ... existing servers ...
{
command: "npx",
args: [
"mcp-remote",
"https://:7860/gradio_api/mcp/sse" // Your Gradio MCP server
]
}
],
});
现在我们的智能体可以使用情感分析工具以及其他工具了!例如,它可以
- 使用文件系统服务器从文件中读取文本
- 使用我们的 Gradio 服务器分析其情感
- 将结果写回文件
部署注意事项
将 Gradio MCP 服务器部署到 Hugging Face Spaces 时,您需要更新代理配置中的服务器 URL,使其指向您部署的空间
{
command: "npx",
args: [
"mcp-remote",
"https://YOUR_USERNAME-mcp-sentiment.hf.space/gradio_api/mcp/sse"
]
}
这使得您的智能体可以从任何地方使用情感分析工具,而不仅仅是在本地!
结论:我们的完整端到端 MCP 应用程序
在本单元中,我们从理解 MCP 基础知识到构建完整的端到端应用程序
- 我们创建了一个 Gradio MCP 服务器,公开了一个情感分析工具
- 我们学习了如何使用 MCP 客户端连接到此服务器
- 我们使用 TypeScript 和 Python 构建了一个小型智能体,可以与我们的工具交互
这展示了模型上下文协议的强大功能——我们可以使用我们熟悉的框架(如 Gradio)创建专用工具,通过标准化接口(MCP)公开它们,然后让智能体无缝地将这些工具与其他功能结合使用。
我们构建的完整流程允许智能体
- 连接到多个工具提供商
- 动态发现可用工具
- 使用我们的自定义情感分析工具
- 将其与其他功能(如文件系统访问和网络浏览)结合使用
这种模块化方法使 MCP 在构建灵活的 AI 应用程序方面如此强大。
下一步
- 查看 Python 和 TypeScript 中的小型智能体博客文章
- 查阅小型智能体文档
- 用小型智能体构建一些东西!