Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Klient MCP otevřený v repozitáři spustí server sám a podle potřeby sestaví spustitelný program, přes konfigurace klientů v kořeni a bin/majordomus-mcp

Nikdo neprovozuje server ručně. Otevřete tento repozitář v Claude Code, Gemini CLI nebo Codexu a klient najde svou konfiguraci v kořeni, spustí bin/majordomus-mcp a mluví s ním MCP; launcher sestaví spustitelný soubor v Rustu, když chybí nebo je starší než jeho zdroje, a pak spustí majordomus mcp, který nastartuje sdílený server repozitáře nebo se připojí k tomu, který už běží. První klient, který repozitář otevře, se stane serverem; druhý ho sdílí.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

.mcp.json (Claude Code), .gemini/settings.json (Gemini CLI) a .codex/config.toml (Codex) pojmenovávají tentýž launcher, který nic nezapisuje na stdout a předává všechny argumenty příkazu majordomus mcp; build řídí MAJORDOMUS_BIN, MAJORDOMUS_BUILD_PROFILE a MAJORDOMUS_NO_BUILD.

Co to znamená

Nikdo nespouští server ručně. Otevřete tento repozitář v Claude Code, Gemini CLI nebo Codexu a klient najde svou konfiguraci v kořeni, spustí bin/majordomus-mcp a mluví s ním MCP; launcher sestaví spustitelný soubor v Rustu, když chybí nebo je starší než zdroje, a pak spustí majordomus mcp, které nastartuje sdílený server repozitáře nebo se připojí k tomu, který už běží. První klient, který repozitář otevře, se stane serverem; druhý jej sdílí.

Princip

bin/majordomus-mcp (přenosný bash) určí repozitář podle vlastního umístění, zvolí apps/majordomus-cli/target/<profile>/majordomus (MAJORDOMUS_BUILD_PROFILE, výchozí debug), porovná ho se zdroji pomocí find -newer, v případě potřeby spustí cargo build --locked s výstupem na stderr, nastaví MAJORDOMUS_SHARE na share/ distribuce vedle sebe a spustí execem spustitelný soubor s mcp a všemi předanými argumenty. Nikdy nezapisuje na stdout, který patří protokolu. MAJORDOMUS_BIN pojmenuje spustitelný soubor k použití bez sestavení; MAJORDOMUS_NO_BUILD=1 odmítne sestavovat a skončí s kódem 12 a příkazem, který je třeba spustit. Všechny ho uvádějí .mcp.json (Claude Code, rozsah projektu, schváleno jednou), .gemini/settings.json (Gemini CLI, mcpServers.majordomus) i .codex/config.toml (Codex, [mcp_servers.majordomus], načítá se, když je projekt důvěryhodný).

Jak to vidět

cat .mcp.json .gemini/settings.json .codex/config.toml            # the same launcher in each
bin/majordomus-mcp --help                                         # builds if needed, then: Usage: majordomus mcp ...
printf '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"you","version":"0"}}}\n' | bin/majordomus-mcp
# stderr: shared server listening on http://127.0.0.1:8741 — 7 surface(s): api .../api/v1, cockpit .../cockpit, ...; stdout: the initialize result
claude                                                            # in this directory: approve the project server once; the majordomus_* tools are there

Co nepokrývá

První build potřebuje toolchain Rustu a stahuje crates, které Cargo.lock připíná; timeout startu klienta může být třeba zvýšit (MCP_TIMEOUT v Claude Code, startup_timeout_sec v Codexu, timeout v Gemini CLI; dodané konfigurace nastavují poslední dva) nebo jednou předem spustit just build. Launcher je pro rozvržení tohoto repozitáře (bin/ vedle apps/ a share/); repozitář, který nástroj jen instaluje, pojmenovává sestavený executable přímo, jak ukazuje apps/majordomus-cli/README.md. Zda klient respektuje konfiguraci projektu, je věcí klienta: Claude Code žádá o schválení, Codex vyžaduje důvěru.

Proč existuje

Provozovatel požadoval, aby spuštění klienta automaticky sestavilo, spustilo a použilo server, pro Claude, Codex i Gemini stejně. Konfigurace jsou vlastní formáty klientů; launcher je jediné místo, kde se rozhoduje o buildu a sdíleném adresáři, aby všechny tři zůstaly shodné. test/cases/90_mcp_shared_server.sh spustí launcher se dvěma klienty v repozitáři, který zapsal init shellového nástroje, ověří, že ho všechny tři konfigurace jmenují, ověří, že stdout nese jen rámce protokolu, a ověří odmítnutí, když build není dovolen.

Detail vykreslený z docs/claims/mcp-client-autostart.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Klient MCP otevřený v repozitáři spustí server sám a podle potřeby sestaví spustitelný program, přes konfigurace klientů v kořeni a bin/majordomus-mcp

    Vzniklo na Interfaces.

  2. 2 · kanonické tvrzení

    mcp-client-autostartdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v přečtěte si to na tomto webu · docs/MCP.md

  3. 3 · implementace

    bin/majordomus-mcp

  4. 4 · test a scénáře

    Test: test/cases/90_mcp_shared_server.sh

    Provedeno v Servírovat vrstvu AI repozitáře každému klientovi AI přes jeden sdílený server.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 90_mcp_shared_server

Prohledává názvy a popisy všech stránek, které tento web publikuje.