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
❤️
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):
- Oganesson (Og) - Elemento 118
- Radon (Rn) - Elemento 86
- Xenônio (Xe) - Elemento 54
- Criptônio (Kr) - Elemento 36
- Argônio (Ar) - Elemento 18
- Neônio (Ne) - Elemento 10
- 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.
| Ingrediente | Quantidade | Unidade | Tipo | Propósito | Peso/Unidade |
|---|---|---|---|---|---|
| Farinha de Trigo | 2¼ | xícaras | seco | estrutura | 120g/xícara |
| Manteiga sem Sal | 1 | xícara | gordura | textura e sabor | 227g/xícara |
| Açúcar Granulado | ¾ | xícara | adoçante | doçura e textura | 200g/xícara |
| Açúcar Mascavo | ¾ | xícara | adoçante | umidade e sabor | 220g/xícara |
| Ovos Grandes | 2 | unidades | ligante | estrutura e riqueza | 50g cada |
| Extrato de Baunilha | 1 | colher de chá | aromatizante | realce de sabor | 5g/colher de chá |
| Sal | 1 | colher de chá | tempero | realce de sabor | 6g/colher de chá |
| Bicarbonato de Sódio | 1 | colher de chá | fermento | crescimento e espalhamento | 4.8g/colher de chá |
| Gotas de Chocolate | 2 | xícaras | mistura | sabor e textura | 170g/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:
- Árabe - conhecido por resistência e refinamento
- Puro Sangue Inglês - famoso por corridas e atletismo
- Clydesdale - um cavalo de tração poderoso
- Quarter Horse - o cavalo de trabalho versátil da América
- Frísio - elegante cavalo preto dos Países Baixos
- 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:
- horse_breeds
- elements
- 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:
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:
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:
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:
- horse_breeds
- elements
- 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