Skip to main content
Glama
findmine

FindMine Shopping Stylist

Official
by findmine

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: Perplexity MCP Server

Features

Resources

  • Products: Detailed product information with product:/// URI scheme

  • Looks: 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-mcp

Option 2: Run with Docker

docker run -e FINDMINE_APP_ID=your_app_id findmine/mcp-server:latest

Option 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 watch

Configuration

Environment Variables

Variable

Description

Default

FINDMINE_API_URL

FindMine API base URL

https://api.findmine.com

FINDMINE_APP_ID

Your FindMine application ID

DEMO_APP_ID

FINDMINE_API_VERSION

API version to use

v3

FINDMINE_DEFAULT_REGION

Default region code

us

FINDMINE_DEFAULT_LANGUAGE

Default language code

en

FINDMINE_CACHE_ENABLED

Enable response caching

true

FINDMINE_CACHE_TTL_MS

Cache time-to-live in ms

3600000 (1 hour)

NODE_ENV

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.json

Windows:

type %APPDATA%\Claude\claude_desktop_config.json

Development

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:coverage

Code Quality

Before committing code:

# Run all checks
npm run typecheck && npm run lint && npm run format:check && npm run test:run

The 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.js

Customizing 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:

  1. Locate the style guides in src/content/style-guides.ts

  2. Modify the content for each category (general, color_theory, body_types, etc.)

  3. Add new categories by extending the styleGuides object

  4. Customize 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.ts

Technical 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 patch

Publishing 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:latest

License

This project is licensed under the MIT License.

Install Server
A
security – no known vulnerabilities
F
license - not found
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

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