Obsah

MCP Inspector: základní přehled a spuštění v mém prostředí

Úvodní Kontext

Potřeboval jsem rychle otestovat a ladit MCP servery přes grafické rozhraní místo ručního posílání požadavků. Pro tento účel jsem použil projekt MCP Inspector: https://github.com/modelcontextprotocol/inspector.

Z oficiální dokumentace jsem si ověřil, že jde o nástroj pro testování a debugging MCP serverů. Prakticky kombinuje webové rozhraní pro interaktivní práci a proxy vrstvu, která se stará o připojení k MCP serverům.

Co je MCP Inspector

MCP Inspector používám jako vývojářský nástroj pro rychlou kontrolu toho, zda se MCP server spustí, zpřístupní nástroje a vrací očekávané odpovědi. Hodí se ve chvíli, kdy potřebuji ověřit konfiguraci serveru, zkontrolovat komunikaci nebo reprodukovat problém mimo konkrétního MCP klienta.

Základní výhoda je v tom, že dostanu přehledné UI a nemusím si psát vlastní pomocné skripty jen kvůli testování. Oficiální projekt je dostupný na GitHubu: https://github.com/modelcontextprotocol/inspector.

Ukázka jak s MCP Inspectorem pracovat

Vycházel jsem z tohoto zdroje: https://www.dokuwiki.org/plugin:mcp

Samotný print screen napoví:

Klíčové Kroky

Základní spuštění

Inspector jsem spustil tímto příkazem:

npx @modelcontextprotocol/inspector

Podle projektu tím standardně naběhne klientské rozhraní na portu 6274 a proxy server na portu 6277. Právě port 6277 byl v mém prostředí důležitý pro samotné připojení k MCP serverům.

Problém s připojením k MCP serverům

Po spuštění jsem narazil na problém, kdy se Inspector nedařilo korektně připojit k MCP serverům. Samotné spuštění proběhlo, ale komunikace nefungovala správně.

Ukázalo se, že v mém prostředí nebyl na hostitelském počítači povolený port 6277. Dokud jsem tento port neotevřel na firewallu, Inspector se k MCP serverům nepřipojil tak, jak jsem potřeboval.

V Dockeru jsem ale navíc zjistil ještě jednu zvláštnost: po spuštění Inspectoru jsem musel nejdříve zavolat endpoint /health, aby se proxy server skutečně „aktivoval“:

curl http://127.0.0.1:6277/health

Zatím jsem nepřišel na to, proč je to potřeba a jak to rozumně zjednodušit. Beru to zatím jako workaround. Důležité je, že tento krok nepomáhal na hostitelském počítači - volání muselo proběhnout uvnitř Dockeru. Jakmile jsem to udělal v Dockeru, začalo to následně fungovat i na hostitelském počítači.

Oprava na firewallu

Pomohlo mi povolit příchozí TCP provoz na port 6277 pro rozhraní docker0:

ufw allow in on docker0 to any port 6277 proto tcp

Po přidání tohoto pravidla začalo spojení fungovat správně.

Důležitá Nastavení

V mém případě bylo kritické si uvědomit, že samotné spuštění Inspectoru ještě neznamená funkční síťovou komunikaci směrem k MCP serverům. Rozhodující bylo povolení správného portu na hostitelském firewallu a v Dockeru navíc ruční aktivace proxy přes /health.

Praktický Postup, Který Mi Fungoval

Nejprve jsem spustil Inspector příkazem npx @modelcontextprotocol/inspector. Následně jsem ověřil, že problém není ve startu aplikace, ale v navázání spojení k MCP serverům.

Pokud Inspector běžel v Dockeru, zavolal jsem uvnitř kontejneru ještě:

curl http://127.0.0.1:6277/health

Teprve potom se proxy server korektně aktivoval. Samotné zavolání stejného endpointu na hostitelském počítači mi nepomohlo.

Potom jsem na hostitelském stroji přidal UFW pravidlo pro port 6277 na rozhraní docker0:

ufw allow in on docker0 to any port 6277 proto tcp

Po této změně už Inspector fungoval správně a připojení k MCP serverům bylo v pořádku.

Závěr / Výstupy

MCP Inspector mi posloužil jako jednoduchý nástroj pro základní testování a debugging MCP serverů. V mém nasazení nebyl problém jen v samotném nástroji, ale i v tom, že bylo potřeba explicitně povolit port 6277 na firewallu hostitelského počítače a v Dockeru ručně aktivovat proxy voláním curl http://127.0.0.1:6277/health. Zatím to beru jako praktický workaround, protože přesný důvod tohoto chování jsem ještě nedohledal.