Перейти до основного змісту

Власний MCP-сервер

Для просунутих інтеграцій ви можете побудувати власний MCP-сервер. Це надає повний контроль над функціональністю і ідеально підходить для інтеграцій з власними системами або застосунками, які не підтримуються.

Коли потрібен власний MCP-сервер?

Власний MCP-сервер підходить, коли:

  • ви хочете інтегруватися з власним застосунком або базою даних
  • потрібна інтеграція, що не доступна в Zapier
  • у вас є конкретні вимоги до безпеки
  • потрібна складна логіка в інструментах

Необхідні знання

Для побудови власного MCP-сервера потрібні:

  • досвід програмування (TypeScript/JavaScript або Python)
  • знання REST API
  • базові знання серверів та хостингу

Протокол Model Context Protocol

Протокол Model Context Protocol (MCP) — це відкритий стандарт, розроблений Anthropic. MCP-сервера можна використовувати з:

  • AI School
  • ChatGPT
  • Claude
  • Visual Studio Code з Copilot
  • інші сумісні з MCP застосунки

Швидкий старт з TypeScript

1. Створення проекту

mkdir mijn-mcp-server
cd mijn-mcp-server
npm init -y
npm install @modelcontextprotocol/sdk

2. Код сервера

import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";

const server = new Server({
name: "mijn-server",
version: "1.0.0",
});

// Визначаємо інструменти
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "mijn_tool",
description: "Опис того, що робить інструмент",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "Параметр",
},
},
required: ["parameter"],
},
},
],
}));

// Реалізуємо інструмент
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "mijn_tool") {
const { parameter } = request.params.arguments;
// Виконайте дії з параметром
return {
content: [{ type: "text", text: `Результат: ${parameter}` }],
};
}
});

// Запуск сервера
const transport = new StdioServerTransport();
server.connect(transport);

3. Запуск сервера

npx ts-node server.ts

HTTP-транспорт для AI School

AI School підтримує MCP-сервери через HTTP. Ваш сервер повинен пропонувати ендпойнт, що приймає MCP-повідомлення:

import express from 'express';

const app = express();
app.use(express.json());

app.post('/mcp', async (req, res) => {
const { method, params } = req.body;

if (method === 'tools/list') {
res.json({ tools: [...] });
} else if (method === 'tools/call') {
// Обробка виклику інструмента
res.json({ content: [...] });
}
});

app.listen(3000);

Варіанти хостингу

Ваш MCP-сервер має бути доступний через інтернет:

ОпціяПідходить дляВартість
Cloudflare WorkersЛегке навантаженняБезкоштовний рівень доступний
VercelTypeScript-сервериБезкоштовний рівень доступний
RailwayПовні застосункиВід $5/місяць
AWS LambdaМасштабовані рішенняПлата за використання
Собственный серверПовний контрольЗмінна

Підключення до AI School

  1. Розгорніть сервер за публічною URL
  2. Перейдіть до панелі керування в AI School
  3. Натисніть на Зв’язкиДодати з’єднання
  4. Введіть URL вашого MCP-сервера
  5. За потреби налаштуйте автентифікацію

Автентифікація

Ви можете додати автентифікацію до вашого MCP-сервера:

API Key автентифікація

app.post("/mcp", (req, res, next) => {
const apiKey = req.headers["x-api-key"];
if (apiKey !== process.env.API_KEY) {
return res.status(401).json({ error: "Unauthorized" });
}
next();
});

У AI School виберіть "API Key" як метод автентифікації.

OAuth 2.0

Для більш складної автентифікації можна реалізувати OAuth 2.0. AI School підтримує OAuth 2.1 для MCP-серверів.

Приклади та ресурси

Офіційні MCP-сервери

Документація

Поради щодо розробки

  1. Почніть просто: спочатку одну інструменту, потім розширюйте
  2. Локальне тестування: використовуйте MCP Inspector для налагодження
  3. Логування: додавайте розширене логування для усунення несправностей
  4. Обробка помилок: повертайте чіткі повідомлення про помилки
  5. Обмеження швидкості: захистіть свій сервер від перевантаження

Часті інтеграції

СистемаМожливі інструменти
LVS (Magister, Somtoday)Запит оцінок, перегляд розкладів
CRM системиЗапит даних клієнтів, додавання нотаток
Бази данихВиконання запитів, створення звітів
Власні застосункиБудь-який API, який ви хочете надати

Статті та ресурси