Token导航 LogoToken导航

MCP Server · 开发工具

astrograph (Thaylo)

ASTrograph是一个基于抽象语法树(AST)的代码重复检测工具,通过算法比对代码结构来识别重复代码,帮助开发者和AI代理避免重复编写功能相同的代码。

stdio官方级别未说明来源级核验工具 0
PythonClaude开发工具Claude Desktop

快速开始

作者 / 组织
Thaylo
提供方
Thaylo

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

8

仓库热度

收录来源

1 个

MCP World

选型结论

astrograph (Thaylo) 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,适配 Claude Desktop、Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

天体照相仪

一 MCP服务器 这有助于AI代理在编写之前检测重复代码。它提供了编写和编辑工具,使用AST图同构将新代码与代码库中的现有函数进行比较——由算法而不是LLM令牌提供支持。当发现结构重复时,将使用指向现有代码的指针阻止该操作。变量名、格式和注释将被忽略——如果两段代码共享相同的抽象结构,则ASTrogram会将它们标记为重复。

安装

添加 .mcp.json 到您的项目根目录:

{
  "mcpServers": {
    "astrograph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", "--pull", "missing",
        "--add-host", "host.docker.internal:host-gateway",
        "-v", ".:/workspace",
        "thaylo/astrograph:latest"
      ]
    }
  }
}

图像是多拱形(amd64,arm64)。代码库在启动时被索引。元数据存储在项目目录之外(在用户数据目录中),因此它永远不会干扰您的代码库。

要更新到新版本,请执行以下操作:

docker pull thaylo/astrograph:latest

运行版本在MCP中始终可见 serverInfo.version 连接上的字段。

Claude Desktop

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "astrograph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", "--pull", "missing",
        "--add-host", "host.docker.internal:host-gateway",
        "-v", "/absolute/path/to/project:/workspace",
        "thaylo/astrograph:latest"
      ]
    }
  }
}

Codex

~/.codex/config.toml:

[mcp_servers.astrograph]
command = "docker"
args = [
  "run", "--rm", "-i", "--pull", "missing",
  "--add-host", "host.docker.internal:host-gateway",
  "-v", "/absolute/path/to/project:/workspace",
  "thaylo/astrograph:latest"
]

wmark

~/.config/wmark/.mcp.json (用户级别,适用于macOS上的所有项目):

{
  "mcpServers": {
    "astrograph": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i", "--pull", "missing",
        "--add-host", "host.docker.internal:host-gateway",
        "-v", "/Users:/Users:rw",
        "thaylo/astrograph:latest"
      ]
    }
  }
}

安装 /Users 使容器内的所有macOS主路径保持不变。呼叫 set_workspace 使用完整的主机路径(例如。 /Users/yourname/project)为项目编制索引。

对于Linux,替换 /Users:/Users:rw 和 /home:/home:rw.

Without Docker

pip install .
{
  "mcpServers": {
    "astrograph": {
      "command": "python",
      "args": ["-m", "astrograph.server"],
      "cwd": "/path/to/astrograph"
    }
  }
}

运作原理

您的代码库已包含:

# src/math.py
def calculate_sum(a, b):
    return a + b

AI代理试图写:

# src/utils.py
def add_numbers(x, y):
    return x + y

A程序检测到重复并阻止写入:

BLOCKED: Cannot write - identical code exists at src/math.py:calculate_sum (lines 1-2).
Reuse the existing implementation instead.

不同的变量名,相同的结构。源代码被转换为带标签的有向图,并使用Weisfeiler Leman哈希与VF2同构验证进行比较——所有这些都是算法,没有在搜索上花费LLM令牌。

检测类型

AST程序检测四种类型的结构复制:

类型它捕获了什么它是如何工作的
精确具有重命名变量或不同格式的相同AST结构WL哈希标识+VF2图同构验证
模式具有不同运算符或常量的相同控制流运算符规范化图哈希
块函数内重复的内部块(for/if/while/try)块级AST提取+哈希匹配
近重复约80%的结构相似性——复制粘贴修改模式4/5深度级别的层次哈希前缀匹配

