threenative-asset-mcp 0.4.0
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/README.md +441 -0
- package/dist/ambientcg/client.d.ts +61 -0
- package/dist/ambientcg/client.d.ts.map +1 -0
- package/dist/ambientcg/client.js +234 -0
- package/dist/ambientcg/client.js.map +1 -0
- package/dist/audio/catalog.d.ts +36 -0
- package/dist/audio/catalog.d.ts.map +1 -0
- package/dist/audio/catalog.js +169 -0
- package/dist/audio/catalog.js.map +1 -0
- package/dist/audio/client.d.ts +46 -0
- package/dist/audio/client.d.ts.map +1 -0
- package/dist/audio/client.js +196 -0
- package/dist/audio/client.js.map +1 -0
- package/dist/bundle/client.d.ts +89 -0
- package/dist/bundle/client.d.ts.map +1 -0
- package/dist/bundle/client.js +324 -0
- package/dist/bundle/client.js.map +1 -0
- package/dist/config.d.ts +20 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +130 -0
- package/dist/config.js.map +1 -0
- package/dist/download/direct-asset-downloader.d.ts +41 -0
- package/dist/download/direct-asset-downloader.d.ts.map +1 -0
- package/dist/download/direct-asset-downloader.js +232 -0
- package/dist/download/direct-asset-downloader.js.map +1 -0
- package/dist/fab/api-download.d.ts +30 -0
- package/dist/fab/api-download.d.ts.map +1 -0
- package/dist/fab/api-download.js +200 -0
- package/dist/fab/api-download.js.map +1 -0
- package/dist/fab/browser-transport.d.ts +79 -0
- package/dist/fab/browser-transport.d.ts.map +1 -0
- package/dist/fab/browser-transport.js +492 -0
- package/dist/fab/browser-transport.js.map +1 -0
- package/dist/fab/cache.d.ts +22 -0
- package/dist/fab/cache.d.ts.map +1 -0
- package/dist/fab/cache.js +55 -0
- package/dist/fab/cache.js.map +1 -0
- package/dist/fab/client.d.ts +61 -0
- package/dist/fab/client.d.ts.map +1 -0
- package/dist/fab/client.js +868 -0
- package/dist/fab/client.js.map +1 -0
- package/dist/fab/direct-transport.d.ts +68 -0
- package/dist/fab/direct-transport.d.ts.map +1 -0
- package/dist/fab/direct-transport.js +184 -0
- package/dist/fab/direct-transport.js.map +1 -0
- package/dist/fab/download-store.d.ts +21 -0
- package/dist/fab/download-store.d.ts.map +1 -0
- package/dist/fab/download-store.js +93 -0
- package/dist/fab/download-store.js.map +1 -0
- package/dist/fab/errors.d.ts +20 -0
- package/dist/fab/errors.d.ts.map +1 -0
- package/dist/fab/errors.js +65 -0
- package/dist/fab/errors.js.map +1 -0
- package/dist/fab/impersonate-fetch.d.ts +48 -0
- package/dist/fab/impersonate-fetch.d.ts.map +1 -0
- package/dist/fab/impersonate-fetch.js +228 -0
- package/dist/fab/impersonate-fetch.js.map +1 -0
- package/dist/fab/normalize.d.ts +3 -0
- package/dist/fab/normalize.d.ts.map +1 -0
- package/dist/fab/normalize.js +285 -0
- package/dist/fab/normalize.js.map +1 -0
- package/dist/fab/schemas.d.ts +10 -0
- package/dist/fab/schemas.d.ts.map +1 -0
- package/dist/fab/schemas.js +105 -0
- package/dist/fab/schemas.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +58 -0
- package/dist/index.js.map +1 -0
- package/dist/itch/catalog.d.ts +13 -0
- package/dist/itch/catalog.d.ts.map +1 -0
- package/dist/itch/catalog.js +50 -0
- package/dist/itch/catalog.js.map +1 -0
- package/dist/itch/client.d.ts +46 -0
- package/dist/itch/client.d.ts.map +1 -0
- package/dist/itch/client.js +175 -0
- package/dist/itch/client.js.map +1 -0
- package/dist/polyhaven/client.d.ts +55 -0
- package/dist/polyhaven/client.d.ts.map +1 -0
- package/dist/polyhaven/client.js +210 -0
- package/dist/polyhaven/client.js.map +1 -0
- package/dist/server.d.ts +25 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +448 -0
- package/dist/server.js.map +1 -0
- package/dist/sketchfab/client.d.ts +70 -0
- package/dist/sketchfab/client.d.ts.map +1 -0
- package/dist/sketchfab/client.js +255 -0
- package/dist/sketchfab/client.js.map +1 -0
- package/dist/smithsonian/client.d.ts +32 -0
- package/dist/smithsonian/client.d.ts.map +1 -0
- package/dist/smithsonian/client.js +142 -0
- package/dist/smithsonian/client.js.map +1 -0
- package/dist/tools/ambientcg.d.ts +296 -0
- package/dist/tools/ambientcg.d.ts.map +1 -0
- package/dist/tools/ambientcg.js +183 -0
- package/dist/tools/ambientcg.js.map +1 -0
- package/dist/tools/audio.d.ts +211 -0
- package/dist/tools/audio.d.ts.map +1 -0
- package/dist/tools/audio.js +156 -0
- package/dist/tools/audio.js.map +1 -0
- package/dist/tools/bundle.d.ts +237 -0
- package/dist/tools/bundle.d.ts.map +1 -0
- package/dist/tools/bundle.js +206 -0
- package/dist/tools/bundle.js.map +1 -0
- package/dist/tools/direct-download.d.ts +53 -0
- package/dist/tools/direct-download.d.ts.map +1 -0
- package/dist/tools/direct-download.js +68 -0
- package/dist/tools/direct-download.js.map +1 -0
- package/dist/tools/download-free-asset.d.ts +66 -0
- package/dist/tools/download-free-asset.d.ts.map +1 -0
- package/dist/tools/download-free-asset.js +60 -0
- package/dist/tools/download-free-asset.js.map +1 -0
- package/dist/tools/get-asset.d.ts +161 -0
- package/dist/tools/get-asset.d.ts.map +1 -0
- package/dist/tools/get-asset.js +131 -0
- package/dist/tools/get-asset.js.map +1 -0
- package/dist/tools/itch.d.ts +120 -0
- package/dist/tools/itch.d.ts.map +1 -0
- package/dist/tools/itch.js +120 -0
- package/dist/tools/itch.js.map +1 -0
- package/dist/tools/list-filters.d.ts +127 -0
- package/dist/tools/list-filters.d.ts.map +1 -0
- package/dist/tools/list-filters.js +68 -0
- package/dist/tools/list-filters.js.map +1 -0
- package/dist/tools/list-limited-time-free.d.ts +57 -0
- package/dist/tools/list-limited-time-free.d.ts.map +1 -0
- package/dist/tools/list-limited-time-free.js +47 -0
- package/dist/tools/list-limited-time-free.js.map +1 -0
- package/dist/tools/polyhaven.d.ts +266 -0
- package/dist/tools/polyhaven.d.ts.map +1 -0
- package/dist/tools/polyhaven.js +233 -0
- package/dist/tools/polyhaven.js.map +1 -0
- package/dist/tools/search-assets.d.ts +176 -0
- package/dist/tools/search-assets.d.ts.map +1 -0
- package/dist/tools/search-assets.js +172 -0
- package/dist/tools/search-assets.js.map +1 -0
- package/dist/tools/sketchfab.d.ts +325 -0
- package/dist/tools/sketchfab.d.ts.map +1 -0
- package/dist/tools/sketchfab.js +203 -0
- package/dist/tools/sketchfab.js.map +1 -0
- package/dist/tools/smithsonian.d.ts +189 -0
- package/dist/tools/smithsonian.d.ts.map +1 -0
- package/dist/tools/smithsonian.js +189 -0
- package/dist/tools/smithsonian.js.map +1 -0
- package/dist/tools/source-directory.d.ts +226 -0
- package/dist/tools/source-directory.d.ts.map +1 -0
- package/dist/tools/source-directory.js +583 -0
- package/dist/tools/source-directory.js.map +1 -0
- package/package.json +69 -0
|
@@ -0,0 +1,583 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
const CategorySchema = z.enum([
|
|
3
|
+
"3d-model",
|
|
4
|
+
"animation",
|
|
5
|
+
"texture",
|
|
6
|
+
"hdri",
|
|
7
|
+
"vfx",
|
|
8
|
+
"2d",
|
|
9
|
+
"ui",
|
|
10
|
+
"icon",
|
|
11
|
+
"font",
|
|
12
|
+
"sfx",
|
|
13
|
+
"music",
|
|
14
|
+
"shader",
|
|
15
|
+
"directory",
|
|
16
|
+
]);
|
|
17
|
+
const AccessSchema = z.enum([
|
|
18
|
+
"mcp-api",
|
|
19
|
+
"mcp-curated",
|
|
20
|
+
"mcp-marketplace",
|
|
21
|
+
"provider-page",
|
|
22
|
+
"package-manager",
|
|
23
|
+
"git",
|
|
24
|
+
]);
|
|
25
|
+
const DownloadSupportSchema = z.enum([
|
|
26
|
+
"mcp-managed",
|
|
27
|
+
"direct-url",
|
|
28
|
+
"authenticated-url",
|
|
29
|
+
"provider-page",
|
|
30
|
+
"package-manager",
|
|
31
|
+
"git",
|
|
32
|
+
]);
|
|
33
|
+
const LicenseTagSchema = z.enum([
|
|
34
|
+
"cc0",
|
|
35
|
+
"cc-by",
|
|
36
|
+
"mit",
|
|
37
|
+
"open-source",
|
|
38
|
+
"per-asset",
|
|
39
|
+
"marketplace",
|
|
40
|
+
]);
|
|
41
|
+
const SourceSchema = z.object({
|
|
42
|
+
id: z.string().regex(/^[a-z0-9-]+$/).max(100),
|
|
43
|
+
name: z.string().max(200),
|
|
44
|
+
categories: z.array(CategorySchema).min(1).max(13),
|
|
45
|
+
bestFor: z.string().max(1_000),
|
|
46
|
+
browseUrls: z.array(z.url().max(2_048)).min(1).max(8),
|
|
47
|
+
licenseSummary: z.string().max(1_000),
|
|
48
|
+
licenseTags: z.array(LicenseTagSchema).min(1).max(6),
|
|
49
|
+
attribution: z.string().max(1_000),
|
|
50
|
+
access: AccessSchema,
|
|
51
|
+
downloadSupport: DownloadSupportSchema,
|
|
52
|
+
agentReady: z.boolean().describe("True only when an agent can complete the download through this MCP without browser, login, checkout, or paywall interaction."),
|
|
53
|
+
searchTool: z.string().optional(),
|
|
54
|
+
detailTool: z.string().max(100).optional(),
|
|
55
|
+
filesTool: z.string().max(100).optional(),
|
|
56
|
+
downloadTool: z.string().max(100).optional(),
|
|
57
|
+
downloadArgs: z.record(z.string(), z.unknown()).optional().describe("Complete machine-readable arguments for a static direct download; acceptLicense must still be explicitly acknowledged by the caller."),
|
|
58
|
+
installCommand: z.string().max(500).optional(),
|
|
59
|
+
caution: z.string().max(1_000).optional(),
|
|
60
|
+
});
|
|
61
|
+
const source = (value) => SourceSchema.parse({
|
|
62
|
+
...value,
|
|
63
|
+
agentReady: Boolean(value.downloadTool &&
|
|
64
|
+
value.downloadSupport !== "provider-page" &&
|
|
65
|
+
value.downloadSupport !== "authenticated-url"),
|
|
66
|
+
});
|
|
67
|
+
export const ASSET_SOURCES = [
|
|
68
|
+
source({
|
|
69
|
+
id: "fab",
|
|
70
|
+
name: "Fab",
|
|
71
|
+
categories: ["3d-model", "animation", "texture", "vfx", "2d", "ui"],
|
|
72
|
+
bestFor: "Marketplace assets and limited-time-free professional packs",
|
|
73
|
+
browseUrls: ["https://www.fab.com/"],
|
|
74
|
+
licenseSummary: "Fab Standard License or listing-specific terms",
|
|
75
|
+
licenseTags: ["marketplace", "per-asset"],
|
|
76
|
+
attribution: "Listing-specific",
|
|
77
|
+
access: "mcp-marketplace",
|
|
78
|
+
downloadSupport: "mcp-managed",
|
|
79
|
+
searchTool: "fab_search_assets",
|
|
80
|
+
detailTool: "fab_get_asset",
|
|
81
|
+
filesTool: "fab_list_limited_time_free",
|
|
82
|
+
downloadTool: "fab_download_free_asset",
|
|
83
|
+
caution: "The MCP never purchases or adds assets to a library; only directly available free files are downloadable.",
|
|
84
|
+
}),
|
|
85
|
+
source({
|
|
86
|
+
id: "polyhaven",
|
|
87
|
+
name: "Poly Haven",
|
|
88
|
+
categories: ["3d-model", "texture", "hdri"],
|
|
89
|
+
bestFor: "High-quality realistic models, consistent PBR textures, and HDRI lighting",
|
|
90
|
+
browseUrls: ["https://polyhaven.com/models", "https://polyhaven.com/textures", "https://polyhaven.com/hdris"],
|
|
91
|
+
licenseSummary: "CC0",
|
|
92
|
+
licenseTags: ["cc0"],
|
|
93
|
+
attribution: "Asset attribution not required; visible Poly Haven credit is required when using its API",
|
|
94
|
+
access: "mcp-api",
|
|
95
|
+
downloadSupport: "direct-url",
|
|
96
|
+
searchTool: "polyhaven_search_assets",
|
|
97
|
+
detailTool: "polyhaven_get_asset",
|
|
98
|
+
filesTool: "polyhaven_list_files",
|
|
99
|
+
downloadTool: "asset_download_file",
|
|
100
|
+
}),
|
|
101
|
+
source({
|
|
102
|
+
id: "ambientcg",
|
|
103
|
+
name: "ambientCG",
|
|
104
|
+
categories: ["3d-model", "texture", "hdri"],
|
|
105
|
+
bestFor: "Large CC0 catalog of tileable PBR materials, scans, decals, terrains, and HDRIs",
|
|
106
|
+
browseUrls: ["https://ambientcg.com/"],
|
|
107
|
+
licenseSummary: "CC0",
|
|
108
|
+
licenseTags: ["cc0"],
|
|
109
|
+
attribution: "Not required",
|
|
110
|
+
access: "mcp-api",
|
|
111
|
+
downloadSupport: "direct-url",
|
|
112
|
+
searchTool: "ambientcg_search_assets",
|
|
113
|
+
detailTool: "ambientcg_get_asset",
|
|
114
|
+
filesTool: "ambientcg_list_files",
|
|
115
|
+
downloadTool: "asset_download_file",
|
|
116
|
+
}),
|
|
117
|
+
source({
|
|
118
|
+
id: "smithsonian",
|
|
119
|
+
name: "Smithsonian 3D Open Access",
|
|
120
|
+
categories: ["3d-model"],
|
|
121
|
+
bestFor: "Museum and cultural-heritage scans with direct model variants",
|
|
122
|
+
browseUrls: ["https://3d.si.edu/"],
|
|
123
|
+
licenseSummary: "Smithsonian Open Access; verify item-level rights before reuse",
|
|
124
|
+
licenseTags: ["per-asset"],
|
|
125
|
+
attribution: "Verify the item rights statement; source credit is good practice",
|
|
126
|
+
access: "mcp-api",
|
|
127
|
+
downloadSupport: "direct-url",
|
|
128
|
+
searchTool: "smithsonian_search_assets",
|
|
129
|
+
detailTool: "smithsonian_get_asset",
|
|
130
|
+
filesTool: "smithsonian_list_files",
|
|
131
|
+
downloadTool: "asset_download_file",
|
|
132
|
+
}),
|
|
133
|
+
source({
|
|
134
|
+
id: "sketchfab",
|
|
135
|
+
name: "Sketchfab",
|
|
136
|
+
categories: ["3d-model", "animation"],
|
|
137
|
+
bestFor: "Long-tail downloadable 3D models with per-model Creative Commons metadata",
|
|
138
|
+
browseUrls: ["https://sketchfab.com/3d-models"],
|
|
139
|
+
licenseSummary: "Per model Creative Commons license",
|
|
140
|
+
licenseTags: ["per-asset", "cc-by"],
|
|
141
|
+
attribution: "Per model; many downloadable models require attribution",
|
|
142
|
+
access: "mcp-api",
|
|
143
|
+
downloadSupport: "authenticated-url",
|
|
144
|
+
searchTool: "sketchfab_search_models",
|
|
145
|
+
detailTool: "sketchfab_get_model",
|
|
146
|
+
filesTool: "sketchfab_get_downloads",
|
|
147
|
+
caution: "Download URLs require the user's SKETCHFAB_API_TOKEN.",
|
|
148
|
+
}),
|
|
149
|
+
source({
|
|
150
|
+
id: "quaternius",
|
|
151
|
+
name: "Quaternius",
|
|
152
|
+
categories: ["3d-model", "animation"],
|
|
153
|
+
bestFor: "Coherent stylized model packs and universal humanoid animation libraries",
|
|
154
|
+
browseUrls: [
|
|
155
|
+
"https://quaternius.com/",
|
|
156
|
+
"https://quaternius.com/packs/universalanimationlibrary.html",
|
|
157
|
+
"https://quaternius.com/packs/universalanimationlibrary2.html",
|
|
158
|
+
"https://quaternius.itch.io/universal-animation-library",
|
|
159
|
+
"https://quaternius.itch.io/universal-animation-library-2",
|
|
160
|
+
],
|
|
161
|
+
licenseSummary: "CC0 on the free asset packs; verify the individual pack page",
|
|
162
|
+
licenseTags: ["cc0"],
|
|
163
|
+
attribution: "Not required for CC0 packs",
|
|
164
|
+
access: "mcp-curated",
|
|
165
|
+
downloadSupport: "mcp-managed",
|
|
166
|
+
detailTool: "itch_list_downloads",
|
|
167
|
+
filesTool: "asset_list_bundle_animations",
|
|
168
|
+
downloadTool: "asset_download_bundle_animation",
|
|
169
|
+
caution: "Universal Animation Library packs contain aggregate GLBs; the MCP range-fetches only the selected GLB and can export one named animation clip instead of downloading the full ZIP.",
|
|
170
|
+
}),
|
|
171
|
+
source({
|
|
172
|
+
id: "kaykit",
|
|
173
|
+
name: "KayKit",
|
|
174
|
+
categories: ["3d-model", "animation"],
|
|
175
|
+
bestFor: "Coherent low-poly characters, dungeons, cities, forests, and platformer packs",
|
|
176
|
+
browseUrls: ["https://kaylousberg.itch.io/"],
|
|
177
|
+
licenseSummary: "Per pack; many free packs allow commercial use and several are CC0",
|
|
178
|
+
licenseTags: ["per-asset", "cc0"],
|
|
179
|
+
attribution: "Per pack",
|
|
180
|
+
access: "mcp-curated",
|
|
181
|
+
downloadSupport: "mcp-managed",
|
|
182
|
+
detailTool: "itch_list_downloads",
|
|
183
|
+
filesTool: "asset_list_bundle_entries",
|
|
184
|
+
downloadTool: "asset_download_bundle_entry",
|
|
185
|
+
caution: "The current MCP catalog covers the CC0 KayKit Platformer pack; other packs remain excluded from agent-ready search until integrated and verified.",
|
|
186
|
+
}),
|
|
187
|
+
source({
|
|
188
|
+
id: "kenney",
|
|
189
|
+
name: "Kenney Assets",
|
|
190
|
+
categories: ["3d-model", "texture", "vfx", "2d", "ui", "icon", "sfx", "music"],
|
|
191
|
+
bestFor: "Universal game-development packs: prototypes, UI, 2D, 3D, particles, input glyphs, and audio",
|
|
192
|
+
browseUrls: ["https://kenney.nl/assets"],
|
|
193
|
+
licenseSummary: "CC0 on asset pages; verify the individual pack page",
|
|
194
|
+
licenseTags: ["cc0"],
|
|
195
|
+
attribution: "Not required for CC0 packs",
|
|
196
|
+
access: "mcp-curated",
|
|
197
|
+
downloadSupport: "mcp-managed",
|
|
198
|
+
searchTool: "audio_search_assets",
|
|
199
|
+
downloadTool: "audio_download_asset",
|
|
200
|
+
caution: "The current MCP-managed catalog covers selected audio packs; the Particle Pack is a separate direct-download entry and other Kenney categories remain provider-page downloads until cataloged.",
|
|
201
|
+
}),
|
|
202
|
+
source({
|
|
203
|
+
id: "kenney-particle-pack",
|
|
204
|
+
name: "Kenney Particle Pack",
|
|
205
|
+
categories: ["vfx", "2d"],
|
|
206
|
+
bestFor: "Engine-neutral particle sprites, masks, and light cookies",
|
|
207
|
+
browseUrls: [
|
|
208
|
+
"https://kenney.nl/assets/particle-pack",
|
|
209
|
+
"https://kenney.nl/media/pages/assets/particle-pack/f8fe0f8cb8-1677578741/kenney_particle-pack.zip",
|
|
210
|
+
],
|
|
211
|
+
licenseSummary: "CC0",
|
|
212
|
+
licenseTags: ["cc0"],
|
|
213
|
+
attribution: "Not required",
|
|
214
|
+
access: "mcp-curated",
|
|
215
|
+
downloadSupport: "direct-url",
|
|
216
|
+
downloadTool: "asset_download_file",
|
|
217
|
+
downloadArgs: {
|
|
218
|
+
provider: "kenney",
|
|
219
|
+
url: "https://kenney.nl/media/pages/assets/particle-pack/f8fe0f8cb8-1677578741/kenney_particle-pack.zip",
|
|
220
|
+
fileName: "kenney_particle-pack.zip",
|
|
221
|
+
acceptLicense: true,
|
|
222
|
+
},
|
|
223
|
+
}),
|
|
224
|
+
source({
|
|
225
|
+
id: "brackeys-vfx",
|
|
226
|
+
name: "Brackeys VFX Bundle",
|
|
227
|
+
categories: ["vfx", "2d"],
|
|
228
|
+
bestFor: "Engine-neutral fire, smoke, flash, magic, electricity, impact, and particle textures",
|
|
229
|
+
browseUrls: ["https://brackeysgames.itch.io/brackeys-vfx-bundle"],
|
|
230
|
+
licenseSummary: "CC0 on the bundle page; verify before use",
|
|
231
|
+
licenseTags: ["cc0"],
|
|
232
|
+
attribution: "Not required for CC0 material",
|
|
233
|
+
access: "mcp-curated",
|
|
234
|
+
downloadSupport: "mcp-managed",
|
|
235
|
+
detailTool: "itch_list_downloads",
|
|
236
|
+
filesTool: "asset_list_bundle_entries",
|
|
237
|
+
downloadTool: "asset_download_bundle_entry",
|
|
238
|
+
}),
|
|
239
|
+
source({
|
|
240
|
+
id: "game-icons",
|
|
241
|
+
name: "Game-icons.net",
|
|
242
|
+
categories: ["icon", "ui", "2d"],
|
|
243
|
+
bestFor: "Thousands of customizable SVG and PNG game icons with bulk archives",
|
|
244
|
+
browseUrls: [
|
|
245
|
+
"https://game-icons.net/",
|
|
246
|
+
"https://game-icons.net/archives/ffffff/transparent/game-icons.net.svg.zip",
|
|
247
|
+
],
|
|
248
|
+
licenseSummary: "Mostly CC BY 3.0; inspect icon-specific credits",
|
|
249
|
+
licenseTags: ["cc-by"],
|
|
250
|
+
attribution: "Required",
|
|
251
|
+
access: "mcp-curated",
|
|
252
|
+
downloadSupport: "direct-url",
|
|
253
|
+
downloadTool: "asset_download_file",
|
|
254
|
+
downloadArgs: {
|
|
255
|
+
provider: "game-icons",
|
|
256
|
+
url: "https://game-icons.net/archives/ffffff/transparent/game-icons.net.svg.zip",
|
|
257
|
+
fileName: "game-icons.net.svg.zip",
|
|
258
|
+
acceptLicense: true,
|
|
259
|
+
},
|
|
260
|
+
}),
|
|
261
|
+
source({
|
|
262
|
+
id: "google-fonts",
|
|
263
|
+
name: "Google Fonts",
|
|
264
|
+
categories: ["font"],
|
|
265
|
+
bestFor: "Open-source font families, variable fonts, and broad language coverage",
|
|
266
|
+
browseUrls: ["https://fonts.google.com/", "https://github.com/google/fonts"],
|
|
267
|
+
licenseSummary: "Open-source family-specific licenses, commonly SIL OFL",
|
|
268
|
+
licenseTags: ["open-source"],
|
|
269
|
+
attribution: "License-specific; retain license files",
|
|
270
|
+
access: "git",
|
|
271
|
+
downloadSupport: "git",
|
|
272
|
+
installCommand: "git clone --filter=blob:none --sparse https://github.com/google/fonts.git",
|
|
273
|
+
}),
|
|
274
|
+
source({
|
|
275
|
+
id: "sonniss",
|
|
276
|
+
name: "Sonniss GDC Audio",
|
|
277
|
+
categories: ["sfx"],
|
|
278
|
+
bestFor: "Professional Foley, ambience, impacts, vehicles, weapons, monsters, and cinematic effects",
|
|
279
|
+
browseUrls: ["https://gdc.sonniss.com/"],
|
|
280
|
+
licenseSummary: "Sonniss GDC bundle license; commercial projects allowed and attribution not required",
|
|
281
|
+
licenseTags: ["per-asset"],
|
|
282
|
+
attribution: "Not required",
|
|
283
|
+
access: "mcp-curated",
|
|
284
|
+
downloadSupport: "mcp-managed",
|
|
285
|
+
searchTool: "audio_search_assets",
|
|
286
|
+
downloadTool: "audio_download_asset",
|
|
287
|
+
caution: "Raw redistribution as an asset library is not allowed.",
|
|
288
|
+
}),
|
|
289
|
+
source({
|
|
290
|
+
id: "tallbeard",
|
|
291
|
+
name: "Tallbeard Music Loop Bundle",
|
|
292
|
+
categories: ["music"],
|
|
293
|
+
bestFor: "Large collections of seamless chiptune, ambient, action, and casual gameplay loops",
|
|
294
|
+
browseUrls: ["https://tallbeard.itch.io/music-loop-bundle"],
|
|
295
|
+
licenseSummary: "CC0 on the bundle page; verify the selected download",
|
|
296
|
+
licenseTags: ["cc0"],
|
|
297
|
+
attribution: "Not required for CC0 material",
|
|
298
|
+
access: "mcp-curated",
|
|
299
|
+
downloadSupport: "mcp-managed",
|
|
300
|
+
detailTool: "itch_list_downloads",
|
|
301
|
+
filesTool: "asset_list_bundle_entries",
|
|
302
|
+
downloadTool: "asset_download_bundle_entry",
|
|
303
|
+
}),
|
|
304
|
+
source({
|
|
305
|
+
id: "scott-buckley",
|
|
306
|
+
name: "Scott Buckley Music Library",
|
|
307
|
+
categories: ["music"],
|
|
308
|
+
bestFor: "Cinematic, orchestral, atmospheric, and emotional music",
|
|
309
|
+
browseUrls: ["https://www.scottbuckley.com.au/library/"],
|
|
310
|
+
licenseSummary: "CC BY 4.0 for library tracks unless a track says otherwise",
|
|
311
|
+
licenseTags: ["cc-by"],
|
|
312
|
+
attribution: "Required",
|
|
313
|
+
access: "provider-page",
|
|
314
|
+
downloadSupport: "provider-page",
|
|
315
|
+
}),
|
|
316
|
+
source({
|
|
317
|
+
id: "itch-io",
|
|
318
|
+
name: "itch.io Free Game Assets",
|
|
319
|
+
categories: ["3d-model", "animation", "texture", "vfx", "2d", "ui", "icon", "font", "sfx", "music"],
|
|
320
|
+
bestFor: "Genre-specific long-tail asset packs",
|
|
321
|
+
browseUrls: ["https://itch.io/game-assets/free"],
|
|
322
|
+
licenseSummary: "Per pack; no site-wide license",
|
|
323
|
+
licenseTags: ["per-asset", "cc0"],
|
|
324
|
+
attribution: "Per pack",
|
|
325
|
+
access: "provider-page",
|
|
326
|
+
downloadSupport: "provider-page",
|
|
327
|
+
}),
|
|
328
|
+
source({
|
|
329
|
+
id: "mixkit",
|
|
330
|
+
name: "Mixkit",
|
|
331
|
+
categories: ["sfx", "music", "vfx"],
|
|
332
|
+
bestFor: "Quick individual sounds, tracks, and stock effects",
|
|
333
|
+
browseUrls: ["https://mixkit.co/free-sound-effects/", "https://mixkit.co/free-stock-music/"],
|
|
334
|
+
licenseSummary: "Mixkit item license",
|
|
335
|
+
licenseTags: ["per-asset"],
|
|
336
|
+
attribution: "Item-specific",
|
|
337
|
+
access: "provider-page",
|
|
338
|
+
downloadSupport: "provider-page",
|
|
339
|
+
}),
|
|
340
|
+
source({
|
|
341
|
+
id: "pixabay",
|
|
342
|
+
name: "Pixabay",
|
|
343
|
+
categories: ["sfx", "music", "2d"],
|
|
344
|
+
bestFor: "Fast searchable stock music, sound effects, and images",
|
|
345
|
+
browseUrls: ["https://pixabay.com/sound-effects/", "https://pixabay.com/music/"],
|
|
346
|
+
licenseSummary: "Pixabay Content License; verify the selected item",
|
|
347
|
+
licenseTags: ["per-asset"],
|
|
348
|
+
attribution: "Generally not required",
|
|
349
|
+
access: "provider-page",
|
|
350
|
+
downloadSupport: "provider-page",
|
|
351
|
+
caution: "Some music is Content ID registered; retain download evidence and inspect item warnings.",
|
|
352
|
+
}),
|
|
353
|
+
source({
|
|
354
|
+
id: "freesound",
|
|
355
|
+
name: "Freesound",
|
|
356
|
+
categories: ["sfx", "music"],
|
|
357
|
+
bestFor: "Specific recordings and niche sounds",
|
|
358
|
+
browseUrls: ["https://freesound.org/search/"],
|
|
359
|
+
licenseSummary: "Per asset; prefer CC0 or CC BY and avoid CC BY-NC for commercial work",
|
|
360
|
+
licenseTags: ["per-asset", "cc0", "cc-by"],
|
|
361
|
+
attribution: "Per asset",
|
|
362
|
+
access: "provider-page",
|
|
363
|
+
downloadSupport: "provider-page",
|
|
364
|
+
}),
|
|
365
|
+
source({
|
|
366
|
+
id: "opengameart",
|
|
367
|
+
name: "OpenGameArt",
|
|
368
|
+
categories: ["3d-model", "texture", "vfx", "2d", "ui", "icon", "font", "sfx", "music"],
|
|
369
|
+
bestFor: "Game-ready loops, chiptunes, RPG assets, sprites, and unusual effects",
|
|
370
|
+
browseUrls: ["https://opengameart.org/"],
|
|
371
|
+
licenseSummary: "Per asset; use the CC0 filter unless intentionally managing attribution or share-alike",
|
|
372
|
+
licenseTags: ["per-asset", "cc0", "cc-by"],
|
|
373
|
+
attribution: "Per asset",
|
|
374
|
+
access: "provider-page",
|
|
375
|
+
downloadSupport: "provider-page",
|
|
376
|
+
}),
|
|
377
|
+
source({
|
|
378
|
+
id: "abstraction",
|
|
379
|
+
name: "Abstraction Music",
|
|
380
|
+
categories: ["music"],
|
|
381
|
+
bestFor: "Loopable game music and game-jam tracks",
|
|
382
|
+
browseUrls: ["https://abstractionmusic.com/"],
|
|
383
|
+
licenseSummary: "Per release",
|
|
384
|
+
licenseTags: ["per-asset"],
|
|
385
|
+
attribution: "Per release",
|
|
386
|
+
access: "provider-page",
|
|
387
|
+
downloadSupport: "provider-page",
|
|
388
|
+
}),
|
|
389
|
+
source({
|
|
390
|
+
id: "threejs-examples",
|
|
391
|
+
name: "Three.js Shader Examples",
|
|
392
|
+
categories: ["shader", "vfx"],
|
|
393
|
+
bestFor: "Water, ocean, sky, lava, post-processing, and procedural material references for ThreeNative",
|
|
394
|
+
browseUrls: ["https://threejs.org/examples/", "https://github.com/mrdoob/three.js"],
|
|
395
|
+
licenseSummary: "Three.js MIT license; inspect individual file headers and imported implementations",
|
|
396
|
+
licenseTags: ["mit", "open-source"],
|
|
397
|
+
attribution: "Retain license and relevant source comments",
|
|
398
|
+
access: "package-manager",
|
|
399
|
+
downloadSupport: "package-manager",
|
|
400
|
+
installCommand: "npm install three",
|
|
401
|
+
}),
|
|
402
|
+
source({
|
|
403
|
+
id: "threejs-shader-materials",
|
|
404
|
+
name: "threejs-shader-materials",
|
|
405
|
+
categories: ["shader"],
|
|
406
|
+
bestFor: "Reusable Three.js shader materials",
|
|
407
|
+
browseUrls: ["https://github.com/MasatoMakino/threejs-shader-materials"],
|
|
408
|
+
licenseSummary: "MIT; verify repository and individual assets",
|
|
409
|
+
licenseTags: ["mit", "open-source"],
|
|
410
|
+
attribution: "Retain the MIT license",
|
|
411
|
+
access: "git",
|
|
412
|
+
downloadSupport: "git",
|
|
413
|
+
installCommand: "git clone https://github.com/MasatoMakino/threejs-shader-materials.git",
|
|
414
|
+
}),
|
|
415
|
+
source({
|
|
416
|
+
id: "glslify",
|
|
417
|
+
name: "glslify",
|
|
418
|
+
categories: ["shader"],
|
|
419
|
+
bestFor: "Composable GLSL modules for noise, fog, easing, lighting, and raymarching",
|
|
420
|
+
browseUrls: ["https://github.com/glslify/glslify"],
|
|
421
|
+
licenseSummary: "glslify is MIT; each installed GLSL module has its own license",
|
|
422
|
+
licenseTags: ["mit", "open-source", "per-asset"],
|
|
423
|
+
attribution: "Module-specific",
|
|
424
|
+
access: "package-manager",
|
|
425
|
+
downloadSupport: "package-manager",
|
|
426
|
+
installCommand: "npm install glslify",
|
|
427
|
+
}),
|
|
428
|
+
source({
|
|
429
|
+
id: "three-custom-shader-material",
|
|
430
|
+
name: "Three Custom Shader Material",
|
|
431
|
+
categories: ["shader"],
|
|
432
|
+
bestFor: "Extending standard Three.js materials without replacing the lighting shader",
|
|
433
|
+
browseUrls: ["https://github.com/FarazzShaikh/THREE-CustomShaderMaterial"],
|
|
434
|
+
licenseSummary: "MIT",
|
|
435
|
+
licenseTags: ["mit", "open-source"],
|
|
436
|
+
attribution: "Retain the MIT license",
|
|
437
|
+
access: "package-manager",
|
|
438
|
+
downloadSupport: "package-manager",
|
|
439
|
+
installCommand: "npm install three-custom-shader-material",
|
|
440
|
+
}),
|
|
441
|
+
source({
|
|
442
|
+
id: "godot-shaders",
|
|
443
|
+
name: "Godot Shaders",
|
|
444
|
+
categories: ["shader", "vfx"],
|
|
445
|
+
bestFor: "Browsable Godot shader implementations",
|
|
446
|
+
browseUrls: ["https://godotshaders.com/"],
|
|
447
|
+
licenseSummary: "Per shader: CC0, MIT, or GPLv3; prefer CC0/MIT for closed-source commercial games",
|
|
448
|
+
licenseTags: ["per-asset", "cc0", "mit"],
|
|
449
|
+
attribution: "Per shader",
|
|
450
|
+
access: "provider-page",
|
|
451
|
+
downloadSupport: "provider-page",
|
|
452
|
+
}),
|
|
453
|
+
source({
|
|
454
|
+
id: "unity-shader-graph-samples",
|
|
455
|
+
name: "Unity Shader Graph Samples",
|
|
456
|
+
categories: ["shader", "vfx"],
|
|
457
|
+
bestFor: "Editable Unity Shader Graph reference projects",
|
|
458
|
+
browseUrls: ["https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary"],
|
|
459
|
+
licenseSummary: "Repository-specific Unity license",
|
|
460
|
+
licenseTags: ["open-source"],
|
|
461
|
+
attribution: "Retain repository license",
|
|
462
|
+
access: "git",
|
|
463
|
+
downloadSupport: "git",
|
|
464
|
+
installCommand: "git clone https://github.com/UnityTechnologies/ShaderGraph_ExampleLibrary.git",
|
|
465
|
+
}),
|
|
466
|
+
source({
|
|
467
|
+
id: "unity-vfx-graph-samples",
|
|
468
|
+
name: "Unity Visual Effect Graph Samples",
|
|
469
|
+
categories: ["vfx", "shader"],
|
|
470
|
+
bestFor: "Portals, fire, holograms, trails, volumetrics, and procedural effects",
|
|
471
|
+
browseUrls: ["https://github.com/Unity-Technologies/VisualEffectGraph-Samples"],
|
|
472
|
+
licenseSummary: "Repository-specific Unity license",
|
|
473
|
+
licenseTags: ["open-source"],
|
|
474
|
+
attribution: "Retain repository license",
|
|
475
|
+
access: "git",
|
|
476
|
+
downloadSupport: "git",
|
|
477
|
+
installCommand: "git clone https://github.com/Unity-Technologies/VisualEffectGraph-Samples.git",
|
|
478
|
+
}),
|
|
479
|
+
source({
|
|
480
|
+
id: "unreal-niagara-examples",
|
|
481
|
+
name: "Unreal Niagara Examples",
|
|
482
|
+
categories: ["vfx", "shader"],
|
|
483
|
+
bestFor: "Editable Unreal Niagara systems for explosions, smoke, fire, trails, lightning, and buffs",
|
|
484
|
+
browseUrls: ["https://www.fab.com/"],
|
|
485
|
+
licenseSummary: "Fab/Unreal listing-specific license",
|
|
486
|
+
licenseTags: ["marketplace", "per-asset"],
|
|
487
|
+
attribution: "Listing-specific",
|
|
488
|
+
access: "mcp-marketplace",
|
|
489
|
+
downloadSupport: "provider-page",
|
|
490
|
+
searchTool: "fab_search_assets",
|
|
491
|
+
caution: "Acquisition normally requires an Epic account; this MCP does not automate sign-in or purchase/library flows.",
|
|
492
|
+
}),
|
|
493
|
+
source({
|
|
494
|
+
id: "awesome-cc0",
|
|
495
|
+
name: "Awesome CC0",
|
|
496
|
+
categories: ["directory"],
|
|
497
|
+
bestFor: "Long-tail discovery across public-domain asset libraries",
|
|
498
|
+
browseUrls: ["https://github.com/madjin/awesome-cc0"],
|
|
499
|
+
licenseSummary: "Directory entries vary; verify each linked source despite the CC0 focus",
|
|
500
|
+
licenseTags: ["cc0", "per-asset"],
|
|
501
|
+
attribution: "Per linked source",
|
|
502
|
+
access: "git",
|
|
503
|
+
downloadSupport: "git",
|
|
504
|
+
installCommand: "git clone https://github.com/madjin/awesome-cc0.git",
|
|
505
|
+
}),
|
|
506
|
+
];
|
|
507
|
+
function successResult(output) {
|
|
508
|
+
return {
|
|
509
|
+
content: [{ type: "text", text: JSON.stringify(output) }],
|
|
510
|
+
structuredContent: output,
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
function errorResult() {
|
|
514
|
+
const safe = {
|
|
515
|
+
code: "ASSET_SOURCE_INVALID_INPUT",
|
|
516
|
+
message: "The asset source query is invalid.",
|
|
517
|
+
retryable: false,
|
|
518
|
+
};
|
|
519
|
+
return {
|
|
520
|
+
isError: true,
|
|
521
|
+
content: [{ type: "text", text: JSON.stringify(safe) }],
|
|
522
|
+
};
|
|
523
|
+
}
|
|
524
|
+
export const AssetListSourcesInputSchema = z.object({
|
|
525
|
+
agentReadyOnly: z.boolean().default(true),
|
|
526
|
+
});
|
|
527
|
+
export const AssetSourceListOutputSchema = z.object({
|
|
528
|
+
sources: z.array(SourceSchema).max(100),
|
|
529
|
+
total: z.number().int().nonnegative(),
|
|
530
|
+
});
|
|
531
|
+
export function createAssetListSourcesHandler() {
|
|
532
|
+
return async (rawInput) => {
|
|
533
|
+
try {
|
|
534
|
+
const input = AssetListSourcesInputSchema.parse(rawInput);
|
|
535
|
+
const sources = input.agentReadyOnly
|
|
536
|
+
? ASSET_SOURCES.filter((source) => source.agentReady)
|
|
537
|
+
: [...ASSET_SOURCES];
|
|
538
|
+
return successResult(AssetSourceListOutputSchema.parse({
|
|
539
|
+
sources,
|
|
540
|
+
total: sources.length,
|
|
541
|
+
}));
|
|
542
|
+
}
|
|
543
|
+
catch {
|
|
544
|
+
return errorResult();
|
|
545
|
+
}
|
|
546
|
+
};
|
|
547
|
+
}
|
|
548
|
+
export const AssetSearchSourcesInputSchema = z.object({
|
|
549
|
+
query: z.string().trim().max(200).optional(),
|
|
550
|
+
category: z.union([z.literal("all"), CategorySchema]).default("all"),
|
|
551
|
+
access: z.union([z.literal("all"), AccessSchema]).default("all"),
|
|
552
|
+
license: z.union([z.literal("all"), LicenseTagSchema]).default("all"),
|
|
553
|
+
agentReadyOnly: z.boolean().default(true),
|
|
554
|
+
});
|
|
555
|
+
export function createAssetSearchSourcesHandler() {
|
|
556
|
+
return async (rawInput) => {
|
|
557
|
+
try {
|
|
558
|
+
const input = AssetSearchSourcesInputSchema.parse(rawInput);
|
|
559
|
+
const query = input.query?.toLocaleLowerCase();
|
|
560
|
+
const sources = ASSET_SOURCES.filter((candidate) => {
|
|
561
|
+
const haystack = [
|
|
562
|
+
candidate.id,
|
|
563
|
+
candidate.name,
|
|
564
|
+
candidate.bestFor,
|
|
565
|
+
candidate.licenseSummary,
|
|
566
|
+
...candidate.categories,
|
|
567
|
+
]
|
|
568
|
+
.join(" ")
|
|
569
|
+
.toLocaleLowerCase();
|
|
570
|
+
return ((!input.agentReadyOnly || candidate.agentReady) &&
|
|
571
|
+
(!query || haystack.includes(query)) &&
|
|
572
|
+
(input.category === "all" || candidate.categories.includes(input.category)) &&
|
|
573
|
+
(input.access === "all" || candidate.access === input.access) &&
|
|
574
|
+
(input.license === "all" || candidate.licenseTags.includes(input.license)));
|
|
575
|
+
});
|
|
576
|
+
return successResult(AssetSourceListOutputSchema.parse({ sources, total: sources.length }));
|
|
577
|
+
}
|
|
578
|
+
catch {
|
|
579
|
+
return errorResult();
|
|
580
|
+
}
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
//# sourceMappingURL=source-directory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"source-directory.js","sourceRoot":"","sources":["../../src/tools/source-directory.ts"],"names":[],"mappings":"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"}
|