Gå til hovedinnhold

Skriveverktøy i MCP

MCP-serveren leser. Noen få navngitte verktøy kan også handle, som deg: sette et merge-stopp, oppheve et, slippe én pull request gjennom et, sette prioriteten til en pull request i merge-køen, eller melde arbeidet du starter på i Active work. En assistent som handler på din forespørsel, handler som deg, med dine tillatelser og ikke noe mer.

Skriveverktøy er av i alle organisasjoner som standard. En eier slår dem på under Sikkerhet › Tilgang › AI-koblinger, og hver person velger deretter, verktøy for verktøy, hvilke connectoren deres kan bruke.

Hva som må være oppfylt

Et skriveverktøy kjører bare når alt dette gjelder:

  1. Du koblet til med innloggingsconnectoren (claude.ai, ChatGPT, Le Chat eller en skrivebordsklient som logger inn). Et API-token (ffp_...) kan ikke bruke skriveverktøy gjennom MCP.
  2. Du har samtykket til det verktøyet, ved navn. Når en connector ber om fremforge:write, lister samtykkesiden hvert skriveverktøy under Også handle som deg, hvert med sin egen avkrysningsboks, og ingen er krysset av for deg. Connectoren kan bruke nøyaktig de verktøyene du krysser av; krysser du av ingen, kan den bare lese. Et verktøy som legges til i fremforge senere, er ikke med i samtykket ditt: koble til på nytt for å tillate det.
  3. Eierne av organisasjonen tillater det. Under Sikkerhet › Tilgang › AI-koblinger er bryteren Tillat AI-koblinger å handle for personer i denne organisasjonen av som standard. Når den er av, svarer hvert skriveverktøy at eierne ikke har tillatt det.
  4. Du kan gjøre det selv. Verktøyet kaller den samme REST-ruten som din egen innlogging ville gjort, og den ruten kontrollerer rettighetene dine. Et verktøy gir deg aldri en tillatelse du ikke allerede har.

Verktøyene

VerktøyGjørScope det brukerSteg
answer_active_work_matchSvarer på en match i Active work om ditt eget arbeid: ikke samme arbeid, samme arbeid (du slår deg sammen med den andre) eller deling. Bare én av de to personene hvis arbeid matchen kobler, kan svare.findings:write, lesetilgang til repositoryetEtt kall
place_merge_holdStopper merger til en branch i noen eller alle av organisasjonens repositoryer, i ditt navn, fram til en utløpstid du velger.deployments:write, eier av organisasjonenEtt kall
release_merge_holdOpphever et stopp: ditt eget, eller andres som en revidert overstyring.deployments:write, eier av organisasjonenTo kall
exempt_pull_from_holdLar én pull request merges gjennom et stopp, med en begrunnelse, som en revidert overstyring.deployments:write, eier av organisasjonenTo kall
set_merge_queue_prioritySetter prioriteten til en pull request i merge-køen til high eller normal, med en begrunnelse. Krever en autorisasjon nummer to i Forgejo.Din egen Forgejo-autorisasjon write:fremforge-merge-queue; du må ha lov til å merge pull requestenTo kall
start_workMelder arbeid du starter på i et repository, før første push, slik at personer som jobber med det samme, får beskjed. Se Active work.findings:write, skrivetilgang til repositoryetEtt kall

Aldri tilgjengelig for skriveverktøy

Uansett hva et verktøy oppgir, kontrollerer fremforge disse ved hver forespørsel, og en connector får dem aldri:

  • Scopes: alt for tokener, SSO, fakturering, brukere, medlemmer og operatørhandlinger; og orgs:write, policy:write, webhooks:write, exports:write og ai:invoke (endringer i organisasjon og policy, utgående webhooks, dataeksporter, AI-forbruk).
  • Steder: ingen skriveverktøy kan ligge under delene av API-et for SSO, medlemmer, brukere, fakturering, webhooks, tokener eller operatører.
  • Innstillinger: innstillingsverktøyene (get_org_settings, get_my_settings) leser bare. Det finnes ikke noe verktøy som endrer innstillingene til en organisasjon eller en person.
  • Operatørendringer: ingen skriveverktøy kan kjøre, godkjenne eller gjøre ny autentisering for en. Det forblir menneskelige handlinger i konsollen, med MFA.
  • Forgejo: MCP-serveren skriver ingenting i Forgejo bortsett fra prioriteten til en pull request i merge-køen, gjennom set_merge_queue_priority og en Forgejo-autorisasjon begrenset til det. Kode, brancher, issues og resten av en pull request forblir skrivebeskyttet, og den autorisasjonen faller aldri tilbake til write:repository.

