Fireproof JSON DB Collection Server

Gerencie múltiplos bancos de dados de documentos JSON Fireproof com capacidades de sincronização em nuvem.

Documentação

Model Context Protocol e Demonstração Fireproof: Servidor de Coleção de Documentos JSON

Fireproof ❤️ MCP

Este é um exemplo de como usar um banco de dados Fireproof em um servidor Model Context Protocol (usado para conectar código e dados a sistemas de I.A. como o Claude Desktop).

Este servidor:

  • permite a criação de múltiplos "Bancos de Dados de Documentos JSON" (implementados usando Fireproof)
  • implementa operações básicas de CRUD (Create, Read, Update, Delete) em qualquer banco de dados e a capacidade de consultar documentos ordenados por qualquer campo.
  • permite compartilhar qualquer banco de dados com outras pessoas usando o serviço Fireproof Cloud e o painel de controle.

Trabalho anterior: Isso é baseado em https://github.com/fireproof-storage/mcp-database-server - ele adiciona múltiplos bancos de dados além da capacidade de sincronizar com a nuvem.

Executando o Servidor

Primeiro, construa-o:

npm install
npm build

Para usar com o Claude Desktop, adicione a configuração do servidor:

No MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json

No Windows: %APPDATA%/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "json-db-collections": {
      "command": "<base-dir>/mcp-json-db-collection-server/build/index.js"
    }
  }
}

Exemplo de sessão de chat do Claude Desktop

Aqui está uma sessão de exemplo usando o Claude Desktop onde eu crio 3 bancos de dados de documentos e os sincronizo com a nuvem:

1. Sessão de Chat: Banco de Dados de Elementos

human (Dec 29, 2024, 03:59 PM)

crie um banco de dados de documentos json chamado elements

assistant (Dec 29, 2024, 04:00 PM)

Vou ajudá-lo a criar um banco de dados de documentos JSON chamado "elements".

O banco de dados foi criado com sucesso. Agora você pode usar este banco de dados para armazenar e gerenciar documentos JSON. Gostaria de adicionar algum documento a ele?

human (Dec 29, 2024, 04:00 PM)

adicione gases nobres da tabela periódica como documentos individuais

assistant (Dec 29, 2024, 04:00 PM)

Vou ajudá-lo a adicionar os gases nobres como documentos individuais ao banco de dados elements. Incluirei propriedades-chave para cada gás nobre.

Adicionei todos os sete gases nobres (Hélio, Neônio, Argônio, Criptônio, Xenônio, Radônio e Oganessônio) ao banco de dados. Para cada elemento, incluí:

  • Nome e símbolo
  • Número atômico e massa
  • Período, grupo e bloco
  • Configuração eletrônica
  • Pontos de fusão e ebulição (em Kelvin)
  • Densidade (em g/cm³)

Observe que para o Oganessônio, algumas propriedades físicas estão marcadas como nulas, pois é um elemento sintético com meia-vida muito curta e suas propriedades não são bem determinadas experimentalmente.

Gostaria de consultar alguma informação específica sobre esses gases nobres do banco de dados?

human (Dec 29, 2024, 04:01 PM)

mostrar documentos

assistant (Dec 29, 2024, 04:01 PM)

Vou consultar todos os documentos do banco de dados elements, ordenados por número atômico.

Aqui estão todos os gases nobres no banco de dados, listados em ordem de número atômico (do maior para o menor):

  1. Oganesson (Og) - Elemento 118
  2. Radon (Rn) - Elemento 86
  3. Xenônio (Xe) - Elemento 54
  4. Criptônio (Kr) - Elemento 36
  5. Argônio (Ar) - Elemento 18
  6. Neônio (Ne) - Elemento 10
  7. Hélio (He) - Elemento 2

Cada documento contém informações detalhadas sobre o elemento, incluindo massa atômica, densidade, pontos de fusão e ebulição (quando conhecidos) e configuração eletrônica. Gostaria de examinar alguma propriedade específica ou comparar certos aspectos desses elementos?

2. Sessão de Chat: Banco de Dados de Ingredientes de Biscoitos

human (Dec 29, 2024, 04:01 PM)

crie um banco de dados de documentos json chamado cookie_ingredients

assistant (Dec 29, 2024, 04:01 PM)

Vou criar um novo banco de dados de documentos JSON chamado "cookie_ingredients".

O banco de dados foi criado com sucesso. Gostaria de adicionar algum ingrediente a ele?

human (Dec 29, 2024, 04:02 PM)

adicione ingredientes da receita de biscoitos com gotas de chocolate como documentos individuais

assistant (Dec 29, 2024, 04:02 PM)

Vou adicionar ingredientes comuns para biscoitos com gotas de chocolate como documentos individuais com suas medidas e propriedades típicas.

Adicionei todos os ingredientes essenciais para uma receita clássica de biscoito com gotas de chocolate. Para cada ingrediente, incluí:

  • Nome e quantidade
  • Unidade de medida
  • Tipo (seco, úmido, fermento, etc.)
  • Propósito na receita
  • Possíveis substitutos
  • Medidas de peso
  • Notas importantes sobre o uso

Gostaria de consultar alguma informação específica sobre esses ingredientes do banco de dados?

human (Dec 29, 2024, 04:02 PM)

mostrar ingredientes como tabela

assistant (Dec 29, 2024, 04:03 PM)

Vou consultar os ingredientes e formatá-los como uma tabela markdown.

IngredienteQuantidadeUnidadeTipoPropósitoPeso/Unidade
Farinha de Trigo2¼xícarassecoestrutura120g/xícara
Manteiga sem Sal1xícaragorduratextura e sabor227g/xícara
Açúcar Granulado¾xícaraadoçantedoçura e textura200g/xícara
Açúcar Mascavo¾xícaraadoçanteumidade e sabor220g/xícara
Ovos Grandes2unidadesliganteestrutura e riqueza50g cada
Extrato de Baunilha1colher de cháaromatizanterealce de sabor5g/colher de chá
Sal1colher de chátemperorealce de sabor6g/colher de chá
Bicarbonato de Sódio1colher de cháfermentocrescimento e espalhamento4.8g/colher de chá
Gotas de Chocolate2xícarasmisturasabor e textura170g/xícara

Organizei os ingredientes por tipo e incluí suas quantidades, unidades, propósitos e medidas de peso. Gostaria de ver algum detalhe adicional sobre ingredientes específicos?

3. Sessão de Chat: Banco de Dados de Raças de Cavalos

human (Dec 29, 2024, 04:03 PM)

crie um novo banco de dados de documentos json chamado horse_breeds

assistant (Dec 29, 2024, 04:03 PM)

Vou criar um novo banco de dados de documentos JSON para raças de cavalos.

O banco de dados foi criado com sucesso. Gostaria de adicionar algumas raças de cavalos a ele?

human (Dec 29, 2024, 04:03 PM)

sim

assistant (Dec 29, 2024, 04:04 PM)

Vou adicionar várias raças populares de cavalos com suas características-chave, origens e usos típicos.

Adicionei seis raças distintas de cavalos ao banco de dados:

  1. Árabe - conhecido por resistência e refinamento
  2. Puro Sangue Inglês - famoso por corridas e atletismo
  3. Clydesdale - um cavalo de tração poderoso
  4. Quarter Horse - o cavalo de trabalho versátil da América
  5. Frísio - elegante cavalo preto dos Países Baixos
  6. Appaloosa - conhecido por padrões de manchas e herança nativa americana

Cada entrada inclui informações sobre:

  • Origem e tipo
  • Faixa de altura (em mãos - onde 1 mão = 4 polegadas)
  • Cores comuns
  • Características físicas
  • Usos típicos
  • Temperamento
  • Traços notáveis

Gostaria de ver as informações apresentadas de uma forma específica ou saber mais sobre alguma raça em particular?

4. Sessão de Chat: Sincronizar com a Nuvem

human (Dec 29, 2024, 04:04 PM)

listar bancos de dados de documentos json

assistant (Dec 29, 2024, 04:04 PM)

Vou listar todos os bancos de dados de documentos JSON que foram criados.

Temos três bancos de dados de documentos JSON:

  1. horse_breeds
  2. elements
  3. cookie_ingredients

Cada banco de dados contém documentos relacionados ao seu tema específico:

  • horse_breeds tem informações sobre diferentes raças de cavalos
  • elements contém dados sobre gases nobres
  • cookie_ingredients tem detalhes sobre ingredientes de biscoitos com gotas de chocolate

Gostaria de consultar alguma informação específica desses bancos de dados?

human (Dec 29, 2024, 04:04 PM)

sincronizar horse_breeds com a nuvem

assistant (Dec 29, 2024, 04:04 PM)

Vou ajudá-lo a conectar o banco de dados horse_breeds ao serviço de sincronização em nuvem.

O banco de dados horse_breeds foi conectado com sucesso à nuvem. Você pode acessar o painel usando a URL fornecida acima. Isso permitirá que você visualize e gerencie seus dados de raças de cavalos através da interface em nuvem. Gostaria de sincronizar outros bancos de dados com a nuvem também?

human (Dec 29, 2024, 04:05 PM)

mostrar url

assistant (Dec 29, 2024, 04:05 PM)

Aqui está a URL do painel para o banco de dados horse_breeds:

https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F&localName=horse_breeds&remoteName=019414e1-2db0-70aa-b9a4-2e2f78a7adce

Você pode usar esta URL para acessar e gerenciar os dados das raças de cavalos através da interface em nuvem.

human (Dec 29, 2024, 04:05 PM)

sincronizar elements com a nuvem

assistant (Dec 29, 2024, 04:05 PM)

Vou conectar o banco de dados elements ao serviço de sincronização em nuvem.

O banco de dados elements foi conectado com sucesso à nuvem. Você pode acessar o painel em:

https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F&localName=elements&remoteName=019414e1-db52-75e7-b8d0-21ce605176a7

Gostaria de sincronizar também o banco de dados cookie_ingredients?

human (Dec 29, 2024, 04:05 PM)

sim

assistant (Dec 29, 2024, 04:05 PM)

Vou conectar o banco de dados cookie_ingredients ao serviço de sincronização em nuvem.

Aqui está a URL do painel para o banco de dados cookie_ingredients:

https://dashboard.fireproof.storage/fp/databases/connect?endpoint=fireproof%3A%2F%2Fcloud.fireproof.direct%2F&localName=cookie_ingredients&remoteName=019414e2-1f47-72d7-bf8f-a721d29a24c7

Agora todos os três bancos de dados (horse_breeds, elements e cookie_ingredients) estão sincronizados com a nuvem e podem ser acessados através de suas respectivas URLs de painel.

5. Sessão de Chat: Limpeza

human (Dec 29, 2024, 04:06 PM)

excluir todos os bancos de dados

assistant (Dec 29, 2024, 04:06 PM)

Vou ajudá-lo a excluir todos os três bancos de dados.

Todos os três bancos de dados foram excluídos com sucesso:

  1. horse_breeds
  2. elements
  3. cookie_ingredients

Deixe-me verificar se todos foram removidos.

Confirmado - não há mais bancos de dados no sistema. Gostaria de criar algum novo banco de dados?

Convertido para Markdown graças a: https://simonwillison.net/2024/Aug/8/convert-claude-json-to-markdown/

Ideias para desenvolvimento futuro

  • prompts
  • recursos
  • multiusuário com permissões
  • indexação
  • gerar sites estáticos a partir do Claude Desktop usando bibliotecas npm do Firebase

Desenvolvimento

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"
    }
  }
}

Licença

MIT ou Apache 2