pyside-iconify-mcp
Uses the public Iconify API to search for real icons by keyword and icon set, and to verify that icon names exist (reporting whether each is multi-color or animated and suggesting similar icons for missing ones), so an AI assistant can write correct pyside-iconify code instead of guessing icon names.
Click on "Deploy 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., "@pyside-iconify-mcpfind a good settings gear icon and show me the get_icon usage"
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.
pyside-iconify-mcp
Help your AI assistant write correct pyside-iconify code.
English | 中文 | 日本語 | 한국어 | Español | Français | Deutsch | Русский | Português (BR)
An MCP server for pyside-iconify. It lets an AI assistant look up real icons, read the library's exact usage, and check the code it wrote, instead of guessing.
This project is not affiliated with the Iconify project.
Why
AI assistants often get pyside-iconify code wrong in ways that only show up at
run time:
they invent icon names that do not exist (
mdi:home-filled)they use parameter names that do not exist, or that belong to a different entry point (
get_icon(..., hover_color=...))they pass a single color to a multi-color icon and expect it to change
they pick
get_iconwhen they need an animated icon
This server lets the assistant look things up and check its work instead of guessing.
Related MCP server: Smart Coding MCP
Tools
Tool | What it does | Needs network |
| Find real icons by keyword, using the official Iconify search API | yes |
| Check that icon names exist; report whether each is multi-color or animated; suggest similar icons for missing ones | yes |
| Return the exact, version-matched usage of the library by topic | no |
| Check the | optional |
All four are read-only. The server never touches your project files and never runs
your code. The only network access is to the public Iconify API
(https://api.iconify.design); results are cached in memory for an hour.
search_icons
Input: query (keywords; several words must all match), optional prefix (an icon set
such as mdi), optional limit (1 to 100, default 20).
Output: status (ok or unavailable), icons (a list of prefix:name),
collections (name, license and size of the icon sets involved). unavailable means the
lookup failed, for example without network; it does not mean nothing exists.
check_icons
Input: names, a list of 1 to 50 icon names.
Output: one entry per name.
| Meaning |
| The icon exists. Also reports |
| The icon (or its icon set) does not exist. Includes |
| Not of the form |
| The check failed (for example no network). Says nothing about whether it exists |
The monotone, color and animation results are computed by pyside-iconify itself, so
they match what the library does at run time.
get_reference
Input: optional topic. Without a topic it lists them: overview, icon_widget,
get_icon, set_icon, colors, sizes, animation, pitfalls, runtime.
Output: Markdown. The signatures are generated from the installed pyside-iconify, so
they always match its version; explanations and examples are written by hand and tested
against the library.
check_code
Input: code (Python source), optional verify_icon_names (default true).
Output: ok (true when there are no errors), issues (line, column, severity, code,
message, suggestion), skipped (what could not be checked), checked (counts).
It looks for:
imports of names or modules that do not exist
unknown parameters, parameters used on the wrong entry point, missing or duplicated arguments
invalid values:
size, colors,opacity,rotate,animation, periods,speedconflicting options (
spin=Truewith another animation,animation_depthwith spin)malformed icon names, and icon names that do not exist
a single color on a multi-color icon, and animated icons used with
get_icon
What it promises: when it returns ok: true, the usage it could read directly from the
code (parameter names, literal values, literal icon names) is correct. What it cannot
know is listed under skipped instead of being guessed: values that come from variables
or function calls, *args / **kwargs, and anything that only goes wrong at run time
(no QApplication, widgets created off the main thread). It never reports an error it is
not sure about.
Setup
Add it to your AI client as a stdio server that runs uvx pyside-iconify-mcp.
Claude Code
claude mcp add --transport stdio pyside-iconify -- uvx pyside-iconify-mcpAdd --scope project to store it in the project's .mcp.json and share it with your team.
See the Claude Code documentation.
ChatGPT and Codex
The ChatGPT desktop app, the Codex CLI and the Codex IDE extension share one MCP configuration.
codex mcp add pyside-iconify -- uvx pyside-iconify-mcpOr add this to ~/.codex/config.toml:
[mcp_servers.pyside-iconify]
command = "uvx"
args = ["pyside-iconify-mcp"]See the Codex documentation.
Cursor
Create .cursor/mcp.json in your project, or ~/.cursor/mcp.json to use it in every project:
{
"mcpServers": {
"pyside-iconify": {
"type": "stdio",
"command": "uvx",
"args": ["pyside-iconify-mcp"]
}
}
}See the Cursor documentation.
OpenCode
Add it to your opencode.json. Here command is a single array that includes the arguments:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"pyside-iconify": {
"type": "local",
"command": ["uvx", "pyside-iconify-mcp"],
"enabled": true
}
}
}See the OpenCode documentation.
VS Code
Create .vscode/mcp.json in your project. VS Code uses servers as the top-level key, not
mcpServers:
{
"servers": {
"pyside-iconify": {
"type": "stdio",
"command": "uvx",
"args": ["pyside-iconify-mcp"]
}
}
}You can also run MCP: Add Server from the Command Palette, choose Command (stdio) and enter
uvx pyside-iconify-mcp. See the
VS Code documentation.
WorkBuddy
Create or edit ~/.workbuddy/mcp.json (the file name has no leading dot):
{
"mcpServers": {
"pyside-iconify": {
"command": "uvx",
"args": ["pyside-iconify-mcp"]
}
}
}A new server is not enabled automatically: open the custom connectors entry at the top right of
the connector management page and click Trust on it.
CodeBuddy
The command below is for the CodeBuddy CLI:
codebuddy mcp add --scope user pyside-iconify -- uvx pyside-iconify-mcpUse --scope project to store it in the project's .mcp.json instead. See the
CodeBuddy documentation.
TRAE
Open Settings, then MCP, choose Add, then Create Manually, and paste:
{
"mcpServers": {
"pyside-iconify": {
"command": "uvx",
"args": ["pyside-iconify-mcp"]
}
}
}For a single project, turn on Enable Project MCP on the same page and put the same JSON in
.trae/mcp.json. See the TRAE documentation.
Other clients
Clients that use an mcpServers JSON config:
{
"mcpServers": {
"pyside-iconify": {
"command": "uvx",
"args": ["pyside-iconify-mcp"]
}
}
}The exact config file and key names differ between clients; check your client's documentation for how to add a local (stdio) MCP server.
Run from a checkout
{
"mcpServers": {
"pyside-iconify": {
"command": "uv",
"args": [
"run",
"--directory",
"/path/to/pyside-iconify-mcp",
"pyside-iconify-mcp"
]
}
}
}If your client cannot start uv, point it at the program installed in the project's virtual
environment instead (create it first with uv sync): .venv/Scripts/pyside-iconify-mcp.exe on
Windows, .venv/bin/pyside-iconify-mcp on macOS and Linux.
{
"mcpServers": {
"pyside-iconify": {
"command": "/path/to/pyside-iconify-mcp/.venv/Scripts/pyside-iconify-mcp.exe"
}
}
}Requirements
Python 3.10 to 3.14. The server depends on pyside-iconify (without any Qt extra, so
Qt is not installed) and on FastMCP 4.1.x. The version of
pyside-iconify it was built against is pinned to a minor range; a newer minor version
of the library needs a matching release of this server.
Development
Requires uv.
uv sync --group test
uv run pytest -v
uv run pyside-iconify-mcpThe tests do not use the network. Every tool lives in its own file under
src/pyside_iconify_mcp/tools/, named after the tool; shared code is in common/. See
docs/architecture.md
for the layout and how to add a tool.
License
MIT. Icon collections are subject to their own licenses.
This server cannot be deployed
Maintenance
Related MCP Connectors
A coding agent searches the Icons8 library by keyword and style, then adds the selected icon or illustration to the project. Icons8 draws all of it: 420,000+ icons (130+ styles) and 110,000+ illustrations (340+ styles), so one project doesn't end up with mixed looks. The server lives at https://mcp.icons8.com/mcp/ and signs people in through their Icons8 account in the browser. Downloading PNG is free as long as the project links back to Icons8. SVG is on the paid plan, and that plan makes the link optional.
Run accessibility, contrast, and design token audits and file QA issues from your AI coding tool.
Multilingual semantic SVG icon search with previews for AI coding agents. 20,000+ icons.
Serves your design system and coding standards to coding agents, so they stop guessing.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceProvides real-time access to Python package documentation, source code, and symbol search to prevent AI hallucinations.55 PyPI7MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search a codebase by meaning using local AI embeddings, finding relevant code even when terminology differs from the query. Also provides package version lookup across 20+ registries, workspace switching, reindexing, cache clearing, and status checks.34 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search code by meaning using local AI embeddings, and provides package version lookup, reindexing, cache management, workspace switching, and server status tools.34 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search codebases by meaning using local AI embeddings, and also provides package version lookup, indexing, cache management, workspace switching, and server status tools.34 npmMIT