glean-company-docs
Halcyon Docs Chatbot
Respuesta a preguntas fundamentada sobre un corpus de documentos local, construida sobre las API de Indexing, Search y Chat de Glean y expuesta como una única herramienta MCP.
No hay interfaz web. La interfaz de chat es un cliente MCP: Cursor, Claude Desktop o cualquier otro.
Cómo funciona
data/Halcyon Shared Drive/ -> Indexing API -> Search API -> Chat API -> {answer, sources, diagnostics}La búsqueda se ejecuta antes que el Chat, y el Chat nunca recupera: los pasajes se recuperan explícitamente y se pasan. Si nada supera el umbral de relevancia (solapamiento de términos con la pregunta), la respuesta es un honesto «no se encontró contenido indexado» y nunca se llama al Chat.
Related MCP server: faq-rag
Configuración
Requiere Poetry y Python 3.12+.
poetry config virtualenvs.in-project true # keeps the venv at ./.venv
poetry install
cp .env.example .env # then fill in the tokens.env está en gitignore. Nunca confirmes tokens reales.
Variable | Usado por | Notas |
| ambos | El SDK construye |
| solo indexación | nunca se carga en la ruta de consulta |
| búsqueda + chat | ámbito Chat/Search, tipo Global |
| ambos | sandbox compartido, por lo que esto establece el espacio de nombres de los ID de documentos |
| solo indexación | raíz del corpus ( |
| búsqueda + chat | correo electrónico para actuar como; requerido para tokens Globales |
Opcionales, con valores predeterminados: GLEAN_DOC_ID_PREFIX (halcyon), GLEAN_TOP_K (5), GLEAN_MAX_SNIPPET_SIZE (2000), GLEAN_MIN_TERM_OVERLAP (0.30), GLEAN_CHAT_TIMEOUT_MS (60000).
Los dos tokens están separados estructuralmente: Settings.for_indexing() lee GLEAN_INDEXING_TOKEN, Settings.for_query() lee GLEAN_CLIENT_TOKEN y nunca toca la variable de indexación.
Uso
poetry run python -m glean_chat_bot # the MCP server, on stdio
poetry run glean-index --dry-run # extract and report, send nothing
poetry run glean-index # extract and bulk-push
poetry run glean-index --process-now # ask Glean to process immediately (1 per 3h)
poetry run pytest # contract tests: no network, no tokens
poetry run pytest -m live # the eval set, against real GleanAñade -v para el registro de depuración.
La indexación es asíncrona: glean-index devuelve una vez que Glean ha aceptado los documentos, minutos antes de que sean buscables. Confirma la cobertura completa en la consola de administración de Glean antes de confiar en las respuestas.
Configuración del cliente MCP
{
"mcpServers": {
"glean-company-docs": {
"command": "/absolute/path/to/glean-chat-bot/.venv/bin/python",
"args": ["-m", "glean_chat_bot"],
"env": {
"GLEAN_INSTANCE": "support-lab",
"GLEAN_CLIENT_TOKEN": "...",
"GLEAN_ACT_AS": "you@example.com",
"GLEAN_DATASOURCE": "interviewds3"
}
}
}
}Una herramienta, ask_company_docs(question, top_k=None, include_citations=True) -> dict, que devuelve {answer, sources, diagnostics}. diagnostics informa de qué se buscó y qué se devolvió, para que el modelo que llama pueda distinguir «no coincidió nada» de «mi redacción falló» y reintentar en consecuencia.
Estructura
glean_chat_bot/
__main__.py `python -m glean_chat_bot`, the MCP server: one tool over query.ask.ask()
client.py indexing and query client factories, the ActAs header
extraction.py one adapter per file type, path signals, walk
indexing.py the whole write path, behind the `glean-index` command
models.py Passage, Source, Answer, ExtractedDoc (pydantic)
query/ search.py (search -> Passage, the relevance floor)
chat.py (chat -> answer + resolved citations)
ask.py (ask() — the single orchestration function)
utils/ config.py (env loading, one Settings, two constructors)
logging.py (log format, timing wrapper on every Glean call)
data/ the corpus
docs/ extraction notes
tests/ test_contract.py (the invariants, offline)
eval_cases.py + test_eval_live.py (the eval set, `-m live`)Poetry para dependencias y empaquetado, Ruff para lint y formato. Ejecuta poetry run ruff check . y poetry run ruff format . antes de confirmar.
Aún no implementado
Permisos de grupos y usuarios, filtrado por departamento, anotaciones de frescura, un manifiesto de hash de contenido, reescritura de consultas y reintento adaptativo, streaming, memoria de conversación, reintento y retroceso, Docker, CI.
This server cannot be installed
Maintenance
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
- FlicenseNot gradedqualityCmaintenanceEnables grounding AI responses in a local document corpus by exposing MCP tools to list, search, and summarize documents, and generating answers using OpenAI.
- FlicenseNot gradedqualityDmaintenanceEnables answering natural-language questions from FAQ documents using vector search and LLM generation via an MCP tool.
- AlicenseNot gradedqualityBmaintenanceEnables hybrid document search (BM25 and dense) over a configurable corpus via MCP tools, returning passages and sources for AI agents to cite in answers.MIT
- AlicenseNot gradedqualityBmaintenanceEnables document-based Q&A with multi-modal RAG, hybrid retrieval, knowledge graph reasoning, and multi-agent orchestration via MCP tools.4MIT
Related MCP Connectors
Query any docs site via MCP. Submit a URL, ask questions, get cited answers.
Google AI Overview answers and cited sources via the Apify Google AI Overview API, hosted MCP.
Your company's brain for AI agents. Cited, permission-aware knowledge across every system.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/cmacdonald0514/glean-chat-bot'
If you have feedback or need assistance with the MCP directory API, please join our Discord server