FindMine Shopping Stylist
OfficialThe FindMine Shopping Stylist MCP server integrates FindMine's fashion styling API with Claude and other MCP-compatible applications to provide AI-powered styling assistance.
Core Capabilities:
Style guidance: Access comprehensive fashion advice organized by category (color theory, body types, casual/formal styles, seasonal trends), specific occasions (weddings, office wear, date nights), and fashion seasons
Outfit recommendations: Get complete outfit suggestions for specific products with options for personalization (customer ID, gender, session tracking), stock/sale filtering, and control over whether to include the original product
Product discovery: Find visually similar products with flexible pagination, color-specific matching, and personalization options
Browse fashion content: Access detailed product information via
product:///URIs and complete outfit recommendations vialook:///URIsBuilt-in prompts: Use ready-made prompts for outfit completion, styling guidance, and tool assistance
Integration Features:
Session tracking: Maintain consistent personalization across user interactions
Customizable style guides: Modify content to match specific brand aesthetics
Performance optimization: Built-in response caching and API version control
Multi-region/language support: Configure default region and language settings
Flexible deployment: Install via npm, Docker, or from source with configurable API settings and development mode with sample data
Provides containerized deployment of the FindMine MCP server through Docker Hub, simplifying setup and configuration across environments.
Allows cloning and building the MCP server from source code hosted on GitHub.
Supports automatic configuration of Claude Desktop on macOS systems, with specific paths for configuration files.
Enables installation and distribution of the FindMine MCP server through npm, with support for global installation and direct execution.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@FindMine Shopping Stylistshow me outfit ideas for this black dress"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FindMine Shopping Stylist
A Model Context Protocol (MCP) server that integrates FindMine's powerful product styling and outfitting recommendations with Claude and other MCP-compatible applications.
Overview
This MCP server connects to FindMine's styling API and exposes its functionality to Large Language Models through the Model Context Protocol. It allows users to:
Browse product and outfit information
Get outfit recommendations for specific products
Find visually similar products
Access style guidance and fashion advice
Related MCP server: Kroger MCP Server
Features
Resources
Products: Detailed product information with
product:///URI schemeLooks: Complete outfit recommendations with
look:///URI scheme
Tools
get_style_guide: Access detailed fashion advice and styling guidelines
get_complete_the_look: Get outfit recommendations for a product
get_visually_similar: Find visually similar products
Prompts
outfit_completion: Get styling advice for complete outfits
styling_guide: Access comprehensive fashion styling guidelines
findmine_help: Learn how to use FindMine's tools and resources
Installation
Option 1: Install from npm
# Install and run directly (recommended)
npx findmine-mcp
# Or install globally
npm install -g findmine-mcp
findmine-mcpOption 2: Run with Docker
docker run -e FINDMINE_APP_ID=your_app_id findmine/mcp-server:latestOption 3: Clone and build from source
# Clone the repository
git clone https://github.com/findmine/findmine-mcp.git
cd findmine-mcp
# Install dependencies
npm install
# Build the server
npm run build
# For development with auto-rebuild
npm run watchConfiguration
Environment Variables
Variable | Description | Default |
| FindMine API base URL | |
| Your FindMine application ID | DEMO_APP_ID |
| API version to use | v3 |
| Default region code | us |
| Default language code | en |
| Enable response caching | true |
| Cache time-to-live in ms | 3600000 (1 hour) |
| Set to "development" for sample data | - |
Usage with Claude Desktop
The server automatically configures Claude Desktop during installation. To verify:
macOS:
cat ~/Library/Application\ Support/Claude/claude_desktop_config.jsonWindows:
type %APPDATA%\Claude\claude_desktop_config.jsonDevelopment
Available Scripts
# Build and watch
npm run build # Build the project
npm run watch # Watch for changes and rebuild
npm run typecheck # Run TypeScript type checking
# Testing
npm test # Run tests in watch mode
npm run test:run # Run tests once
npm run test:coverage # Run tests with coverage report
# Code quality
npm run lint # Run ESLint
npm run lint:fix # Run ESLint with auto-fix
npm run format # Format code with Prettier
npm run format:check # Check code formatting
# Development tools
npm run inspector # Run MCP inspector (http://localhost:5173)Testing
This project uses Vitest for testing. Tests are located in __tests__/ directories alongside source files.
# Run tests in watch mode
npm test
# Run tests once (useful for CI)
npm run test:run
# Generate coverage report
npm run test:coverageCode Quality
Before committing code:
# Run all checks
npm run typecheck && npm run lint && npm run format:check && npm run test:runThe project uses:
ESLint for linting with TypeScript support
Prettier for code formatting
Vitest for testing
GitHub Actions for CI/CD
Development Mode
Run the server with sample data:
NODE_ENV=development npm run build && node build/index.jsCustomizing the Style Guide
The style guide can be customized to match your brand's specific styling philosophies and fashion guidance. To customize the style guide:
Locate the style guides in
src/content/style-guides.tsModify the content for each category (
general,color_theory,body_types, etc.)Add new categories by extending the
styleGuidesobjectCustomize occasion-specific and seasonal advice
Example of adding a custom style guide category:
// In src/content/style-guides.ts
export const styleGuides: Record<string, string> = {
// Existing categories...
// Add your custom category
your_brand_style: `# Your Brand Style Guide
## Brand Aesthetic
- Key elements of your brand's visual identity
- Core style principles
- Signature looks and combinations
## Your Brand's Styling Do's
- Brand-specific styling recommendations
- Preferred color combinations
- Signature styling techniques
## Your Brand's Styling Don'ts
- Combinations to avoid
- Styling approaches that don't align with brand identity
- Common styling mistakes to avoid
`
};For complete customization, you can modify the entire get_style_guide handler in src/handlers/tools.ts.
Project Structure
src/
├── index.ts # MCP server bootstrap and initialization
├── config.ts # Environment configuration
├── api/ # FindMine API client
│ └── findmine-client.ts
├── handlers/ # MCP protocol handlers
│ ├── tools.ts # Tool execution handlers
│ ├── resources.ts # Resource handlers
│ └── prompts.ts # Prompt handlers
├── tools/ # Tool definitions with MCP annotations
│ └── index.ts
├── schemas/ # Zod validation schemas
│ ├── tool-inputs.ts # Input validation for all tools
│ └── index.ts
├── content/ # Static content
│ └── style-guides.ts # Style guide content
├── prompts/ # Prompt definitions
│ ├── findmine-help.ts
│ ├── outfit-completion.ts
│ ├── styling-guide.ts
│ └── index.ts
├── services/ # Business logic layer
│ └── findmine-service.ts
├── types/ # TypeScript type definitions
│ ├── findmine-api.ts
│ └── mcp.ts
└── utils/ # Utility functions and helpers
├── cache.ts
├── formatters.ts
├── logger.ts
├── mock-data.ts
└── resource-mapper.tsTechnical Details
This server is built with:
MCP SDK 1.24.2 with full spec compliance (2025-11-25)
Tool annotations for read-only, destructive, and open-world hints
Zod validation for all tool inputs
Modular architecture with separated concerns
100% test coverage on utility functions
API Examples
Get Style Guide
{
"name": "get_style_guide",
"arguments": {
"category": "color_theory",
"occasion": "wedding"
}
}Get Complete the Look
{
"name": "get_complete_the_look",
"arguments": {
"product_id": "P12345",
"product_color_id": "C789"
}
}Get Visually Similar Products
{
"name": "get_visually_similar",
"arguments": {
"product_id": "P12345",
"product_color_id": "C789",
"limit": 5
}
}Publishing
Publishing to npm
# Login to npm
npm login
# Publish the package
npm publish
# Update the version for future releases
npm version patchPublishing to Docker Hub
# Build the Docker image
docker build -t findmine/mcp-server:latest .
# Login to Docker Hub
docker login
# Push the image
docker push findmine/mcp-server:latestLicense
This project is licensed under the MIT License.
Available Tools
3 toolsget_complete_the_lookC
Get outfit recommendations for a product
| Name | Required | Description | Default |
|---|---|---|---|
| api_version | No | API version to use (overrides FINDMINE_API_VERSION env var) | |
| customer_gender | No | Customer gender (M = Men, W = Women, U = Unknown) | |
| customer_id | No | Customer ID for personalized recommendations | |
| in_stock | No | Whether the product is in stock | |
| on_sale | No | Whether the product is on sale | |
| product_color_id | No | Color ID of the product (if applicable) | |
| product_id | Yes | ID of the product | |
| return_pdp_item | No | Whether to return the original product in the response | |
| session_id | No | Session ID for tracking and personalization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. The description only states what the tool does ('Get outfit recommendations') without mentioning any behavioral traits such as rate limits, authentication needs, response format, or potential side effects. For a tool with 9 parameters and no annotations, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence: 'Get outfit recommendations for a product.' It is front-loaded with the core purpose, has zero wasted words, and is appropriately sized for the tool's complexity. Every part of the sentence earns its place by directly stating the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (9 parameters, no annotations, no output schema), the description is incomplete. It lacks information on behavioral traits, usage guidelines, and output details, which are crucial for an AI agent to invoke the tool correctly. The description alone is insufficient to provide a full understanding of how to use this tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, meaning all parameters are documented in the input schema. The description adds no additional meaning beyond the schema, as it doesn't explain parameter interactions, default behaviors, or usage examples. With high schema coverage, the baseline score is 3, reflecting that the description doesn't compensate but also doesn't detract from the schema's documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get outfit recommendations for a product.' It specifies the verb ('Get') and resource ('outfit recommendations'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'get_style_guide' or 'get_visually_similar,' which would require more specific language about the type of recommendations provided.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_style_guide' or 'get_visually_similar,' nor does it specify scenarios or prerequisites for usage. This lack of context leaves the agent to infer usage based on the tool name alone, which is insufficient for optimal selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_style_guideB
Get styling advice and tips for creating effective fashion recommendations
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Category of styling advice (e.g., 'color_theory', 'body_types', 'casual_outfits', 'formal_outfits', 'seasonal') | general |
| fashion_season | No | Fashion season to get styling advice for (e.g., 'spring_summer', 'fall_winter', 'resort', 'transition') | |
| occasion | No | Specific occasion to get styling advice for (e.g., 'office', 'wedding', 'date_night', 'casual_friday') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool provides 'advice and tips,' implying a read-only, informational function, but doesn't clarify aspects like whether it requires authentication, has rate limits, or returns structured data. For a tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence: 'Get styling advice and tips for creating effective fashion recommendations.' It's front-loaded with the core purpose and avoids unnecessary words, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (3 parameters, no output schema, no annotations), the description is minimally adequate. It states the purpose but lacks details on output format, error handling, or integration with sibling tools. Without an output schema, the description should ideally hint at return values, but it doesn't, leaving room for improvement in completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with clear descriptions for all three parameters (category, fashion_season, occasion). The description doesn't add any extra meaning beyond the schema, such as explaining how parameters interact or providing usage examples. Since the schema already documents parameters well, the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get styling advice and tips for creating effective fashion recommendations.' It specifies the verb 'Get' and the resource 'styling advice and tips,' making the function understandable. However, it doesn't differentiate from sibling tools like 'get_complete_the_look' or 'get_visually_similar,' which likely offer different types of fashion-related outputs, so it misses full distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools or specify contexts where this tool is preferred, such as for general advice versus specific outfit generation. Without any usage context, the agent lacks direction on tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_visually_similarC
Get visually similar products
| Name | Required | Description | Default |
|---|---|---|---|
| api_version | No | API version to use (overrides FINDMINE_API_VERSION env var) | |
| customer_gender | No | Customer gender (M = Men, W = Women, U = Unknown) | |
| customer_id | No | Customer ID for personalized recommendations | |
| limit | No | Maximum number of products to return | |
| offset | No | Offset for pagination | |
| product_color_id | No | Color ID of the product (if applicable) | |
| product_id | Yes | ID of the product | |
| session_id | No | Session ID for tracking and personalization |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get visually similar products' implies a read operation, but it doesn't disclose details like whether this is a search or recommendation system, potential rate limits, authentication needs, or what the return format might be. The description is too minimal to provide meaningful behavioral context beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste—'Get visually similar products' is front-loaded and to the point. Every word earns its place, making it highly concise and well-structured for quick understanding, though this brevity contributes to gaps in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of 8 parameters, no annotations, and no output schema, the description is incomplete. It fails to explain the tool's domain (e.g., e-commerce, fashion), how results are returned, or key behavioral aspects. For a tool with rich parameters but minimal description, this leaves significant gaps in understanding for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 8 parameters thoroughly. The description adds no additional meaning beyond what's in the schema, such as explaining how 'product_id' relates to visual similarity or how parameters interact. With high schema coverage, the baseline score of 3 is appropriate, as the description doesn't compensate but also doesn't detract.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get visually similar products' clearly states the verb ('Get') and resource ('visually similar products'), but it's vague about scope and doesn't distinguish from sibling tools like 'get_complete_the_look' or 'get_style_guide'. It doesn't specify whether this is for fashion, retail, or another domain, leaving the purpose somewhat ambiguous despite having a clear basic action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_complete_the_look' or 'get_style_guide'. The description lacks context about scenarios (e.g., for product recommendations, visual search) or prerequisites, leaving the agent to infer usage based on the tool name alone without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
The three tools have distinct purposes: get_complete_the_look focuses on outfit recommendations, get_style_guide provides styling advice and tips, and get_visually_similar finds visually similar products. While get_complete_the_look and get_visually_similar both involve product recommendations, their descriptions clarify that one is for outfits and the other for visual similarity, minimizing overlap. However, the boundary between get_complete_the_look and get_style_guide could be slightly ambiguous as both relate to fashion recommendations, but the descriptions help differentiate them.
All tool names follow a consistent verb_noun pattern with 'get_' as the prefix, followed by descriptive phrases (complete_the_look, style_guide, visually_similar). This uniformity makes the tools predictable and easy to understand, with no deviations in naming conventions or styles.
With only 3 tools, the server feels thin for a shopping stylist domain, which might involve more operations like searching products, filtering by categories, or managing user preferences. While the tools cover key aspects (recommendations, advice, similarity), the limited count could restrict functionality and lead to gaps in handling complex styling tasks.
The tool surface is significantly incomplete for a shopping stylist. It lacks essential operations such as searching for products, retrieving product details, filtering by attributes (e.g., color, size), or handling user interactions (e.g., saving preferences, history). The existing tools focus only on recommendations and advice, leaving major gaps that could cause agent failures in real-world styling scenarios.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Hosted Amazon Seller and Vendor MCP server for Claude, ChatGPT, Cursor, Codex, Gemini, Copilot.
Get recommended by Amazon's AI. Hosted MCP server for Amazon listing compliance & generation.
Hosted Amazon Seller Central and Amazon Ads MCP server for Claude, ChatGPT, Cursor, and agents.
Related MCP Servers
- AlicenseBqualityDmaintenanceMCP server that integrates with Shopify API, allowing Claude Desktop users to retrieve and manipulate product information from Shopify stores.51MIT
- AlicenseAqualityAmaintenanceA FastMCP server that provides AI assistants like Claude with seamless access to Kroger's grocery shopping functionality through the Model Context Protocol, enabling store finding, product searching, and cart management.3070MIT
- AlicenseNot gradedqualityDmaintenanceThe Vistoya MCP server gives AI agents direct access to a curated, multi-brand fashion catalog. Agents can search by structured filters, discover products through natural language, find similar items, and retrieve full product details — all over a single Streamable HTTP connection.14MIT
- AlicenseAqualityDmaintenanceAn MCP server that wraps the Universal Commerce Protocol (UCP) Discovery and Catalog capabilities, letting you search and compare products across UCP merchants directly from Claude.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/findmine/findmine-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server