FreeVectorIcons

io.github.FreeVectorIconsPublished by GitHub account FreeVectorIconsv0.3.0-beta.3Updated Nov 7, 2026

Read and write a FreeVectorIcons design collection: briefs, DESIGN.md, icons and brand assets.

Overview

AI-generated overview

Connects an assistant to one FreeVectorIcons design collection so it can search, read and upload icons, SVGs, briefs and DESIGN.md.

What you can do
  • Read collection context, strategy brief and asset summaries, and list or search assets by name, tag, category or style.
  • Fetch asset details, inline SVG or Markdown content, short-lived download URLs for binaries, and spreadsheet previews.
  • Upload new assets, create new versions of existing ones, refresh expired uploads and revert to earlier versions.
  • Edit metadata, tags and document type, and set the collection strategy brief, DESIGN.md and purpose.
  • Browse public community icon packs and read their license and usage guides.
When to use it
Useful when an assistant should pull approved icons and brand assets from a shared collection instead of generating SVG from scratch, or when it should write new designs back for review with version history.
Requirements
Local process run with npx, so Node.js 20 or later is needed. A FreeVectorIcons account and a collection-scoped token supplied as FVI_TOKEN, which also determines the collection. Optional settings include FVI_API_URL, FVI_READ_ONLY, FVI_TOOLS and file-path upload controls. Network access to the FreeVectorIcons API.
Before you install
FVI_TOKEN is a password-like secret granting access to one collection; keep it out of version control and rotate it if exposed. Write tools are on by default and can upload, change metadata, set the brief or DESIGN.md, and soft-unlink assets, so set FVI_READ_ONLY=true for read-only use. File-path uploads are off unless FVI_ALLOW_FILE_PATHS is enabled. The package is beta and tool schemas may change.

Installation

In SourceWeft

  1. Open FreeVectorIcons in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@freevectoricons/mcp

Beta. This package is under active development. Tool schemas, configuration options, and error behavior may change before v1.0.0. Report issues or review the product docs before production use.

Model Context Protocol (MCP) server for FreeVectorIcons design collections.

Connects Cursor, Claude Desktop, and other MCP clients to a single FreeVectorIcons collection (token-derived binding — configure FVI_TOKEN only): catalog icons, uploaded SVGs, strategy briefs, DESIGN.md, and related project files. Access is scoped to one collection token.

npm: @freevectoricons/mcp

Overview

Agents that generate icons inline often produce inconsistent SVG, unstable identifiers, and incorrect licensing across sessions. FreeVectorIcons stores approved assets in versioned collections with stable IDs and metadata.

This server exposes that collection to MCP clients. Agents search and retrieve canonical assets instead of regenerating SVG from scratch, and write designs back into the collection for review. Uploaded assets are versioned, so agents can iterate freely without losing prior work. The server runs over stdio and calls the FreeVectorIcons HTTP API. Responses are metadata-first JSON; file bytes are fetched only when a tool requests inline content or a download URL.

Hosted connector. If your client supports remote MCP servers, you can skip this package and connect to https://mcp.freevectoricons.com/mcp instead: nothing to install, and you sign in from your client or send a collection token as an Authorization: Bearer header. See freevectoricons.com/mcp. This package suits agents that upload files straight from disk, or setups that prefer a local process.

Requirements

  • Node.js 20 or later
  • A FreeVectorIcons account
  • A collection-scoped MCP token

Setup

  1. Open a collection at freevectoricons.com.
  2. Go to Integrations → Setup MCP.
  3. Create a collection-scoped token and copy the secret. The collection id is derived from the token (no separate collection id env var required).

Add the server to your MCP client configuration (for example .cursor/mcp.json):

json
{  "mcpServers": {    "freevectoricons": {      "command": "npx",      "args": ["-y", "@freevectoricons/mcp"],      "env": {        "FVI_TOKEN": "<collection-token>"      }    }  }}

Run the server with npx as shown above. MCP uses stdio for protocol messages; the process must not write non-protocol output to stdout.

See mcp.json.example for a copy-paste template.

Claude Desktop

Add the same mcpServers block to claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  • Linux: ~/.config/Claude/claude_desktop_config.json

Cursor Marketplace (plugin)

This repository is also a Cursor Plugin (.cursor-plugin/plugin.json + mcp.json).

  1. Install from Cursor Marketplace once listed, or copy this repo to ~/.cursor/plugins/local/freevectoricons for local testing (copy files; avoid broken symlinks).
  2. Open Plugins → Configure and set Collection token (FVI_TOKEN) from FreeVectorIcons → Integrations → Setup MCP.
  3. Optional: FVI_API_URL (defaults to production), FVI_READ_ONLY=true to hide write tools.

Submit / re-index: cursor.com/marketplace/publish.

Google Antigravity and Gemini CLI