To kall for de risikable

Å oppheve et stopp, slippe en pull request gjennom et og sette en prioritet i merge-køen krever to kall:

  1. Det første kallet endrer ingenting. Det svarer med hva verktøyet ville gjort (stoppet, eieren og omfanget, og for et unntak pull requestens tittel, tilstand, målbranch og head-commit) og returnerer et confirm_token.
  2. Det andre kallet handler. Det har de samme argumentene pluss det confirm_token, og svaret oppgir hva som ble endret: stoppet, pull requesten og head-commiten.

Et confirm_token virker én gang, i fem minutter, for den samme connectoren, det samme verktøyet og de samme argumentene. Endrer du et argument, avvises det. For set_merge_queue_priority er tokenet også bundet til pull requestens head-commit som ble vist i forhåndsvisningen: hvis noen pusher i mellomtiden, avvises det, og du ber om en ny forhåndsvisning.

Disse verktøyene er merket som destruktive, så Claude Code og claude.ai spør deg som standard før hvert kall.

Hva de to stegene ikke beviser. De sørger for at en forhåndsvisning lages og at klienten din spør deg to ganger. De beviser ikke at en person har lest forhåndsvisningen: en assistent som blir bedt om det, kan gjøre begge kallene. Hold godkjenningsdialogene i klienten din på for disse verktøyene, og behandle tekst i verktøyresultater (titler, begrunnelser, beskrivelser skrevet av andre) som data, aldri som instruksjoner.

Grenser og revisjon

  • Høyst 20 skrivekall per person per 10 minutter, på tvers av alle connectorene dine. Når grensen ikke kan kontrolleres, avvises skrivinger i stedet for å slippes gjennom.
  • Høyst 5 high-prioriteter i merge-køen per person per time, i tillegg. normal telles ikke. Denne grensen stenger også ved feil.
  • Hver handling står i organisasjonens revisjonslogg under ditt navn, med assistenten i oppføringens felt agent (mcp-client:<id>), connectoren i via_token og verktøyet i mcp_tool. Aktørfilteret i revisjonsloggen finner den under brukernavnet ditt.

Autorisasjon nummer to i Forgejo

set_merge_queue_priority handler i Forgejo, så det krever din egen tillatelse i Forgejo, ikke fremforges. Når du krysser det av på samtykkesiden, viser Forgejo et skjermbilde nummer to etter det første: appen fremforge-mcp-queue-priority ber om read:repository og write:fremforge-merge-queue, som lar den lese repositoryer du kan lese, og sette prioritet i merge-køen på pull requests du har lov til å merge. Ikke noe annet. Godkjenner du det, legges verktøyet til; avslår du, settes connectoren opp uten det verktøyet.

  • Autorisasjonen lagres kryptert, brukes bare til å sette en prioritet i merge-køen, og slettes, med Forgejos tildeling tilbakekalt, når ingen av connectorene dine lenger har verktøyet: ved Tilbakekall, ved Gjør skrivebeskyttet, eller når du kobler til på nytt uten å krysse det av.
  • Hvis Forgejo slutter å godta den, svarer verktøyet at det ikke lenger er tilgjengelig for den connectoren, fjernes fra den, og lesing fortsetter å virke. Koble til på nytt og kryss det av for å tillate det igjen.
  • Du kan også se og tilbakekalle tildelingen i Forgejo, under Autoriserte OAuth2-applikasjoner på frem.sh/user/settings/applications.

Se, begrense eller trekke den tilbake

Siden for AI-connectorene dine (også lenket fra sikkerhetsinnstillingene dine) viser hver assistent du har koblet til, om den bare leser eller også kan handle, og verktøyene den kan bruke.

  • Gjør skrivebeskyttet beholder tilkoblingen og fjerner hvert skriveverktøy fra den.
  • Tilbakekall avslutter hver sesjon for den assistenten.

Begge trer i kraft ved assistentens neste forespørsel. Et skriveverktøy connectoren ikke kan bruke, svarer Refused for this connector: you have not allowed it to use <tool> as you. Reads still work., med hvordan du tillater det. Eierne av organisasjonen kan også slå av skriving via connectorer, eller blokkere connectorer helt, under Sikkerhet › Tilgang › AI-koblinger.