MCP server propojí Codex s daty a funkcemi, které běžně nemá k dispozici – například s administračním rozhraním webu, firemním API nebo interními podklady. V návodu si vysvětlíme princip MCP, vytvoříme jednoduchý server v Node.js a připojíme ho ke Codexu i k webu.

Schéma toku mezi uživatelem, Codexem, MCP serverem a webovým API
Tok požadavku: uživatel, Codex, MCP server a webové API.

Co znamená MCP

Model Context Protocol (MCP) je otevřený protokol pro spojení jazykového modelu s externími nástroji a zdroji dat. MCP server nabídne Codexu přesně popsané nástroje. Codex podle jejich popisu pozná, kdy je použít, odešle validované vstupy a zpracuje výsledek.

Funguje jako bezpečný adaptér: uživatel zadá úkol, Codex vybere nástroj, MCP server ověří vstup a oprávnění, zavolá webové API a vrátí strukturovaný výsledek. Samotný model tak nepotřebuje přímý přístup do databáze.

STDIO nebo vzdálený server?

  • STDIO je vhodné pro vývoj a lokální použití. Codex server spustí jako proces na stejném počítači.
  • Streamable HTTP slouží pro sdílený server dostupný přes HTTPS. Podporuje token i OAuth.

Co budete potřebovat

  • Node.js 20 nebo novější,
  • Codex CLI nebo aplikaci Codex,
  • adresu webu či dokumentaci jeho API,
  • pro zápis API token s nejmenšími nutnými oprávněními.

1. Založení projektu

mkdir web-mcp
cd web-mcp
npm init -y
npm install @modelcontextprotocol/sdk zod
npm pkg set type=module

2. Jednoduchý MCP server

Vytvořte soubor server.js. Tento nástroj pouze zkontroluje dostupnost nastaveného webu:

import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { z } from "zod";

const siteUrl = new URL(process.env.SITE_URL ?? "https://example.cz");
const server = new McpServer(
  { name: "web-mcp", version: "1.0.0" },
  { instructions: "Používej nástroj jen pro kontrolu nastaveného webu." }
);

server.registerTool("get_site_status", {
  title: "Kontrola webu",
  description: "Vrátí dostupnost nastaveného webu.",
  inputSchema: {},
  outputSchema: { url: z.string(), status: z.number(), ok: z.boolean() },
  annotations: { readOnlyHint: true, destructiveHint: false, openWorldHint: true }
}, async () => {
  const response = await fetch(siteUrl, {
    headers: { "User-Agent": "web-mcp/1.0" },
    signal: AbortSignal.timeout(10000)
  });
  const result = { url: siteUrl.toString(), status: response.status, ok: response.ok };
  return {
    structuredContent: result,
    content: [{ type: "text", text: JSON.stringify(result) }]
  };
});

await server.connect(new StdioServerTransport());

U STDIO serveru neposílejte ladicí výpisy na standardní výstup, protože by narušily protokol.

3. Připojení ke Codexu

Použijte absolutní cestu k souboru:

codex mcp add muj-web --env SITE_URL=https://www.example.cz -- node C:\mcp\web-mcp\server.js
codex mcp list

Nastavení lze zapsat také do ~/.codex/config.toml:

[mcp_servers.muj_web]
command = "node"
args = ["C:\\mcp\\web-mcp\\server.js"]
env = { SITE_URL = "https://www.example.cz" }
tool_timeout_sec = 30

V aplikaci Codex otevřete Settings → MCP servers → Add server, zvolte STDIO, vyplňte příkaz a proměnné prostředí, uložte nastavení a Codex restartujte. Připojení ověříte příkazem /mcp.

4. Propojení s webem nebo Joomla

Pro správu obsahu nahraďte funkci uvnitř nástroje voláním podporovaného API webu. U Joomla může prostřední vrstvu tvořit Joomla Web Services API nebo vlastní úzce zaměřený plugin. Konkrétní endpointy závisí na verzi Joomla a zapnutých komponentách.

