Hüppa põhisisu juurde Hüppa navigatsiooni juurde Hüppa jaluse juurde
Piiratud aja jooksul: Disainipartneri programm — BUSINESS pakett eluaegselt

MCP serveri seadistus

Ühendage AI-agendid Rediacc infrastruktuuriga Model Context Protocol (MCP) serveri abil.

Ülevaade

Käsk rdc mcp serve käivitab lokaalse MCP (Model Context Protocol) serveri, mida AI-agendid saavad kasutada teie infrastruktuuri haldamiseks. Server kasutab stdio-transporti, AI-agent käivitab selle alamprotsessina ja suhtleb JSON-RPC kaudu.

Eeltingimused: rdc on installitud ja seadistatud vähemalt ühe masinaga.

Claude Code

Lisage oma projekti .mcp.json-i:

{
  "mcpServers": {
    "rdc": {
      "command": "rdc",
      "args": ["mcp", "serve"]
    }
  }
}

Või nimega konfiguratsiooniga:

{
  "mcpServers": {
    "rdc": {
      "command": "rdc",
      "args": ["mcp", "serve", "--config", "production"]
    }
  }
}

Cursor

Avage Seaded - MCP Servers - Add Server:

  • Nimi: rdc
  • Käsk: rdc mcp serve
  • Transport: stdio

Saadaolevad tööriistad

Lugemistööriistad (ohutud, ilma kõrvalmõjudeta)

TööriistKirjeldus
machine_queryMasina süsteemiinfo, konteinerite, teenuste ja ressursikasutuse hankimine
machine_containersDockeri konteinerite loetlemine koos oleku, tervise, ressursikasutuse, siltide ja automaattee domeeniga
machine_servicesRediacc-hallatavate systemd-teenuste loetlemine (nimi, olek, ala-olek, taaskäivituste arv, mälu, omav repositoorium)
machine_reposJuurutatud repositooriumide loetlemine (nimi, GUID, suurus, ühendamise olek, Dockeri olek, konteinerite arv, kettakasutus, muutmise kuupäev, Rediaccfile’i olemasolu)
machine_healthMasina terviskontrolli käivitamine (süsteem, konteinerid, teenused, salvestus)
machine_listKõigi seadistatud masinate loetlemine
config_repositoriesSeadistatud repositooriumide loetlemine koos nime-GUID vastavustega
config_show_infraMasina infrastruktuuri konfiguratsiooni kuvamine (baasdomeen, avalikud IP-d, TLS, Cloudflare’i tsoon)
config_providersMasina ettevalmistamiseks seadistatud pilveteenuse pakkujate loetlemine
agent_capabilitiesKõigi saadaolevate rdc CLI käskude loetlemine koos nende argumentide ja valikutega
repo_secret_listRepositooriumi saldusnimede ja edastusrežiimide loetlemine (mitte kunagi väärtused, mitte kunagi räsid). Lugemisohutu.
repo_secret_getSaladuse SHA-256 räsi ja edastusrežiimi hankimine. Lihtteksti väärtust ei tagastata kunagi disaini põhjal. Kasutage seda saladuse olemasolu või roteerimise kontrollimiseks.

Kirjutamistööriistad (hävitavad)

TööriistKirjeldus
repo_createUue krüpteeritud repositooriumi loomine masinal
repo_upRepositooriumi juurutamine/uuendamine (käivitab Rediaccfile’i up, käivitab konteinerid). Kasutage mount esimese juurutuse jaoks või pärast tõmbamist
repo_downRepositooriumi konteinerite peatamine. Vaikimisi EI tühista ühendamist. Kasutage unmount, et sulgeda ka LUKS-konteiner
repo_deleteRepositooriumi kustutamine (hävitab konteinerid, köited, krüpteeritud pildi). Mandaat arhiveeritakse taastamise jaoks
repo_forkCoW-fork loomine uue GUID ja networkId-ga (täiesti iseseisev koopia, võrgus forki toetav)
backup_pushRepositooriumi varukoopia saatmine salvestusruumi või teisele masinale (sama GUID - varukoopia/migratsioon, mitte fork)
backup_pullRepositooriumi varukoopia tõmbamine salvestusruumist või masinalt. Pärast tõmbamist juurutage repo_up-ga (mount=true)
machine_provisionUue masina ettevalmistamine pilveteenuse pakkujal OpenTofu abil
machine_deprovisionPilveteenusega ettevalmistatud masina hävitamine ja konfiguratsioonist eemaldamine
config_add_providerPilveteenuse pakkuja konfiguratsiooni lisamine masina ettevalmistamiseks
config_remove_providerPilveteenuse pakkuja konfiguratsiooni eemaldamine
term_execKäsu käivitamine kaugmasinal SSH kaudu

Näidistöövood

Masina oleku kontrollimine:

“Mis on minu tootmismasina olek?”

Agent kutsub machine_query - tagastab süsteemiinfo, töötavad konteinerid, teenused ja ressursikasutuse.

Rakenduse juurutamine:

“Juuruta gitlab minu lavastusmasinale”

Agent kutsub repo_up koos name: "gitlab" ja machine: "staging" - juurutab repositooriumi, tagastab edu/ebaõnnestumise.

Tõrke silumine:

