Token导航 LogoToken导航TokenDH.com
beret (Chapeaux) logo
开发工具未说明官方级别未说明来源级核验

beret (Chapeaux)

MCP Server

Beret是一个构建代码库内存RDF知识图谱的MCP服务器,提供专用工具和SPARQL查询功能,支持17种编程语言的结构化AST分析和元数据提取。

工具数

20

提示词数

0

GitHub Stars

3

资源数

0
代码分析Rust知识图谱

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

chapeaux

提供方

chapeaux

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

贝雷帽

一个MCP服务器,它构建代码库的内存RDF知识图,并通过专门构建的工具和SPARQL查询公开它。它使用结构化AST分析解析17种编程语言,从配置文件和文档中提取元数据,记录二进制文件信息,并允许您通过模型上下文协议探索一切。

安装

方法命令要求
npxnpx @chapeaux/beretNode.js
npx(JSR)npx jsr:@chapeaux/beretNode.js
货物cargo install chapeaux-beret锈蚀1.85+
来源cargo build --release锈蚀1.85+

发布配置文件支持LTO和单个编码器单元,以实现最大的二进制性能。

用法

服务器从一个空的知识图和按需索引开始。呼叫 refresh_index 使用目录路径填充图形,然后使用其他工具进行探索。这使您可以启动一个服务器,并在工作时将其重新定位到不同的项目或子目录。

模式命令传输index_repo 工具
本地beret
远程beret --serve 8080HTTP/SSE
远程(绑定所有)beret --serve 0.0.0.0:9090HTTP/SSE

可选 [PATH] 论点(例如。, beret /path/to/project)为设置默认目录 refresh_index 当呼叫时没有路径。如果省略,则默认为当前工作目录。

MCP客户端配置

安装需要安装配置
停止cargo install chapeaux-beret{"command": "beret"}
通过npx进行标准化{"command": "npx", "args": ["-y", "@chapeaux/beret"]}
通过JSR实现标准化{"command": "npx", "args": ["-y", "jsr:@chapeaux/beret"]}
远程HTTP无(服务器在其他地方运行){"url": "http://your-server:8080/sse"}

所有条目都放置在

{
  "mcpServers": {
    "beret": ...
  }
}

在您的客户端配置中(例如。, mcp.json, claude_desktop_config.json).

连接后,要求代理为目录建立索引(例如,“为当前项目建立索引”),或者为远程HTTP建立存储库(例如https://github.com/user/repo").

工具

所有列表返回工具支持 limit, offset,以及 exclude 参数。 exclude 采用逗号分隔的目录名称列表进行过滤(例如。, "docs,stories,dist").当结果超过限制时,响应包括 has_more: truenext_offset 用于分页。

勘探工具

工具参数默认限制它的作用
file_statsexclude?--函数、类、配置、文档、二进制文件等的计数。从这里开始查看项目概述。
find_entry_pointsexclude?, limit?, offset?100查找主要功能、索引文件、app/server/cli模块。答案:“这个应用程序从哪里开始?”
list_structurespath?, kind?, exclude?, limit?, offset?200列出所有索引结构。按路径子字符串和/或类型过滤(Function, Class, Config, Document, Binary, Stylesheet, Section, Style, Element).
find_symbolname, exclude?, limit?, offset?100查找函数、类、结构或模块的定义位置。部分名称匹配。

调用图工具

工具参数默认限制它的作用
find_callersname?, exclude?, limit?, offset?100谁调用此函数?省略名称以获得所有调用边。
find_calleesname?, exclude?, limit?, offset?100此函数调用什么?省略名称以获得所有调用边。
find_dead_codeexclude?, limit?, offset?100函数已定义,但从未在任何地方调用。查找未使用的代码和重构候选代码。

依赖关系和配置工具

工具参数默认限制它的作用
find_dependenciesexclude?, limit?, offset?200列出package.json中的所有外部包依赖项(依赖项、devDependencies、peerDependencies)。

代码搜索工具

工具参数默认限制它的作用
search_patternpattern, language, exclude?, limit?, offset?200使用AST-grep语法进行结构化AST搜索。与文本搜索不同,匹配代码结构。使用 $NAME 对于通配符, $$$ARGS 对于variadic。
query_codebasesparql, limit?, offset?500针对高级查询的知识图的原始SPARQL SELECT/ASK。

可视化工具

工具参数默认限制它的作用
generate_diagrampath?, depth?, code_only?, exclude?, limit?500个元素生成一个 喜欢C4 架构图。根据代码库大小自动调整深度。
  • depth: 0 =自动(默认), 1 =目录, 2 =+个文件, 3 =+函数/类
  • code_only: true (默认)--不包括文档、配置、二进制文件、测试目录、故事等。
  • exclude:逗号分隔的目录名要额外排除
  • 贝雷帽主题:自定义颜色(海军蓝 #00005F,橙色 #F5921B,黄金 #FFCC17,青色 #37A3A3,蓝色 #0066CC),每个元素类型的不同形状,样式关系箭头
  • 输出:粘贴到 游乐场.likec.dev,另存为 .c4,或使用渲染 npx likec4

实践分析工具

工具参数功能
describe_practices--11个类别中所有检测到的工程实践的高级总结。
describe_testing--测试框架、测试函数计数、测试代码比。
describe_ci_cd--CI平台、容器化、构建工具、基础设施即代码。
describe_code_quality--Linter、格式化器、类型检查器、约定(git挂钩、lint分级等)。
describe_architecture--架构层、单仓库检测、结构计数。
describe_documentation--文档工件(许可证、变更日志、贡献、代码所有者等)。
describe_dependencies--包管理器、依赖关系计数、自动更新工具。

索引管理工具

工具参数功能
refresh_indexpath?为目录建立索引并构建知识图。在使用其他工具之前,请先调用此命令。
index_repo *(仅限HTTP)*url克隆一个git仓库(如果已经克隆,则进行拉取)并对其进行索引

分页

当结果被分页时,响应会用元数据包装结果:

{
  "results": [...],
  "total": 1847,
  "returned": 200,
  "offset": 0,
  "has_more": true,
  "next_offset": 200,
  "message": "Showing 1–200 of 1847 results. Use offset: 200 to see the next page."
}

search_pattern 例子

查找所有Rust函数:

pattern: "fn $NAME($$$ARGS) { $$$BODY }"
language: "rust"

查找JavaScript中的所有console.log调用:

pattern: "console.log($MSG)"
language: "javascript"

查找从基类继承的Python类:

pattern: "class $NAME($BASE): $$$BODY"
language: "python"

query_codebase SPARQL示例

所有IRI都使用 repo: 前缀,扩展为 http://repo.example.org/.

列出所有功能:

SELECT ?func WHERE {
  ?func  
}

查找函数的所有调用者:

SELECT ?caller WHERE {
  ?caller  
}

查找所有依赖项:

SELECT ?file ?dep WHERE {
  ?file  ?dep
}

列出MIME类型的二进制文件:

SELECT ?file ?mime WHERE {
  ?file   .
  ?file  ?mime
}

检查是否存在任何呼叫关系:

ASK { ?a  ?b }

知识图谱

代码文件

三重含义
repo:a repo:Function函数或方法定义
repo:a repo:Class类、结构、接口、特性或模块定义
repo:calls 函数调用关系

受试者通过文件路径进行资格认证(例如。, src/main.rs/handle_request).呼叫目标是不合格的被叫方名称。对于以下方法调用 obj.method(),仅 method 被记录下来。对于命名空间呼叫,如 mod::func(),仅 func 被记录下来。

配置文件(JSON、YAML)

三重含义
repo:a repo:Config配置文件
repo:declares 文件中的顶级密钥
` repo:dependsOn
`依赖项(仅限package.json)

文档(Markdown、HTML)

三重含义
repo:a repo:Document文档文件
repo:a repo:Section降价标题
repo:a repo:Element带有id的HTML元素
repo:a repo:Element带有类的HTML元素

样式表(CSS)

三重含义
repo:a repo:StylesheetCSS文件
repo:a repo:StyleCSS选择器规则

二进制文件

三重含义
repo:a repo:Binary二进制文件
repo:hasMimeType 文件的MIME类型
repo:hasSize 文件大小(字节)

支持的语言

语言扩展函数类/类型调用
python .pydefclass电话
生锈.rsfnstruct, impl调用表达式
JavaScript.js, .mjs, .cjsfunctionclass调用表达式
TypeScript.tsfunctionclass, interface调用表达式
TSX.tsxfunctionclass, interface调用表达式
去吧.gofunc类型规格调用表达式
Java .java方法class, interface, enum方法调用
C .c功能struct调用表达式
C .cpp, .cc, .cxx, .hpp功能struct, class调用表达式
C .cs方法class, interface, struct, enum调用
红宝石.rbdefclass, module电话
PHP.phpfunction,方法class, interface, enum电话
Kotlin.kt, .ktsfunclass, object调用表达式
Swift.swiftfuncclass, struct调用表达式
Scala.scala, .scdefclass, object, trait调用表达式
Bash.sh, .bashfunction--命令
Lua.luafunction--函数调用

非代码文件

类型扩展名提取的内容
JSON.json顶级密钥、package.json依赖项
YAML.yml, .yaml顶级按键
Markdown.md, .markdown标题
HTML.html, .htm元素ID和类
CSS.css选择器

二进制文件(仅元数据)

图片(.png, .jpg, .gif, .webp, .svg, .ico, .bmp),音频(.mp3, .wav, .ogg, .flac, .aac),视频(.mp4, .webm, .avi, .mov, .mkv),字体(.ttf, .otf, .woff, .woff2),文件(.pdf),档案(.zip, .gz, .tar),可执行文件(.exe, .dll, .so, .dylib, .wasm),数据库(.sqlite, .db).

工程实践

从文件存在和目录结构中检测到。全部使用 作为主题。

谓词示例值从中检测到
usesCIPlatformgithub操作、gitlab ci、jenkins.github/workflows/, .gitlab-ci.yml, Jenkinsfile
usesTestFramework杰斯、皮特斯、柏树、剧作家jest.config.*, pytest.ini, cypress.config.*
usesLintereslint、biome、ruff、rubocop.eslintrc*, biome.json, ruff.toml
usesFormatter更漂亮,editorconfig.prettierrc*, .editorconfig
usesBuildToolmake、gradle、maven、cmakeMakefile, build.gradle, pom.xml
usesContainerizationdocker,docker编写Dockerfile, docker-compose.yml
usesPackageManagernpm、纱线、pnpm、货物、pippackage.json, yarn.lock, Cargo.toml
usesTypeChecking打字稿,mypytsconfig.json, mypy.ini
hasLayer源代码、测试、api、ui、域、服务目录名称: src/, tests/, api/等等。
hasDocumentation许可证、变更日志、贡献指南、代码所有者LICENSE, CHANGELOG.md, CONTRIBUTING.md
followsConvention常规提交、git挂钩、lint分段.commitlintrc*, .husky/, renovate.json

演出

ingestor使用并行文件遍历(通过 ignore crate)和直接树型节点类型匹配以提高速度。在调试模式下,在1秒内将5000个文件/60000个三元组作为基准。

出版

板条箱.io

cargo publish

发布为 chapeaux-beret。用户安装时使用 cargo install chapeaux-beret.

npm

cd npm && npm publish --access public

发布为 @chapeaux/beret。需要将预构建的二进制文件上传到GitHub版本。

日本合成橡胶

cd npm && npx jsr publish

发布为 @chapeaux/beret 关于JSR。用户使用 npx jsr:@chapeaux/beret.

测试

cargo test

许可证

麻省理工学院

目录标签

目录标签

代码分析Rust知识图谱本地部署编程语言支持AST解析代码可视化

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

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

仍需确认:installCommand

来源信息

继续浏览同类 MCP