# skeletongraph

Indexes a repository with tree-sitter, no LLM involved, and returns the agent a ranked list of functions that fit the task.

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

## What it does

SkeletonGraph parses your code into function nodes joined by call edges using tree-sitter. No language model touches the index. Three signals then rank the same symbols: BM25, code embeddings, and the call graph. Reciprocal-rank fusion merges them, and the agent gets functions back with file and line.

It speaks MCP, so it plugs into Claude, Codex, Cursor, GitHub Copilot, Windsurf, Cline, Zed, and Gemini CLI. Parsing covers Python, JavaScript, TypeScript, Go, Rust, Java, C#, C++, Ruby, and PHP. The server launches through `uvx`, which means `uv` has to be on the machine first — otherwise the command fails.

The author built a study around this retriever: 3,433 agent runs with every patch checked against the project's tests, plus 500 retrieval evaluations without an agent. The result is worth reading before you install. Retrieval is genuinely better than the agents' own search — the right file came first on 80–92% of tasks versus 61–90%. But production agents already read code from the correct file on 96–100% of tasks, so the search advantage rarely survives into the actual fix. Evaluation covered Python repositories.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add skeletongraph -- uvx skeletongraph
```
uvx runs the command named after the package; if the README names another one, use uvx --from skeletongraph <command>

### Codex

**Platform CLI**
```bash
codex mcp add skeletongraph -- uvx skeletongraph
```
uvx runs the command named after the package; if the README names another one, use uvx --from skeletongraph <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "skeletongraph": {
            "command": "uvx",
            "args": [
                "skeletongraph"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from skeletongraph <command>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "skeletongraph": {
            "type": "stdio",
            "command": "uvx",
            "args": [
                "skeletongraph"
            ]
        }
    }
}
```
uvx runs the command named after the package; if the README names another one, use uvx --from skeletongraph <command>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add skeletongraph uvx skeletongraph
```
uvx runs the command named after the package; if the README names another one, use uvx --from skeletongraph <command>

## When to use it
- locate the function to edit from an issue description
- get ranked symbols instead of a grep dump
- follow call edges between functions during search
- wire structural code search into an agent over MCP
- compare BM25, embeddings, and structure on the same symbols

## Example prompts
- Use skeletongraph to find the functions I need to change for this issue
- Index the repo and show the top 5 functions matching "payment handling"
- Which functions does `process_order` call? Show me the call graph

## 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
