StashDog MCP Server
Un servidor que proporciona herramientas de lenguaje natural para gestionar tu inventario de StashDog.
Documentación
Servidor MCP StashDog
Un servidor de Protocolo de Contexto de Modelo (MCP) que proporciona herramientas de lenguaje natural para gestionar tu inventario de StashDog. Este servidor permite a los asistentes de IA interactuar con tu inventario de StashDog mediante comandos intuitivos en lenguaje natural.
🚀 Características
- Interfaz de Lenguaje Natural: Usa inglés sencillo para gestionar tu inventario
- Gestión Integral de Artículos: Añade, actualiza, busca, elimina y organiza artículos
- Gestión de Colecciones: Crea y gestiona colecciones con facilidad
- Búsqueda Inteligente: Búsqueda inteligente en tu inventario con consultas complejas
- Gestión de Etiquetas: Crea, renombra y organiza etiquetas
- Importación desde URL: Importa artículos directamente desde URLs
- Autenticación: Autenticación segura con tu cuenta de StashDog
- Formato Enriquecido: Respuestas hermosas y formateadas con emojis y datos estructurados
🛠️ Instalación
-
Clona o descarga este servidor MCP en tu máquina local:
git clone <repository-url> cd stashdog-mcp-server -
Instala las dependencias:
npm install -
Compila el servidor:
npm run build -
Configura las variables de entorno:
cp .env.example .env # Edit .env with your StashDog API configuration
⚙️ Configuración
Variables de Entorno
Crea un archivo .env en el directorio raíz:
# 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 solo utiliza tokens de acceso de usuario para las solicitudes. No proporciones una clave de rol de servicio.
Configuración del Cliente MCP
Añade este servidor a tu configuración de cliente MCP .cursor/mcp.json o 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"
}
}
}
}
🔧 Herramientas Disponibles
1. authenticate
Autentícate con tu cuenta de StashDog.
Ejemplo:
authenticate with email: user@example.com and password: mypassword
2. manage_inventory_items
Añade, actualiza, busca, elimina o gestiona artículos del inventario usando lenguaje natural.
Ejemplos:
"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
Crea, actualiza, elimina colecciones o gestiona artículos dentro de colecciones.
Ejemplos:
"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
Importa artículos desde URLs (páginas de productos, imágenes, etc.).
Ejemplo:
import_from_url: https://example.com/product/laptop
5. manage_tags
Crea, busca, renombra o elimina etiquetas.
Ejemplos:
"Create tag electronics""Search for tags containing kitchen""Rename tag old-name to new-name""Delete tag unused-tag"
6. get_inventory_stats
Obtén estadísticas sobre tu inventario.
Ejemplo:
get_inventory_stats
7. smart_search
Realiza búsquedas inteligentes con consultas en lenguaje natural.
Ejemplos:
"Show me all electronics in the office""Find kitchen items that are favorited""List storage containers with more than 5 items"
8. manage_users
Obtén detalles del usuario.
Ejemplo:
manage_users with userId: abc123
9. manage_notifications
Obtén notificaciones del usuario.
Ejemplos:
"Fetch all unread notifications""Get notifications with a limit of 10"
10. manage_groups
Obtén grupos de usuarios.
Ejemplo:
manage_groups
11. manage_subscriptions
Gestiona suscripciones, incluyendo la obtención de detalles y la creación de suscripciones.
Ejemplos:
"Get subscription details for US in USD""Create a subscription with tier PREMIUM"
📝 Ejemplos de Uso
Añadir Artículos
Add a new item called "Gaming Keyboard" with notes "Mechanical switches, RGB lighting" and tags gaming, electronics, desk-setup
Buscar Artículos
Find all items tagged with electronics that are in storage containers
Gestionar Colecciones
Create a new collection called "Home Office Setup" with description "Everything needed for working from home"
Operaciones Complejas
Search for items with tags kitchen, appliances limit 10
🎯 Análisis de Lenguaje Natural
El servidor incluye un sofisticado análisis de lenguaje natural que comprende:
- Acciones: añadir, crear, actualizar, modificar, eliminar, quitar, buscar, encontrar, favorito, etc.
- Etiquetas: Soporta el formato
#hashtagy listas separadas por comas - IDs de Artículos: Detecta automáticamente UUIDs en varios formatos
- Campos Personalizados: Analiza patrones
field_name: value - Indicadores de Almacenamiento: Reconoce palabras clave de almacenamiento/contenedor
- Comillas: Maneja nombres y descripciones entre comillas
- Límites y Desplazamientos: Comprende palabras clave de paginación
🔐 Autenticación
El servidor admite múltiples métodos de autenticación:
- Token de Entorno: Establece
STASHDOG_AUTH_TOKENen tu entorno - Autenticación en Tiempo de Ejecución: Usa la herramienta
authenticatepara iniciar sesión - Inicio de Sesión Automático: Configura
STASHDOG_EMAILySTASHDOG_PASSWORDpara autenticación automática
📊 Formato de Respuesta
Todas las respuestas siguen un formato consistente:
{
"success": true,
"message": "✅ Successfully added item 'Gaming Keyboard' with ID: abc123",
"data": {
"id": "abc123",
"name": "Gaming Keyboard",
"tags": ["gaming", "electronics", "desk-setup"]
}
}
🐛 Manejo de Errores
El servidor proporciona mensajes de error detallados para escenarios comunes:
- Parámetros requeridos faltantes
- Fallos de autenticación
- Problemas de conectividad de red
- Errores REST de Supabase
- Errores de validación
📁 Estructura del Proyecto
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
🚀 Desarrollo
Ejecutar en Modo de Desarrollo
npm run dev
Compilación
npm run build
Pruebas
npm test
🤝 Contribuciones
- Haz un fork del repositorio
- Crea una rama de características
- Realiza tus cambios
- Añade pruebas si corresponde
- Envía una solicitud de extracción
📄 Licencia
Licencia MIT: consulta el archivo LICENSE para más detalles.
🆘 Soporte
Si encuentras algún problema:
- Verifica que tu API de StashDog esté ejecutándose y sea accesible
- Verifica tus credenciales de autenticación
- Revisa los registros del servidor para ver mensajes de error detallados
- Asegúrate de que todas las dependencias estén instaladas correctamente
🎉 Ejemplos en Acción
Ejemplo de Flujo de Trabajo 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 hace que gestionar tu inventario de StashDog sea tan fácil como tener una conversación con un asistente de IA!