Üšîñĝ ţĥé ƃöŵŕàîñ þļüĝîñ ŵîţĥ ÀÎ àššîšţàñţš
Àñ ÀÎ àššîšţàñţ çöññéçţéđ ţĥŕöüĝĥ ḾÇÞ ŵöŕķš ƒŕöḿ ţĥé šàḿé ŵöŕķšþàçé çöñţéẋţ àš ýöüŕ ţéàḿ. Îţ çàñ çĥéçķ þŕöĵéçţ šţàţüš, ļîšţ ţŕàçķéđ ƒîļéš, þüšĥ àñđ þüļļ, àñđ ŕéàđ ţĥé çöñçéþţš àñđ çĥàñĝé-šéţš îñ ţĥé ŵöŕķšþàçé'š çöñţéẋţ ĝŕàþĥ.
ķàþî ŵîţĥ ţĥé ƃöŵŕàîñ þļüĝîñ šéŕṽéš ţĥéšé àš àñ ḾÇÞ (Ḿöđéļ Çöñţéẋţ Þŕöţöçöļ) šéŕṽéŕ. Çļàüđé, ĜîţĤüƃ Çöþîļöţ, Çüŕšöŕ, Ŵîñđšüŕƒ àñđ öţĥéŕ ḾÇÞ-çöḿþàţîƃļé àĝéñţš çàļļ ţĥéḿ àš šţŕüçţüŕéđ ţööļš.
Ǫüîçķ šţàŕţ
Šţàŕţ ţĥé ḾÇÞ šéŕṽéŕ:
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 ŕéçîþé.
Ŕéļàţéđ
- ÇĻÎ Öṽéŕṽîéŵ
- Þŕöĵéçţ Ḿöđéļ
- Çöḿḿàñđš Ŕéƒéŕéñçé
- ķàþî ḾÇÞ Šéŕṽéŕ: ţĥé ƒîļé-þŕöçéššîñĝ àñđ çöñţéẋţ ţööļš