MCP-skrivverktyg
MCP-servern läser. Några namngivna verktyg kan också agera, som dig: lägga en merge-spärr, släppa en, släppa igenom en pull request förbi en, ange en pull requests prioritet i merge-kön, eller anmäla arbetet du påbörjar i Pågående arbete. En assistent som agerar på din begäran agerar som dig, med dina behörigheter och inget mer.
Skrivverktyg är avstängda i alla organisationer som standard. En ägare slår på dem under Säkerhet › Åtkomst › AI-anslutningar, och varje person väljer sedan, verktyg för verktyg, vilka hens anslutning får använda.
Vad som måste gälla
Ett skrivverktyg körs bara när allt detta gäller:
- Du anslöt med anslutningen som loggar in (claude.ai, ChatGPT, Le Chat eller en skrivbordsklient som loggar in). En API-token (
ffp_...) kan inte använda skrivverktyg via MCP. - Du har samtyckt till just det verktyget, med namn. När en anslutning begär
fremforge:writelistar samtyckessidan varje skrivverktyg under Agera också som dig, vart och ett med en egen ruta, och ingen är ikryssad åt dig. Anslutningen får använda exakt de verktyg du kryssar i; kryssa inte i något så läser den bara. Ett verktyg som läggs till i fremforge senare ingår inte i ditt samtycke: anslut igen för att tillåta det. - Organisationens ägare tillåter det. Under Säkerhet › Åtkomst › AI-anslutningar är reglaget Låt AI-anslutningar agera för personer i den här organisationen avstängt som standard. När det är av svarar varje skrivverktyg att ägarna inte har tillåtit det.
- Du får göra det själv. Verktyget anropar samma REST-route som din egen inloggning skulle göra, och den routen kontrollerar dina rättigheter. Ett verktyg ger dig aldrig en behörighet som du inte redan har.
Verktygen
| Verktyg | Gör | Scope det använder | Steg |
|---|---|---|---|
answer_active_work_match | Besvarar en matchning i Pågående arbete som gäller ditt eget arbete: inte samma arbete, samma arbete (du ansluter dig) eller dela upp. Bara en av de två personer vars arbete matchningen parar ihop kan besvara den. | findings:write, läsåtkomst till repot | Ett anrop |
place_merge_hold | Spärrar merges till en branch i några av eller alla organisationens repon, i ditt namn, fram till en tidpunkt du väljer. | deployments:write, organisationsägare | Ett anrop |
release_merge_hold | Släpper en spärr: din egen, eller någon annans som en granskad åsidosättning. | deployments:write, organisationsägare | Två anrop |
exempt_pull_from_hold | Låter en pull request mergas förbi en spärr, med en motivering, som en granskad åsidosättning. | deployments:write, organisationsägare | Två anrop |
set_merge_queue_priority | Sätter en pull requests prioritet i merge-kön till high eller normal, med en motivering. Kräver en andra auktorisering i Forgejo. | Din egen Forgejo-auktorisering write:fremforge-merge-queue; du måste få merga pull requesten | Två anrop |
start_work | Anmäler arbete du påbörjar i ett repo, före första pushen, så att personer som arbetar med samma sak får veta det. Se Pågående arbete. | findings:write, skrivåtkomst till repot | Ett anrop |
Aldrig tillgängligt för skrivverktyg
Oavsett vad ett verktyg deklarerar kontrollerar fremforge följande vid varje begäran, och en anslutning får dem aldrig:
- Scopes: allt som rör tokens, SSO, fakturering, användare, medlemmar och operatörsåtgärder; samt
orgs:write,policy:write,webhooks:write,exports:writeochai:invoke(ändringar av organisation och policy, utgående webhooks, dataexporter, AI-kostnader). - Platser: inget skrivverktyg får ligga under de delar av API:t som gäller SSO, medlemmar, användare, fakturering, webhooks, tokens eller operatörer.
- Inställningar: inställningsverktygen (
get_org_settings,get_my_settings) läser bara. Det finns inget verktyg som ändrar en organisations eller en persons inställningar. - Operatörsändringar: inget skrivverktyg kan köra, godkänna eller stega upp en. De förblir mänskliga handlingar i konsolen, med MFA.
- Forgejo: MCP-servern skriver ingenting i Forgejo utom en pull requests prioritet i merge-kön, via
set_merge_queue_priorityoch en Forgejo-auktorisering som är begränsad till just det. Kod, brancher, issues och resten av en pull request förblir skrivskyddade, och den auktoriseringen faller aldrig tillbaka påwrite:repository.
Två anrop för de riskfyllda
Att släppa en spärr, släppa igenom en pull request förbi en och sätta en prioritet i merge-kön kräver två anrop:
- Det första anropet ändrar ingenting. Det svarar med vad verktyget skulle göra (spärren, dess ägare och omfattning, och för ett undantag pull requestens titel, status, målbranch och head-commit) och returnerar en
confirm_token. - Det andra anropet agerar. Det har samma argument plus den
confirm_token, och dess svar anger vad som ändrades: spärren, pull requesten och dess head-commit.
En confirm_token fungerar en gång, i fem minuter, för samma anslutning, verktyg och argument. Ändrar du ett argument avvisas den. För set_merge_queue_priority är token också knuten till pull requestens head-commit som visades i förhandsvisningen: om någon pushar däremellan avvisas den och du begär en ny förhandsvisning.
De här verktygen är markerade som destruktiva, så Claude Code och claude.ai frågar dig före varje anrop som standard.
Gränser och granskning
- Högst 20 skrivanrop per person per 10 minuter, över alla dina anslutningar. När gränsen inte kan kontrolleras avvisas skrivningar i stället för att släppas igenom.
- Högst 5
high-prioriteter i merge-kön per person och timme, utöver det.normalräknas inte. Även den här gränsen stänger vid fel. - Varje åtgärd finns i organisationens granskningslogg under ditt namn, med assistenten i postens fält
agent(mcp-client:<id>), anslutningen ivia_tokenoch verktyget imcp_tool. Granskningsloggens filter för aktör hittar den under ditt användarnamn.
Den andra Forgejo-auktoriseringen
set_merge_queue_priority agerar i Forgejo, så det behöver din egen Forgejo-behörighet, inte fremforges. När du kryssar i det på samtyckessidan visar Forgejo en andra skärm efter den första: appen fremforge-mcp-queue-priority begär read:repository och write:fremforge-merge-queue, som låter den läsa repon du kan läsa och sätta prioritet i merge-kön på pull requests som du får merga. Inget annat. Godkänn det så läggs verktyget till; avböj så konfigureras anslutningen utan det verktyget.
- Auktoriseringen lagras krypterad, används bara för att sätta en prioritet i merge-kön och raderas, och Forgejos tillstånd återkallas, när ingen av dina anslutningar längre har verktyget: vid Återkalla, vid Gör skrivskyddad eller när du ansluter igen utan att kryssa i det.
- Om Forgejo slutar godta den svarar verktyget att det inte längre är tillgängligt för den anslutningen, tas bort från den, och läsningar fortsätter att fungera. Anslut igen och kryssa i det för att tillåta det på nytt.
- Du kan också se och återkalla tillståndet i Forgejo, under Auktoriserade OAuth2-appar på
frem.sh/user/settings/applications.
Se, begränsa eller dra tillbaka det
Din sida för AI-anslutningar (som också länkas från dina säkerhetsinställningar) listar varje assistent du har anslutit, om den bara läser eller även får agera, och vilka verktyg den får använda.
- Gör skrivskyddad behåller anslutningen och tar bort alla skrivverktyg från den.
- Återkalla avslutar varje session för den assistenten.
Båda slår igenom vid assistentens nästa begäran. Ett skrivverktyg som anslutningen inte får använda svarar Refused for this connector: you have not allowed it to use <tool> as you. Reads still work., med en förklaring av hur du tillåter det. Organisationens ägare kan också stänga av skrivningar för anslutningar, eller blockera anslutningar helt, under Säkerhet › Åtkomst › AI-anslutningar.