{"name":"ai.kawacode/mcp","slug":"kawacode-mcp","title":"Kawa Code","description":"Team-aware memory: intent, decisions, real-time conflicts for AI coding assistants.","url":"https://mcp.market/server/kawacode-mcp","rating":null,"grade":"A","score":89,"certified":false,"status":"active","category":"other","tags":[],"presence":{"score":31,"stars":0,"forks":0,"downloads_week":324,"last_push_at":"2026-11-03T03:32:18.000Z","license":"NOASSERTION"},"uptime":null,"claimed":false,"transport":"npm","callable_via_gateway":false,"default_price_micros":0,"repository":"https://github.com/kawacode-ai/kawa.mcp","website":"https://kawacode.ai","version":"10.1.1","remotes":[],"packages":[{"registryType":"npm","identifier":"@kawacode/mcp","version":"10.1.1","transport":{"type":"stdio"}}],"tools":[{"name":"activate_intent","description":"Activate an existing intent by ID — sets it as THIS session's current focus. Use this to: - Switch your current focus to a different intent found via list_team_intents or get_relevant_context - Re-activate an intent that was deactivated (e.g., to complete it) - Resume work on a previously created intent - Resume an \"abandoned\" intent (see below) Accepts both cloud IDs (from get_relevant_context / ","write_action":false,"price_micros":0,"input_schema":null},{"name":"arbiter_apply","description":"Resolve live code overlaps and AUTO-APPLY the safe tier. Kawa judges → adversarially verifies → and,","write_action":false,"price_micros":0,"input_schema":null},{"name":"arbiter_resolve","description":"Get Kawa Code's AI verdict for live code overlaps with peers — SUGGEST-ONLY, never writes.","write_action":false,"price_micros":0,"input_schema":null},{"name":"check_active_intent","description":"REQUIRED before writing any code. Returns this session's current intent; if there is none, confirm the details with the user and call create_and_activate_intent. Intents are active PER SESSION — many can be active on one repo at once. hasActiveIntent reflects only YOUR session, while activeIntents lists every session's current intent (yours and teammates') and may be non-empty when you have none. ","write_action":false,"price_micros":0,"input_schema":null},{"name":"complete_intent","description":"Mark the active intent completed and clear it. Call after a successful git commit, passing commitSha so code blocks are captured. status: committed (default, local commit) | pushed | done | abandoned. You MUST inspect the response: - success === true — done. If committedDecisionCount > 0, say N decisions were recorded; do NOT list them. If apiSyncDeferred, say the sync was deferred and will replay","write_action":false,"price_micros":0,"input_schema":null},{"name":"create_and_activate_intent","description":"Create a new intent from the user's request and mark it as active for THIS session. Call this when check_active_intent returns no active intent for your session. Before calling: 1. Summarize what the user is asking for 2. Ask the user to confirm the intent details (title, description, type) 3. Then call this tool with the confirmed details This ensures all AI-generated code gets properly tracked a","write_action":true,"price_micros":0,"input_schema":null},{"name":"detect_intent_conflicts","description":"Find intents from other team members that potentially conflict with the active intent. When to use: - Before committing, to surface overlapping team work so the user can coordinate before merging. Inputs of note: - `intentId`: the active intent to check against. - `minScore` (optional): minimum match score to include in results. Returns scored conflict candidates with: - `score`: how strongly the ","write_action":false,"price_micros":0,"input_schema":null},{"name":"edit_session_decision","description":"Edit or delete a decision in the current session. Use this when reviewing decisions before commit: - action: \"update\" - Modify the decision fields - action: \"delete\" - Remove the decision entirely Only ephemeral (in-flight) session decisions are editable. Once a decision is synced to Kawa Code, it is immutable — refine it instead by recording a new decision with `supersedes: [<id>]`. This allows u","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_decision_detail","description":"Expand one decision to its full detail. Recall surfaces (get_relevant_context, get_project_decisions, get_session_decisions) return decisions summary-only to keep context lean. Use this to pull the full reasoning for a single decision you want to open — pay for detail only where you ask for it. Inputs: - `decisionId`: the decision to expand (the `id` / `decisionId` from a recall result). Returns t","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_intents_for_file","description":"Intents with code blocks in a file, so you can see in-progress work and team conflicts before editing. Pass startLine + endLine to narrow to a range; the result then reports the exact overlap and warns when it hits a teammate's active intent.","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_project_decisions","description":"ONE PAGE of the project's decisions across all intents, newest first — architectural choices, trade-offs, and the constraints they respected. Max 100 rows. If `hasMore`, you are holding a prefix, not the history: walk it with `offset`, or better, use get_relevant_context for the decisions that bear on your task. For the whole corpus (export, audit), use Kawa Code, not this tool. Returns: decisions","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_relevant_context","description":"Find past intents and decisions relevant to the current user request. When to use: - After you have done a quick initial exploration of the user's request and know which files are involved. Calling earlier with only a vague prompt gives weak results. - To pull task-specific context instead of dumping all recent activity — preferred for large projects. Inputs of note: - `prompt`: the user request, ","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_resolution_context","description":"Resolve a live code collision with a peer BEFORE you write (Layer C resolution handoff). Call this when the Stop hook's collision report (or complete_intent's resolution_required gate) surfaced a live peer (a teammate or AI agent editing the same lines). Pass that collision's uid as peerUid and its overlapping ranges. You get back: - peerSnippet — the peer's actual (decrypted) code at the overlapp","write_action":false,"price_micros":0,"input_schema":null},{"name":"get_session_decisions","description":"Get all decisions recorded in the current session for an intent. Use this before committing to review what decisions were captured during development. Decisions are presented for user review and can be edited or removed before being persisted. Returns: - intentId: The intent these decisions belong to - decisions: Array of decision points (summary-only — call get_decision_detail(decisionId) for ful","write_action":false,"price_micros":0,"input_schema":null},{"name":"infer_history","description":"One-time-ish bootstrap: mine a repo's git history into intents and decisions. Rare — use it to seed a repo that has no recorded history yet, or to extend coverage after many new commits. NOT part of the per-turn workflow. Costs real money and time, so it is a two-step call: run with estimateOnly (the default) to preview tokens/cost, show the user, then re-call with estimateOnly: false only if they","write_action":false,"price_micros":0,"input_schema":null},{"name":"list_team_intents","description":"List intents from team members for this repository. Use this to: - See what your team is working on - Check for potential overlapping work before starting a new task - Review the status of various features/refactors in progress Filtering (status, author, date range) and pagination are applied server-side across the full result set (default: 50 per page; use limit/offset to page). `count` is the to","write_action":false,"price_micros":0,"input_schema":null},{"name":"log_work","description":"DEPRECATED — trivial changes (typos, one-line fixes, obvious bugs, doc updates, config changes) should skip the intent workflow entirely: just make the change and commit, no intent needed. Do not call this tool. Kept available for backwards compatibility only and will be removed in a future release.","write_action":false,"price_micros":0,"input_schema":null},{"name":"pre_edit_acknowledge","description":"Acknowledge pre-edit decisions so they stop blocking your edits for the rest of this session. When a pre_edit_decision_check block fires and you judge the surfaced reasoning does NOT apply to your edit, call this with the surfaced decision IDs, then retry the edit — those decisions won't re-block this session. The acknowledgment is recorded by this call itself appearing in the session transcript, ","write_action":false,"price_micros":0,"input_schema":null},{"name":"pre_edit_decision_check","description":"Check whether the line range about to be edited has prior recorded reasoning attached. Call this BEFORE editing code in a kawa-indexed repo. Surfaces: - Tier 1a — overlapping intents whose blocks cover these lines (line-precise team coordination + intent-scoped decisions) - Tier 1b — repo decisions whose relatedFiles include this file (file-coarse, catches infer_history-extracted constraints) (Liv","write_action":false,"price_micros":0,"input_schema":null},{"name":"record_decision","description":"Silently record a decision point during development. Call this tool when you: - Choose between multiple alternatives (type: fork) - Try an approach that fails or is rejected (type: abandoned) - Find unexpected behavior or limitations (type: discovery) - Identify a hard constraint that must be respected (type: constraint) - Make an explicit trade-off between competing concerns (type: tradeoff) - Se","write_action":false,"price_micros":0,"input_schema":null},{"name":"resume_intent","description":"Resume an existing intent by ID in one call — activate it AND load its recorded decisions. Use this to pick up a handoff. When a prompt says \"follow up on intent <id>\" (or you otherwise want to continue a specific existing intent), call resume_intent(<id>) instead of creating a new one. It: - activates the intent as THIS session's current focus (multi-active — never displaces a teammate's active i","write_action":false,"price_micros":0,"input_schema":null},{"name":"update_intent","description":"Update an active intent's title, description, scope, or constraints. Use this to reformulate an intent as understanding evolves during work. Intents are living documents — they should be updated to reflect what the work actually became, not left as the initial guess. Common triggers for reformulation: - The real problem turned out to be different from the initial hypothesis - Scope expanded or nar","write_action":true,"price_micros":0,"input_schema":null}],"scan":{"score":89,"grade":"A","scanned_at":"2026-11-03T19:41:50.215Z","report":{"scannerVersion":"0.1.10","scannedAt":"2026-11-03T19:41:50.162Z","components":{"code":{"score":25,"max":25,"notes":["99 source files scanned"]},"reliability":{"score":-1,"max":20,"notes":["no gateway calls yet and no remote to probe"]},"poisoning":{"score":-1,"max":15,"notes":["tools not inspected (local package is not executed); not counted"]},"auth":{"score":12,"max":15,"notes":["local package, no credentials required"]},"maintenance":{"score":15,"max":15,"notes":["last push 1 days ago"]},"identity":{"score":6,"max":10,"notes":["namespace and repository owner differ","website matches verified namespace"]}},"findings":[],"inputs":{"packages":[{"registryType":"npm","identifier":"@kawacode/mcp","version":"10.1.1","found":true,"license":"SEE LICENSE IN LICENSE","hasInstallScripts":false,"dependencyCount":2,"publishedAt":"2026-11-03T03:31:49.422Z","weeklyDownloads":324}],"repo":{"found":true,"owner":"kawacode-ai","repo":"kawa.mcp","archived":false,"pushedAt":"2026-11-03T03:32:18Z","stars":0,"forks":0,"openIssues":0,"ownerType":"Organization","ownerAvatarUrl":"https://avatars.githubusercontent.com/u/269092837?v=4","ownerCreatedAt":"2026-03-18T04:33:31Z","license":"NOASSERTION"},"icon":{"url":"https://kawacode.ai/assets/logo.svg","source":"registry"},"presence":{"stars":0,"forks":0,"downloadsWeek":324,"license":"NOASSERTION","lastPushAt":"2026-11-03T03:32:18.000Z","score":31}}}},"grade_history":[],"reviews":[]}