adb4a781ac
- app.md Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3.0 KiB
3.0 KiB
name, lang, domain, version, description, tags, uses_functions, uses_types, framework, entry_point, dir_path, repo_url, service
| name | lang | domain | version | description | tags | uses_functions | uses_types | framework | entry_point | dir_path | repo_url | service | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| registry_mcp | go | infra | 0.1.0 | Servidor MCP (Model Context Protocol) que expone registry.db a clientes Claude (Code, Desktop). Tools read-only (search/show/code/list_domains/uses/doctor) y mutadoras (fn_run, fn_create_function) para iterar sobre el registry sin shellear sqlite3 ni fn CLI. |
|
mcp | main.go | apps/registry_mcp | https://gitea.organic-machine.com/dataforge/registry_mcp |
|
Overview
Servidor MCP que sirve registry.db como herramientas tipadas a Claude:
| Tool | Que hace |
|---|---|
fn_search |
FTS5 sobre functions + types con filtros (kind, lang, domain, purity) |
fn_show |
Markdown card de una funcion/tipo (frontmatter + code fenced) |
fn_code |
Solo la columna code de la entidad |
fn_list_domains |
Agregados (domain, kind, purity, lang) |
fn_uses |
uses_functions + uses_types + reverse lookup (consumed_by) |
fn_doctor |
Subprocess fn doctor <sub> --json |
fn_run |
Subprocess fn run <id> [args...] (require --enable-run) |
fn_create_function |
Escribe .go/.py/.sh/.ts + .md y corre fn index (require --enable-write) |
Transports
- stdio (default) — Claude Code/Desktop nativo.
- HTTP opcional via
--http :7733con basicAuth (REGISTRY_API_TOKEN). Bind a127.0.0.1salvo--bind 0.0.0.0explicito.
Build
cd apps/registry_mcp
CGO_ENABLED=1 go build -tags fts5 -o registry_mcp .
Instalar en Claude Code
Anadir a .mcp.json del repo:
{
"mcpServers": {
"registry": {
"command": "/abs/path/apps/registry_mcp/registry_mcp",
"args": ["--enable-run", "--enable-write"],
"env": { "FN_REGISTRY_ROOT": "/abs/path/fn_registry" }
}
}
}
Origen de datos
registry.db local. Resuelve via FN_REGISTRY_ROOT env, o sube directorios buscando go.mod desde el cwd. Read-only: abre con ?mode=ro&_query_only=1.
Riesgos y mitigaciones
fn_runejecuta codigo arbitrario en el host. Off por defecto (flag--enable-run).fn_create_functionescribe archivos. Off por defecto (flag--enable-write).- FTS5 quoting: el server sanitiza tokens con
-,.,:envolviendo en comillas dobles (reglaCLAUDE.md). - WAL drift: si
registry.dbse regenera durante una sesion, el server reabre la conexion al detectarSQLITE_CORRUPTo cambio de mtime. - Logs: TODO va a
stderr(slog). Stdio JSON-RPC reservado para protocolo.
Capability growth log
Una linea por bump SemVer. Bump-type segun .claude/commands/version.md:
-
major: breaking observable (CLI args, schema BBDD propia, formato wire). -
minor: feature aditiva (nuevo panel, endpoint, opcion). -
patch: bugfix sin cambio observable. -
v0.1.0 (2026-05-18) — baseline.