Gå till huvudinnehållet

Egen MCP-server

För avancerade integrationer kan du bygga en egen MCP-server. Detta ger full kontroll över funktionaliteten och är idealiskt för integrationer med egna system eller applikationer som inte stöds.

När behövs en egen MCP-server?

En egen MCP-server passar när:

  • Du vill integrera med en egen applikation eller databas
  • Den önskade integrationen inte finns tillgänglig i Zapier
  • Du har särskilda säkerhetskrav
  • Du behöver komplex logik i verktygen

Nödvändiga kunskaper

För att bygga en egen MCP-server behöver du:

  • Programmeringserfarenhet (TypeScript/JavaScript eller Python)
  • Kunskap om REST API:er
  • Grundläggande kunskap om servrar och hosting

Model Context Protocol

Model Context Protocol (MCP) är en öppen standard utvecklad av Anthropic. MCP-servrar kan användas med:

  • AI School
  • ChatGPT
  • Claude
  • Visual Studio Code med Copilot
  • Andra MCP-kompatibla applikationer

Snabbstart med TypeScript

1. Skapa projekt

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

2. Serverkod

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

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

// Definiera dina verktyg
server.setRequestHandler("tools/list", async () => ({
tools: [
{
name: "min-tool",
description: "Beskrivning av vad verktyget gör",
inputSchema: {
type: "object",
properties: {
parameter: {
type: "string",
description: "En parameter",
},
},
required: ["parameter"],
},
},
],
}));

// Implementera verktyget
server.setRequestHandler("tools/call", async (request) => {
if (request.params.name === "min-tool") {
const { parameter } = request.params.arguments;
// Gör något med parameter
return {
content: [{ type: "text", text: `Resultat: ${parameter}` }],
};
}
});

// Starta servern
const transport = new StdioServerTransport();
server.connect(transport);

3. Starta servern

npx ts-node server.ts

HTTP-Transport för AI School

AI School stöder MCP-servrar via HTTP. Din server ska erbjuda en endpoint som tar emot MCP-meddelanden:

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') {
// Bearbeta verktygsanropet
res.json({ content: [...] });
}
});

app.listen(3000);

Hosting-alternativ

Din MCP-server måste vara tillgänglig via internet:

AlternativLämpligt förKostnad
Cloudflare WorkersLätta arbetsbelastningarGratis nivå tillgänglig
VercelTypeScript-servrarGratis nivå tillgänglig
RailwayKompletta applikationerFrån $5/månad
AWS LambdaSkalbara lösningarBetala per användning
Egen serverFull kontrollVariabel

Anslutning till AI School

  1. Distribuera din server till en publik URL
  2. Gå till instrumentpanelen i AI School
  3. Klicka på KopplingarLägg till koppling
  4. Ange URL till din MCP-server
  5. Konfigurera eventuell autentisering

Autentisering

Du kan lägga till autentisering till din MCP-server:

API-nyckel-autentisering

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äljer du "API Key" som autentiseringsmetod.

OAuth 2.0

För mer avancerad autentisering kan du implementera OAuth 2.0. AI School stödjer OAuth 2.1 för MCP-servrar.

Exempel och resurser

Officiella MCP-servrar

Dokumentation

Utvecklingstips

  1. Börja enkelt: börja med ett verktyg och bygg vidare
  2. Testa lokalt: använd MCP Inspector för felsökning
  3. Logging: lägg till omfattande loggning för felsökning
  4. Felsökning: ge tydliga felmeddelanden
  5. Rate limiting: skydda din server mot överbelastning

Vanliga integrationer

SystemMöjliga verktyg
LVS (Magister, Somtoday)Hämta betyg, se scheman
CRM-systemHämta kunduppgifter, lägga till anteckningar
DatabaserKör frågor, skapa rapporter
Egna applikationerÖppna upp varje API som du vill exponera

Relaterade artiklar