Gemini CLI passed the compatibility tests against the hosted endpoint on 5 Nov 2026. Antigravity is still being tested after the 0.3.0-beta.3 tool rename; until it passes, treat it as a preview and report issues.

Antigravity plugin. This repository is also an Antigravity plugin (.antigravity-plugin/plugin.json, mcp_config.json and the skills/ folder). Install it, then turn it on under /plugin (CLI) or Settings → Customizations (app) and paste your collection token when asked.

Antigravity config block. Or add this to ~/.gemini/config/mcp_config.json (all projects) or .agents/mcp_config.json (one workspace):

json
{  "mcpServers": {    "freevectoricons": {      "command": "npx",      "args": ["-y", "@freevectoricons/mcp"],      "env": {        "FVI_TOKEN": "<collection-token>"      }    }  }}

Gemini CLI extension. Install from this repository and enter your collection token when prompted:

bash
gemini extensions install https://github.com/FreeVectorIcons/fvi-mcp

Change the token later with gemini extensions config freevectoricons. The extension pins a released package version, so a new release reaches you when you run gemini extensions update freevectoricons.

Environment variables

VariableRequiredDefaultDescription
FVI_TOKENyes—Collection-scoped MCP token (fvi_col_*). Collection binding is derived via GET /api/mcp/whoami.
FVI_COLLECTION_IDno—Deprecated / override only. If set and it disagrees with the token’s collection, the adapter fails closed (COLLECTION_MISMATCH). Prefer omitting it.
FVI_API_URLnohttps://freevectoricons.com/apiAPI base URL (include /api)
FVI_READ_ONLYnofalseWhen true, write tools are not registered. Can only narrow token scopes
FVI_TOOLSno—Comma-separated tool names to register. Old names from before 0.3.0-beta.3 are accepted. Can only narrow access
FVI_SKIP_TOKEN_CHECKnofalseEscape hatch if a future token shape is rejected locally
FVI_ALLOW_FILE_PATHSnofalseAllow filePath on upload tools. Off by default
FVI_FILE_PATH_ROOTSno—Comma-separated directories filePath may read
FVI_TIMEOUT_MSno30000HTTP request timeout for API calls (milliseconds)
FVI_UPLOAD_TIMEOUT_MSno120000Timeout for binary upload requests (milliseconds)
FVI_RETRY_MAXno3Maximum retry attempts for transient failures
FVI_RETRY_BASE_MSno500Base delay for exponential backoff (milliseconds)
FVI_LOG_LEVELnoinfoLog level: debug, info, warn, or error (stderr, JSON)

Set FVI_API_URL only when pointing at a non-production API.

Write tools are enabled by default. Agents can park new assets and upload new versions of existing ones; each change is stored as a version you can review or restore in the collection UI. Set FVI_READ_ONLY=true only if you want retrieval without uploads.

Token security

Treat FVI_TOKEN like a password. It grants access to one collection.

  • Prefer OS keychain integration or a secrets manager in team environments.
  • If you use environment variables in config files, restrict file permissions and never commit tokens to version control.
  • Rotate tokens from the collection Integrations tab if a token may have been exposed.
  • Set FVI_READ_ONLY=true if an agent should only read from the collection, not upload.

Switching collections (token rebind)

Restarting MCP servers alone does not rebind a shared stdio connector that still has an old FVI_TOKEN.

  1. Mint a token for the target collection in Setup MCP.
  2. Re-Add / Configure the connector env with the new FVI_TOKEN (uninstall + add if Configure is unavailable).
  3. Smoke get_collection_context and confirm collection.id / name.
  4. Use a second named server entry when two collections must stay connected in parallel.

Tools

Records tools (get_asset_spreadsheet_preview, set_collection_strategy_brief, promote_asset_to_strategy_brief, set_asset_transcription_status, delete_collection_asset, probe_asset_text_layer) are listed only when the API has those features enabled. Write tools are also hidden when FVI_READ_ONLY=true or the token lacks write scope.

Read

ToolDescription
get_collection_contextCollection metadata, strategy brief, asset summary
list_collection_assetsAll assets (metadata only)
search_collection_assetsSearch by name, tag, category, or style
get_assetOne asset by ID
get_asset_contentInline UTF-8 for catalog SVGs, uploaded SVGs, Markdown
get_asset_download_urlShort-lived URL for PNG, PDF, spreadsheets (XLS/XLSX), and other binaries
get_asset_download_urlsThe same URLs for up to 50 assets per call
get_asset_spreadsheet_previewSize-capped first-sheet CSV/HTML preview for XLS/XLSX
list_asset_versionsVersion number, name, size, verified hash, and source
list_community_packsPublic community icon packs with license and agentGuide URLs
get_community_pack_guideA pack's AGENTS.md: license, attribution, URL patterns, curated usage guide

Write

ToolDescription
create_asset_uploadCreate asset record and signed upload target
park_assetUpload inline text or base64 into the collection
create_asset_versionUpload a new version of an existing asset (prior versions retained)
set_collection_strategy_briefReplace collection.metadata.strategyBrief (native Strategy Brief tab)
promote_asset_to_strategy_briefCopy Markdown asset text into the native brief (does not delete the asset)
set_asset_transcription_statusPatch textLayer / transcription metadata (no OCR)
update_assetMetadata-only PATCH: name, tags, documentType, DRL fields, custom metadata, and links
set_collection_design_mdPin the canonical DESIGN.md from inline Markdown or an existing asset
update_collection_purposeSet collection purpose to brand or records
create_asset_version_uploadSigned upload for a new version of an existing asset
complete_asset_uploadVerify checksum and size, then make that version current
refresh_asset_uploadIssue a fresh upload URL for a pending upload whose URL expired (15 minutes)
revert_asset_to_versionCopy an earlier version forward. History is kept
delete_collection_assetSoft-unlink collection item only — does not hard-delete bytes. Requires the delete scope
probe_asset_text_layerBest-effort PDF embedded text probe (API feature-flagged)

Uploaded assets keep version history in FreeVectorIcons. Agents should prefer create_asset_version when refining an existing design, and park_asset for new files. Agents should use metadata and download URLs for images, PDFs, and spreadsheets (.xls / .xlsx) — workbook bytes are not dumped into MCP tool results. Use get_asset_spreadsheet_preview for a capped first-sheet look. For scanned PDFs, set transcription status after parking a Markdown sibling.

Parked STRATEGY_BRIEF.md is a supporting document only — it does not fill the native Strategy Brief tab until you call promote_asset_to_strategy_brief or set_collection_strategy_brief.

Optional write metadata: drlProjectId, drlAssetType, documentType, tags.

Renamed tools (0.3.0-beta.3)

Tool names dropped the redundant design_ so they fit clients that prefix tool names with the server name (Antigravity's prefix is 33 characters, and Gemini allows 64 in total). Arguments, scopes and behaviour are unchanged. Results are unchanged except that a set_collection_strategy_brief dry run now reports would.operation: "set_collection_strategy_brief".

The old names still work when called, on this package and on the hosted endpoint, but are no longer listed. Update saved prompts, tool allowlists (FVI_TOOLS accepts either) and cached approvals to the new names, then reconnect or restart your client so it reloads the tool list. Old names will be removed in a later release, announced here first.

Old nameNew name
complete_design_asset_uploadcomplete_asset_upload
create_design_asset_uploadcreate_asset_upload
create_design_asset_versioncreate_asset_version
create_design_asset_version_uploadcreate_asset_version_upload
delete_design_collection_assetdelete_collection_asset
get_design_assetget_asset
get_design_asset_contentget_asset_content
get_design_asset_download_urlget_asset_download_url
get_design_asset_download_urlsget_asset_download_urls
get_design_asset_spreadsheet_previewget_asset_spreadsheet_preview
get_design_collection_contextget_collection_context
list_design_asset_versionslist_asset_versions
list_design_collection_assetslist_collection_assets
park_design_assetpark_asset
probe_design_asset_text_layerprobe_asset_text_layer
promote_design_asset_to_strategy_briefpromote_asset_to_strategy_brief
refresh_design_asset_uploadrefresh_asset_upload
revert_design_asset_to_versionrevert_asset_to_version
search_design_collection_assetssearch_collection_assets
update_design_assetupdate_asset
update_design_asset_transcription_statusset_asset_transcription_status
update_design_collection_purposeupdate_collection_purpose
update_design_collection_strategy_briefset_collection_strategy_brief

set_asset_transcription_status still only records status metadata and does not run OCR.

Limitations

  • Collection-scoped. One token grants access to one collection, not the global icon catalog.
  • Catalog quality. Catalog SVGs are AI-generated and refined on a schedule; verify assets before production use.
  • No design review. The server moves files and metadata; it does not evaluate brand fit.
  • OCR is best-effort. probe_asset_text_layer detects embedded PDF text only when enabled on the API; handwritten/scanned pages often have no usable text layer. Failures set transcription.status=failed without deleting the asset.
  • Soft unlink, not hard delete. delete_collection_asset removes the collection membership only — storage bytes stay until a future hard-delete policy.

Development

Building, testing and releasing this package are covered in CONTRIBUTING.md.

Related

License

MIT — applies to this MCP server software only. See LICENSE.

Icon usage is governed separately by the FreeVectorIcons Community License. Attribution may be required depending on your plan and how icons are used.

Source: README.md at commit dafd74e

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

2
  1. v0.3.0-beta.3LatestNov 7, 2026
  2. v0.3.0-beta.2Nov 4, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts