@freevectoricons/mcp 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 FreeVectorIcons
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,111 @@
1
+ # fvi-mcp
2
+
3
+ MCP server for [FreeVectorIcons](https://freevectoricons.com) design collections.
4
+
5
+ Connects Cursor, Claude Desktop, and other MCP clients to one FVI collection — icons, uploaded SVGs, strategy briefs, DESIGN.md, and related project files. Scoped to a single collection token.
6
+
7
+ npm: [`@freevectoricons/mcp`](https://www.npmjs.com/package/@freevectoricons/mcp)
8
+
9
+ ## Why this exists
10
+
11
+ The usual agent workflow for icons is: prompt → inline SVG → paste into code. That breaks down quickly — inconsistent paths, missing `viewBox`, made-up attribution, different output on every retry.
12
+
13
+ FVI stores assets in a collection with stable ids, tags, and license fields. This server lets agents **search and fetch what's already approved** instead of generating new SVG from scratch.
14
+
15
+ It's a stdio MCP wrapper over the FVI HTTP API. Responses are metadata-first JSON; file bytes are fetched only when a tool asks for content or a download URL.
16
+
17
+ ## Setup
18
+
19
+ You need a FreeVectorIcons account and an MCP token for a design collection.
20
+
21
+ 1. Open a collection at [freevectoricons.com](https://freevectoricons.com)
22
+ 2. **Integrations** → **Setup MCP**
23
+ 3. Create a token; copy the collection ID and secret
24
+
25
+ Add to `.cursor/mcp.json` (or your client's MCP config):
26
+
27
+ ```json
28
+ {
29
+ "mcpServers": {
30
+ "freevectoricons": {
31
+ "command": "npx",
32
+ "args": ["-y", "@freevectoricons/mcp"],
33
+ "env": {
34
+ "FVI_API_URL": "https://freevectoricons.com/api",
35
+ "FVI_COLLECTION_ID": "<collection-id>",
36
+ "FVI_TOKEN": "<collection-token>"
37
+ }
38
+ }
39
+ }
40
+ }
41
+ ```
42
+
43
+ Use `npx`, not `pnpm run`. Package managers print lifecycle text to stdout, which breaks MCP stdio transport.
44
+
45
+ See [`mcp.json.example`](./mcp.json.example) for a copy-paste template.
46
+
47
+ ## Environment variables
48
+
49
+ | Variable | Required | Default | Description |
50
+ |----------|----------|---------|-------------|
51
+ | `FVI_TOKEN` | yes | — | Collection-scoped MCP token |
52
+ | `FVI_COLLECTION_ID` | yes | — | Collection id |
53
+ | `FVI_API_URL` | no | `http://localhost:5001/api` | API base URL (include `/api`) |
54
+
55
+ For production: `FVI_API_URL=https://freevectoricons.com/api`
56
+
57
+ ## Tools
58
+
59
+ ### Read
60
+
61
+ | Tool | What it does |
62
+ |------|----------------|
63
+ | `get_design_collection_context` | Collection metadata, strategy brief, asset summary |
64
+ | `list_design_collection_assets` | All assets (metadata only) |
65
+ | `search_design_collection_assets` | Search by name, tag, category, or style |
66
+ | `get_design_asset` | One asset by id |
67
+ | `get_design_asset_content` | Inline UTF-8 for catalog SVGs, uploaded SVGs, Markdown |
68
+ | `get_design_asset_download_url` | Short-lived URL for PNG, PDF, and other binaries |
69
+
70
+ ### Write
71
+
72
+ | Tool | What it does |
73
+ |------|----------------|
74
+ | `create_design_asset_upload` | Create asset record + signed upload target |
75
+ | `park_design_asset` | Upload inline text or base64 into the collection |
76
+ | `create_design_asset_version` | Upload a new version of an existing asset |
77
+
78
+ Binary files are not embedded in MCP responses. Agents should use metadata + download URLs for images and PDFs.
79
+
80
+ Optional write metadata: `drlProjectId`, `drlAssetType`, `documentType`, `tags`.
81
+
82
+ ## Development
83
+
84
+ ```bash
85
+ npm install
86
+ npm run build
87
+ node dist/mcp-server.mjs
88
+ ```
89
+
90
+ To run from a local checkout in Cursor:
91
+
92
+ ```json
93
+ "args": ["-y", "file:/absolute/path/to/fvi-mcp"]
94
+ ```
95
+
96
+ Build first (`npm run build`). The bundled entry is `dist/mcp-server.mjs`.
97
+
98
+ ## What this is not
99
+
100
+ - **Not a global icon search API.** One token, one collection.
101
+ - **Not a guarantee of pixel-perfect icons.** Catalog SVGs are AI-generated and refined on a schedule; check assets before production use.
102
+ - **Not a replacement for your design review.** It moves files and metadata; it doesn't judge brand fit.
103
+
104
+ ## Related
105
+
106
+ - [freevectoricons.com/mcp](https://freevectoricons.com/mcp) — product docs
107
+ - [ai-icon-generator](https://github.com/FreeVectorIcons/ai-icon-generator) — open pipeline that produces catalog icons
108
+
109
+ ## License
110
+
111
+ MIT — see [LICENSE](./LICENSE).
@@ -21116,7 +21116,7 @@ function withDrlMetadata(input) {
21116
21116
  }
21117
21117
  var server = new McpServer({
21118
21118
  name: "freevectoricons",
21119
- version: "0.1.0"
21119
+ version: "0.1.2"
21120
21120
  });
21121
21121
  server.registerTool(
21122
21122
  "get_design_collection_context",
package/package.json CHANGED
@@ -1,8 +1,25 @@
1
1
  {
2
2
  "name": "@freevectoricons/mcp",
3
- "version": "0.1.0",
4
- "description": "FreeVectorIcons design collection MCP server for Cursor and other MCP clients",
3
+ "version": "0.1.2",
4
+ "description": "MCP server for FreeVectorIcons design collections",
5
+ "author": "Hemanta Sapkota <hemanta@freevectoricons.com>",
5
6
  "license": "MIT",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/FreeVectorIcons/fvi-mcp.git"
10
+ },
11
+ "homepage": "https://freevectoricons.com/mcp",
12
+ "bugs": {
13
+ "url": "https://github.com/FreeVectorIcons/fvi-mcp/issues"
14
+ },
15
+ "keywords": [
16
+ "mcp",
17
+ "model-context-protocol",
18
+ "freevectoricons",
19
+ "svg",
20
+ "icons",
21
+ "cursor"
22
+ ],
6
23
  "type": "module",
7
24
  "bin": {
8
25
  "fvi-mcp": "./dist/mcp-server.mjs"
@@ -10,6 +27,11 @@
10
27
  "files": [
11
28
  "dist"
12
29
  ],
30
+ "scripts": {
31
+ "build": "node ./build.mjs",
32
+ "prepublishOnly": "pnpm run build",
33
+ "typecheck": "tsc -p tsconfig.json --noEmit"
34
+ },
13
35
  "dependencies": {
14
36
  "@modelcontextprotocol/sdk": "^1.29.0",
15
37
  "zod": "^3.25.76"
@@ -24,9 +46,5 @@
24
46
  },
25
47
  "publishConfig": {
26
48
  "access": "public"
27
- },
28
- "scripts": {
29
- "build": "node ./build.mjs",
30
- "typecheck": "tsc -p tsconfig.json --noEmit"
31
49
  }
32
- }
50
+ }