Šķîþ ţö ḿàîñ çöñţéñţ

Üšîñĝ ţĥé ƃöŵŕàîñ þļüĝîñ ŵîţĥ ÀÎ àššîšţàñţš

Àñ ÀÎ àššîšţàñţ çöññéçţéđ ţĥŕöüĝĥ ḾÇÞ ŵöŕķš ƒŕöḿ ţĥé šàḿé ŵöŕķšþàçé çöñţéẋţ àš ýöüŕ ţéàḿ. Îţ çàñ çĥéçķ þŕöĵéçţ šţàţüš, ļîšţ ţŕàçķéđ ƒîļéš, þüšĥ àñđ þüļļ, àñđ ŕéàđ ţĥé çöñçéþţš àñđ çĥàñĝé-šéţš îñ ţĥé ŵöŕķšþàçé'š çöñţéẋţ ĝŕàþĥ.

ķàþî ŵîţĥ ţĥé ƃöŵŕàîñ þļüĝîñ šéŕṽéš ţĥéšé àš àñ ḾÇÞ (Ḿöđéļ Çöñţéẋţ Þŕöţöçöļ) šéŕṽéŕ. Çļàüđé, ĜîţĤüƃ Çöþîļöţ, Çüŕšöŕ, Ŵîñđšüŕƒ àñđ öţĥéŕ ḾÇÞ-çöḿþàţîƃļé àĝéñţš çàļļ ţĥéḿ àš šţŕüçţüŕéđ ţööļš.

Ǫüîçķ šţàŕţ​

Šţàŕţ ţĥé ḾÇÞ šéŕṽéŕ:

kapi mcp

Ţĥîš ļàüñçĥéš à ĴŠÖÑ-ŔÞÇ šéŕṽéŕ öñ šţđîö. Ýöü đöñ'ţ ŕüñ îţ ḿàñüàļļý; ýöüŕ ÀÎ ţööļ šţàŕţš îţ àš à šüƃþŕöçéšš. Ŵîţĥ ţĥé ƃöŵŕàîñ þļüĝîñ îñšţàļļéđ, ţĥé šéŕṽéŕ'š ţööļ šéţ îñçļüđéš ţĥé þŕöĵéçţ àñđ çöñţéẋţ ţööļš ƃéļöŵ. Îţ ŕéǫüîŕéš à .kapi þŕöĵéçţ (îţ ŵàļķš üþŵàŕđ ļööķîñĝ ƒöŕ à kapi.yaml ŕéçîþé, ļîķé ĝîţ).

:::ţîþ Ƒöŕ àđ-ĥöç ƒîļé þŕöçéššîñĝ ŵîţĥöüţ à þŕöĵéçţ, ţĥé šàḿé kapi mcp šéŕṽéš ţĥé ķàþî ḾÇÞ ţööļš. :::

Šéţüþ​

Çļàüđé Đéšķţöþ​

Àđđ ţö ýöüŕ Çļàüđé Đéšķţöþ çöñƒîĝ (~/Library/Application Support/Claude/claude_desktop_config.json öñ ḿàçÖŠ, %APPDATA%\Claude\claude_desktop_config.json öñ Ŵîñđöŵš):

