TGViewer
WebDev+ | Веб-разработка WebDev+ | Веб-разработка @webdev_plus · 7.9K subscribers
Post #895 1.1K
Системы MCP — это будущее программирования ИИ.

На 30 строках кода на TypeScript вы можете создать такую систему.

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js"
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
import { z } from "zod"

// 1. Создаем сервер, который будет управлять коммуникацией между клиентом и сервером
const server = new McpServer({ name: "Weather MCP", version: "1.0.0" })

// 2. Определяем инструменты, чтобы LLM мог выполнять действия через наш сервер
server.tool(
"fetch-weather", // Название инструмента
"Tool to fetch the weather of a city", // Описание инструмента
{ city: z.string().describe("City name") }, // Валидация входных данных
async ({ city }) => { // Колбэк, который вызывается при использовании инструмента
// Формируем URL для поиска координат города
const api = new URL("https://geocoding-api.open-meteo.com/v1/search")
api.searchParams.append("name", city)

// Получаем данные о городе
const data = await fetch(api.toString()).then(res => res.json())

// Извлекаем широту и долготу первого результата
const { latitude, longitude } = data.results[0]

// Формируем URL для получения прогноза погоды
const weatherApi = new URL("https://api.open-meteo.com/v1/forecast")
weatherApi.searchParams.append("latitude", latitude.toString())
weatherApi.searchParams.append("longitude", longitude.toString())
weatherApi.searchParams.append("current", "temperature_2m,precipitation,rain")

// Получаем данные о погоде
const weatherData = await fetch(weatherApi.toString()).then(res => res.json())

// Возвращаем результат в формате JSON
return {
content: [{
type: "text",
text: JSON.stringify(weatherData, null, 2),
}]
}
},
)

// 3. Прослушиваем соединения от клиента
const transport = new StdioServerTransport()
await server.connect(transport)


@WebDev_Plus
More from @webdev_plus
  1. Oct 11, 2026Быстрый совет по JS: используйте Gamepad API, чтобы в реальном времени отслеживать статус…
  2. Oct 10, 2026Chrome DevTools – это не только панель для отладки, но и полноценная среда для проектирова…
  3. Oct 10, 2026Обрати внимание, что в корректном примере чипы мгновенно перемещаются на новую позицию, ко…
  4. Oct 9, 2026Принёс находку: sshx. Всего одна команда, и у вас в браузере открывается реплика локальног…
  5. Oct 9, 2026Огромная коллекцию из 1500+ отобранных API для ваших проектов, от погоды и карт до генерат…
  6. Oct 8, 2026Набор полезных пользовательских CSS-функций, который работает на новой нативной директиве…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →