Bygg din första MCP-server
Steg-för-steg-guide: skapa en MCP-server i TypeScript, exponera verktyg och koppla den till Claude Desktop på under 15 minuter.
Att bygga en egen MCP-server är förvånansvärt lite kod. I den här guiden bygger vi en enkel server som exponerar två verktyg — get_time och convert_currency — och registrerar den i Claude Desktop. Hela flödet tar cirka 15 minuter.
Förberedelser
- Node.js 20+ (kör node --version).
- En installation av Claude Desktop (eller Cursor).
- Grundläggande vana vid TypeScript.
Skapa projektet
mkdir mcp-min-forsta && cd mcp-min-forsta
npm init -y
npm install @modelcontextprotocol/sdk zod
npm install -D typescript tsx @types/node
npx tsc --initÖppna tsconfig.json och sätt "module": "NodeNext", "target": "ES2022", "outDir": "dist". Skapa en src-mapp och en fil src/index.ts.
Skriv servern
import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";
const server = new McpServer({
name: "mcp-min-forsta",
version: "0.1.0",
});
server.tool(
"get_time",
"Returnerar aktuell tid i angiven tidszon.",
{ timezone: z.string().default("Europe/Stockholm") },
async ({ timezone }) => ({
content: [
{
type: "text",
text: new Date().toLocaleString("sv-SE", { timeZone: timezone }),
},
],
}),
);
server.tool(
"convert_currency",
"Konverterar mellan valutor via öppna ECB-kurser.",
{ amount: z.number(), from: z.string(), to: z.string() },
async ({ amount, from, to }) => {
const res = await fetch(`https://api.frankfurter.app/latest?amount=${amount}&from=${from}&to=${to}`);
const json = await res.json();
return { content: [{ type: "text", text: JSON.stringify(json) }] };
},
);
const transport = new StdioServerTransport();
await server.connect(transport);Notera hur enkelt det är: varje verktyg är en anropbar funktion med ett Zod-schema. SDK:et sköter JSON-RPC, felhantering och discovery åt oss.
Kör servern lokalt
npx tsx src/index.tsProcessen väntar tyst på JSON-RPC på stdin. För att verifiera att verktygen registrerats kan du använda @modelcontextprotocol/inspector — en webbaserad debug-klient som visar tools, resources och senaste anrop.
npx @modelcontextprotocol/inspector npx tsx src/index.tsKoppla in Claude Desktop
Öppna Claude Desktop → Settings → Developer → Edit Config. Lägg till din server:
{
"mcpServers": {
"min-forsta": {
"command": "npx",
"args": ["-y", "tsx", "/absolut/sökväg/mcp-min-forsta/src/index.ts"]
}
}
}Starta om Claude Desktop. Verktygsikonen längst ner i chattfönstret ska nu visa två nya verktyg. Fråga Claude ”Vad är klockan i Tokyo?” — modellen anropar get_time automatiskt.
Lägg till resources och prompts
Verktyg är bara en tredjedel av MCP. Utöka servern med server.resource() för läsbara data och server.prompt() för färdiga prompt-mallar. Ett vanligt mönster är att exponera dokumentation som resource och analys-prompts som slash-kommandon.
Publicera på npm
När servern fungerar lokalt är sista steget publicering. Kompilera med tsc, sätt "bin" i package.json och kör npm publish. Andra kan då köra din server direkt med npx -y ditt-paket-namn.
Vanliga frågor
Måste jag skriva servern i TypeScript?+
Nej. Officiella SDK:er finns även för Python, Kotlin, Java, C# och Swift. TypeScript är dock det mest välskötta ekosystemet just nu.
Kan MCP-servrar köras som fjärrtjänster?+
Ja. Utöver stdio stöder MCP streaming HTTP med Server-Sent Events. Fjärrservrar bör alltid skyddas med OAuth eller signerade tokens.
Hur felsöker jag min server?+
Använd @modelcontextprotocol/inspector för att se JSON-RPC-trafiken i realtid. Claude Desktops loggar finns i ~/Library/Logs/Claude på macOS.
Läs vidare
- BloggVad är MCP (Model Context Protocol)?En snabb introduktion till protokollet som förändrar hur AI-modeller pratar med verktyg, filer och API:er.
- BloggMCP i Cursor: komplett guideSå konfigurerar du MCP-servrar i Cursor för att boosta ditt utvecklingsflöde.
- BloggSäkerhet i MCP: allt du behöver vetaOAuth, verifierade badges, prompt injection och best practices för säker MCP-drift.
- Extern resursMCP Quickstart ↗
Utforska verifierade MCP-servrar
Alla servrar i katalogen är verifierade mot GitHub och npm — bara officiella och underhållna projekt listas.
Öppna katalogen →