Skip to main content
Glama

scalpel

npm version npm downloads

Your agent asks "where is collectDefinitions defined?" Here's the same question, answered two ways, on this exact codebase:

Real terminal output: get_symbol returns 253 tokens vs 2,683 for reading the whole file

That's not a mockup — it's real output from running this tool against its own source. Same answer, 90% fewer tokens, because it never reads the file it doesn't need.

What it does

An MCP server that gives an agent get_symbol(name) instead of a whole file. It returns just the definition span and its usages — nothing else gets read.

npm install -g @amritessh/scalpel

# index a repo (lang: ts | python | go, default ts)
scalpel-index /path/to/repo /path/to/repo/.scalpel/index.db [lang]

# run the MCP server over stdio
scalpel /path/to/repo /path/to/repo/.scalpel/index.db

Point an MCP client at it (stdio transport, args: <repoPath> <dbPath>). For Claude Code:

claude mcp add scalpel -- scalpel /path/to/repo /path/to/repo/.scalpel/index.db

Related MCP server: Omniscience

How it compares

Measured against real, installed competitors — not a straw-man "read everything" baseline (zod/TypeScript, n=40 questions):

Tool

Definition-only cost

Definition accuracy

Usage-lookup cost

Usage accuracy

grep

6,783 tokens

100%

29,898 tokens

60%

jcodemunch-mcp

2,723 tokens

82%

—

—

Serena (LSP)

2,386 tokens

100%

~245–250K tokens (hub fns)

—

scalpel

1,732 tokens

100%

3,126 tokens

100%

scalpel wins on cost and accuracy on both question types — cheapest on plain definition lookups and on usage/reference lookups, where grep's text-matching produces false positives and misses real callers.

We didn't always win that table — here's the fix

The first version of this comparison had scalpel losing to both competitors on definition-only cost (4,158 tokens vs. 2,723 and 2,386). Instead of tuning the marketing copy, we read the code: get_symbol was unconditionally fetching and returning every usage site, even when the question was just "where is this defined." Added a flag to skip that when it's not needed, re-ran the full benchmark, and the table above is the corrected result — publishing the numbers we actually measured, including the ones that were worse first. Full writeup, raw data, and the fix itself: scalpel-fse2027-artifact.

One honest limit: tested on 57 real historical bug-fixes, this ties a plain grep/Read agent on fix rate and speed — cheaper and more accurate retrieval, not (on current evidence) a faster agent. Best fit: cost-sensitive usage at volume, and usage/reference-heavy work (refactors, impact analysis) where the accuracy edge above holds.

Background

This tool grew out of a research study on symbol-level code retrieval for AI coding agents — token cost, real dollar cost, and task-completion effects, tested across multiple languages and 57 real historical bugs, submitted to ACM FSE 2027. The frozen research artifact (raw data, benchmark harness, full writeup) lives at amritessh/scalpel-fse2027-artifact.

This repository is the maintained, installable product — its source is developed separately from the research artifact above.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers