返回市场
符号

符号

作者:benmyles9 星标更新:2025-05-31

项目介绍

glyph

一个使用Tree-sitter声明式查询语言从代码库中提取符号轮廓的模型上下文协议(MCP)服务器。它为LLM编码代理提供了清晰高效的符号提取,从而提供所需的上下文。也可以作为独立的CLI工具使用。

安装

macOS

安装Go:

$ brew install go

安装最新版本的glyph:

$ GOBIN=/usr/local/bin go install "github.com/benmyles/glyph@latest"

功能概述

glyph接受文件路径通配符,递归地发现匹配的代码文件,并使用Tree-sitter的强大查询语言解析它们以生成准确的符号轮廓。你可以控制细节级别——从高级结构到完整的函数签名及其可见性修饰符。

为什么选择glyph?

当LLM编码代理理解你的代码结构时,它们表现最佳。glyph通过提供干净的多文件符号映射来填补这一空白,这些映射作为高效上下文而不会超过令牌限制。

主要特性

  • 基于声明式查询的提取 - 使用Tree-sitter的查询语言进行精确且易于维护的符号提取
  • 基于通配符的文件发现 - 使用熟悉的模式指向你的代码
  • 与语言无关的架构 - 添加新语言只需查询模式
  • 可配置的细节级别 - 选择你需要的上下文量
  • 多文件支持 - 获得整个项目的统一视图
  • MCP原生 - 为无缝集成AI编码工作流而设计
  • 高性能 - 优化的Tree-sitter查询实现快速提取

支持的语言

  • Go - 函数、方法、类型、结构体、接口、常量、变量
  • Java - 类、接口、方法、构造器、字段、枚举、记录、注解
  • JavaScript/TypeScript - 函数、类、方法、箭头函数、变量、接口、类型别名
  • Python - 函数、类、装饰定义、赋值
  • 易于扩展 - 添加新语言只需要大约20行查询模式

架构

glyph采用现代的声明式方法:

  • Tree-sitter查询 替代复杂的AST遍历逻辑
  • 特定于语言的查询模式 定义要提取的符号
  • 统一的提取引擎 在所有语言中工作
  • 模块化设计 查询、提取、格式化和文件处理分离

符号类型

glyph使用简洁的符号类型名称以最小化令牌使用:

  • func - 函数及类似声明
  • method - 类/结构体方法
  • class - 类
  • interface - 接口
  • struct - 结构体(Go)
  • type - 类型声明(Go)
  • const - 常量
  • var - 变量
  • field - 类/结构体字段
  • constructor - 构造器
  • enum - 枚举
  • record - 记录(Java)
  • annotation - 注解(Java)
  • property - 属性(TypeScript)

使用

与AI编码助手集成

Claude Code

使用MCP命令将glyph添加到Claude Code:

# 将glyph作为本地MCP服务器添加(用于当前项目)
claude mcp add glyph /usr/local/bin/glyph mcp

验证安装:

# 列出所有已配置的服务器
claude mcp list

# 检查glyph服务器详情
claude m[...]