Guide

jCodeMunch with Devin Desktop

Formerly Windsurf. One command sets it up, plus the rules that tell Devin Local to use it.

Run init

uvx jcodemunch-mcp init --policy

Run it from your project folder. init registers jCodeMunch once for every project, and --policy adds the rules to that project, after asking. The rules are per project, so run it again in each new one. The first start downloads the package and can take a few seconds; after that it starts from cache.

Came from Windsurf? init updates your Windsurf config, which Devin Desktop imports from ~/.codeium/windsurf. If Devin doesn’t list jcodemunch afterwards, add the entry below. New to Devin Desktop? init doesn’t find it yet, so add the entry below first, then run init for the rules.

The rules are what tell Devin Local

A connected server is not the same as a used one. Left alone, the agent keeps reaching for whole-file reads. init --policy writes the jCodeMunch policy to AGENTS.md, which Devin Local reads. The policy tells the agent to ask the index for the function it needs instead of opening the file.

The manual entry

If you’d rather write it yourself, add this to ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows):

{
  "mcpServers": {
    "jcodemunch": {
      "command": "uvx",
      "args": ["jcodemunch-mcp"]
    }
  }
}

Fewer approval prompts

Devin Local asks before every MCP tool call. Allow rules stop that, one tool at a time. They go under "permissions" in ~/.config/devin/config.json (%APPDATA%\devin\config.json on Windows, or .devin/config.json for one project), not in the MCP file.

"permissions": {
  "allow": ["mcp__jcodemunch__search_symbols", "mcp__jcodemunch__get_symbol_source"]
}

A new install starts with a small front door, and its dispatch tools are marked as writers because they can reach anything. To allow the read tools by name, set "tool_surface": "full" in ~/.code-index/config.jsonc and restart the server first. If JCODEMUNCH_TOOL_SURFACE is set in Devin’s server entry or your environment, it wins over the config key, so change it there. Then allow the tools that only read the index and keep the prompt for indexing. A server-wide rule such as "mcp__jcodemunch__*" would allow every jCodeMunch tool, indexing included.

Check it’s working

Ask the agent where a function is used. You should see a jCodeMunch tool call, not a file read. If you see neither, general client troubleshooting is in CLIENTS.md.

Using it at work? Personal and other non-commercial use is free. Work use at a for-profit company, or for client or paid work, needs a license, paid once: see the prices.