mcpField
O
ontomics

ontomics

本地服务
github.com开发工具4328 周前更新

关于 ontomics

ontomics 是一个为编码 Agent 建立代码库领域知识索引的 MCP 服务,可在一次工具调用中给出概念、命名约定和行为相似的函数等信息。它完全在本机运行,适合希望减少 token 消耗的开发者。

主要功能

  1. 01领域概念聚类与词汇查询
  2. 02命名约定检测与标识符检查
  3. 03基于函数体嵌入的行为相似度搜索
  4. 04模块与类型数据流分析
  5. 05导出可移植的领域知识包(YAML)
  6. 06按 git 引用比较词汇变化

适用场景

  1. 01让 Agent 快速理解某个术语在代码库中的含义
  2. 02检查新标识符是否符合项目命名习惯
  3. 03查找行为相似、可能重复实现的函数

MCP 相关

该项目是一个 MCP 服务,向 MCP 客户端暴露概念查询、命名检查、相似逻辑查找等工具,并提供 ontomics://briefing 资源用于会话简报。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"etiennechollet-ontomics": {
"command": "npx",
"args": [
"-y",
"@ontomics/ontomics"
]
}
}
}
启动命令npx -y @ontomics/ontomics

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

安装包
npm@ontomics/ontomics0.3.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

ontomics

Python Rust TypeScript JavaScript platform MCP MCP Registry Glama Claude Code Codex pi

ontomics 让任何编码 Agent 即时了解你的代码库。只需调用一次工具,而非 19 次。令令牌用量减少约 20 倍。

https://github.com/user-attachments/assets/01afa8a0-1bc2-4686-94d7-965fef7610c3

voxelmorph 项目的可视化——一个用于图像配准无监督学习的库

基准测试

使用 Claude Sonnet 测试——同一个问题,分别在使用和不使用 ontomics 的情况下进行。

在 voxelmorph 中提问“此代码库中的‘transform’是什么意思?”(完整对话记录):

使用 ontomics不使用
工具调用数119
令牌数~3.7k~76k
耗时5s1m 15s
回答质量完整完整

在 ScribblePrompt 中提问“此代码库中的主要领域概念有哪些?”(完整对话记录):

使用 ontomics不使用
工具调用数126
令牌数~3.7k~61.6k
耗时~5s56s
回答质量完整完整

两种情况下都得到了完整、正确的回答。ontomics 只用一次调用就完成了任务。

搜索做不到的事

搜索会告诉你某个字符串出现在哪里。LSP 会告诉你某个符号的定义和引用位置。但两者都无法回答:此代码库中有哪些领域概念?它们之间有什么关系?形成了哪些命名惯例?自上次发布以来,领域词汇有哪些变化?哪些函数行为相似,而不论它们的名称是什么?

ontomics 会构建项目领域的语义索引——将相关符号聚类为概念,根据使用频率检测命名惯例,解析缩写,按行为相似性对函数分组,并跟踪词汇随时间的演变。该索引可导出为可移植的成果,用于在其他代码仓库中引入这些惯例。

行为相似性

除了命名和概念之外,ontomics 还会使用 CodeRankEmbed(768 维、对比式代码检索)嵌入原始函数体,并按行为相似性进行聚类。这能揭示命名和调用图都无法呈现的关系:

❯ What functions behave like spatial_transform()?

  random_transform()   nn/functional.py:352   0.80
  spatial_transform()  functional.py:596      0.69
  random_transform()   functional.py:1399     0.67
  random_disp()        nn/functional.py:275   0.65
  integrate_disp()     functional.py:764      0.65
  compose()            nn/functional.py:216   0.63
  disp_to_trf()        functional.py:343      0.62

结果还显示,random_transform 出现在两个位置,且相似度分数不同——这表明存在实现重复,而概念级搜索完全无法发现这一点。

安装

只需安装一次,即可在每个项目中使用。无需配置——ontomics 会自动检测代码仓库,并在首次运行时为其建立索引。

ontomics 需要 Git 代码仓库(.git/ 目录)。它会拒绝为主目录、根目录或临时目录建立索引。若要为非 Git 目录建立索引,请传入 --force。

1. 安装二进制文件

npm(macOS/Linux):

npm install -g @ontomics/ontomics

macOS(Homebrew):

brew install EtienneChollet/tap/ontomics

Shell 安装程序(macOS/Linux):

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/EtienneChollet/ontomics/releases/latest/download/ontomics-installer.sh | sh

从源代码安装:

git clone https://github.com/EtienneChollet/ontomics.git
cd ontomics
cargo build --release
2. 在你的运行环境中注册

Claude Code:

claude mcp add -s user ontomics -- ontomics

Codex:

codex mcp add ontomics -- ontomics

OpenClaw:

openclaw mcp set ontomics '{"command":"ontomics"}'

pi-coding-agent:

pi install npm:@ontomics/ontomics

与团队共享 — 在代码库根目录中放置一个 .mcp.json:

{
  "mcpServers": {
    "ontomics": {
      "command": "npx",
      "args": ["-y", "@ontomics/ontomics", "--repo", "."]
    }
  }
}

支持的语言

Python、TypeScript、JavaScript、Rust。根据文件扩展名自动检测。

工具

概念与词汇
工具功能
query_concept查找某个术语的所有变体、相关概念和出现位置
locate_concept查找某个概念对应的关键签名、类和文件
describe_symbol获取函数或类的签名、文档字符串和关系
trace_concept通过调用链追踪某个概念在代码库中的流转
list_concepts按出现频率列出主要领域概念
list_conventions列出所有检测到的命名模式(前缀、后缀、转换)
list_entities按概念、角色或类型筛选并列出代码实体(类、函数)
check_naming根据项目约定检查标识符,并建议规范形式
suggest_name生成符合项目词汇的标识符名称
vocabulary_health衡量约定覆盖率、命名一致性和聚类凝聚度
ontology_diff显示自某个 git 引用以来新增、更改或移除的领域概念
export_domain_pack将领域知识导出为可移植的 YAML,供其他代码库使用
行为相似性
工具功能
find_similar_logic查找行为相似的函数实现,并按嵌入相似度排序
describe_logic获取函数的行为描述、函数体文本和逻辑聚类成员信息
compact_context为符号组装分层上下文(概念 + 逻辑),并针对大模型使用进行优化
代码库结构
工具功能
describe_file概述文件中的实体、概念和关系
concept_map展示各模块包含哪些领域概念
type_flows展示主要类型以及数据如何在代码库中流转
trace_type追踪特定类型在文件和调用位置之间的传播
资源
资源功能
ontomics://briefing会话简报:主要约定、缩写、关键概念、对比术语对和词汇警告。也可通过 ontomics briefing CLI 获取。

工作原理

ontomics 会在你的机器上运行多阶段流水线,无需 API 密钥:

  1. 解析 — tree-sitter 从源文件中提取每个标识符、签名和调用位置
  2. 分析 — TF-IDF 评分识别领域专属概念并检测命名约定
  3. 嵌入(概念) — BGE-small(384 维)按语义相似度聚类相关概念
  4. 嵌入(逻辑) — CodeRankEmbed(768 维)嵌入原始函数体,并按行为相似度进行聚类
  5. 中心性 — PageRank 根据结构重要性为实体评分

两种嵌入模型都会在首次运行时下载一次,并缓存在本地。索引位于 <repo>/.ontomics/index.db — 后续启动时会从缓存加载,并监视文件更改。

通过代码库根目录中的 .ontomics/config.toml 进行配置。所有字段均有合理的默认值。完整设计规范请参阅 SPEC.md。

评论

支持 Markdown

第一次接触 MCP?

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

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