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.

Spustitelný program v Rustu servíruje klientovi MCP vrstvu AI repozitáře přes stdio, přičemž na stdout jsou jen rámce protokolu

majordomus mcp, příkaz spustitelného souboru v Rustu v apps/majordomus-cli/, který spouští klient MCP, čte vrstvu .ai/, odpovídá na initialize, resources/list, resources/read, tools/list a tools/call přes stdin a stdout a končí, když klient zavře rouru. Na stdout se zapisují jen rámce JSON-RPC; vše ostatní jde na stderr. První v checkoutu se stává jeho sdíleným serverem: naváže loopback projekci HTTP a zapíše jediný soubor, svůj lease pod .ai/local/state/mcp/ (docs/MCP.md); --standalone obsluhuje jen tohoto klienta, bez portu a bez leasu. Každý nástroj je oznámen s tím, co mění: většina čte a ty, jejichž efekt v registru je repository_mutation, zapisují do repozitáře a jsou jmenovány v instrukcích initialize.

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

Jeden proces na klienta, živý, dokud žije jeho roura; diagnostika jde na stderr; relace nechá repozitář byte po bytu totožný. Vlastní sada crate, tests/mcp_stdio.rs, podřizuje tytéž rámce týmž pravidlům.

Co to znamená

majordomus mcp, příkaz spustitelného souboru v Rustu v apps/majordomus-cli/, který spouští klient MCP, čte vrstvu .ai/, odpovídá na initialize, resources/list, resources/read, tools/list a tools/call přes stdin a stdout a končí, když klient zavře rouru. Na stdout se zapisují jen rámce JSON-RPC; vše ostatní jde na stderr. První v checkoutu se stane jeho sdíleným serverem: naváže loopback HTTP projekci a zapíše jediný soubor, svůj lease pod .ai/local/state/mcp/ (docs/MCP.md); --standalone obsluhuje jen tohoto klienta, bez portu a bez leasu. Každý nástroj je oznámen s tím, co mění: většina čte a ty, jejichž efekt v registru je repository_mutation, zapisují do repozitáře a jsou jmenovány v instrukcích initialize.

Princip

src/repository.rs najde kořen, src/index.rs sestaví index v paměti, src/mcp/surface.rs jej promítne do zdrojů a nástrojů, src/mcp/protocol.rs mluví protokolem nad tímto povrchem a src/mcp/stdio.rs přenáší jeden rámec na řádek. Logování jde přes tracing na stderr pod MAJORDOMUS_LOG. Neexistuje knihovna MCP ani asynchronní runtime: podmnožina protokolu, kterou server potřebuje, je dost malá, aby se vešla do jednoho souboru za indexem.

Jak to vidět

cargo build --manifest-path apps/majordomus-cli/Cargo.toml
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"you","version":"0"}}}' \
              '{"jsonrpc":"2.0","id":2,"method":"resources/read","params":{"uri":"majordomus://prompt/continue"}}' \
  | apps/majordomus-cli/target/debug/majordomus mcp 2>/dev/null

Vrátí se dva řádky, oba JSON; druhý nese .ai/repo/prompts/continue.md tak, jak byl přečten. Přidejte MAJORDOMUS_LOG=debug a diagnostika se objeví na stderr, zatímco stdout zůstane stejné dva řádky.

Co nepokrývá

Jeden transport, stdio; žádná odběr, žádná oznámení o změně seznamu, žádná schopnost promptů (prompty repozitáře vykreslují {{CONTEXT}} z lokálního stavu checkoutu, který vlastní shellový nástroj, takže se servírují jako zdroje, nevykreslené a tak označené). Interoperabilita je prokázána proti skutečným rámcům protokolu, ne proti každému klientovi.

Proč existuje

Nástroje mluvící MCP neumějí číst shellový nástroj. Vrstva patří repozitáři, je čitelná bez jakéhokoli nástroje, a toto je čtečka pro klienty, které čtou přes protokol, podřízená shellovému nástroji, který vrstvu validuje a vynucuje. test/cases/72_rust_mcp.sh komunikuje se sestavenou binárkou uvnitř repozitáře, který napsal init shellového nástroje; apps/majordomus-cli/tests/mcp_stdio.rs podrobuje každý frame výše uvedeným pravidlům, včetně toho, že relace nic nemění.

Detail vykreslený z docs/claims/mcp-stdio-surface.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Spustitelný program v Rustu servíruje klientovi MCP vrstvu AI repozitáře přes stdio, přičemž na stdout jsou jen rámce protokolu

    Vzniklo na Interfaces.

  2. 2 · kanonické tvrzení

    mcp-stdio-surfacedeklarovaný 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

    apps/majordomus-cli/src/mcp/protocol.rs

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

    Test: test/cases/72_rust_mcp.sh

    Provedeno v Servírujte AI vrstvu repozitáře každému AI klientovi přes jeden sdílený server, Najděte objekt vrstvy, aniž byste četli všechno.

  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 72_rust_mcp

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