接近重复检测可以捕获精确和模式检测失败的Type-3克隆。例如,Flask的 TagBytes, TagDateTime, TagTuple,以及 TagUUID 类共享80%以上的相同结构,但在叶级细节上有所不同。

语言支持

Python、JavaScript和TypeScript可以开箱即用。C、C++、Java和Go通过TCP连接到已经运行的语言服务器。

语言版本模式默认端点
Python3.11-3.14捆绑pylsp
JavaScriptES2021+,节点20/22/24 LTS捆绑typescript-language-server --stdio
TypeScriptTypeScript 5.x,节点20/22/24 LTS捆绑typescript-language-server --stdio
转到1.21--1.25附加tcp://127.0.0.1:2091
CC11、C17、C23附tcp://127.0.0.1:2087
C++C++17、C++20、C++23附加tcp://127.0.0.1:2088
Java11、17、21、25附加tcp://127.0.0.1:2089

Docker镜像捆绑了Python和JS/TS LSP运行时。对于基于连接的语言,使用以下命令在TCP端口上公开语言服务器 socat 并通过MCP JSON进行配置:

{
  "mcpServers": {
    "astrograph": {
      "command": "docker",
      "args": ["run", "--rm", "-i", "--add-host", "host.docker.internal:host-gateway", "-v", ".:/workspace", "thaylo/astrograph:latest"],
      "env": {
        "ASTROGRAPH_CPP_LSP_COMMAND": "tcp://host.docker.internal:2088",
        "ASTROGRAPH_GO_LSP_COMMAND": "tcp://host.docker.internal:2091",
        "ASTROGRAPH_JAVA_LSP_COMMAND": "tcp://host.docker.internal:2089",
        "ASTROGRAPH_C_LSP_COMMAND": "tcp://host.docker.internal:2087"
      }
    }
  }
}
语言Env-varSocat桥示例
C ASTROGRAPH_C_LSP_COMMANDsocat TCP-LISTEN:2087,reuseaddr,fork EXEC:clangd
C ASTROGRAPH_CPP_LSP_COMMANDsocat TCP-LISTEN:2088,reuseaddr,fork EXEC:clangd
Java ASTROGRAPH_JAVA_LSP_COMMANDsocat TCP-LISTEN:2089,reuseaddr,fork EXEC:jdtls
去吧ASTROGRAPH_GO_LSP_COMMANDsocat TCP-LISTEN:2091,reuseaddr,fork EXEC:"gopls serve"
python ASTROGRAPH_PY_LSP_COMMAND(捆绑,必要时覆盖)
JSASTROGRAPH_JS_LSP_COMMAND(捆绑,必要时覆盖)
TSASTROGRAPH_TS_LSP_COMMAND(捆绑,必要时覆盖)

跑 lsp_setup(mode='inspect') 查看哪些语言可用,缺少什么。

真实世界的结果

在流行的开源项目上进行了测试:

项目语言文件代码单位发现重复项
瑞迪斯C20818272556组
类型ORMTypeScript4927107511组
Express.jsJavaScript1413866468组
nlohmann/jsonC++4889103959组
金酒前往991557141组
烧瓶Python2491048组
春季宠物诊所Java4727017组

通过VF2图同构验证了精确、模式和块发现。通过层次哈希前缀相似性(约80%的结构同一性)匹配近似重复项。

星迹

许可证

麻省理工学院

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

代码检测Python本地部署AST分析代码优化开发工具AI辅助编程

支持客户端

Claude DesktopClaude

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude Desktop、Claude,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 已经在用 Claude Desktop 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
astrograph (Thaylo)

MCP World · 本页

0stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

astrograph (Thaylo) 怎么安装?

公开资料给出的安装命令是 pip install .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

astrograph (Thaylo) 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

astrograph (Thaylo) 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

astrograph (Thaylo) 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

astrograph (Thaylo) 支持哪些客户端?

公开资料标注支持 Claude Desktop、Claude;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP