Skip to main content
Glama

om — base de conocimiento con plugins (reimplementado sobre Foam)

Se reducen los 66 módulos de 超脑 v4 hasta dejar solo el núcleo de base de conocimiento, reescrito sobre Foam y con un sistema de plugins al estilo de DeepSeek Harness:

  • Compatibilidad con Obsidian — tu vault es la base de conocimiento: archivos markdown puros + [[双链]] + #标签 + frontmatter

  • Cero dependencias — solo usa el node:sqlite integrado de Node (búsqueda de texto completo FTS5, con segmentación de chino incorporada)

  • Plugins — el núcleo expone interfaces estables; los usuarios escriben sus propios plugins para ampliarlo (comandos / herramientas MCP / eventos / extractores de índice)

  • Integración con IA — servidor MCP stdio; Claude Code / Cursor pueden llamarlo directamente

Homenaje a Foam (MIT): la semántica de resolución de wikilinks y el modelo de grafo están fuertemente inspirados en él. Este proyecto es una reescritura independiente (cero dependencias, sin dependencias en tiempo de ejecución), no es un fork del código.

Inicio rápido

cd ~/om
./core/cli.js init demo          # 初始化(demo 已有示例笔记)
./core/cli.js scan --vault demo  # 建索引
./core/cli.js search 图谱 --vault demo
./core/cli.js rename 图谱 知识图谱 --vault demo   # 重命名,全库双链自动更新
./core/cli.js deadlinks --vault demo             # 死链检查
./core/cli.js orphans --vault demo               # 孤岛笔记
./core/cli.js daily --vault demo                 # 今日笔记
./core/cli.js graph 插件系统 --vault demo
./core/cli.js backlinks 记忆系统 --vault demo
./core/cli.js tags --vault demo

Uso diario: cd <你的库> && om search xxx (tras npm link, el comando om queda disponible globalmente).

Related MCP server: mcp-vault-reader

Integración con MCP (Claude Code)

// ~/.claude.json 的 mcpServers
{
  "om": {
    "command": "node",
    "args": ["/data/data/com.termux/files/home/om/core/cli.js", "mcp", "--vault", "/path/to/vault"]
  }
}

Herramientas integradas: search_notes / read_note / create_note / update_note / rename_note / delete_note / backlinks / graph_bfs / list_notes / list_tags, más las herramientas registradas por los plugins.

Arquitectura

vault/                        你的 Obsidian 库(文件即真身)
  .om/config.json             配置(插件开关等)
  .om/index.db                SQLite 索引(可随时删除重建)
  .om/plugins/                你的插件放这里
om/
  core/
    vault.js                  解析 frontmatter / [[双链]] / ![[嵌入]] / #标签
    tokenize.js               中文分词(CJK 单字+双字)+ FTS 查询构造
    db.js / indexer.js        SQLite 索引 + 增量扫描
    graph.js                  图谱查询(邻居 / backlinks / BFS)
    context.js                插件上下文(全部暴露接口)
    plugins.js                插件加载器(dsh 式)
    cli.js / mcp.js           CLI 与 MCP stdio 服务器
  plugins/                    内置示例插件(recent / todos)

Guía para escribir plugins (interfaces expuestas)

Un plugin es un archivo JS (ESM) que exporta por defecto { name, version, description, activate(ctx) }. Colócalo en <vault>/.om/plugins/my-plugin.js y se activará al reiniciar cualquier comando om. En config.json, "plugins": {"my-plugin": false} lo desactiva.

Dos comandos rápidos:

om plugin create my-plugin    # 生成插件模板
om plugin install https://github.com/xxx/om-plugin-repo   # 从 git 仓库安装(仓库根目录需含 index.js)

activate(ctx) proporciona todas las capacidades:

Interfaz

Descripción

ctx.notes

get(name) / search(q,{limit}) / create(name,{folder,content,tags}) / update(name,content) / remove(name) / list({tag})

ctx.graph

resolve(name) / neighbors(ref) / backlinks(ref) / bfs(ref,depth)

ctx.tags

list() / notes(tag)

ctx.storage

get/set/del(key) — KV privado del plugin (aislado por nombre de plugin)

ctx.events

on('note:save'|'note:delete', fn) — bus de eventos compartido entre contextos

ctx.commands

register('名字', async (args) => 输出) — registra un subcomando CLI

ctx.tools

register({name,description,inputSchema}, handler) — registra una herramienta MCP

ctx.index

register(({id,name,frontmatter,body,text}) => ({tags?,links?})) — extractor de índice; personaliza cómo se extrae conocimiento de las notas

ctx.health

deadlinks() enlaces sin resolver / orphans() notas aisladas

ctx.db

manejador nativo de SQLite (avanzado)

ctx.vaultRoot / ctx.plugin

ruta del vault / nombre del plugin

Ejemplo mínimo de plugin

// <vault>/.om/plugins/hello.js
export default {
  name: 'hello',
  activate(ctx) {
    ctx.commands.register('hello', async () => `你好,库里有 ${ctx.db.prepare('SELECT COUNT(*) c FROM notes').get().c} 篇笔记`);
  },
};
$ om hello --vault demo
你好,库里有 5 篇笔记

Ejemplos completos en plugins/recent.js (comandos + herramientas + almacenamiento + eventos) y plugins/todos.js (consulta de frontmatter/etiquetas).

Pruebas

cd ~/om && node --test

Cobertura: segmentación / análisis del vault / índice e incremental / grafo / todas las interfaces de plugins / protocolo MCP de extremo a extremo.

Diferencias con 超脑 v4

超脑 v4

om

Módulos

66

núcleo en 10 archivos + plugins

Arquitectura

sistema nervioso cognitivo de 6 canales

base de conocimiento pura + plugins estilo dsh

Almacenamiento

múltiples sistemas propios

markdown compatible con Obsidian (el archivo es la fuente de verdad)

Dependencias

npm + pip + demonio

cero dependencias (node:sqlite)

Extensión

no programable

interfaces expuestas, el usuario escribe plugins

Limitaciones conocidas (declaración honesta)

  • La búsqueda es de coincidencia literal (FTS5 + segmentación de caracteres chinos simples y dobles), no búsqueda semántica; la búsqueda por sinónimos/conceptos requiere plugins o un servicio vectorial externo

  • Cuando update_note recibe el cuerpo, conserva automáticamente el frontmatter original; si necesitas sobrescribir la nota entera, incluye también el encabezado ---

  • El renombrado (rename / rename_note) actualiza automáticamente todos los wikilinks del vault que apuntan a la nota, pero no cambia las menciones de texto en otros archivos

  • Diseño de un solo equipo y un solo proceso, sin sincronización distribuida o entre dispositivos (el vault es un conjunto de archivos puros; puedes sincronizarlo tú mismo con git)

  • El índice es una instantánea del sistema de archivos; después de cambios con un editor externo, hay que actualizarlo con om scan (o om watch)

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    A
    quality
    D
    maintenance
    Enables AI assistants to manage a personal markdown-based knowledge base with natural language interactions. Supports creating, searching, updating, and organizing notes across categories like people, recipes, meetings, and procedures.
    11
    1
  • A
    license
    A
    quality
    C
    maintenance
    Enables AI assistants to search, read, and traverse Markdown note vaults (Obsidian-compatible) with full-text search, backlinks, knowledge graphs, and a persistent memory system for cross-session context.
    16
    9
    2
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables reading, writing, searching, and managing Obsidian vault notes through MCP tools and prompts, allowing AI agents to interact with local knowledge bases.
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to list, search, read, and append to Markdown notes through MCP tool calls, making it easy to interact with a second brain folder.

View all related MCP servers

Related MCP Connectors

  • Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.

  • Your memory, everywhere AI goes. Build knowledge once, access it via MCP anywhere.

  • Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xuanlinAI/overmind-slim'

If you have feedback or need assistance with the MCP directory API, please join our Discord server