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
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í
- Start příkaz:
npx @modelcontextprotocol/inspector - UI port:
6274 - Proxy port:
6277 - Aktivace proxy v Dockeru:
curl http://127.0.0.1:6277/health - Firewall pravidlo:
ufw allow in on docker0 to any port 6277 proto tcp
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.
