Gå til hovedindhold

Eigen MCP Server

For avancerede integrationer kan du bygge en egen MCP-server. Dette giver fuld kontrol over funktionaliteten og er ideelt til integrationer med egne systemer eller ikke-understøttede applikationer.

Hvornår en egen MCP-server?

En egen MCP-server er egnet når:

  • Du vil integrere med en egen applikation eller database
  • Den ønskede integration ikke er tilgængelig i Zapier
  • Du har specifikke sikkerhedskrav
  • Du har brug for kompleks logik i værktøjerne

Krævet viden

For at bygge en egen MCP-server har du brug for:

  • Programm erfaring (TypeScript/JavaScript eller Python)
  • Kendskab til REST APIs
  • Grundlæggende viden om servere og hosting

Model Context Protocol

Model Context Protocol (MCP) er en åben standard udviklet af Anthropic. MCP-servere kan bruges med:

  • AI School
  • ChatGPT
  • Claude
  • Visual Studio Code med Copilot
  • Andre MCP-kompatible applikationer

Hurtigstart med TypeScript

1. Projektopsætning

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

2. Server kode

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

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

// Definér dine værktøjer
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "min_tool",
description: "Beskrivelse af hvad værktøjet gør",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "En parameter",
},
},
required: ["parameter"],
},
},
],
}));

// Implementér værktøjet
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "min_tool") {
const { parameter } = request.params.arguments;
// Gør noget med parameteren
return {
content: [{ type: "text", text: `Resultat: ${parameter}` }],
};
}
});

// Start serveren
const transport = new StdioServerTransport();
server.connect(transport);

3. Kør serveren

npx ts-node server.ts

HTTP Transport til AI School

AI School understøtter MCP-servere via HTTP. Din server skal tilbyde et endpoint, der accepterer MCP-beskeder:

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') {
// Behandl værktøjskaldet
res.json({ content: [...] });
}
});

app.listen(3000);

Hosting muligheder

Din MCP-server skal være tilgængelig via internettet:

MulighedEgnet tilOmkostninger
Cloudflare WorkersLet integrationGratis tier tilgængelig
VercelTypeScript-servereGratis tier tilgængelig
RailwayFuldstændige applikationerFra $5/måned
AWS LambdaSkalerbare løsningerBetales per brug
Egen serverFuldt kontrolVarierer

Forbundelse med AI School

  1. Udrust din server til en offentlig URL
  2. Gå til dashboardet i AI School
  3. Klik på KoblingerTilføj kobling
  4. Indtast URL’en til din MCP-server
  5. Konfigurer eventuel autentifikation

Autentifikation

Du kan tilføje autentifikation til din MCP-server:

API-nøgle autentifikation

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

I AI School vælger du "API Key" som autentifikationsmetode.

OAuth 2.0

For mere kompleks autentifikation kan du implementere OAuth 2.0. AI School understøtter OAuth 2.1 til MCP-servere.

Eksempler og ressourcer

Officielle MCP-servere

Dokumentation

Udviklingstips

  1. Start simpelt: Start med ét værktøj og udvid derfra
  2. Test lokalt: Brug MCP Inspector til fejlfinding
  3. Logging: Tilføj udvidet logging til fejlfinding
  4. Fejlbehandling: Returnér klare fejlmeddelelser
  5. Rate limiting: Beskyt din server mod overbelastning

Almindelige integrationer

SystemMulige værktøjer
LVS (Magister, SomToday)Hent karakterer, vis skemaer
CRM-systemerHent kundeoplysninger, tilføj noter
DatabaserUdfør forespørgsler, generer rapporter
Egen applikationerEnhver API du vil gøre tilgængelig

Relaterede artikler