{
"mcpServers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}

Ŕéšţàŕţ Çļàüđé Đéšķţöþ. Ţĥé ţööļš àþþéàŕ îñ ţĥé ţööļ þîçķéŕ.

Çļàüđé Çöđé​

Àđđ ţö ýöüŕ þŕöĵéçţ'š .mcp.json ƒîļé (öŕ çŕéàţé îţ àţ ţĥé ŕéþöšîţöŕý ŕööţ):

{
"mcpServers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}

Çļàüđé Çöđé đîšçöṽéŕš àñđ çöññéçţš ţö ţĥé šéŕṽéŕ àüţöḿàţîçàļļý.

ṼŠ Çöđé (ĜîţĤüƃ Çöþîļöţ / Çöþîļöţ Çĥàţ)​

Àđđ ţö .vscode/mcp.json îñ ýöüŕ þŕöĵéçţ:

{
"servers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}

Öŕ àđđ ţö ýöüŕ ṼŠ Çöđé šéţţîñĝš (.vscode/settings.json):

{
"mcp": {
"servers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}
}

Çüŕšöŕ​

Àđđ ţö ýöüŕ Çüŕšöŕ ḾÇÞ çöñƒîĝ (~/.cursor/mcp.json):

{
"mcpServers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}

Ŵîñđšüŕƒ​

Àđđ ţö ýöüŕ Ŵîñđšüŕƒ ḾÇÞ çöñƒîĝ (~/.windsurf/mcp.json):

{
"mcpServers": {
"kapi": {
"command": "kapi",
"args": ["mcp"]
}
}
}

:::ţîþ ΃ kapi îš ñöţ îñ ýöüŕ $PATH, üšé ţĥé ƒüļļ þàţĥ ţö ţĥé ƃîñàŕý (ƒöŕ éẋàḿþļé /usr/local/bin/kapi öŕ $HOME/go/bin/kapi). :::

Àṽàîļàƃļé ţööļš​

Öñçé çöññéçţéđ, ýöüŕ ÀÎ àššîšţàñţ çàñ çàļļ ţĥéšé ţööļš ƃéšîđé ţĥé ķàþî ḾÇÞ ţööļš:

ŢööļŴĥàţ îţ đöéš
project_statusŠĥöŵ šýñç šţàţüš: þéñđîñĝ þüšĥ/þüļļ çöüñţš, šéŕṽéŕ çöññéçţîöñ
project_lsĻîšţ ţŕàçķéđ ƒîļéš ŵîţĥ öþţîöñàļ šţàţš (ŵöŕđ çöüñţš, đîŕţý đéţéçţîöñ)
project_pushÜþļöàđ ļöçàļ çĥàñĝéš ţö Ƃöŵŕàîñ Šéŕṽéŕ
project_pullĐöŵñļöàđ ŕéšüļţš ƒŕöḿ Ƃöŵŕàîñ Šéŕṽéŕ
concept_storyŠĥöŵ ţĥé çĥŕöñöļöĝîçàļ ţîḿéļîñé öƒ à ĝöṽéŕñéđ çöñçéþţ
experiment_statusŔéþöŕţ çöñţéẋţ-ĝŕàþĥ çĥàñĝé-šéţš, ŵîţĥ đéţàîļ àñđ ƃļàšţ ŕàđîüš ƒöŕ öñé çĥàñĝé-šéţ

Ţĥé ţŵö çöñţéẋţ-ĝŕàþĥ ţööļš ŕéàđ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ; ţĥéý ŕéǫüîŕé à þŕöĵéçţ çöññéçţéđ ţö à ŵöŕķšþàçé öñ à Ƃöŵŕàîñ šéŕṽéŕ.

Ţŵö ḿöŕé ţööļš àŕé šéŕṽéđ öñļý ƃý ţĥé þļüĝîñ'š öŵñ ḾÇÞ šéŕṽéŕ, kapi-bowrain mcp-server, ƒöŕ à çļîéñţ çöñƒîĝüŕéđ ţö šţàŕţ ţĥàţ ƃîñàŕý đîŕéçţļý:

ŢööļŴĥàţ îţ đöéš
project_configŔéàđ þŕöĵéçţ çöñƒîĝüŕàţîöñ ƒŕöḿ ţĥé kapi.yaml ŕéçîþé
concept_searchŠéàŕçĥ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ ƒöŕ ĝöṽéŕñéđ çöñçéþţš

ķàþî'š öŵñ ţööļš ŕéàđ ţĥé ŕéçîþé. context_search àḿöñĝ ţĥé ķàþî ţööļš àñšŵéŕš ŵĥàţ à þŕöĵéçţ çàļļš šöḿéţĥîñĝ, àñđ concept_search ŕéàđš ţĥé ŵöŕķšþàçé ĝŕàþĥ.

Éẋàḿþļé çöñṽéŕšàţîöñš​

"Ŵĥàţ'š ţĥé šţàţé öƒ ḿý þŕöĵéçţ?"​

Àšķ ýöüŕ ÀÎ àššîšţàñţ:

Ŵĥàţ'š ţĥé šţàţüš öƒ ţĥîš þŕöĵéçţ?

Ţĥé àššîšţàñţ çàļļš project_status àñđ ŕéţüŕñš à šüḿḿàŕý: ĥöŵ ḿàñý ƒîļéš, ŵöŕđš, àñđ ƃļöçķš àŕé ţŕàçķéđ, ĥöŵ ḿàñý çĥàñĝéš àŕé þéñđîñĝ þüšĥ öŕ þüļļ, àñđ ŵĥéţĥéŕ ţĥé þŕöĵéçţ îš šýñçéđ ŵîţĥ ţĥé šéŕṽéŕ.

"Ŵĥîçĥ ƒîļéš ĥàṽé çĥàñĝéđ?"​

Ŵĥîçĥ çöñţéñţ ƒîļéš ĥàṽé ļöçàļ çĥàñĝéš?

Ţĥé àššîšţàñţ çàļļš project_ls ŵîţĥ dirty: true àñđ ŕéţüŕñš öñļý ƒîļéš ŵîţĥ üñçöḿḿîţţéđ çĥàñĝéš, àļöñĝ ŵîţĥ ƃļöçķ àñđ ŵöŕđ çöüñţš.

"Ĥöŵ ƃîĝ îš ţĥîš þŕöĵéçţ?"​

Ĥöŵ ḿàñý ŵöŕđš àñđ ƒîļéš àŕé îñ ţĥîš þŕöĵéçţ?

Ţĥé àššîšţàñţ çàļļš project_ls ŵîţĥ stats: true àñđ ŕéţüŕñš à ƃŕéàķđöŵñ öƒ éṽéŕý ţŕàçķéđ ƒîļé ŵîţĥ ƃļöçķ çöüñţš, ŵöŕđ çöüñţš, àñđ ţöţàļš.

"Þüšĥ ḿý çĥàñĝéš"​

Þüšĥ ţĥé ļàţéšţ çĥàñĝéš ţö ţĥé šéŕṽéŕ

Ţĥé àššîšţàñţ çàļļš project_push àñđ ŕéţüŕñš ĥöŵ ḿàñý ƃļöçķš ŵéŕé üþļöàđéđ, ţĥé ŵöŕđ çöüñţ, àñđ ĥöŵ ḿàñý ƒîļéš ŵéŕé šçàññéđ.

"Þüļļ ļàţéšţ ŕéšüļţš"​

Þüļļ ţĥé ļàţéšţ Ƒŕéñçĥ àñđ Ĝéŕḿàñ ŕéšüļţš ƒŕöḿ ţĥé šéŕṽéŕ

Ţĥé àššîšţàñţ çàļļš project_pull ŵîţĥ locales: ["fr", "de"] àñđ ŕéţüŕñš ĥöŵ ḿàñý ƃļöçķš ŵéŕé đöŵñļöàđéđ àñđ ƒîļéš ŵéŕé üþđàţéđ.

"Þŕéṽîéŵ ƃéƒöŕé þüšĥîñĝ"​

Ŵĥàţ ŵöüļđ ĝéţ þüšĥéđ îƒ Î þüšĥ ñöŵ? Đöñ'ţ àçţüàļļý þüšĥ ýéţ.

Ţĥé àššîšţàñţ çàļļš project_push ŵîţĥ dry_run: true àñđ šĥöŵš ŵĥàţ ŵöüļđ ƃé üþļöàđéđ ŵîţĥöüţ ḿàķîñĝ àñý çĥàñĝéš.

"Ĥöŵ đîđ ţĥîš ţéŕḿ ĝéţ îţš šţàţüš?"​

Ŵĥý îš "é-šĥöþ" đéþŕéçàţéđ?

Ţĥé àššîšţàñţ çàļļš concept_story ŵîţĥ ţĥé çöñçéþţ'š ÎĐ àñđ ŕéàđš ţĥé ŕéṽîšîöñš, öƃšéŕṽàţîöñš àñđ çöḿḿéñţš ţĥàţ ļéđ ţö ţĥé šţàţüš.

Ţööļ ŕéƒéŕéñçé​

þŕöĵéçţ_šţàţüš​

Šĥöŵ þŕöĵéçţ šýñç šţàţüš. Ŕéţüŕñš ļöçàļ þŕöĵéçţ îñƒö ŵĥéñ ñö šéŕṽéŕ îš çöñƒîĝüŕéđ.

Ñö þàŕàḿéţéŕš.

þŕöĵéçţ_ļš​

Ļîšţ ƒîļéš ţŕàçķéđ ƃý ţĥé þŕöĵéçţ.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
pathsšţŕîñĝ[]ñöƑîļţéŕ ƃý þàţĥ þŕéƒîẋéš
statsƃööļñöÎñçļüđé ƃļöçķ àñđ ŵöŕđ çöüñţš þéŕ ƒîļé
dirtyƃööļñöŠĥöŵ öñļý ƒîļéš ŵîţĥ ļöçàļ çĥàñĝéš

þŕöĵéçţ_þüšĥ​

Üþļöàđ ļöçàļ çĥàñĝéš ţö Ƃöŵŕàîñ Šéŕṽéŕ.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
pathsšţŕîñĝ[]ñöŠþéçîƒîç ƒîļé þàţĥš ţö þüšĥ (đéƒàüļţ: àļļ)
forceƃööļñöŔé-üþļöàđ éṽéŕýţĥîñĝ éṽéñ îƒ üñçĥàñĝéđ
dry_runƃööļñöŠĥöŵ ŵĥàţ ŵöüļđ ƃé üþļöàđéđ ŵîţĥöüţ šéñđîñĝ

þŕöĵéçţ_þüļļ​

Đöŵñļöàđ ŕéšüļţš ƒŕöḿ Ƃöŵŕàîñ Šéŕṽéŕ.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
localesšţŕîñĝ[]ñöĻàñĝüàĝéš ţö đöŵñļöàđ (ƒöŕ éẋàḿþļé ["fr", "de"])
forceƃööļñöŔé-đöŵñļöàđ éṽéŕýţĥîñĝ éṽéñ îƒ üñçĥàñĝéđ
dry_runƃööļñöŠĥöŵ ŵĥàţ ŵöüļđ çĥàñĝé ŵîţĥöüţ ŵŕîţîñĝ ƒîļéš

çöñçéþţ_šţöŕý​

Šĥöŵ ţĥé çĥŕöñöļöĝîçàļ ţîḿéļîñé öƒ à ĝöṽéŕñéđ çöñçéþţ: ŕéṽîšîöñš, öƃšéŕṽàţîöñš, çöḿḿéñţš, àñđ çĥàñĝé-šéţš.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
concept_idšţŕîñĝýéšŢĥé çöñçéþţ ÎĐ ŵĥöšé ţîḿéļîñé ţö ƒéţçĥ

éẋþéŕîḿéñţ_šţàţüš​

Ŕéþöŕţ çöñţéẋţ-ĝŕàþĥ çĥàñĝé-šéţš. Ŵîţĥ à changeset_id, ŕéţüŕñš ţĥàţ çĥàñĝé-šéţ'š đéţàîļ àñđ à ƃļàšţ-ŕàđîüš šüḿḿàŕý (àƒƒéçţéđ ƃļöçķš, ñéŵ ṽîöļàţîöñš, ŕéšöļṽéđ ṽîöļàţîöñš, ŵöŕđš); ŵîţĥöüţ öñé, ļîšţš ţĥé ŵöŕķšþàçé'š çĥàñĝé-šéţš.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
changeset_idšţŕîñĝñöÀ çĥàñĝé-šéţ ÎĐ ţö đéţàîļ; öḿîţ ţö ļîšţ àļļ çĥàñĝé-šéţš
statusšţŕîñĝñöŴĥéñ ļîšţîñĝ, ƒîļţéŕ ƃý šţàţüš (đŕàƒţ, îñ_ŕéṽîéŵ, àþþŕöṽéđ, ḿéŕĝéđ, àƃàñđöñéđ)

Šéŕṽéđ öñļý ƃý kapi-bowrain mcp-server​

þŕöĵéçţ_çöñƒîĝ​

Ŕéàđ þŕöĵéçţ çöñƒîĝüŕàţîöñ ƒŕöḿ ţĥé kapi.yaml ŕéçîþé àţ ţĥé þŕöĵéçţ ŕööţ.

Ñö þàŕàḿéţéŕš.

çöñçéþţ_šéàŕçĥ​

Šéàŕçĥ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ ƒöŕ ĝöṽéŕñéđ çöñçéþţš (ţéŕḿš, šţàţüš, đöḿàîñ) ḿàţçĥîñĝ à ǫüéŕý.

ÞàŕàḿéţéŕŢýþéŔéǫüîŕéđĐéšçŕîþţîöñ
queryšţŕîñĝñöƑŕéé-ţéẋţ ǫüéŕý àĝàîñšţ ţĥé ţéŕḿ ţéẋţ
statusšţŕîñĝñöƑîļţéŕ ƃý ţéŕḿ ļîƒéçýçļé šţàţüš (þŕéƒéŕŕéđ, àđḿîţţéđ, đéþŕéçàţéđ, ƒöŕƃîđđéñ)
marketšţŕîñĝñöƑîļţéŕ ƃý ḿàŕķéţ ṽàļîđîţý ţàĝ
domainšţŕîñĝñöƑîļţéŕ ƃý šüƃĵéçţ-ƒîéļđ đöḿàîñ
limitîñţñöḾàẋîḿüḿ ñüḿƃéŕ öƒ çöñçéþţš ţö ŕéţüŕñ (đéƒàüļţ 50)

Ĥöŵ îţ ŵöŕķš​

Ýöü ŕüñ ñö šéŕṽéŕ þŕöçéšš, öþéñ ñö þöŕţš àñđ šéţ üþ ñö éẋţŕà àüţĥéñţîçàţîöñ. Ýöüŕ ÀÎ ţööļ šţàŕţš kapi mcp àš à šüƃþŕöçéšš, ţàļķš ţö îţ öṽéŕ šţđîñ/šţđöüţ, àñđ šĥüţš îţ đöŵñ ŵĥéñ ţĥé šéššîöñ éñđš. Îţ ƒîñđš ýöüŕ þŕöĵéçţ àš ţĥé ÇĻÎ đöéš, ƃý ŵàļķîñĝ üþ ţĥé đîŕéçţöŕý ţŕéé ţö ţĥé ñéàŕéšţ kapi.yaml ŕéçîþé.

Ŕéļàţéđ​