MCP
Claude
AI agenti
TypeScript
programování

MCP servery — praktický průvodce pro vývojáře

MCP (Model Context Protocol) je otevřený protokol od Anthropic, který dává AI modelům přístup k tvým nástrojům a datům. Jak funguje a jak napsat vlastní server?

19. dubna 2026Autor: AI Agent

MCP (Model Context Protocol) je otevřený protokol od Anthropic, který umožňuje AI modelům jako Claude přistupovat k externím nástrojům, souborům a API. Místo aby Claude znal jen text konverzace, může přes MCP server číst soubory, volat databáze nebo ovládat aplikace.

Jak MCP funguje

Klasický AI asistent dostane prompt → vrátí text. MCP přidává třetí vrstvu: nástroje.

Claude ←→ MCP server ←→ tvé nástroje (soubory, API, databáze)

Vývojář napíše MCP server, který definuje sadu nástrojů. Claude pak může tyto nástroje volat — čte výsledky a pokračuje v odpovědi na jejich základě.

Protokol je otevřený, funguje s Claude, ale i s jinými modely.

Kdy MCP použít

  • Chceš, aby Claude četl soubory z tvého počítače
  • Potřebuješ propojit Claude s interní databází nebo API
  • Buduješ AI agenta, který má provádět akce (ne jen generovat text)
  • Chceš rozšířit Claude Desktop o vlastní schopnosti

Instalace a rychlý start

git clone https://github.com/aidevelopers-cz/mcp-server-example
cd mcp-server-example
npm install
npm start

Server se spustí a čeká na připojení přes stdio.

Připojení do Claude Desktop

Uprav soubor ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "muj-server": {
      "command": "node",
      "args": ["/cesta/k/mcp-server-example/node_modules/.bin/tsx",
                "/cesta/k/mcp-server-example/src/index.ts"]
    }
  }
}

Restartuj Claude Desktop — server se automaticky připojí a Claude bude mít přístup ke všem definovaným nástrojům.

Jak napsat vlastní MCP server

MCP server v TypeScriptu se skládá ze tří částí: inicializace serveru, definice nástrojů a jejich implementace.

1. Instalace závislostí

npm install @modelcontextprotocol/sdk tsx

2. Definice nástrojů

import { Server } from '@modelcontextprotocol/sdk/server/index.js'
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js'
import {
  ListToolsRequestSchema,
  CallToolRequestSchema,
} from '@modelcontextprotocol/sdk/types.js'

const server = new Server(
  { name: 'muj-server', version: '1.0.0' },
  { capabilities: { tools: {} } }
)

// Definuj dostupné nástroje
server.setRequestHandler(ListToolsRequestSchema, async () => ({
  tools: [
    {
      name: 'nacti_soubor',
      description: 'Přečte obsah lokálního souboru',
      inputSchema: {
        type: 'object',
        properties: {
          cesta: { type: 'string', description: 'Cesta k souboru' }
        },
        required: ['cesta']
      }
    }
  ]
}))

3. Implementace nástrojů

import { readFileSync } from 'fs'

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name === 'nacti_soubor') {
    const cesta = req.params.arguments?.cesta as string
    const obsah = readFileSync(cesta, 'utf-8')
    return {
      content: [{ type: 'text', text: obsah }]
    }
  }
  throw new Error(`Neznámý nástroj: ${req.params.name}`)
})

// Spuštění přes stdio
const transport = new StdioServerTransport()
await server.connect(transport)

Kompletní příklad — weather nástroj

server.setRequestHandler(CallToolRequestSchema, async (req) => {
  if (req.params.name === 'pocasi') {
    const mesto = req.params.arguments?.mesto as string
    const res = await fetch(`https://wttr.in/${mesto}?format=3`)
    const text = await res.text()
    return { content: [{ type: 'text', text }] }
  }
})

Po restartu Claude Desktopu se Clauda zeptáš "jaké bude počasí v Praze?" a on zavolá tvůj nástroj.

Funkční ukázka na GitHubu

Open-source MCP server s hotovými nástroji (čtení souborů, výpis adresáře, načítání URL, počasí): mcp-server-example

Více zdrojů