Problém: Nevíte kde začít
Prilis mnoho moznosti, zadna jasna cesta
Protneme sum a nastavime vas prvni MCP server
Rozhodli jste se postavit MCP server. Ale kdyz se podivate do dokumentace, okamzite stojite pred volbami: TypeScript nebo Python? stdio nebo HTTP? Jaka verze SDK? Jaka struktura projektu? Je snadne se ztratit jeste nez napisete jediny radek kodu.
Pojdme protnout ten sum a nastavit vas tim nejjednodussim zpusobem.
Vyber jazyka
| Vlastnost | TypeScript | Python |
|---|---|---|
| SDK balicek | @modelcontextprotocol/sdk | mcp[cli] |
| Nejlepsi pro | Web API, Node.js ekosystemy | Zpracovani dat, scripting, Odoo |
| Typova bezpecnost | Zod schemata (vyborne) | Type hints + Pydantic |
| Rychly start | npx @anthropic-ai/create-mcp | uvx create-mcp-server |
Nase doporuceni
Pokud se pripojujete k web API nebo stavite neco od nuly, pouzijte TypeScript. Pokud pracujete s daty, skripty nebo Odoo (jako ve VaryShop ekosystemu), pouzijte Python.
TypeScript setup
# Vytvorte adresar projektu mkdir my-mcp-server cd my-mcp-server # Inicializujte projekt npm init -y npm install @modelcontextprotocol/sdk zod npm install -D typescript @types/node # Vytvorte tsconfig.json npx tsc --init --target ES2022 --module Node16 \ --moduleResolution Node16 --outDir dist
Vytvorte soubor serveru src/index.ts:
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: "my-first-server",
version: "1.0.0",
});
server.tool(
"greet",
"Greet a person by name",
{ name: z.string().describe("The person's name") },
async ({ name }) => ({
content: [{ type: "text", text: `Hello, ${name}!` }],
})
);
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
}
main();Jen 20 radku
To je vse — 20 radku kodu pro funkcni MCP server. Registruje jeden nastroj greet, ktery prijme jmeno a vrati pozdrav.
Python setup
# Vytvorte projekt mkdir my-mcp-server cd my-mcp-server # Nastavte s uv (doporuceno) uv init uv add "mcp[cli]" httpx
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("my-first-server")
@mcp.tool()
def greet(name: str) -> str:
"""Greet a person by name."""
return f"Hello, {name}!"
if __name__ == "__main__":
mcp.run()Jeste strucnejsi
Python FastMCP ma jen 12 radku. Dekorator @mcp.tool() automaticky prevede signaturu funkce a docstring na definici nastroje.
Transport: stdio vs. Streamable HTTP
stdio (standardni I/O)
Server bezi jako lokalni proces. Vstup/vystup jde pres stdin/stdout. Nejjednodussi a nejbeznejsi transport pro lokalni vyvoj.
Streamable HTTP
Server bezi jako webova sluzba. Komunikace pres HTTP se server-sent events. Pouzijte pro vzdalene nebo sdilene servery.
Zacnete jednoduse
Zacnete s stdio. Je jednodussi, nevyzaduje sitovou konfiguraci a Claude Code ho pouziva jako vychozi. HTTP muzete pridat kdykoli pozdeji.
Vas prvni test
# TypeScript npx @modelcontextprotocol/inspector node dist/index.js # Python mcp dev server.py
Inspektor otevre webove rozhrani, kde vidite registrovane nastroje, muzete je rucne zavolat a overit, ze funguji spravne.
Klicove shrnuti
Nastaveni MCP serveru je prekvapive jednoduche. Ve 20 radcich TypeScriptu nebo 12 radcich Pythonu mate funkcni server s registrovanym nastrojem. Tezsi cast neni setup — je to rozhodnuti jake nastroje postavit. Tim se budeme zabyvat dale.
Momentálně nejsou žádné komentáře.