
Glyph
STDIOTree-sitter-powered code symbol extractor for LLM coding agents
Tree-sitter-powered code symbol extractor for LLM coding agents
A Model Context Protocol (MCP) server that extracts symbol outlines from your codebase using Tree-sitter's declarative query language. Gives LLM coding agents the context they need with clean, efficient symbol extraction. Can also be used as a standalone CLI tool.
Install Go:
$ brew install go
Install the latest version of glyph:
$ GOBIN=/usr/local/bin go install "github.com/benmyles/glyph@latest"
glyph takes a file path glob, recursively discovers matching code files, and parses them using Tree-sitter's powerful query language to generate accurate symbol outlines. You control the level of detail—from high-level structure to complete function signatures with visibility modifiers.
LLM coding agents work best when they understand your code's structure. glyph bridges that gap by providing clean, multi-file symbol maps that serve as efficient context without overwhelming token limits.
glyph uses a modern, declarative approach:
glyph uses concise symbol type names to minimize token usage:
func
- Functions and function-like declarationsmethod
- Class/struct methodsclass
- Classesinterface
- Interfacesstruct
- Structs (Go)type
- Type declarations (Go)const
- Constantsvar
- Variablesfield
- Class/struct fieldsconstructor
- Constructorsenum
- Enumerationsrecord
- Records (Java)annotation
- Annotations (Java)property
- Properties (TypeScript)Add glyph to Claude Code using the MCP command:
# Add glyph as a local MCP server (for your current project) claude mcp add glyph /usr/local/bin/glyph mcp
To verify the installation:
# List all configured servers claude mcp list # Check glyph server details claude mcp get glyph
You can also check the server status anytime within Claude Code using the /mcp
command.
Add glyph to your Cursor MCP configuration:
{ "mcpServers": { "glyph": { "command": "/usr/local/bin/glyph", "args": ["mcp"] } } }
After configuration, you can use glyph through the MCP interface to extract symbol outlines from your codebase, helping the AI understand your code structure better.
Run glyph as an MCP server for integration with LLM coding agents:
$ glyph mcp
Use glyph directly from the command line to extract symbols:
$ glyph cli '/path/to/project/*.go'
$ glyph cli -detail=minimal '/path/to/project/**/*.js'
Options:
-detail
: Level of detail (minimal
, standard
, or full
). Default is standard
.Note: All file patterns must be absolute paths.
Shows just symbol names and types with line numbers:
- func: main (line 15)
- struct: Server (line 5)
- method: Start (line 10)
Shows signatures and declarations:
- func: func main()
- struct: type Server struct
- method: func (s *Server) Start() error
Shows complete symbol definitions with code blocks:
- func (lines 15-20):
func main() { server := &Server{} server.Start() }
$ git clone https://github.com/benmyles/glyph $ cd glyph
$ make clean
$ make test
$ make build
$ make install DESTDIR=/usr/local/bin
Thanks to the query-based architecture, adding support for a new language is straightforward:
file_utils.go
(~2 lines)queries.go
(~10-20 lines)queries.go
(~5 lines)Example for adding Rust support:
// In file_utils.go case ".rs": return rust.GetLanguage(), nil // In queries.go var rustQueries = map[string]string{ "functions": ` (function_item name: (identifier) @name ) @function `, "structs": ` (struct_item name: (type_identifier) @name ) @struct `, // ... more patterns }