“Minu nextcloud on aeglane, uuri, mis lahti on”

Agent kutsub machine_health - machine_containers - term_exec logide lugemiseks - tuvastab probleemi ja pakub lahenduse.

Konfiguratsioonivalikud

ValikVaikimisiKirjeldus
--config <nimi>(vaikimisi konfiguratsioon)Nimega konfiguratsioon, mida kõigi käskude jaoks kasutada
--timeout <ms>120000Käsu vaikeaegumine millisekundites
--allow-grandväljasLubage hävitavad toimingud grand-repositooriumidel (mitte-fork)

Turvalisus

MCP server rakendab kaks kaitsekihti:

Ainult-fork-režiim (vaikimisi)

Vaikimisi töötab server ainult-fork-režiimis, kirjutamistööriistad (repo_up, repo_down, repo_delete, backup_push, backup_pull, term_exec) saavad töötada ainult fork-repositooriumidel. Grand-repositooriumid (originaalid) on kaitstud agendi muutmiste eest.

Repo-saladused on disaini järgi ainult CLI kaudu. repo_secret_set ja repo_secret_unset ei ole tahtlikult MCP tööriistadena paljastatud. Kirjutamised nõuavad eeltingimust --current <eelmine-väärtus> (või --rotate-secret, et kinnitada kontrollimata pööramine), ja see toiming vajab inimese järelevalvet. Agendid, kes peavad saladuse pööramist soovitama, peaksid kutsuma repo_secret_get räsi kinnitamiseks, seejärel edastama operaatori CLI-käsu kasutajale JSON-vea ümbriku välja next.options[].run kaudu. Täieliku mustri jaoks vaadake AI-agendi turvalisus ja kasutajapoolse juhendi jaoks Repositooriumid - Saladused.

Grand-repositooriumide agendi muutmise lubamiseks käivitage koos --allow-grand:

{
  "mcpServers": {
    "rdc": {
      "command": "rdc",
      "args": ["mcp", "serve", "--allow-grand"]
    }
  }
}

Samuti saate seada keskkonnamuutuja REDIACC_ALLOW_GRAND_REPO ühe repo nimele, komaga eraldatud repo nimede loendile (näiteks repo1,repo2,repo3) või * kõigi repode jaoks. Kirjeid ümbritsev tühik ignoreeritakse, seega repo1, repo2 töötab ka. Masinataseme juurdepääs (näiteks term connect -m <machine> ilma repota) nõuab siiski *; repo nimede loend seda ei ava.

Repo-põhised SSH-võtmed ja serveripoolne liivakast

Igal repositooriumil on oma SSH-võtmepaar. Avalik võti juurutatakse authorized_keys-i koos command= prefiksiga, mis suunab kõik SSH-seansid läbi renet sandbox-gateway <repo-nimi>, serveri ForceCommandi, mida ükski klient ei saa mööda hiilida, kaasa arvatud VS Code.

Kuidas see toimib:

  1. rdc repo create või rdc repo fork genereerib repo kohta unikaalse ed25519-võtmepaari
  2. Avalik võti juurutatakse kaugarvutile koos command="renet sandbox-gateway <nimi>"
  3. Iga selle võtmega SSH-ühendus läbib lüüsi, mis rakendab:
    • Landlock LSM - kerneli taseme failisüsteemi piirangud repo ühendamistee jaoks
    • OverlayFS kodu-overlay - kirjutamised $HOME-i püütakse repo kaupa, lugemised langevad läbi päris koju
    • Repo-põhine TMPDIR aadressil <datastore>/.interim/sandbox/<nimi>/tmp/
    • Dockeri juurdepääs repo isoleeritud Dockeri sokli kaudu
    • Privileegide langus universaalsele kasutajale (rediacc)
  4. Repo .envrc laaditakse automaatselt Dockeri ja keskkonna seadistamiseks

Lubatud RW: repo ühendamistee, repo-põhine liivakastiruum, kodukataloog (overlay kaudu), Dockeri sokel Lubatud RO: süsteemi teed (/usr, /bin, /etc, /proc, /sys) Blokeeritud: teiste repode ühendamisteed, süsteemifailid väljaspool lubamisnimekirja

VS Code’i integratsioon: Iga repo saab oma VS Code serveri installatsiooni aadressil <datastore>/.interim/sandbox/<nimi>/.vscode-server/. Mitu repot saab olla avatud samaaegselt sõltumatute liivakastitud keskkondadega, serverite jagamine repode vahel puudub.

See takistab külgsuunalist liikumist: isegi kui agent saab kesta juurdepääsu forkile, ei saa ta lugeda ega muuta teisi repositooriume samal masinal. Masinataseme SSH (ilma repositooriumita) kasutab meeskonna võtit ja see ei ole liivakastitud.

Arhitektuur

MCP server on olekuta. Iga tööriistakutse käivitab rdc isoleeritud alamprotsessina koos lippudega --output json --yes --quiet. See tähendab:

  • Olekut ei leki tööriistakutsete vahel
  • Kasutab teie olemasolevat rdc konfiguratsiooni ja SSH-võtmeid
  • Töötab nii lokaalse kui pilvepõhise adapteriga
  • Ühe käsu vead ei mõjuta teisi