glyph
๐ฎ glyph โ mcp server to map your codebase with symbol outlines
Documentation
glyph
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.
Installation
macOS
Install Go:
$ brew install goInstall the latest version of glyph:
$ GOBIN=/usr/local/bin go install "github.com/benmyles/glyph@latest"What it does
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.
Why glyph?
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.
Key Features
- Declarative Query-Based Extraction - Uses Tree-sitter's query language for precise, maintainable symbol extraction
- Glob-based file discovery - Point it at your code with familiar patterns
- Language-agnostic architecture - Easy to add new languages with just query patterns
- Configurable detail levels - Choose how much context you need
- Multi-file support - Get a unified view across your entire project
- MCP-native - Built for seamless integration with AI coding workflows
- High performance - Optimized Tree-sitter queries for fast extraction
Supported Languages
- Go - Functions, methods, types, structs, interfaces, constants, variables
- Java - Classes, interfaces, methods, constructors, fields, enums, records, annotations
- JavaScript/TypeScript - Functions, classes, methods, arrow functions, variables, interfaces, type aliases
- Python - Functions, classes, decorated definitions, assignments
- Easy to extend - Adding new languages requires only ~20 lines of query patterns
Architecture
glyph uses a modern, declarative approach:
- Tree-sitter queries replace complex AST traversal logic
- Language-specific query patterns define what symbols to extract
- Unified extraction engine works across all languages
- Modular design with separate concerns for queries, extraction, formatting, and file handling
Symbol Types
glyph uses concise symbol type names to minimize token usage:
- `func` - Functions and function-like declarations
- `method` - Class/struct methods
- `class` - Classes
- `interface` - Interfaces
- `struct` - Structs (Go)
- `type` - Type declarations (Go)
- `const` - Constants
- `var` - Variables
- `field` - Class/struct fields
- `constructor` - Constructors
- `enum` - Enumerations
- `record` - Records (Java)
- `annotation` - Annotations (Java)
- `property` - Properties (TypeScript)
Usage
Integration with AI Coding Assistants
Claude Code
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 mcpTo verify the installation:
# List all configured servers
claude mcp list
# Check glyph server details
claude mcp get glyphYou can also check the server status anytime within Claude Code using the `/mcp` command.
Cursor
Add glyph to your Cursor MCP configuration:
1. Open Cursor settings (Cmd/Ctrl + ,)
2. Search for "MCP" or navigate to Extensions โ MCP
3. Add glyph to your MCP servers:
{
"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.
MCP Server Mode (default)
Run glyph as an MCP server for integration with LLM coding agents:
$ glyph mcpCLI Mode
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.
Detail Levels
Minimal
Shows just symbol names and types with line numbers:
- func: main (line 15)
- struct: Server (line 5)
- method: Start (line 10)Standard (default)
Shows signatures and declarations:
- func: func main()
- struct: type Server struct
- method: func (s *Server) Start() errorFull
Shows complete symbol definitions with code blocks:
- func (lines 15-20):func main() {
server := &Server{}
server.Start()
}
// Code blockDevelopment
$ git clone https://github.com/benmyles/glyph
$ cd glyph$ make clean$ make test$ make build$ make install DESTDIR=/usr/local/binAdding New Languages
Thanks to the query-based architecture, adding support for a new language is straightforward:
1. Add language detection in `file_utils.go` (~2 lines)
2. Add query patterns in `queries.go` (~10-20 lines)
3. Add to query dispatcher in `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
}Performance
- Fast parsing with Tree-sitter's incremental parsing
- Optimized queries for efficient symbol extraction
- Minimal memory usage with streaming file processing
- Parser reuse for better performance across multiple files
Frequently asked questions
What is glyph?
glyph is ๐ฎ glyph โ mcp server to map your codebase with symbol outlines
How do I install glyph?
Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.
Is glyph open source?
Yes โ it is hosted on GitHub at https://github.com/benmyles/glyph and has 9 stars.
Related MCP tools
Query anything (GitHub, Notion, +40 more) with SQL and let LLMs (ChatGPT, Claude) connect to using MCP Go-based implementation. Trusted by 1300+ developers.
Plugin for JADX to integrate MCP server Java-based implementation. Trusted by 600+ developers. Trusted by 600+ developers.
:robot: The free, Open Source alternative to OpenAI, Claude and others. Self-hosted and local-first. Drop-in replacement for OpenAI, running on consumer-gra...
The most powerful MCP Slack Server with no permission requirements, Apps support, multiple transports Stdio and SSE, DMs, Group DMs and smart history fetch l...
Composio equips your AI agents & LLMs with 100+ high-quality integrations via function calling for the Model Context Protocol. Enhance AI assistants with powerf
๐ฆ Repomix is a powerful tool that packs your entire repository into a single, AI-friendly file. Perfect for when you need to feed your codebase to Large Lan...
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP