Skip to main content

MCP server for Creative Market's Pointguard search platform — discover fonts, graphics, and creative assets through natural conversation.

Project description

Pointguard MCP Server

An MCP (Model Context Protocol) server that exposes Creative Market's Pointguard search platform to AI assistants. Discover fonts, graphics, templates, and creative assets through natural conversation.

Quick Start — Cursor

1. Install from PyPI:

pip install pointguard-mcp

2. Find where it was installed:

which pointguard-mcp

Copy the full path (e.g. /usr/local/bin/pointguard-mcp or /Users/you/miniforge3/envs/myenv/bin/pointguard-mcp).

3. Add to Cursor:

Go to Cursor → Settings → Features → MCP → Add new global MCP server, or create/edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "pointguard": {
      "command": "/full/path/to/pointguard-mcp",
      "env": {
        "POINTGUARD_BASE_URL": "https://your-pointguard-api-host.com",
        "CM_API_USER": "your-cm-api-user",
        "CM_API_PASS": "your-cm-api-pass"
      }
    }
  }
}

4. Restart Cursor (or go to Settings → Features → MCP and click the ↺ refresh icon next to pointguard).

5. Open a chat and try it:

"Find me a condensed sans-serif for a sports brand logo"


Features

Tool Description
search_products Search by style, mood, subject, or keyword with natural language
get_product Internal Pointguard index metadata for agent reasoning — numeric shop ID, category IDs, file type IDs, visibility, staff pick flag
browse_category Explore products by classification using the full CM category taxonomy
browse_shop Browse a designer or studio's full catalog by shop ID
find_similar Find visually/stylistically similar products using embeddings
autocomplete Get search suggestions from partial input
suggested_searches Discover related searches and trending terms
browse_creative_market Search CM directly for rich display data — titles, prices, preview images, designer info
get_product_details Display-ready product data from the CM API — title, URL, full image gallery, description, shop name, formatted price. Accepts up to 50 IDs

Example Queries

Once connected to an MCP-compatible client (Claude, Cursor, etc.), you can ask:

  • "Find me a condensed sans-serif for a sports brand logo."
  • "Show me retro display fonts for a vinyl record label."
  • "I need textures and grunge graphics for a concert poster."
  • "Find script fonts under $30 that work for wedding stationery."
  • "Show me font alternatives to Filson Pro Font Family (16 fonts)." (uses find_similar)
  • "What's trending in the Fonts category?"
  • "Show me everything by Loudoun Design Co." (uses browse_shop)
  • "Browse sans-serif fonts." (uses browse_category with ID 81)

Installation

pip install pointguard-mcp

Or in development mode:

cd pointguard-mcp
pip install -e .

Configuration

Set environment variables before running:

Variable Default Description
POINTGUARD_BASE_URL http://localhost:5000 Pointguard API base URL
POINTGUARD_TIMEOUT 30 Request timeout in seconds
CM_API_USER (required) Creative Market API basic auth username
CM_API_PASS (required) Creative Market API basic auth password

Usage

Standalone (stdio)

pointguard-mcp

With Claude Desktop

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "pointguard": {
      "command": "pointguard-mcp",
      "env": {
        "POINTGUARD_BASE_URL": "https://your-api-host.com",
        "CM_API_USER": "your-cm-api-user",
        "CM_API_PASS": "your-cm-api-pass"
      }
    }
  }
}

With Cursor

Add to .cursor/mcp.json in your project:

{
  "mcpServers": {
    "pointguard": {
      "command": "pointguard-mcp",
      "env": {
        "POINTGUARD_BASE_URL": "https://your-api-host.com",
        "CM_API_USER": "your-cm-api-user",
        "CM_API_PASS": "your-cm-api-pass"
      }
    }
  }
}

Category Reference

Top-level Categories

ID Category
1 Graphics
2 Templates
3 Fonts
4 Add-ons (Brushes & More)
6 Photos
7 3D
8 Stock Video / Footage
23 Illustrations
26 Icons
1800 Mockups

Font Subcategories

ID Subcategory
80 Serif
81 Sans Serif
82 Script
84 Symbols
85 Blackletter
86 Slab Serif
88 Handwritten

