← Создание агентов на Cloudflare / agents / tools
MCP
Agents могут использовать Model Context Protocol (MCP) в качестве клиентов. Подключите агента к внешним MCP-серверам, обнаружьте инструменты, которые предоставляют эти серверы, и передайте эти инструменты в вызовы модели.
Используйте MCP, если хотите, чтобы агент:
- Вызывайте инструменты, предоставляемые внешними MCP-серверами.
- Используйте инструменты повторно в разных агентах, IDE и других AI-клиентах.
- Подключайтесь к сервисам, которые уже предоставляют конечную точку MCP.
- Добавьте авторизацию на основе OAuth или токенов для доступа к внешним инструментам.
Чтобы вместо этого создать MCP-сервер, см. Model Context Protocol (MCP).
Базовый паттерн
Вызовите addMcpServer() чтобы подключиться к удалённому MCP-серверу, затем передайте this.mcp.getAITools() в AI SDK.
import { Agent } from "agents";
import { generateText } from "ai";
import { createWorkersAI } from "workers-ai-provider";
export class ToolAgent extends Agent {
async onStart() {
await this.addMcpServer("github", "https://mcp.github.com/mcp");
}
async onRequest(request) {
const workersai = createWorkersAI({ binding: this.env.AI });
const response = await generateText({
model: workersai("@cf/zai-org/glm-4.7-flash"),
prompt: "Use available tools to summarize the latest issue activity.",
tools: this.mcp.getAITools(),
});
return new Response(response.text);
}
}import { Agent } from "agents";
import { generateText } from "ai";
import { createWorkersAI } from "workers-ai-provider";
export class ToolAgent extends Agent<Env> {
async onStart() {
await this.addMcpServer("github", "https://mcp.github.com/mcp");
}
async onRequest(request: Request) {
const workersai = createWorkersAI({ binding: this.env.AI });
const response = await generateText({
model: workersai("@cf/zai-org/glm-4.7-flash"),
prompt: "Use available tools to summarize the latest issue activity.",
tools: this.mcp.getAITools(),
});
return new Response(response.text);
}
}Если сервер требует OAuth, addMcpServer() возвращает состояние аутентификации и URL авторизации. Подключение сохраняется в принадлежащем агенту Хранилище SQL.
Конфигурация
Для публичных серверов MCP настройка привязки не требуется. Храните URL серверов, токены API или настройки OAuth как переменные окружения или секреты.
Для MCP-серверов, которым нужны bearer-токены или заголовки Cloudflare Access, при подключении передавайте пользовательские заголовки транспорта.
await this.addMcpServer("internal", this.env.MCP_SERVER_URL, {
transport: {
headers: {
Authorization: `Bearer ${this.env.MCP_TOKEN}`,
"CF-Access-Client-Id": this.env.CF_ACCESS_CLIENT_ID,
"CF-Access-Client-Secret": this.env.CF_ACCESS_CLIENT_SECRET,
},
},
});await this.addMcpServer("internal", this.env.MCP_SERVER_URL, {
transport: {
headers: {
Authorization: `Bearer ${this.env.MCP_TOKEN}`,
"CF-Access-Client-Id": this.env.CF_ACCESS_CLIENT_ID,
"CF-Access-Client-Secret": this.env.CF_ACCESS_CLIENT_SECRET,
},
},
});