Fireproof JSON DB Collection Server
Gestiona múltiples bases de datos de documentos JSON Fireproof con capacidades de sincronización en la nube.
Documentación
Model Context Protocol y Demo de Fireproof: Servidor de Colección de Documentos JSON
❤️
Este es un ejemplo de cómo usar una base de datos Fireproof en un servidor Model Context Protocol (utilizado para conectar código y datos a sistemas de I.A. como Claude Desktop).
Este servidor:
- permite la creación de múltiples "Bases de Datos de Documentos JSON" (implementadas con Fireproof)
- implementa operaciones CRUD básicas (Crear, Leer, Actualizar, Eliminar) dentro de cualquier base de datos y la capacidad de consultar documentos ordenados por cualquier campo.
- permite compartir cualquier base de datos con otros mediante el servicio Fireproof Cloud y su panel de control
Trabajo previo: Esto se basa en https://github.com/fireproof-storage/mcp-database-server - añade múltiples bases de datos además de la capacidad de sincronizar con la nube.
Ejecución del Servidor
Primero, compílalo:
npm install
npm build
Para usarlo con Claude Desktop, añade la configuración del servidor:
En MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
En Windows: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"json-db-collections": {
"command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
}
}
}
Ejemplo de sesión de chat con Claude Desktop
Aquí hay una sesión de ejemplo usando Claude Desktop donde creo 3 bases de datos de documentos y las sincronizo con la nube:
1. Sesión de Chat: Base de Datos de Elementos
humano (29 dic 2024, 03:59 PM)
crea una base de datos de documentos json llamada elements
asistente (29 dic 2024, 04:00 PM)
Te ayudaré a crear una base de datos de documentos JSON llamada "elements".
La base de datos se ha creado correctamente. Ahora puedes usar esta base de datos para almacenar y gestionar documentos JSON. ¿Te gustaría añadir algún documento?
humano (29 dic 2024, 04:00 PM)
añade los gases nobles de la tabla periódica como documentos individuales
asistente (29 dic 2024, 04:00 PM)
Te ayudaré a añadir los gases nobles como documentos individuales a la base de datos elements. Incluiré las propiedades clave de cada gas noble.
He añadido los siete gases nobles (Helio, Neón, Argón, Criptón, Xenón, Radón y Oganesón) a la base de datos. Para cada elemento, incluí:
- Nombre y símbolo
- Número y masa atómica
- Periodo, grupo y bloque
- Configuración electrónica
- Puntos de fusión y ebullición (en Kelvin)
- Densidad (en g/cm³)
Ten en cuenta que para el Oganesón, algunas propiedades físicas están marcadas como null ya que es un elemento sintético con una vida media muy corta y sus propiedades no están bien determinadas experimentalmente.
¿Te gustaría consultar alguna información específica sobre estos gases nobles de la base de datos?
humano (29 dic 2024, 04:01 PM)
muestra los documentos
asistente (29 dic 2024, 04:01 PM)
Consultaré todos los documentos de la base de datos elements, ordenados por número atómico.
Aquí están todos los gases nobles en la base de datos, listados en orden de número atómico (de mayor a menor):
- Oganesón (Og) - Elemento 118
- Radón (Rn) - Elemento 86
- Xenón (Xe) - Elemento 54
- Criptón (Kr) - Elemento 36
- Argón (Ar) - Elemento 18
- Neón (Ne) - Elemento 10
- Helio (He) - Elemento 2
Cada documento contiene información detallada sobre el elemento, incluyendo su masa atómica, densidad, puntos de fusión y ebullición (cuando se conocen) y configuración electrónica. ¿Te gustaría examinar alguna propiedad específica o comparar ciertos aspectos de estos elementos?
2. Sesión de Chat: Base de Datos de Ingredientes de Galletas
humano (29 dic 2024, 04:01 PM)
crea una base de datos de documentos json llamada cookie_ingredients
asistente (29 dic 2024, 04:01 PM)
Crearé una nueva base de datos de documentos JSON llamada "cookie_ingredients".
La base de datos se ha creado correctamente. ¿Te gustaría añadir algún ingrediente?
humano (29 dic 2024, 04:02 PM)
añade los ingredientes de la receta de galletas con chispas de chocolate como documentos individuales
asistente (29 dic 2024, 04:02 PM)
Añadiré los ingredientes comunes para galletas con chispas de chocolate como documentos individuales con sus medidas y propiedades típicas.
He añadido todos los ingredientes esenciales para una receta clásica de galletas con chispas de chocolate. Para cada ingrediente, incluí:
- Nombre y cantidad
- Unidad de medida
- Tipo (seco, húmedo, leudante, etc.)
- Propósito en la receta
- Posibles sustitutos
- Medidas en peso
- Notas importantes sobre su uso
¿Te gustaría consultar alguna información específica sobre estos ingredientes de la base de datos?
humano (29 dic 2024, 04:02 PM)
muestra los ingredientes como tabla
asistente (29 dic 2024, 04:03 PM)
Consultaré los ingredientes y los formatearé como una tabla de markdown.
| Ingrediente | Cantidad | Unidad | Tipo | Propósito | Peso/Unidad |
|---|---|---|---|---|---|
| Harina de trigo | 2¼ | tazas | seco | estructura | 120g/taza |
| Mantequilla sin sal | 1 | taza | grasa | textura y sabor | 227g/taza |
| Azúcar granulada | ¾ | taza | edulcorante | dulzor y textura | 200g/taza |
| Azúcar moreno | ¾ | taza | edulcorante | humedad y sabor | 220g/taza |
| Huevos grandes | 2 | enteros | aglutinante | estructura y riqueza | 50g cada uno |
| Extracto de vainilla | 1 | cucharadita | aromatizante | mejora del sabor | 5g/cucharadita |
| Sal | 1 | cucharadita | condimento | mejora del sabor | 6g/cucharadita |
| Bicarbonato de sodio | 1 | cucharadita | leudante | crecimiento y extensión | 4.8g/cucharadita |
| Chispas de chocolate | 2 | tazas | mezcla | sabor y textura | 170g/taza |
He organizado los ingredientes por tipo e incluido sus cantidades, unidades, propósitos y medidas en peso. ¿Te gustaría ver algún detalle adicional sobre ingredientes específicos?
3. Sesión de Chat: Base de Datos de Razas de Caballos
humano (29 dic 2024, 04:03 PM)
crea una nueva base de datos de documentos json llamada horse_breeds
asistente (29 dic 2024, 04:03 PM)
Crearé una nueva base de datos de documentos JSON para razas de caballos.
La base de datos se ha creado correctamente. ¿Te gustaría añadir algunas razas de caballos?
humano (29 dic 2024, 04:03 PM)
sí
asistente (29 dic 2024, 04:04 PM)
Añadiré varias razas de caballos populares con sus características clave, orígenes y usos típicos.
He añadido seis razas de caballos distintivas a la base de datos:
- Árabe - conocida por su resistencia y refinamiento
- Pura Sangre - famosa por las carreras y el atletismo
- Clydesdale - un poderoso caballo de tiro
- Quarter Horse - el versátil caballo de trabajo de América
- Frisón - elegante caballo negro de los Países Bajos
- Appaloosa - conocida por sus patrones de manchas y su herencia de los nativos americanos
Cada entrada incluye información sobre:
- Origen y tipo
- Rango de altura (en manos - donde 1 mano = 4 pulgadas)
- Colores comunes
- Características físicas
- Usos típicos
- Temperamento
- Rasgos notables
¿Te gustaría ver la información presentada de alguna manera específica o aprender más sobre alguna raza en particular?
4. Sesión de Chat: Sincronización con la Nube
humano (29 dic 2024, 04:04 PM)
lista las bases de datos de documentos json
asistente (29 dic 2024, 04:04 PM)
Listaré todas las bases de datos de documentos JSON que se han creado.
Tenemos tres bases de datos de documentos JSON:
- horse_breeds
- elements
- cookie_ingredients
Cada base de datos contiene documentos relacionados con su tema específico:
- horse_breeds tiene información sobre diferentes razas de caballos
- elements contiene datos sobre gases nobles
- cookie_ingredients tiene detalles sobre ingredientes de galletas con chispas de chocolate
¿Te gustaría consultar alguna información específica de estas bases de datos?
humano (29 dic 2024, 04:04 PM)
sincroniza horse_breeds con la nube
asistente (29 dic 2024, 04:04 PM)
Te ayudaré a conectar la base de datos horse_breeds con el servicio de sincronización en la nube.
La base de datos horse_breeds se ha conectado correctamente a la nube. Puedes acceder al panel de control usando la URL proporcionada arriba. Esto te permitirá ver y gestionar tus datos de razas de caballos a través de la interfaz en la nube. ¿Te gustaría sincronizar alguna otra base de datos con la nube también?
humano (29 dic 2024, 04:05 PM)
muestra la url
asistente (29 dic 2024, 04:05 PM)
Aquí está la URL del panel de control para la base de datos horse_breeds:
Puedes usar esta URL para acceder y gestionar los datos de razas de caballos a través de la interfaz en la nube.
humano (29 dic 2024, 04:05 PM)
sincroniza la base de datos elements con la nube
asistente (29 dic 2024, 04:05 PM)
Conectaré la base de datos elements con el servicio de sincronización en la nube.
La base de datos elements se ha conectado correctamente a la nube. Puedes acceder al panel de control en:
¿Te gustaría sincronizar también la base de datos cookie_ingredients?
humano (29 dic 2024, 04:05 PM)
sí
asistente (29 dic 2024, 04:05 PM)
Conectaré la base de datos cookie_ingredients con el servicio de sincronización en la nube.
Aquí está la URL del panel de control para la base de datos cookie_ingredients:
Ahora las tres bases de datos (horse_breeds, elements y cookie_ingredients) están sincronizadas con la nube y se puede acceder a ellas a través de sus respectivas URLs de panel de control.
5. Sesión de Chat: Limpieza
humano (29 dic 2024, 04:06 PM)
elimina todas las bases de datos
asistente (29 dic 2024, 04:06 PM)
Te ayudaré a eliminar las tres bases de datos.
Las tres bases de datos se han eliminado correctamente:
- horse_breeds
- elements
- cookie_ingredients
Déjame verificar que todas han desaparecido.
Confirmado - no quedan bases de datos en el sistema. ¿Te gustaría crear alguna base de datos nueva?
Convertido a Markdown gracias a: https://simonwillison.net/2024/Aug/8/convert-claude-json-to-markdown/
Ideas de desarrollo futuro
- prompts
- recursos
- multiusuario con permisos
- indexación
- generar sitios web estáticos desde Claude Desktop usando las librerías npm de Firebase
Desarrollo
pnpm install
pnpm build
pnpm run inspector
# To reset, do: rm -rf ~/.fireproof /tmp/dist
~/Library/Application\ Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"json-db-collections": {
"command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
}
}
}
Licencia
MIT o Apache 2