Template Subcategories

ID Subcategory
50 Logos
19 Posters
42 Flyers
46 Invitations
45 Business Cards
49 Presentations
52 Social Media
44 Stationery
41 Brochures
43 Resumes

Other Notable Subcategories

ID Subcategory
27 Textures (Graphics)
28 Patterns (Graphics)
24 Objects (Graphics)
131 Nature (Photos)
132 People (Photos)
127 Food & Drink (Photos)
21 Product Mockups
1801 Device Mockups
1805 Apparel Mockups
2601 Solid Icons
2602 Outline Icons
2603 Duotone Icons

See CATEGORY_MAP in server.py for the full list of 170+ category and subcategory mappings.

Development

# Install in development mode
pip install -e .

# Run directly
python -m pointguard_mcp.server

# Test with MCP inspector (browser UI)
npx @modelcontextprotocol/inspector pointguard-mcp

Architecture

┌─────────────────┐     stdio      ┌──────────────────┐     HTTP/JSON     ┌──────────────────────┐
│  AI Assistant   │◄──────────────►│  pointguard-mcp  │◄────────────────►│  Pointguard API      │
│  (Claude, etc.) │                │  (MCP Server)    │                   │  (Flask + ES)        │
└─────────────────┘                └──────────────────┘                   └──────────────────────┘
                                           │
                                           │ HTTPS
                                           ▼
                                   ┌──────────────────┐
                                   │  creativemarket  │
                                   │  .com (search +  │
                                   │  product detail) │
                                   └──────────────────┘

The MCP server has two data sources:

  1. Pointguard API (POINTGUARD_BASE_URL) — powers search_products, get_product, browse_category, browse_shop, find_similar, autocomplete, suggested_searches
  2. creativemarket.com — powers browse_creative_market (search with preview images) and get_product_details (full image gallery, descriptions, licenses via authenticated API)

Endpoints Used

Tool Endpoint Returns
search_products POST /creative-market/products/search Product IDs + relevance tokens
get_product GET /creative-market/product/{id} Internal metadata — shop ID, category IDs, file types, flags
browse_category POST /creative-market/products/category Product IDs
browse_shop POST /creative-market/products/shop Product IDs
find_similar POST /creative-market/product/{id}/similar Product IDs
autocomplete GET /creative-market/completions/suggest Suggestion strings
suggested_searches POST /creative-market/suggested-searches Related search terms
browse_creative_market GET https://creativemarket.com/search/{query} Display-ready product cards (title, price, thumbnail, shop name)
get_product_details GET https://creativemarket.com/api/external/newsletter/product-details/{ids} Display-ready detail (title, URL, images, description, shop URL)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pointguard_mcp-0.3.0.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pointguard_mcp-0.3.0-py3-none-any.whl (13.8 kB view details)

Uploaded Python 3

File details

Details for the file pointguard_mcp-0.3.0.tar.gz.

File metadata

  • Download URL: pointguard_mcp-0.3.0.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pointguard_mcp-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6d4256522c46d8e2dba479d88e890117686f06e310e883817ae67869033f5674
MD5 fb5d58fc36b64c78d20b215c47ff6f24
BLAKE2b-256 e05b0e62dd25981874b9f1ab78d3dd996d3bd8142f6421b97a3920481844ced7

See more details on using hashes here.

Provenance

The following attestation bundles were made for pointguard_mcp-0.3.0.tar.gz:

Publisher: publish.yml on creativemarket/pointguard-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pointguard_mcp-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: pointguard_mcp-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 13.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pointguard_mcp-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 604ea88fe0f1a349aaecdbc9bc2e23aa0222fc5423cb78e17be80dd77b65c6b9
MD5 7d468fe730650ef72062c4ddeff02244
BLAKE2b-256 1e8d052d62f069104b62974d06fc42ba011e153c4b31a90714424e66043d7e41

See more details on using hashes here.

Provenance

The following attestation bundles were made for pointguard_mcp-0.3.0-py3-none-any.whl:

Publisher: publish.yml on creativemarket/pointguard-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page