Skip to main content
Glama
cquiroz6211

Cerebro de compañía

by cquiroz6211

Winterbrain

Company brain para una firma de venture capital y business builder. Convierte reuniones, briefs, decks y conversaciones ejecutivas en conocimiento reutilizable que cualquier C-level puede consultar desde Claude o Codex.

Que es hoy

Un gateway MCP que guarda el conocimiento del equipo en archivos Markdown estructurados dentro de un cerebro versionable. MarkItDown ya esta integrado para que PDFs, DOCX, PPTX y XLSX se conviertan automaticamente a Markdown cuando Sergio o Mariana suben una carpeta de cliente.

Related MCP server: MCP Memory Server

Que valor da hoy

  • Una conversacion ejecutiva ya no se pierde en el chat de una persona. Cualquiera del equipo puede decir "guarda esto en el cerebro" y queda persistido.

  • Una carpeta completa de un cliente (reuniones + briefs + decks) se sube en una sola frase y queda convertida a Markdown buscable.

  • Las notas ejecutivas quedan con autor, cliente, fecha, tipo y tags, listas para ser consultadas despues.

  • Mariana puede preguntarle a Claude "que subio Sergio sobre Cliente X" y el cerebro devuelve el Markdown correspondiente con score.

Que valor falta (honesto)

  • La busqueda es por keywords todavia. No hay embeddings.

  • El gateway corre stdio MCP. Falta HTTP para que los C-levels se conecten sin instalar nada.

  • La extraccion de resumen, riesgos, decisiones y aprendizajes es manual. Falta el extractor LLM.

  • No hay permisos. Por ahora todos ven todo, por diseno de MVP.

Quick start

Para el equipo tecnico

npm install
npm run build
npm start

Desarrollo:

npm run dev

Para el equipo ejecutivo

Los C-levels (CEO, CFO, Mariana, Sergio, Don Dario) no tocan codigo. Pegan esto en Claude o Codex:

Retrieve and follow the instructions at:
https://raw.githubusercontent.com/cquiroz6211/winterbrain/main/INSTALL_FOR_USERS.md

El agente del usuario se autoinstala el MCP. Guia humana:

  • docs/QUICKSTART.md — pasos en lenguaje humano, sin tecnicismos.

  • INSTALL_FOR_USERS.md — instrucciones que sigue el agente del usuario.

Como se usa una vez conectado

Desde Claude o Codex, hablando en espanol:

Guarda esta conversacion en el cerebro como nota.
Crea esto como resumen de reunion y subelo al cerebro.
Sube la carpeta "C:\Users\...\Cliente X" al cerebro para cliente-x.
Que aprendimos del inversionista de cliente-x?
Que debemos priorizar en Cliente X segun la reunion que subio Sergio?
Preparame un brief del inversionista Y antes de la reunion.
Que funciono y que no funciono en los ultimos clientes?

Herramientas MCP

Tool

Que hace hoy

Que falta

save_note

Guarda una nota ejecutiva con autor, cliente, tipo, tags

Solo Markdown plano

save_chat_summary

Guarda resumen de una conversacion con participantes y next actions

Solo Markdown plano

ingest_meeting

Guarda una reunion a partir de texto o Markdown

No extrae resumen automatico

ingest_folder

Sube una carpeta entera. PDFs/DOCX/PPTX/XLSX se convierten con MarkItDown a Markdown

No genera notas estructuradas todavia

ask_brain

Busca por keywords en el Markdown del cerebro

Embeddings y respuesta sintetizada

Arquitectura

Claude / Codex / OpenCode
        |  stdio MCP
        v
Gateway Winterbrain (este repo)
   |- save_note / save_chat_summary / ingest_meeting / ingest_folder / ask_brain
   |- MarkItDown oficial (Python venv) para PDF/DOCX/PPTX/XLSX
        |
        v
   brain/
     raw/                <- archivos originales tal como llegaron
     markdown/           <- versiones normalizadas por MarkItDown
     knowledge/
        meetings/        <- reuniones procesadas
        chats/           <- resumenes de conversaciones
        decisions/       <- notas ejecutivas y decisiones

El Markdown es la fuente de verdad. Es legible, commiteable, buscable con grep y portable. Si manana agregamos un vector store o un knowledge graph, Markdown sigue siendo la base.

Estado del proyecto

Fase

Descripcion

Estado

0

Bootstrap del repo, scaffold MCP, plantillas, docs

hecho

1

Despliegue en Dokploy via Docker

en curso

2

Gateway HTTP MCP con autenticacion por token

siguiente critico

3

MarkItDown oficial para ingesta de PDFs/DOCX/PPTX/XLSX

hecho (Fase 3 adelantada)

4

Extraccion LLM (resumen, decisiones, riesgos, aprendizajes)

pendiente

5

Backend de embeddings y busqueda semantica

pendiente

6

Validacion con preguntas reales del equipo ejecutivo

pendiente

7

Adopcion C-level (onboarding 1-a-1)

pendiente

8

Modelo de acceso y permisos

pendiente

9

Integraciones externas (Drive, Notion, Granola, Slack)

pendiente

10

Productos derivados (wiki navegable, briefs automaticos)

pendiente

Roadmap completo con dependencias, riesgos y decisiones: ROADMAP.md.

Deploy

Dokploy

docs/DEPLOY_DOKPLOY.md describe el despliegue paso a paso. Resumen:

git clone https://github.com/cquiroz6211/winterbrain.git
cd winterbrain
docker compose up --build -d

El contenedor expone /app/brain como volumen persistente y tiene MarkItDown oficial dentro del venv /opt/markitdown-venv.

Validacion local

docker volume create winterbrain-data
echo '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"probe","version":"0.0.1"}}}
{"jsonrpc":"2.0","method":"notifications/initialized"}
{"jsonrpc":"2.0","id":2,"method":"tools/list","params":{}}' \
  | docker run --rm -i -v winterbrain-data:/app/brain winterbrain:local

Debe listar las cinco herramientas.

Regla de acceso

En el MVP todos pueden ver todo. Los permisos por cliente, startup, inversionista o rol son trabajo futuro (Fase 8). Esto es una decision consciente: primero validamos que el flujo de captura y consulta genera valor; despues segmentamos.

Estructura del repo

winterbrain/
  README.md                este archivo
  ROADMAP.md               fases, dependencias, riesgos, decisiones
  INSTALL_FOR_USERS.md     instrucciones para el agente del usuario
  Dockerfile               imagen multi-stage con MarkItDown oficial
  docker-compose.yml       para Dokploy y local
  package.json             gateway TypeScript
  tsconfig.json
  src/
    server.ts              MCP server con 5 tools
    paths.ts               filesystem, ingestFolder, MarkItDown wrapper
    markdown.ts            helpers de frontmatter y Markdown
    types/markitdown.d.ts  declaraciones de tipos legacy
  docs/
    ARCHITECTURE.md
    OPERATING_MODEL.md
    INGESTION_PIPELINE.md
    MCP_TOOLS.md
    QUICKSTART.md
    DEPLOY_DOKPLOY.md
  templates/
    meeting-note.md
    chat-summary.md
    decision-record.md
  fixtures/                datos de prueba (no se commitean)
  brain/
    raw/                   insumos originales
    markdown/              versiones normalizadas
    knowledge/
      meetings/            reuniones procesadas
      chats/               resumenes de conversaciones
      decisions/           notas ejecutivas y decisiones

Hacia donde vamos

  1. Corto plazo (esta semana). Desplegar en Dokploy y cargar la primera reunion real con un cliente conocido. Validar que el ciclo completo (subir carpeta -> convertir a Markdown -> preguntar -> recibir respuesta) funciona para Sergio y Mariana.

  2. Mediano plazo (2-4 semanas). Extraccion LLM para que cada Markdown genere notas estructuradas (resumen ejecutivo, decisiones, riesgos, aprendizajes). Backend de embeddings para busqueda semantica.

  3. Largo plazo (1-3 meses). Gateway HTTP MCP para que cualquier C-level se conecte sin instalar nada. Permisos por cliente/rol. Integraciones con Drive, Notion, Granola. Wiki navegable del cerebro.

El roadmap completo con dependencias, riesgos y bitacora de decisiones vive en ROADMAP.md.

Available Tools

4 tools
ask_brainAsk Company BrainC

Ask a business question over local Markdown knowledge. Placeholder until GBrain retrieval is wired.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
limitNo
clientNo
questionYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description must disclose behavioral traits. It minimally states it queries local Markdown knowledge but omits details on return format, pagination, error handling, or what happens if the query fails. The placeholder note undermines trust in its current behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is short with two sentences. The first sentence is concise and front-loaded, but the second sentence (placeholder note) is not directly useful for tool selection, slightly reducing efficiency.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema, annotations, and parameter descriptions, the description is severely incomplete. It does not explain return values, limitations, or usage examples, leaving the agent with insufficient information to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, but the description does not explain any of the 4 parameters. It mentions 'question' implicitly but provides no context for 'tags', 'limit', or 'client', leaving the agent without guidance on how to set them meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Ask a business question over local Markdown knowledge,' specifying the verb and resource, which differentiates it from sibling tools (ingestion/saving operations). However, the 'Placeholder until GBrain retrieval is wired' caveat slightly reduces clarity as it indicates the tool is temporary.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No usage guidance is provided. The description does not indicate when to use this tool versus alternatives, nor does it specify any prerequisites or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ingest_meetingIngest MeetingC

Save a meeting record or transcript that is already available as text or Markdown.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleYes
clientNo
sourceNo
contentYes
uploadedByNo
meetingDateNo
participantsNo

TDQS

C2.6/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description fails to disclose any behavioral traits such as whether it overwrites existing records, handles duplicates, or requires authentication. This is a significant gap for a mutation tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence that is front-loaded and contains no redundant information. It earns its place by being minimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has 8 parameters, no output schema, and no annotations, the description is far from complete. It does not explain required parameters, return behavior, or provide any usage context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 8 parameters with 0% coverage in the schema description. The description adds no meaning beyond the parameter names; for example, it does not explain 'client', 'source', 'uploadedBy', or 'meetingDate'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves meeting records/transcripts from text or Markdown, with a specific verb and resource. It differentiates from sibling tools like ask_brain (query) and save_note (generic note).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like save_chat_summary or save_note. The description only states what it does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_chat_summarySave Chat SummaryC

Save a useful business conversation summary to the company brain.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagsNo
titleYes
clientNo
sourceNo
summaryYes
nextActionsNo
participantsNo

TDQS

C2.4/5.0
Behavior1/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, and the description fails to disclose any behavioral traits such as idempotency, side effects, permissions, or what happens on duplicate saves. With no annotation support, the description is insufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence is concise but lacks structure. It is front-loaded but provides no additional details or formatting, making it adequate but not optimal.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 7 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain return values, behavior on required fields, or how parameters relate, leaving agents with insufficient context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema has 0% description coverage, and the description adds no parameter information. It does not explain the meaning or usage of tags, client, source, nextActions, participants, leaving agents to guess.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the action (save), resource (business conversation summary), and destination (company brain). It distinguishes from siblings like ask_brain (query), ingest_meeting (meeting), and save_note (generic).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus siblings. Does not mention context, prerequisites, or exclusions. The description only states what it does, not when to choose it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

save_noteSave Business NoteC

Save a business note, learning, investment insight, product note, client note, or decision to the company brain.

ParametersJSON Schema
NameRequiredDescriptionDefault
bodyYes
kindNoclient_note
tagsNo
titleYes
authorNo
clientNo

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must disclose behavior fully. It only states the save action, omitting details on idempotency, side effects, authorization, or response format. This is insufficient for a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single concise sentence that front-loads the action. However, it sacrifices essential detail for brevity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness1/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no annotations, no output schema, and 6 parameters (2 required), the description is severely incomplete. It lacks information on required inputs, constraints, return values, and behavioral context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must add meaning. It lists note types aligning with the kind enum but fails to explain other parameters like body, title, tags, author, and client. Only partial semantic value for one parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool saves various types of notes to the company brain, listing examples that match the kind enum. It implicitly differentiates from siblings like ask_brain (query) and ingest_meeting (process meeting) through the verb 'save', but does not explicitly contrast them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives like ask_brain, ingest_meeting, or save_chat_summary. The description only states what the tool does, without context for selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 4 tool updatesv0.1.0
    • First observedask_brain
    • First observedingest_meeting
    • First observedsave_chat_summary
    • First observedsave_note

TDQS

B3/5.0

Scored across 4 tools

Disambiguation4/5

Each tool targets a distinct action: querying the brain, saving meetings, saving chat summaries, and saving general notes. Some potential overlap between save_chat_summary and save_note, but descriptions clarify the intended use.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (ask_brain, ingest_meeting, save_chat_summary, save_note) using snake_case, making the naming predictable and clear.

Tool Count5/5

Four tools cover the core operations for a company knowledge brain: querying and saving different content types (meetings, chat summaries, notes). The count is well-scoped for this domain.

Completeness3/5

The set covers adding knowledge and querying (though ask_brain is a placeholder), but lacks update or delete operations. For a knowledge base, this leaves notable gaps in lifecycle management.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Automatically extracts technical concepts from AI coding conversations, organizes them into a searchable knowledge base with hierarchy and categories, and links them to specific locations in your codebase.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides long-term memory for AI coding agents, enabling them to remember, search, and organize information across sessions and platforms like Claude Code, ChatGPT, and Cursor.
    21 npm
    8
    MIT
  • A
    license
    Not graded
    quality
    F
    maintenance
    Connects AI assistants like Claude Code and Codex to a team's shared knowledge graph for searching, storing, and managing documents.
    10 npm
    MIT