Who it is forA developer who has just joined or inherited a codebase and uses Claude Code or Cursor daily, and needs accurate answers about who calls what.
The problemGrep and glob return text matches, so the agent guesses at which function, caller or subclass really matters.
The outcomeThe agent answers structural questions by querying the compiled index through Benzi tools such as get_callers, get_hierarchy and get_definition.
What you need first
- Python 3.11 to 3.14 on Windows, macOS or Linux, for the pip install
- An email address for the one-time login code
- An API key from Anthropic or a non-Anthropic provider (DeepSeek, Groq, Kimi and others) for the Benzi agent, or an existing MCP-capable agent such as Claude Code or Cursor for the MCP server
Steps
- Run
pip install benzi. - Run
benzi-login --login [email protected], then type the one-time code emailed to you. - Run
claude mcp add --scope user benzi -- benzi-mcpto register the server with Claude Code. - Open Claude Code in your repo folder and ask it who calls a function you name, for example which call sites reach a given function.
Prompt for your agent
Using the Benzi MCP tools on the repo at <repo path>, list every call site that reaches the function <function name> and the resolved base classes of <class name>. Expected output: a list of caller locations and a hierarchy list. Verify that each listed location exists in the file it names.
Caveat. The MCP server gives the map only, so answer quality depends on the agent you use, and the agent features such as the runtime tracer are not included.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for oooscoos/Benzi and "Answer questions about a repo inside Claude Code"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer