alfred-perfume-mcp
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
🤵 Alfred: Mayordomo Olfativo Personal (alfred-perfume-mcp)
Servidor Model Context Protocol (MCP) concebido bajo la figura de Alfred, su mayordomo personal y curador privado de alta perfumería, construido con FastMCP (Python) y SQLite.
Diseñado bajo la Regla de Oro de Eficiencia de Tokens (Patrón Summary vs Detail), Alfred asiste a modelos de lenguaje (LLMs) con la distinción, cortesía e impecable criterio de un mayordomo de tradición británica: optimiza el contexto conversacional, realiza búsquedas conceptuales por acordes ponderados y segmentos (Diseñador, Nicho, Árabe), evalúa la viabilidad química de combinaciones (layering), gestiona su colección privada y diagnostica vacíos para mantener un guardarropa aromático intachable.
🏗️ Arquitectura y Principios de Diseño
1. Regla de Oro de Tokens (Summary vs Detail)
Las herramientas de búsqueda (
buscar_perfumes) NUNCA devuelven pirámides completas ni descripciones extensas. Devuelven objetos ultraligerosPerfumeSummary(ID, nombre, casa, género, concentración y top 3-4 acordes dominantes).El modelo solo solicita la ficha profunda (
obtener_detalle_perfumeo el recurso dinámicoperfumeria://perfume/{id}) para los candidatos que decida profundizar.
2. Búsqueda Conceptual y Sinónimos Normalizados
Sistema de resolución de alias y variantes (
sinonimos_notas) que traduce términos coloquiales (ej. 'tonka' ➔ 'haba tonka', 'oud' ➔ 'madera de agar', 'lemon' ➔ 'limón').Ponderación real de acordes (escala 0.1 a 1.0) para ordenar coincidencias con relevancia matemática.
3. Persistencia Relacional Ligera (SQLite)
Esquema relacional normalizado con integridad referencial (
PRAGMA foreign_keys = ON;) y modo WAL para transacciones concurrentes.Soporte para colecciones de usuario: bitácora de fragancias poseídas, deseadas (wishlist), probadas y descartadas con puntuaciones y notas personales.
Related MCP server: Promptibus MCP
📁 Estructura del Proyecto
PerfumIA/
├── README.md # Documentación técnica completa
├── requirements.txt # Dependencias estrictas (FastMCP, Pydantic v2)
├── claude_desktop_config.json # Configuración para Claude Desktop
├── database/
│ ├── __init__.py
│ ├── connection.py # Conexión SQLite optimizada y soporte WAL
│ ├── schema.sql # DDL de tablas e índices relacionales
│ ├── seed_data.py # Catálogo curado (15 fragancias icónicas y 77 sinónimos)
│ └── perfumes.db # Base de datos SQLite generada
├── src/
│ ├── __init__.py
│ ├── models.py # Esquemas Pydantic v2 (Summary, Detail, Layering)
│ ├── repository.py # Consultas SQL optimizadas y algoritmos de maridaje
│ ├── server.py # Instancia FastMCP con Tools, Resources y Prompts
│ └── guides/ # Documentación para los recursos estáticos
│ ├── familias_y_acordes.md
│ └── concentraciones_y_rendimiento.md
└── tests/
└── test_server.py # Suite de pruebas unitarias y de integración🚀 Instalación y Puesta en Marcha
Prerrequisitos
Python 3.10 o superior (verificado con Python 3.13 / 3.14).
uv(recomendado) opip/venv.Node.js (opcional, para utilizar el MCP Inspector).
1. Clonar y preparar el entorno virtual
# Clonar el repositorio
git clone https://github.com/<TU_USUARIO>/PerfumIA.git
cd PerfumIA
# Crear entorno virtual con Python
python -m venv .venv
# Activar entorno virtual
# En Windows (PowerShell):
.venv\Scripts\Activate.ps1
# En Windows (CMD):
.venv\Scripts\activate.bat2. Instalar dependencias
pip install -r requirements.txt3. Inicializar y Sembrar la Base de Datos
La base de datos se inicializa automáticamente al iniciar el servidor si no existe, pero puedes forzar o verificar la siembra ejecutando:
python -m database.seed_dataSalida esperada:
[OK] Se han sembrado 15 fragancias iconicas y 77 sinonimos normalizados.🧪 Pruebas Unitarias
Ejecuta la suite de pruebas integrada para verificar el catálogo, los algoritmos de layering y los contratos MCP:
python -m unittest tests/test_server.py🔍 Probar con el Inspector de MCP
El MCP Inspector oficial de Anthropic permite interactuar visualmente con las herramientas, recursos y prompts del servidor:
npx @modelcontextprotocol/inspector .venv\Scripts\python.exe src\server.pyAl abrir la interfaz web (generalmente en http://localhost:5173), podrás inspeccionar:
Tools: Probar
buscar_perfumes,obtener_detalle_perfume, etc.Resources: Leer
perfumeria://guia/familias-y-acordeso fichas individualesperfumeria://perfume/1.Prompts: Invocar
asesor_personalizadooduelo_fragancias.
🖥️ Integración con Claude Desktop
Para utilizar este servidor con la aplicación de escritorio de Claude, agrega la configuración en tu archivo claude_desktop_config.json (ubicado usualmente en %APPDATA%\Claude\claude_desktop_config.json):
{
"mcpServers": {
"alfred-perfume": {
"command": "C:\\ruta\\a\\PerfumIA\\.venv\\Scripts\\python.exe",
"args": [
"C:\\ruta\\a\\PerfumIA\\src\\server.py"
],
"env": {
"PYTHONIOENCODING": "utf-8",
"PYTHONPATH": "C:\\ruta\\a\\PerfumIA",
"PERFUME_DB_PATH": "C:\\ruta\\a\\PerfumIA\\database\\perfumes.db"
}
}
}
}🛠️ Catálogo de Capacidades MCP
1. Herramientas (MCP Tools)
Herramienta | Parámetros | Retorno | Descripción |
|
|
| Búsqueda conceptual ponderada y ligera por texto, marca, segmento ('Diseñador', 'Nicho', 'Árabe'), acordes u ocasión. |
|
|
| Ficha técnica profunda con desglose de pirámide (salida, corazón, fondo), segmento, horas reales de longevidad y estela. |
|
|
| Evaluación sommelier de combinación de perfumes, anclajes de base, sinergias y orden técnico de pulverización. |
|
|
| CRUD del armario olfativo personal ( |
| Ninguno |
| Análisis de cobertura estacional/contextual y recomendaciones de piezas clave para completar el fondo de armario. |
2. Recursos (MCP Resources)
perfumeria://perfume/{perfume_id}(Dinámico): Ficha técnica en Markdown limpio de cualquier perfume del catálogo para inspección directa en el contexto sin gastar turnos de herramientas.perfumeria://guia/familias-y-acordes(Estático): Compendio enciclopédico sobre familias olfativas (Cítrica, Chipre, Oriental, Fougère, Gourmand, etc.) y acordes.perfumeria://guia/concentraciones-y-rendimiento(Estático): Guía sobre graduación de aceites (EDC, EDT, EDP, Extrait), maceración y química en piel.
3. Prompts Nativos (MCP Prompts)
asesor_personalizado(ocasion, clima): Activa el protocolo de entrevista refinada de un sommelier de alta perfumería.duelo_fragancias(perfume_a, perfume_b): Prepara un versus exhaustivo cara a cara comparando secado (drydown), longevidad, versatilidad y factor de exclusividad.
🌹 Catálogo de Fragancias Curadas (22 Referencias)
🏺 Perfumería Árabe / Medio Oriente
Khamrah (Lattafa) - Dátiles confitados, canela, praliné y benjuí.
9 PM (Afnan) - Manzana crujiente, canela, lavanda salvaje y vainilla nocturna.
Club de Nuit Intense Man (Armaf) - Limón explosivo, abedul ahumado y ámbar gris.
Asad (Lattafa) - Pimienta negra, piña, café tostado y ámbar especiado.
Shaghaf Oud (Swiss Arabian) - Rosa, praliné, azafrán y madera de agar (oud) emiratí.
👔 Perfumería de Diseñador
Dior Homme Intense (Dior) - Iris cosmético mantecoso, maderas y ambreta.
Terre d'Hermès (Hermès) - Naranja amarga, sílex mineral, cedro y vetiver.
Acqua di Giò Parfum (Armani) - Notas marinas, bergamota e incienso ahumado.
Bleu de Chanel (Chanel) - Pomelo, menta, incienso, ámbar y cedro.
Le Male Elixir (Jean Paul Gaultier) - Torso ardiente con miel dorada, benjuí, tonka y tabaco.
Encre Noire (Lalique) - Ciprés gótico, vetiver de Bourbon y cashmeran.
Chanel No. 5 (Chanel) - Aldehídos legendarios, ylang-ylang, iris y sándalo.
💎 Perfumería Nicho
Creed Aventus (Creed) - Piña ahumada, abedul, musgo de roble y grosella.
Baccarat Rouge 540 (MFK) - Jazmín, azafrán, amberwood y cedro.
Xerjoff Naxos (Xerjoff) - Miel dorada, tabaco rubio, lavanda y cítricos sicilianos.
Parfums de Marly Layton (PdM) - Manzana crujiente, vainilla, cardamomo y maderas nobles.
Cedrat Boise (Mancera) - Limón de Sicilia, grosellas negras, cuero y cedro.
By the Fireplace (Maison Margiela) - Castaña asada, humo crepitante y vainilla.
Tobacco Vanille (Tom Ford) - Tabaco de club inglés, vainilla y frutos secos.
Angels' Share (Kilian) - Coñac añejado en barrica de roble, canela y praliné.
Grand Soir (MFK) - Ámbar parisino, benjuí de Siam y haba tonka.
Hacivat (Nishane) - Piña jugosa, musgo de roble y maderas secas (Extrait).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
The media memory layer for AI agents and their humans. Your AI client can search your collection, add and log what you've finished, update ratings and lists, and find patterns across everything you've read, watched, played, and listened to.
AI-powered commerce API for luxury skincare shopping. Enables AI agents to search products, browse collections, manage shopping carts, and generate checkout URLs for the Regenique Elegance Shopify store.
Curated knowledge API for AI agents - skill packs, semantic search, validated patterns.
Discover, inspect and run 63,000+ agent tools from one balance. Pay per call, no subscriptions.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables working with large documents of any size by intelligently segmenting them and using TF-IDF search to retrieve only relevant fragments, preventing context window saturation. Provides 31 domain-agnostic tools for document ingestion, semantic analysis, epistemological validation, and extraction verification across formats like PDF, EPUB, and HTML.31MIT
- AlicenseAqualityDmaintenanceProvides AI agents with structured knowledge about 67+ generative AI models, including model recommendations, prompt formatting, parameter guidance, and validation. It acts as a prompt engineering co-pilot that helps agents use their existing tools more effectively.12120 npm3MIT
- FlicenseNot gradedqualityCmaintenanceEnables AI assistants to search beauty products from Korean catalogs (Olive Young, Daiso, e-commerce) and analyze personal skincare routines and ingredient compositions via BeauticsLab.-
- AlicenseNot gradedqualityBmaintenanceExposes product catalog and semantic search as tools for an LLM agent, enabling natural language product recommendations based on intent rather than keyword matching.1MIT