Расширьте Claude Code с помощью пользовательских инструментов, используя серверы Model Context Protocol
.mcp.json
{ "mcpServers": { "filesystem": { "command": "npx", "args": ["@modelcontextprotocol/server-filesystem"], "env": { "ALLOWED_PATHS": "/Users/me/projects" } } } }
import { query } from "@anthropic-ai/claude-code"; for await (const message of query({ prompt: "List files in my project", options: { mcpConfig: ".mcp.json", allowedTools: ["mcp__filesystem__list_files"] } })) { if (message.type === "result" && message.subtype === "success") { console.log(message.result); } }
// .mcp.json конфигурация { "mcpServers": { "my-tool": { "command": "node", "args": ["./my-mcp-server.js"], "env": { "DEBUG": "${DEBUG:-false}" } } } }
// Конфигурация SSE сервера { "mcpServers": { "remote-api": { "type": "sse", "url": "https://api.example.com/mcp/sse", "headers": { "Authorization": "Bearer ${API_TOKEN}" } } } } // Конфигурация HTTP сервера { "mcpServers": { "http-service": { "type": "http", "url": "https://api.example.com/mcp", "headers": { "X-API-Key": "${API_KEY}" } } } }
import { query } from "@anthropic-ai/claude-code"; // Перечислить доступные ресурсы for await (const message of query({ prompt: "What resources are available from the database server?", options: { mcpConfig: ".mcp.json", allowedTools: ["mcp__list_resources", "mcp__read_resource"] } })) { if (message.type === "result") console.log(message.result); }
// .mcp.json с переменными окружения { "mcpServers": { "secure-api": { "type": "sse", "url": "https://api.example.com/mcp", "headers": { "Authorization": "Bearer ${API_TOKEN}", "X-API-Key": "${API_KEY:-default-key}" } } } } // Установить переменные окружения process.env.API_TOKEN = "your-token"; process.env.API_KEY = "your-key";
import { query } from "@anthropic-ai/claude-code"; for await (const message of query({ prompt: "Process data", options: { mcpServers: { "data-processor": dataServer } } })) { if (message.type === "system" && message.subtype === "init") { // Проверить статус MCP сервера const failedServers = message.mcp_servers.filter( s => s.status !== "connected" ); if (failedServers.length > 0) { console.warn("Failed to connect:", failedServers); } } if (message.type === "result" && message.subtype === "error_during_execution") { console.error("Execution failed"); } }