Üšîñĝ ţĥé bowrain þļüĝîñ ŵîţĥ ÀÎ àššîšţàñţš
kapi (ŵîţĥ ţĥé bowrain þļüĝîñ) éẋþöšéš þŕöĵéçţ ḿàñàĝéḿéñţ çàþàƃîļîţîéš àš àñ ḾÇÞ (Ḿöđéļ Çöñţéẋţ Þŕöţöçöļ) šéŕṽéŕ. Ţĥîš ļéţš ÀÎ ţööļš ļîķé Çļàüđé, ĜîţĤüƃ Çöþîļöţ, Çüŕšöŕ, Ŵîñđšüŕƒ, àñđ öţĥéŕ ḾÇÞ-çöḿþàţîƃļé àĝéñţš çĥéçķ þŕöĵéçţ šţàţüš, ļîšţ ţŕàçķéđ ƒîļéš, þüšĥ àñđ þüļļ, ḿàñàĝé ƒļöŵš, àñđ çöñšüļţ ţĥé ŵöŕķšþàçé'š çöñţéẋţ ĝŕàþĥ, àļļ ţĥŕöüĝĥ šţŕüçţüŕéđ ţööļ çàļļš.
Ǫüîçķ šţàŕţ
Šţàŕţ ţĥé ḾÇÞ šéŕṽéŕ:
kapi mcp
Ţĥîš ļàüñçĥéš à ĴŠÖÑ-ŔÞÇ šéŕṽéŕ öñ šţđîö. Ýöü đöñ'ţ ŕüñ îţ ḿàñüàļļý; ýöüŕ ÀÎ ţööļ šţàŕţš îţ àš à šüƃþŕöçéšš. Ŵîţĥ ţĥé bowrain þļüĝîñ îñšţàļļéđ, ţĥé šéŕṽéŕ'š ţööļ šéţ îñçļüđéš ţĥé þŕöĵéçţ àñđ çöñţéẋţ ţööļš ƃéļöŵ. Îţ ŕéǫüîŕéš à .kapi þŕöĵéçţ (îţ ŵàļķš üþŵàŕđ ļööķîñĝ ƒöŕ à kapi.yaml ŕéçîþé, ļîķé ĝîţ).
:::ţîþ
Ƒöŕ àđ-ĥöç ƒîļé þŕöçéššîñĝ ŵîţĥöüţ à þŕöĵéçţ, ţĥé šàḿé kapi mcp šéŕṽéš ţĥé kapi ḾÇÞ ţööļš.
:::
Šéţüþ
Çļàüđé Đéšķţöþ
Àđđ ţö ýöüŕ Çļàüđé Đéšķţöþ çöñƒîĝ (~/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_config | Ŕéàđ þŕöĵéçţ çöñƒîĝüŕàţîöñ ƒŕöḿ ţĥé kapi.yaml ŕéçîþé |
project_status | Šĥöŵ šýñç šţàţüš: þéñđîñĝ þüšĥ/þüļļ çöüñţš, šéŕṽéŕ çöññéçţîöñ |
project_ls | Ļîšţ ţŕàçķéđ ƒîļéš ŵîţĥ öþţîöñàļ šţàţš (ŵöŕđ çöüñţš, đîŕţý đéţéçţîöñ) |
project_push | Üþļöàđ ļöçàļ çĥàñĝéš ţö Bowrain Šéŕṽéŕ |
project_pull | Đöŵñļöàđ ŕéšüļţš ƒŕöḿ Bowrain Šéŕṽéŕ |
list_flows | Ļîšţ àṽàîļàƃļé ƒļöŵš (ƃüîļţ-îñ àñđ þŕöĵéçţ-đéƒîñéđ) |
concept_search | Šéàŕçĥ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ ƒöŕ ĝöṽéŕñéđ çöñçéþţš |
concept_story | Šĥöŵ ţĥé çĥŕöñöļöĝîçàļ ţîḿéļîñé öƒ à ĝöṽéŕñéđ çöñçéþţ |
experiment_status | Ŕéþöŕţ çöñţéẋţ-ĝŕàþĥ çĥàñĝé-šéţš, ŵîţĥ đéţàîļ àñđ ƃļàšţ ŕàđîüš ƒöŕ öñé çĥàñĝé-šéţ |
Ţĥé ţĥŕéé çöñçéþţ ţööļš ŕéàđ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ; ţĥéý ŕéǫüîŕé à þŕöĵéçţ çöññéçţéđ ţö à ŵöŕķšþàçé öñ à Bowrain šéŕṽéŕ.
Éẋàḿþļé çöñṽéŕšàţîöñš
"Ŵĥàţ'š ţĥé šţàţé öƒ ḿý þŕöĵéçţ?"
Àšķ ýöüŕ ÀÎ àššîšţàñţ:
Ŵĥàţ'š ţĥé šţàţüš öƒ ţĥîš þŕöĵéçţ?
Ţĥé àššîšţàñţ çàļļš project_status àñđ ŕéţüŕñš à šüḿḿàŕý: ĥöŵ ḿàñý ƒîļéš, ŵöŕđš, àñđ ƃļöçķš àŕé ţŕàçķéđ, ĥöŵ ḿàñý çĥàñĝéš àŕé þéñđîñĝ þüšĥ öŕ þüļļ, àñđ ŵĥéţĥéŕ ţĥé þŕöĵéçţ îš šýñçéđ ŵîţĥ ţĥé šéŕṽéŕ.
"Ŵĥîçĥ ƒîļéš ĥàṽé çĥàñĝéđ?"
Ŵĥîçĥ çöñţéñţ ƒîļéš ĥàṽé ļöçàļ çĥàñĝéš?
Ţĥé àššîšţàñţ çàļļš project_ls ŵîţĥ dirty: true àñđ ŕéţüŕñš öñļý ƒîļéš ŵîţĥ üñçöḿḿîţţéđ çĥàñĝéš, àļöñĝ ŵîţĥ ƃļöçķ àñđ ŵöŕđ çöüñţš.
"Ĥöŵ ƃîĝ îš ţĥîš þŕöĵéçţ?"
Ĥöŵ ḿàñý ŵöŕđš àñđ ƒîļéš àŕé îñ ţĥîš þŕöĵéçţ?
Ţĥé àššîšţàñţ çàļļš project_ls ŵîţĥ stats: true àñđ ŕéţüŕñš à ƃŕéàķđöŵñ öƒ éṽéŕý ţŕàçķéđ ƒîļé ŵîţĥ ƃļöçķ çöüñţš, ŵöŕđ çöüñţš, àñđ ţöţàļš.
"Šĥöŵ ḿé ţĥé þŕöĵéçţ çöñƒîĝ"
Ŵĥàţ ļöçàļéš àŕé çöñƒîĝüŕéđ ƒöŕ ţĥîš þŕöĵéçţ?
Ţĥé àššîšţàñţ çàļļš project_config àñđ ŕéţüŕñš ţĥé þŕöĵéçţ ñàḿé, šöüŕçé ļöçàļé, ţàŕĝéţ ļöçàļéš, šéŕṽéŕ ÜŔĻ, àñđ ƒîļé ḿàþþîñĝ çöüñţ.
"Þüšĥ ḿý çĥàñĝéš"
Þüšĥ ţĥé ļàţéšţ çĥàñĝéš ţö ţĥé šéŕṽéŕ
Ţĥé àššîšţàñţ çàļļš project_push àñđ ŕéţüŕñš ĥöŵ ḿàñý ƃļöçķš ŵéŕé üþļöàđéđ, ţĥé ŵöŕđ çöüñţ, àñđ ĥöŵ ḿàñý ƒîļéš ŵéŕé šçàññéđ.
"Þüļļ ļàţéšţ ŕéšüļţš"
Þüļļ ţĥé ļàţéšţ Ƒŕéñçĥ àñđ Ĝéŕḿàñ ŕéšüļţš ƒŕöḿ ţĥé šéŕṽéŕ
Ţĥé àššîšţàñţ çàļļš project_pull ŵîţĥ locales: ["fr", "de"] àñđ ŕéţüŕñš ĥöŵ ḿàñý ƃļöçķš ŵéŕé đöŵñļöàđéđ àñđ ƒîļéš ŵéŕé üþđàţéđ.
"Þŕéṽîéŵ ƃéƒöŕé þüšĥîñĝ"
Ŵĥàţ ŵöüļđ ĝéţ þüšĥéđ îƒ Î þüšĥ ñöŵ? Đöñ'ţ àçţüàļļý þüšĥ ýéţ.
Ţĥé àššîšţàñţ çàļļš project_push ŵîţĥ dry_run: true àñđ šĥöŵš ŵĥàţ ŵöüļđ ƃé üþļöàđéđ ŵîţĥöüţ ḿàķîñĝ àñý çĥàñĝéš.
"Κ ţĥîš ţéŕḿ àļļöŵéđ ĥéŕé?"
Κ "é-šĥöþ" à ţéŕḿ ŵé šţîļļ üšé?
Ţĥé àššîšţàñţ çàļļš concept_search ŵîţĥ ţĥé ǫüéŕý àñđ ŕéàđš ţĥé çöñçéþţ'š šţàţüš, àñđ concept_story ƒöŕ ĥöŵ îţ ĝöţ ţĥéŕé.
Ţööļ ŕéƒéŕéñçé
þŕöĵéçţ_šţàţüš
Šĥöŵ þŕöĵéçţ šýñç šţàţüš. Ŕéţüŕñš ļöçàļ þŕöĵéçţ îñƒö ŵĥéñ ñö šéŕṽéŕ îš çöñƒîĝüŕéđ.
Ñö þàŕàḿéţéŕš.
þŕöĵéçţ_çöñƒîĝ
Ŕéàđ þŕöĵéçţ çöñƒîĝüŕàţîöñ ƒŕöḿ ţĥé kapi.yaml ŕéçîþé àţ ţĥé þŕöĵéçţ ŕööţ.
Ñö þàŕàḿéţéŕš.
þŕöĵéçţ_ļš
Ļîšţ ƒîļéš ţŕàçķéđ ƃý ţĥé þŕöĵéçţ.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
paths | šţŕîñĝ[] | ñö | Ƒîļţéŕ ƃý þàţĥ þŕéƒîẋéš |
stats | ƃööļ | ñö | Îñçļüđé ƃļöçķ àñđ ŵöŕđ çöüñţš þéŕ ƒîļé |
dirty | ƃööļ | ñö | Šĥöŵ öñļý ƒîļéš ŵîţĥ ļöçàļ çĥàñĝéš |
þŕöĵéçţ_þüšĥ
Üþļöàđ ļöçàļ çĥàñĝéš ţö Bowrain Šéŕṽéŕ.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
paths | šţŕîñĝ[] | ñö | Šþéçîƒîç ƒîļé þàţĥš ţö þüšĥ (đéƒàüļţ: àļļ) |
force | ƃööļ | ñö | Ŕé-üþļöàđ éṽéŕýţĥîñĝ éṽéñ îƒ üñçĥàñĝéđ |
dry_run | ƃööļ | ñö | Šĥöŵ ŵĥàţ ŵöüļđ ƃé üþļöàđéđ ŵîţĥöüţ šéñđîñĝ |
þŕöĵéçţ_þüļļ
Đöŵñļöàđ ŕéšüļţš ƒŕöḿ Bowrain Šéŕṽéŕ.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
locales | šţŕîñĝ[] | ñö | Ļàñĝüàĝéš ţö đöŵñļöàđ (ƒöŕ éẋàḿþļé ["fr", "de"]) |
force | ƃööļ | ñö | Ŕé-đöŵñļöàđ éṽéŕýţĥîñĝ éṽéñ îƒ üñçĥàñĝéđ |
dry_run | ƃööļ | ñö | Šĥöŵ ŵĥàţ ŵöüļđ çĥàñĝé ŵîţĥöüţ ŵŕîţîñĝ ƒîļéš |
ļîšţ_ƒļöŵš
Ļîšţ àṽàîļàƃļé þŕöçéššîñĝ ƒļöŵš. Ŕéţüŕñš ƃöţĥ ƃüîļţ-îñ ƒļöŵš àñđ þŕöĵéçţ-đéƒîñéđ ƒļöŵš (îñļîñé öñ ţĥé ŕéçîþé àñđ ƒŕöḿ .kapi/flows/).
Ñö þàŕàḿéţéŕš.
çöñçéþţ_šéàŕçĥ
Šéàŕçĥ ţĥé ŵöŕķšþàçé çöñţéẋţ ĝŕàþĥ ƒöŕ ĝöṽéŕñéđ çöñçéþţš (ţéŕḿš, šţàţüš, đöḿàîñ) ḿàţçĥîñĝ à ǫüéŕý.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
query | šţŕîñĝ | ñö | Ƒŕéé-ţéẋţ ǫüéŕý àĝàîñšţ ţĥé ţéŕḿ ţéẋţ |
status | šţŕîñĝ | ñö | Ƒîļţéŕ ƃý ţéŕḿ ļîƒéçýçļé šţàţüš (þŕéƒéŕŕéđ, àđḿîţţéđ, đéþŕéçàţéđ, ƒöŕƃîđđéñ) |
market | šţŕîñĝ | ñö | Ƒîļţéŕ ƃý ḿàŕķéţ ṽàļîđîţý ţàĝ |
domain | šţŕîñĝ | ñö | Ƒîļţéŕ ƃý šüƃĵéçţ-ƒîéļđ đöḿàîñ |
limit | îñţ | ñö | Ḿàẋîḿüḿ ñüḿƃéŕ öƒ çöñçéþţš ţö ŕéţüŕñ (đéƒàüļţ 50) |
çöñçéþţ_šţöŕý
Šĥöŵ ţĥé çĥŕöñöļöĝîçàļ ţîḿéļîñé öƒ à ĝöṽéŕñéđ çöñçéþţ: ŕéṽîšîöñš, öƃšéŕṽàţîöñš, çöḿḿéñţš, àñđ çĥàñĝé-šéţš.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
concept_id | šţŕîñĝ | ýéš | Ţĥé çöñçéþţ ÎĐ ŵĥöšé ţîḿéļîñé ţö ƒéţçĥ |
éẋþéŕîḿéñţ_šţàţüš
Ŕéþöŕţ çöñţéẋţ-ĝŕàþĥ çĥàñĝé-šéţš. Ŵîţĥ à changeset_id, ŕéţüŕñš ţĥàţ çĥàñĝé-šéţ'š đéţàîļ àñđ à ƃļàšţ-ŕàđîüš šüḿḿàŕý (àƒƒéçţéđ ƃļöçķš, ñéŵ ṽîöļàţîöñš, ŕéšöļṽéđ ṽîöļàţîöñš, ŵöŕđš); ŵîţĥöüţ öñé, ļîšţš ţĥé ŵöŕķšþàçé'š çĥàñĝé-šéţš.
| Þàŕàḿéţéŕ | Ţýþé | Ŕéǫüîŕéđ | Đéšçŕîþţîöñ |
|---|---|---|---|
changeset_id | šţŕîñĝ | ñö | À çĥàñĝé-šéţ ÎĐ ţö đéţàîļ; öḿîţ ţö ļîšţ àļļ çĥàñĝé-šéţš |
status | šţŕîñĝ | ñö | Ŵĥéñ ļîšţîñĝ, ƒîļţéŕ ƃý šţàţüš (đŕàƒţ, îñ_ŕéṽîéŵ, àþþŕöṽéđ, ḿéŕĝéđ, àƃàñđöñéđ) |
Ĥöŵ îţ ŵöŕķš
Ñö šéŕṽéŕ þŕöçéšš, þöŕţš, öŕ àđđîţîöñàļ àüţĥéñţîçàţîöñ îš ñééđéđ. Ýöüŕ ÀÎ ţööļ šţàŕţš kapi mcp àš à šüƃþŕöçéšš, çöḿḿüñîçàţéš öṽéŕ šţđîñ/šţđöüţ, àñđ šĥüţš îţ đöŵñ ŵĥéñ ţĥé šéššîöñ éñđš. Îţ đîšçöṽéŕš ýöüŕ þŕöĵéçţ ţĥé šàḿé ŵàý ţĥé ÇĻÎ đöéš, ƃý ŵàļķîñĝ üþ ţĥé đîŕéçţöŕý ţŕéé ţö ƒîñđ ţĥé ñéàŕéšţ kapi.yaml ŕéçîþé.
Ŕéļàţéđ
- ÇĻÎ Öṽéŕṽîéŵ
- Þŕöĵéçţ Ḿöđéļ
- Çöḿḿàñđš Ŕéƒéŕéñçé
- kapi ḾÇÞ Šéŕṽéŕ: ţĥé ƒîļé-þŕöçéššîñĝ àñđ çöñţéẋţ ţööļš