Server MCP propriu
Pentru integrări avansate poți construi un server MCP propriu. Acest lucru îți oferă control complet asupra funcționalității și este ideal pentru integrări cu propriile sisteme sau aplicații care nu sunt finanțate.
Când un server MCP propriu?
Un server MCP propriu este potrivit atunci când:
- vrei să te integrezi cu o aplicație sau bază de date proprie
- integrarea dorită nu este disponibilă în Zapier
- ai cerințe de securitate specifice
- ai nevoie de logică complexă în uneltele tale
Cunoștințe necesare
Pentru a construi un server MCP propriu ai nevoie de:
- experiență de programare (TypeScript/JavaScript sau Python)
- cunoștințe despre REST API-uri
- noțiuni de bază despre servere și găzduire
Protocolul Model Context
Protocolul Model Context (MCP) este un standard deschis dezvoltat de Anthropic. Serverele MCP pot fi utilizate cu:
- AI School
- ChatGPT
- Claude
- Visual Studio Code cu Copilot
- Alte aplicații compatibile MCP
Începere rapidă cu TypeScript
1. Configurare proiect
mkdir server-mcp-propriu
cd server-mcp-propriu
npm init -y
npm install @modelcontextprotocol/sdk
2. Codul serverului
import { Server } from "@modelcontextprotocol/sdk/server";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio";
const server = new Server({
name: "server-ul-meu",
version: "1.0.0",
});
// Definire unelte
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "tool-ul-meu",
description: "Descrierea a ceea ce face instrumentul",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "Un parametru",
},
},
required: ["parameter"],
},
},
],
}));
// Implementare tool
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "tool-ul-meu") {
const { parameter } = request.params.arguments;
// Fă ceva cu parametrul
return {
content: [{ type: "text", text: `Rezultat: ${parameter}` }],
};
}
});
// Pornește serverul
const transport = new StdioServerTransport();
server.connect(transport);
3. Rularea serverului
npx ts-node server.ts
Transport HTTP pentru AI School
AI School acceptă servere MCP prin HTTP. Serverul tău trebuie să ofere un endpoint care să accepte mesaje 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') {
// Procesează apelul instrumentului
res.json({ content: [...] });
}
});
app.listen(3000);
Opțiuni de găzduire
Serverul MCP trebuie să fie accesibil prin internet:
| Opțiune | Potrivit pentru | Costuri |
|---|---|---|
| Cloudflare Workers | Sarcini ușoare | Nivel gratuit disponibil |
| Vercel | servere TypeScript | Nivel gratuit disponibil |
| Railway | aplicații complete | Începând de la 5$/lună |
| AWS Lambda | soluții scalabile | Plătești pe utilizare |
| Server propriu | control total | Variabil |
Conectarea la AI School
- Deployează serverul la o adresă URL publică
- Accesează panoul de control în AI School
- Fă clic pe Conexiuni → Adaugă conexiune
- Introdu URL-ul serverului tău MCP
- Configurează eventualele autentificări
Autentificare
Poți adăuga autentificare la serverul tău MCP:
Autentificare 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();
});
La AI School selectezi "API Key" ca metodă de autentificare.
OAuth 2.0
Pentru autentificare mai complexă poți implementa OAuth 2.0. AI School susține OAuth 2.1 pentru servere MCP.
Exemple și resurse
Servere MCP oficiale
- MCP Servers GitHub - exemple oficiale
Documentație
- Specificația MCP - Specificația completă a protocolului
- Documentație SDK - SDK TypeScript
Sfaturi pentru dezvoltare
- Începe simplu: pornește cu un singur instrument și extinde-te
- Testează local: folosește MCP Inspector pentru debugging
- Logging: adaugă logare extinsă pentru troubleshooting
- Gestionare erori: returnează mesaje de eroare clare
- Rate limiting: protejează-ți serverul de suprasarcină
Integrații uzuale
| Sistem | Unelte posibile |
|---|---|
| LVS (Magister, Somtoday) | Afișare note, vizualizare orare |
| Sisteme CRM | Afișare detalii clienți, notițe adăugate |
| Baze de date | Execuția interogărilor, generare rapoarte |
| Aplicații proprii | Orice API pe care vrei să-l expui |
Articole conexe
- Zapier MCP Server - Conexiuni simple fără cod