mcpField
M
MCP AST Explorer

MCP AST Explorer

本地服务
github.com/LovRanRan开发工具017 周前更新

关于 MCP AST Explorer

MCP AST Explorer 是面向代码库入门 Agent 的 Python 专用 MCP 服务,可确定性地探索代码符号。它基于 LibCST 查询;找不到符号时返回结构化结果而非猜测,但仅支持局部的同模块分析。

主要功能

  1. 01查找模块、类、函数和方法定义
  2. 02获取函数和方法签名
  3. 03定位同模块符号引用
  4. 04检测直接调用者和子类
  5. 05为缺失符号返回结构化错误

适用场景

  1. 01在代码库入门时解释 Python 符号
  2. 02检查函数签名及局部引用
  3. 03追踪函数的直接调用者
  4. 04查看类的直接子类

MCP 相关

向 MCP 客户端提供 Python 符号查询工具,包括定义、签名、引用、调用链和类层次查询。不支持跨文件解析或 TypeScript 分析。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"lovranran-mcp-ast-explorer": {
"command": "uvx",
"args": [
"mcp-ast-explorer"
]
}
}
}
启动命令uvx mcp-ast-explorer

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypimcp-ast-explorer0.1.0

工具

6

收录的工具列表 · 更新于 3 周前

此工具无需参数。

详细介绍

mcp-ast-explorer

用于确定性探索 Python 代码库符号的 MCP 服务。

mcp-ast-explorer 使用 LibCST 为 Python 源文件建立索引,并提供专注于代码库入门的 MCP 工具:查找定义、查看函数签名、本地引用、直接调用链,以及简单的类层级查询。

代码库入门工具栈

mcp-ast-explorer 是 Project 6 wayfinder(一个代码库入门 Agent)的三服务 MCP 工具栈中的语义符号层。

  • mcp-repo-mapper 映射仓库结构、语言、入口点、框架证据和 Python 依赖边。
  • mcp-ast-explorer 提供基于符号的 Python 定义、签名、引用、调用链和类层级查询。
  • mcp-test-runner 运行本地 pytest/Jest 检查并生成覆盖率摘要,以便 Agent 根据执行结果验证其声明。

在 wayfinder 中,该服务负责说明入口点和符号,同时拒绝臆造缺失的符号。

状态

这是一个仅支持 Python 的 v1 版本。TypeScript 已注册为不受支持的后端占位项,为服务提供明确的扩展点,但目前尚未实现 TypeScript 分析。

该服务不会使用大模型查找符号。如果请求的符号或类不在已解析的索引中,工具会返回结构化的未找到结果,而不是臆造答案。

工具

工具用途
health()在冒烟检查中返回 ok。
find_definition(path, symbol, language="python")查找模块、类、函数或方法的定义。
function_signature(path, symbol, language="python")返回函数或方法符号的签名。
find_references(path, symbol, language="python")返回现有符号在同一模块中的 CST 名称引用。
call_chain(path, from_symbol, depth=2, language="python")返回根据本地引用检测到的直接调用方。
class_hierarchy(path, class_name, language="python")返回根据简单基类名称检测到的直接子类。

支持范围

  • 使用 LibCST 解析的 Python 文件。
  • 符号类型:模块、类、函数和方法。
  • 对简单名称进行同一模块内的引用查找。
  • 从函数或方法容器中检测直接调用方。
  • 检测简单 class Child(Base): 继承关系中的直接子类。
  • 对不受支持的语言和缺失的符号返回结构化错误。

当前限制

  • v1 不支持跨文件导入和整个包范围的解析。
  • 不解析别名、星号导入、动态属性访问和限定引用。
  • call_chain 目前仅返回直接调用方;尚未实现递归的多跳展开。
  • class_hierarchy 目前仅返回直接子类,并处理简单的基类名称。
  • v1 有意不支持 TypeScript。

本地开发

安装依赖:

uv sync --extra dev

运行 MCP 服务:

uv run mcp-ast-explorer

运行验证:

uv run ruff check .
uv run mypy
uv run pytest

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。