Skip to main content
Glama
Gasased

pictogrammers-mcp

by Gasased

pictogrammers-mcp

An MCP server that lets an AI assistant search, download and use Pictogrammers icons (Material Design Icons, MDI Light, Memory) instead of hand-writing SVG — while keeping every icon in a project visually coherent by pinning it to a single library and variant.

Why

Hand-drawn SVG icons are inconsistent and often wrong. This server gives the model a real icon set of 8,000+ professionally designed glyphs, ranked search, and multiple output formats (raw SVG, JSX, @mdi/react, @mdi/js constants, data URIs). A pictogrammers.config.json at the project root pins one library so the model can't silently mix styles — if it tries, it gets a coherence warning.

Related MCP server: brain-mcp-icon-visual

Libraries

id

name

grid

count

style

mdi

Material Design Icons

24×24

~7,400

Bold filled; most icons have an -outline twin

mdil

MDI Light

24×24

~260

Thin single-weight line icons

memory

Memory Icons

22×22

~650

Pixel-precise, for low-res/embedded displays

Data comes from the official pictogrammers.com/data/*.json files, cached to disk on first use — after that the server works offline.

Install & build

npm install
npm run build

Register with Claude Code

Add to your .mcp.json (project) or user MCP config. See mcp.example.json:

{
  "mcpServers": {
    "pictogrammers": {
      "command": "node",
      "args": ["F:/_projects/dru/pictogrammers-mcp/dist/index.js"],
      "env": {
        "PICTOGRAMMERS_PROJECT_DIR": "${workspaceFolder}"
      }
    }
  }
}

Or from the CLI:

claude mcp add pictogrammers -- node F:/_projects/dru/pictogrammers-mcp/dist/index.js

Tools

tool

purpose

init_project_icons

Pin the project to one library + variant (writes pictogrammers.config.json). Call this first.

project_icon_status

Show the pinned library, defaults, and inventory of icons used.

list_libraries

List libraries with counts, grid sizes and npm packages.

list_tags

Browse the category tags of a library.

search_icons

Ranked keyword search; defaults to the pinned library/variant.

get_icon

Fetch one icon as svg / svg-path / jsx / react-mdi / js-constant / data-uri.

download_icons

Write .svg files (or a JSON map) to a directory.

Typical flow

  1. init_project_icons { "library": "mdi", "variant": "outline" }

  2. search_icons { "query": "shopping cart" } → pick cart-outline

  3. get_icon { "name": "cart-outline", "format": "jsx" } → paste into a component

  4. …or download_icons { "names": ["cart-outline","account-outline"], "outputDir": "src/assets/icons" }

Because the project is pinned, every later search_icons/get_icon stays within the same family, and requesting another library returns a visible coherence warning.

Configuration (env)

var

default

meaning

PICTOGRAMMERS_PROJECT_DIR

server cwd

where pictogrammers.config.json lives

PICTOGRAMMERS_CACHE_DIR

~/.pictogrammers-mcp/cache

downloaded data cache

PICTOGRAMMERS_BASE_URL

https://pictogrammers.com/data

data source

License

MIT. Icon data is © the Pictogrammers project under their respective licenses (MDI/MDIL: Apache-2.0; see pictogrammers.com/docs).

Available Tools

1 tool
project_icon_statusA

Show the pinned icon library for this project, its defaults, and the inventory of icons used so far.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectDirNoProject root. Defaults to the server's working directory.

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description indicates a read operation ('Show') but does not disclose behavioral details such as side effects, authentication requirements, or rate limits. With no annotations, the description carries the full burden and is adequate but not thorough.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, using a single sentence to convey the tool's purpose without unnecessary words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, the description hints at the output (pinned icon library, defaults, inventory) but does not specify structure. For a simple status tool, this is minimally complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, and the parameter description in the schema already explains the projectDir field. The tool description adds no additional semantic value beyond what is in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows the pinned icon library, its defaults, and icon inventory. The verb 'Show' and resource are specific, but could be more precise about what 'pinned icon library' entails.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No sibling tools exist, so differentiation is unnecessary. However, no explicit guidance on when to use this tool is provided, leaving it implied by the description.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

B3.4/5.0
Disambiguation5/5

With only one tool, there is no risk of confusion between tools. The single tool has a clear, distinct purpose.

Naming Consistency5/5

With only one tool, there are no inconsistencies. The name 'project_icon_status' follows a clear pattern of resource_action.

Tool Count2/5

A single tool is too few for a server presumably managing icon libraries. Users would expect additional operations like adding or removing icons, making the toolset feel incomplete.

Completeness1/5

The server only offers a status-checking tool, lacking any mutating operations (create, update, delete) for icons or projects. This severely limits usability and represents a major gap in the tool surface.

Maintenance

ActivitySlowing
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides access to over 200,000 icons from 150+ collections with features for searching, recommendations, and direct file synchronization. It supports multiple frameworks and optimizes AI performance by writing icon code directly to project files.
    529
    1,257
    MIT
  • F
    license
    Not graded
    quality
    D
    maintenance
    Visual icon search, retrieval, and comparison for AI agents. Search 200k+ icons semantically, render side-by-side comparison grids, and retrieve raw SVG markup — all tools return images so vision-capable LLMs can see the icons.
    1
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI coding tools to search, inspect, recommend, and export SVG icons from svgicons.com for use in design systems, frontend projects, and AI-assisted workflows.
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI assistants to search, retrieve, and save Nucleo icons from the user's local library directly into projects.
    17
    7
    MIT

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/Gasased/pictogrammers-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server