Przejdź do głównej treści

Własny serwer MCP

Dla zaawansowanych integracji możesz zbudować własny serwer MCP. Daje to pełną kontrolę nad funkcjonalnością i jest idealny do integracji z własnymi systemami lub nieobsługiwanymi aplikacjami.

Kiedy warto mieć własny serwer MCP?

Własny serwer MCP nadaje się, gdy:

  • chcesz zintegrować z własną aplikacją lub bazą danych
  • pożądana integracja nie jest dostępna w Zapier
  • masz określone wymagania dotyczące bezpieczeństwa
  • potrzebujesz skomplikowanej logiki w narzędziach

Wymagana wiedza

Do zbudowania własnego serwera MCP potrzebujesz:

  • doświadczenie programistyczne (TypeScript/JavaScript lub Python)
  • znajomość REST APIs
  • podstawowa wiedza o serwerach i hostingu

Model Context Protocol

Model Context Protocol (MCP) to otwarty standard opracowany przez Anthropic. Serwery MCP mogą być używane z:

  • AI School
  • ChatGPT
  • Claude
  • Visual Studio Code z Copilot
  • Inne aplikacje kompatybilne z MCP

Szybki start z TypeScript

1. Utworzenie projektu

mkdir mój-serwer-mcp
cd mój-serwer-mcp
npm init -y
npm install @modelcontextprotocol/sdk

2. Kod serwera

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

const server = new Server({
name: "mój-serwer",
version: "1.0.0",
});

// Zdefiniuj narzędzia
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "mój_narzędzie",
description: "Opis tego, co robi narzędzie",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "Jeden parametr",
},
},
required: ["parameter"],
},
},
],
}));

// Zaimplementuj narzędzie
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "mój_narzędzie") {
const { parameter } = request.params.arguments;
// Zrób coś z parametrem
return {
content: [{ type: "text", text: `Wynik: ${parameter}` }],
};
}
});

// Uruchom serwer
const transport = new StdioServerTransport();
server.connect(transport);

3. Uruchomienie serwera

npx ts-node server.ts

Transport HTTP dla AI School

AI School obsługuje serwery MCP przez HTTP. Twój serwer musi oferować punkt końcowy, który akceptuje komunikaty 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') {
// Przetwarzaj wywołanie narzędzia
res.json({ content: [...] });
}
});

app.listen(3000);

Opcje hostingu

Twój serwer MCP musi być dostępny w internecie:

OpcjaOdpowiednie dlaKoszty
Cloudflare Workerslekkie obciążeniaDarmowy tier dostępny
Vercelserwery TypeScriptDarmowy tier dostępny
Railwaypełne aplikacjeod 5 USD/miesiąc
AWS Lambdaskalowalne rozwiązaniaPłacisz za użycie
Własny serwerpełna kontrolaZmienny

Łączenie z AI School

  1. Wdroż swoją serwer na publiczny URL
  2. Przejdź do panelu w AI School
  3. Kliknij PołączeniaDodaj połączenie
  4. Wprowadź URL swojego serwera MCP
  5. Skonfiguruj ewentualną autoryzację

Autoryzacja

Możesz dodać autoryzację do swojego serwera MCP:

Autoryzacja 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();
});

W AI School wybierz "API Key" jako metodę autoryzacji.

OAuth 2.0

Dla bardziej zaawansowanej autoryzacji możesz zaimplementować OAuth 2.0. AI School obsługuje OAuth 2.1 dla serwerów MCP.

Przykłady i zasoby

Oficjalne serwery MCP

Dokumentacja

Wskazówki dotyczące rozwoju

  1. Zacznij prosto: zaczynaj od jednej narzędzia i rozwijaj
  2. Testuj lokalnie: używaj MCP Inspector do debugowania
  3. Logowanie: dodaj obszerne logowanie dla troubleshootingu
  4. Obsługa błędów: zwracaj jasne komunikaty o błędach
  5. Ograniczanie rate: chron serwer przed przeciążeniem

Typowe integracje

SystemMożliwe narzędzia
LVS (Magister, Somtoday)Pobieranie ocen, przeglądanie planów lekcji
Systemy CRMPobieranie danych klienta, dodawanie notatek
Bazy danychWykonywanie zapytań, generowanie raportów
Własne aplikacjeKażde API, które chcesz udostępnić

Powiązane artykuły