BabelsHoard
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| BABEL_URL | No | The base URL of the running Babel's Hoard application. Defaults to http://127.0.0.1:8811. | http://127.0.0.1:8811 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| docs_librariesA | List indexed libraries, exact versions and project environments (libraries, librerías, versión, entornos) What Babel has indexed (exact versions), the registered environments (project interpreters / node_modules folders; default_for says which one answers Python or TypeScript when env is omitted) and recent background jobs. Use it to find an env id, or to follow a docset install / dependency indexing job. Installed packages that are not listed yet are indexed automatically the first time api_lookup or api_check_code needs them. Args: ecosystem: "python", "js", "docset" or "markdown". env: environment id or project path; limits libraries to that environment. limit: libraries per page (default 15, max 200). offset: for the next page. Returns: {libraries: [{id, ecosystem, name, version, env, status, entries}], total, has_more, next_offset, environments: [{id, label, python, default, ...}], jobs: [{id, kind, status, progress, message}]}. Keywords: list libraries, what is installed, which version, environments, job progress, listar librerias, que hay instalado, que version tengo, entornos, progreso |
| docs_searchA | Search installed APIs and docs by words (search docs, buscar función, cómo se hace, documentación) Ranked full-text search over indexed APIs, offline docsets and markdown docs. Use it when you know roughly what you need but not the exact name ("read a csv", "retry on timeout"); then call api_lookup on the qualname you pick, or docs_read on a section id. Only searches what is already indexed. Args: query: words or an identifier; camelCase/snake_case/dotted names match by parts. library: one library name, e.g. "pandas" or a docset name. ecosystem: "python", "js", "docset" or "markdown". kind: "module", "class", "function", "method", "attribute", "property" or "section". env: environment id or project path. limit: default 8, max 50. Returns: {results: [{id, qualname, kind, library, signature, summary, score}], count, truncated, did_you_mean?}. Signatures and summaries are cut at 200 characters. Keywords: search docs, find function, how do I, which function, buscar documentacion, como se hace, que funcion, encontrar funcion |
| api_lookupA | Exact signature of an installed API (signature, firma, parámetros, documentación, versión instalada) Parameters (with defaults and which are required), return type, docstring and source location of one dotted symbol, from the version installed in the environment - e.g. "pandas.DataFrame.merge", "httpx.Client", "json.dumps", or "react.useState" for a node_modules package. Use it before calling any API you are not sure about. Indexes the package on first use (local, no network; can take seconds). Args: symbol: fully dotted path starting with the import name. env: environment id, project folder path, or omitted for the default environment. library: optional library name to disambiguate. Returns: found=true -> {id, qualname, kind, signature, params: [{name, kind, annotation, default, required, description}], returns, summary, doc (first 1500 chars), doc_truncated, members (for modules/classes), library, source}. Use docs_read(id) for the rest of a long doc. found=false -> {certain, suggestions: [real names], message}; certain=false means the name may still exist at runtime. Keywords: signature, parameters, arguments, api lookup, what does it take, return type, firma, parametros, argumentos, que recibe, que devuelve, existe esta funcion |
| api_check_codeA | Check code for hallucinated or misused APIs of installed versions (check code, comprobar código, validar) Statically checks a snippet against the libraries installed in the environment: unknown modules/attributes (hallucinated or removed APIs), unexpected keyword arguments, too many positional arguments, missing required arguments, deprecated calls. Never runs the code. Run it on code you wrote before showing it; fix errors, re-check. Args: code: the source (a whole file or a snippet; imports must be included). env: environment id, project folder path, or omitted for the default environment. language: "python" (full checks) or "typescript" (v1: named imports only). Returns: {ok, findings: [{line, col, severity, code, symbol, message, suggestion}], checked, unchecked, libraries}. ok is false only for errors. severity "warning" = not a declared member but the class/module creates names dynamically, or deprecated. Babel stays silent on anything it cannot prove (dynamic code, unknown types, try/except ImportError, hasattr guards); those count in 'unchecked'. Keywords: check code, validate code, hallucinated api, does this exist, wrong arguments, verify snippet, comprobar codigo, revisar codigo, validar, existe, alucinacion |
| docs_readA | Read the full text of one doc entry by id, in chunks (read docs, leer documentación, seguir leyendo) One entry is a docset page section, a markdown section or a long docstring. Ids come from docs_search results and from api_lookup (field id). Args: id: the entry id, passed back exactly. offset: character offset to continue from (use next_offset). max_chars: chunk size, default 4000, max 20000. Returns: {found, qualname, library, text, offset, total_chars, has_more, next_offset}. Keywords: read doc, full documentation, read more, continue, leer documentacion, seguir leyendo, documentacion completa |
| docs_add_environmentA | Register a project folder or venv so its packages can be checked (register project, registrar proyecto) Accepts a project folder (its .venv/venv/env and node_modules, also in frontend/, web/, client/ or ui/, are detected), a python/python.exe interpreter, or a node_modules folder. The most recently registered project becomes the default env (per language: Python checks never default to a node_modules-only env). Registering again is harmless and makes it the default again. Args: path: absolute path to the project folder, interpreter or node_modules. index_dependencies: also index the project's direct dependencies (from pyproject.toml / requirements*.txt) in a background job. Returns: {environment: {id, label, python, ...}, dependency_job_id, dependencies, message}. Keywords: register project, add environment, use this project, index project, registrar proyecto, anadir entorno, indexar proyecto, usar este proyecto |
| docs_catalogA | List downloadable offline docsets; uses internet (docset catalogue, catálogo, documentación offline) Language references and frameworks: python, javascript, react, css, rust... Reaches the internet (the public DevDocs catalogue). Use before docs_install_docset to get the exact slug. Args: query: filter by name or slug, e.g. "python" or "react". limit: default 10, max 50. Returns: {results: [{slug, name, version, db_size_kb}], count, total, truncated}. Keywords: docset catalogue, offline docs, available documentation, download docs, catalogo de documentacion, documentacion sin conexion, que documentacion hay |
| docs_install_docsetA | Download and index one offline docset in background (install docs, instalar documentación, descargar) Takes a slug from docs_catalog (e.g. "python~3.13"). Reaches the internet. Runs as a background job and returns at once; follow it with docs_libraries (jobs) and search it with docs_search when done. Args: slug: the exact slug from docs_catalog. Returns: {job_id, status, slug, message}. Keywords: install docset, download documentation, offline docs, instalar documentacion, descargar documentacion |
| docs_index_folderA | Index a folder of Markdown docs for search (index folder, indexar carpeta, documentación del proyecto) Indexes .md/.mdx/.rst/.txt files (a project's docs/ folder, a cloned docs repository) by heading, so docs_search and docs_read can use it. Dependency, VCS and build folders are skipped; at most 2000 files. Args: path: absolute path to the folder. name: library name to show and filter by; defaults to the folder name. Returns: {id, name, status, entry_count, note, hint}. Keywords: index folder, index markdown, project docs, indexar carpeta, indexar documentacion, documentacion del proyecto |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
Each tool has a clearly distinct role in the doc/API lifecycle: catalog vs. indexed libraries, fuzzy search vs. exact lookup, snippet check vs. full read, and environment registration vs. docset install/index. Descriptions explicitly chain tools (e.g., search → lookup → read), leaving little chance of misselection.
All names use snake_case and a domain prefix (docs_ for doc/environment management, api_ for API inspection), but the prefix pattern mixes noun phrases (docs_libraries, docs_catalog) with verb phrases (docs_add_environment, docs_install_docset). This is readable and mostly predictable, yet not fully uniform.
9 tools cover the server's scope without obvious redundancy or missing core operations; each tool earns its place in the lifecycle.
Core workflows—discovering, installing, indexing, searching, reading, and validating against docs/APIs—are covered. Minor gaps exist for cleanup/removal of docsets or environments and for updating stale indexes, but agents can work around these.