# Madar

Indexes a TypeScript or Node.js project into a local graph, then hands the agent a small task-focused context pack: files, symbols, routes. No more rediscovering the repo each time.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 21
- Author: mohanagy
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/mohanagy/madar
- Updated: 2026-10-21
- HTML: https://affpapa.org/en/nevibecode/mcp/madar

## What it does

Madar walks the source tree and records files, symbols, imports, calls, routes, handlers and framework metadata. Ask it a question and you get a narrow slice built for that task instead of the whole project. Each answer carries signals about how fresh the graph is, how much it covers, and whether a targeted look at the code is still needed.

Indexing happens on your machine, so sources stay where they are. Once a profile is installed, it watches the workspace and rebuilds graph-backed context after changes. Setup runs per agent: `madar claude install`, `madar codex install`, `madar cursor install` and so on.

Node.js 20 or newer is required. Static analysis cannot see live runtime behaviour, and heavy dynamic patterns that never make it into the graph weaken the answers. A stale graph or skipped files leaves holes in what the agent sees, so check the reported state before trusting a result.

## Requirements
- Needs: Node.js (commands run via npx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add madar -- npx -y @lubab/madar
```

### Codex

**Platform CLI**
```bash
codex mcp add madar -- npx -y @lubab/madar
```

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "madar": {
            "command": "npx",
            "args": [
                "-y",
                "@lubab/madar"
            ]
        }
    }
}
```

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "madar": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@lubab/madar"
            ]
        }
    }
}
```

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add madar npx -y @lubab/madar
```

## When to use it
- pick likely entrypoints for a task before any broad file search
- explain how a project handles authentication
- trace why an endpoint answers with 403
- estimate the blast radius of changing one service
- package context for a different coding agent to pick up

## Example prompts
- Madar, how does authentication work in this repo?
- Why does this endpoint return 403? Show me the path from the graph.
- What breaks if I change this service?

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
