StashDog MCP Server
Um servidor que fornece ferramentas de linguagem
Documentação
Servidor MCP StashDog
Um servidor Model Context Protocol (MCP) que fornece ferramentas de linguagem natural para gerenciar seu inventário StashDog. Este servidor permite que assistentes de IA interajam com seu inventário StashDog por meio de comandos intuitivos em linguagem natural.
🚀 Recursos
- Interface de Linguagem Natural: Use inglês simples para gerenciar seu inventário
- Gerenciamento Abrangente de Itens: Adicione, atualize, pesquise, exclua e organize itens
- Gerenciamento de Coleções: Crie e gerencie coleções com facilidade
- Busca Inteligente: Pesquisa inteligente em todo o seu inventário com consultas complexas
- Gerenciamento de Tags: Crie, renomeie e organize tags
- Importação por URL: Importe itens diretamente de URLs
- Autenticação: Autenticação segura com sua conta StashDog
- Formatação Rica: Respostas bonitas e formatadas com emojis e dados estruturados
🛠️ Instalação
-
Clone ou baixe este servidor MCP para sua máquina local:
git clone <repository-url> cd stashdog-mcp-server -
Instale as dependências:
npm install -
Compile o servidor:
npm run build -
Configure as variáveis de ambiente:
cp .env.example .env # Edit .env with your StashDog API configuration
⚙️ Configuração
Variáveis de Ambiente
Crie um arquivo .env no diretório raiz:
# StashDog Supabase Configuration
STASHDOG_SUPABASE_URL=http://localhost:54321
STASHDOG_SUPABASE_ANON_KEY=your_anon_key_here
STASHDOG_AUTH_TOKEN=your_auth_token_here
# Optional: Pre-configured credentials
STASHDOG_EMAIL=your_email@example.com
STASHDOG_PASSWORD=your_password
Este servidor usa apenas tokens de acesso de usuário para requisições. Não forneça uma chave de função de serviço.
Configuração do Cliente MCP
Adicione este servidor à sua configuração de cliente MCP .cursor/mcp.json ou similar:
{
"mcpServers": {
"stashdog": {
"command": "node",
"args": ["/path/to/stashdog-mcp-server/dist/index.js"],
"env": {
"STASHDOG_SUPABASE_URL": "http://localhost:54321",
"STASHDOG_SUPABASE_ANON_KEY": "your_anon_key_here",
"STASHDOG_AUTH_TOKEN": "your_token_here"
}
}
}
}
🔧 Ferramentas Disponíveis
1. authenticate
Autentique-se com sua conta StashDog.
Exemplo:
authenticate with email: user@example.com and password: mypassword
2. manage_inventory_items
Adicione, atualize, pesquise, exclua ou gerencie itens de inventário usando linguagem natural.
Exemplos:
"Add a new MacBook Pro with tags electronics, work, expensive""Search for items tagged with kitchen""Update item abc123 to add note about warranty expiring soon""Delete item xyz789""Find all storage containers""Add item called 'Wireless Mouse' with notes 'Logitech MX Master 3' and tags office, electronics"
3. manage_collections
Crie, atualize, exclua coleções ou gerencie itens dentro de coleções.
Exemplos:
"Create a new collection called 'Kitchen Appliances'""Add items abc123, def456 to collection xyz789""Delete collection old-stuff""Update collection xyz789 to change name to 'Home Office'"
4. import_from_url
Importe itens de URLs (páginas de produtos, imagens, etc.).
Exemplo:
import_from_url: https://example.com/product/laptop
5. manage_tags
Crie, pesquise, renomeie ou exclua tags.
Exemplos:
"Create tag electronics""Search for tags containing kitchen""Rename tag old-name to new-name""Delete tag unused-tag"
6. get_inventory_stats
Obtenha estatísticas sobre seu inventário.
Exemplo:
get_inventory_stats
7. smart_search
Realize buscas inteligentes com consultas em linguagem natural.
Exemplos:
"Show me all electronics in the office""Find kitchen items that are favorited""List storage containers with more than 5 items"
8. manage_users
Busque detalhes do usuário.
Exemplo:
manage_users with userId: abc123
9. manage_notifications
Busque notificações do usuário.
Exemplos:
"Fetch all unread notifications""Get notifications with a limit of 10"
10. manage_groups
Busque grupos do usuário.
Exemplo:
manage_groups
11. manage_subscriptions
Gerencie assinaturas, incluindo busca de detalhes e criação de assinaturas.
Exemplos:
"Get subscription details for US in USD""Create a subscription with tier PREMIUM"
📝 Exemplos de Uso
Adicionando Itens
Add a new item called "Gaming Keyboard" with notes "Mechanical switches, RGB lighting" and tags gaming, electronics, desk-setup
Pesquisando Itens
Find all items tagged with electronics that are in storage containers
Gerenciando Coleções
Create a new collection called "Home Office Setup" with description "Everything needed for working from home"
Operações Complexas
Search for items with tags kitchen, appliances limit 10
🎯 Análise de Linguagem Natural
O servidor inclui análise sofisticada de linguagem natural que entende:
- Ações: adicionar, criar, atualizar, modificar, excluir, remover, pesquisar, encontrar, favoritar, etc.
- Tags: Suporta o formato
#hashtage listas separadas por vírgulas - IDs de Itens: Detecta automaticamente UUIDs em vários formatos
- Campos Personalizados: Analisa padrões
field_name: value - Indicadores de Armazenamento: Reconhece palavras-chave de armazenamento/contêiner
- Aspas: Lida com nomes e descrições entre aspas
- Limites e Deslocamentos: Entende palavras-chave de paginação
🔐 Autenticação
O servidor suporta múltiplos métodos de autenticação:
- Token de Ambiente: Defina
STASHDOG_AUTH_TOKENno seu ambiente - Autenticação em Tempo de Execução: Use a ferramenta
authenticatepara fazer login - Login Automático: Configure
STASHDOG_EMAILeSTASHDOG_PASSWORDpara autenticação automática
📊 Formato de Resposta
Todas as respostas seguem um formato consistente:
{
"success": true,
"message": "✅ Successfully added item 'Gaming Keyboard' with ID: abc123",
"data": {
"id": "abc123",
"name": "Gaming Keyboard",
"tags": ["gaming", "electronics", "desk-setup"]
}
}
🐛 Tratamento de Erros
O servidor fornece mensagens de erro detalhadas para cenários comuns:
- Parâmetros obrigatórios ausentes
- Falhas de autenticação
- Problemas de conectividade de rede
- Erros REST do Supabase
- Erros de validação
📁 Estrutura do Projeto
stashdog-mcp-server/
├── src/
│ ├── index.ts # Main MCP server
│ ├── client.ts # Supabase REST client wrapper
│ ├── types.ts # TypeScript types
│ ├── nlp-utils.ts # Natural language processing
│ └── graphql/
│ └── operations.ts # Legacy GraphQL queries (unused)
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
├── .env.example
└── README.md
🚀 Desenvolvimento
Executando em Modo de Desenvolvimento
npm run dev
Compilação
npm run build
Testes
npm test
🤝 Contribuindo
- Faça um fork do repositório
- Crie um branch de funcionalidade
- Faça suas alterações
- Adicione testes se aplicável
- Envie um pull request
📄 Licença
Licença MIT - consulte o arquivo LICENSE para detalhes.
🆘 Suporte
Se você encontrar algum problema:
- Verifique se sua API StashDog está em execução e acessível
- Verifique suas credenciais de autenticação
- Verifique os logs do servidor para mensagens de erro detalhadas
- Certifique-se de que todas as dependências estejam instaladas corretamente
🎉 Exemplos em Ação
Exemplo de Fluxo de Trabalho Completo
# Authenticate
authenticate with email: user@example.com and password: mypassword
# Add some items
Add a new MacBook Pro with tags electronics, work, laptop and notes "16-inch, M2 chip, 32GB RAM"
# Create a collection
Create a new collection called "Work Equipment" with description "All items for remote work"
# Search for items
Find all items tagged with electronics
# Get stats
get_inventory_stats
# Import from URL
import_from_url: https://example.com/product/wireless-mouse
# Smart search
Show me all work-related items that are favorited
Este servidor MCP torna o gerenciamento do seu inventário StashDog tão fácil quanto conversar com um assistente de IA!