Vytvořte oddělené nástroje například list_articles, get_article, create_article_draft a publish_article. Token uložte do proměnné prostředí, například JOOMLA_API_TOKEN. Bezpečnější je používat aplikační API, které zachová oprávnění redakčního systému, než přímé připojení k databázi.

5. Vzdálené připojení

[mcp_servers.muj_web]
url = "https://mcp.example.cz/mcp"
bearer_token_env_var = "MCP_TOKEN"

OAuth přihlášení spustíte příkazem codex mcp login muj-web. Veřejný endpoint chraňte autentizací, HTTPS, omezením rychlosti a auditním logem.

Bezpečnostní zásady

  • Každému nástroji dejte jeden jasný úkol.
  • Oddělte čtení, koncept a publikaci.
  • Hesla a tokeny ukládejte do proměnných prostředí.
  • Validujte vstupy a omezte povolené domény.
  • Pro rizikové akce vyžadujte potvrzení uživatele.
  • Do výsledků neposílejte tajné ani zbytečné osobní údaje.

Nejčastější potíže

Codex server nevidí: ověřte absolutní cestu, spusťte codex mcp list a aplikaci restartujte.

Web vrací 401 nebo 403: zkontrolujte token, oprávnění a předání proměnné prostředí.

MCP URL nefunguje: běžná adresa webu není automaticky MCP endpoint. Vzdálený server musí implementovat transport Streamable HTTP.

Kam pokračovat

Začněte nástrojem pouze pro čtení. Až po ověření přidejte ukládání konceptu a nakonec řízenou publikaci. Potřebujete propojit Codex s firemním webem nebo připravit integraci pro Joomla? Ozvěte se nám.

Zdroje

Ověřeno podle dokumentace OpenAI dne 5. září 2026.

Časté otázky o MCP serveru a Codexu

MCP server je prostředník, který přes standard Model Context Protocol zpřístupní Codexu bezpečně popsané nástroje a zdroje dat.

Umožní Codexu pracovat s externí dokumentací, API, webem, databází nebo firemními službami bez toho, aby byly jejich detaily součástí modelu.

STDIO běží lokálně jako proces spuštěný Codexem. Streamable HTTP běží na vzdálené HTTPS adrese a hodí se pro sdílené nebo produkční použití.

Pro vlastní server ano, alespoň základy JavaScriptu, TypeScriptu nebo Pythonu. Hotové MCP servery lze často jen nakonfigurovat.

Ano. Oficiální MCP SDK existuje pro Python i TypeScript a protokol mohou implementovat také další jazyky.

Uživatelské nastavení je v souboru ~/.codex/config.toml. Důvěryhodný projekt může mít vlastní konfiguraci v .codex/config.toml.

Použijte příkaz codex mcp add nebo v aplikaci otevřete Settings, MCP servers a Add server. Po změně může být nutný restart.

Ano, pokud mu vytvoříte zapisovací nástroje a přidělíte odpovídající oprávnění. Bezpečnější je nejprve podporovat pouze čtení a koncepty.

Server může volat Joomla Web Services API nebo úzce zaměřený vlastní plugin. Konkrétní endpointy závisejí na verzi a komponentách webu.

Token patří do proměnné prostředí nebo správce tajných údajů. Nevkládejte jej do zdrojového kódu ani do veřejného repozitáře.

Protokol sám bezpečnost nezaručuje. Bezpečnost závisí na autentizaci, nejmenších oprávněních, validaci, schvalování akcí, logování a aktualizacích.

Standardní výstup přenáší zprávy protokolu. Ladicí text by komunikaci poškodil, proto logujte na stderr.

Zkontrolujte absolutní cestu, proměnné prostředí a výstup codex mcp list. Potom Codex restartujte a prověřte startovací log.

Ano. Každý server může obsluhovat jinou oblast, například web, dokumentaci, CRM nebo vývojové nástroje.

Lokální server může mít zanedbatelné náklady. U vzdáleného řešení platíte infrastrukturu, volaná API a spotřebu modelu podle konkrétní služby.

Ano, pokud je endpoint chráněný HTTPS, autentizací, limity, auditním logem, testy a potvrzením rizikových operací.