Game Asset Finder MCP
Game Asset Finder MCP
Ein suchorientierter MCP-Dienst für die Spieleentwicklung. Er durchsucht gleichzeitig mehrere öffentliche Asset-Quellen und eine optionale lokale Asset-Bibliothek, vereinheitlicht die Ergebnisse verschiedener Seiten in ein gemeinsames Feldenset und führt chinesische Schlüsselworterweiterung, Lizenznormalisierung, Relevanzsortierung, quellenübergreifende Deduplizierung, Quellenausgleich, Caching und Cursor-Paginierung durch.
Das Projekt basiert auf dem aktuellen MCP TypeScript SDK v2, läuft über stdio und ist für Codex, ChatGPT Desktop und andere Clients geeignet, die lokales MCP unterstützen.
Design und Optimierung
Das Projekt verwendet eine Provider-Registrierung und ein einheitliches Ergebnismodell und konzentriert sich auf die Optimierung der quellenübergreifenden Suche:
Ein einzelner Quellenfehler bringt die globale Suche nicht zum Erliegen; die Antwort markiert den Status jeder Quelle deutlich.
Die Schlüsselwortgewichtung und die Erweiterung um chinesische und englische Spielbegriffe verbessern die Recall-Rate bei chinesischen Abfragen.
Hinzufügen von TTL/LRU-Caching, Zusammenführen identischer gleichzeitiger Anfragen, Provider-Timeout, begrenzte Wiederholungen und
Retry-After.Hinzufügen von einheitlicher Lizenzfilterung, URL-Normalisierung und Deduplizierung, Zusammenführen von Spiegelquellen, stabilem Sortieren und Quellenvielfalt.
Verwendung von
limit + nextCursorzur Paginierung, um zu vermeiden, dass eine große Anzahl von Ergebnissen auf einmal in den Modellkontext gepackt wird.Der lokale Index verwendet inkrementelles Scannen, SHA-256, atomares Schreiben, erlaubt Root-Verzeichnisbeschränkungen und Überspringen von symbolischen Links.
Die Werkzeugoberfläche wurde auf 4 komprimiert, um die Wahrscheinlichkeit zu verringern, dass der Agent das falsche Werkzeug auswählt.
Related MCP server: @codesift/mcp
Datenquellen
id | Inhalt | Anmeldeinformationen | Lizenzmerkmale |
| 2D-, 3D-, UI-, Audio-, Schriftart-Asset-Pakete | Keine | CC0 |
| 2D, 3D, Musik, Soundeffekte | Keine | variiert pro Eintrag |
| Kostenlose Spiel-Asset-Listen | Keine | variiert pro Autor/Seite |
| Bilder, Texturen, Icon-Referenzen | Keine | CC / Gemeinfrei |
| PBR-Materialien, HDRI, 3D | Keine | CC0 |
| Texturen, HDRI, 3D | Keine | CC0 |
| Soundeffekte, Aufnahmen |
| variiert pro Eintrag |
| Lokale Assets im konfigurierten Verzeichnis | Lokales Verzeichnis | durch Sidecar beschrieben |
Jede entfernte Quelle kann vorübergehend ausfallen oder gedrosselt werden. Das Feld sourceStatuses in der Antwort gibt pro Quelle ok / partial / disabled / timeout / rate_limited / error an; andere erfolgreiche Quellen liefern weiterhin Ergebnisse.
Installation
Erfordert Node.js 20.18.1 oder höher.
git clone https://github.com/sudoriaa/game-asset-finder-mcp.git
cd game-asset-finder-mcp
npm ci
npm run build
npm testSie können auch Folgendes ausführen:
.\install.ps1Starten Sie direkt:
node .\dist\index.jsDie Standardausgabe von stdio ist der MCP JSON-RPC-Kanal; Dienstprotokolle werden nur in die Standardfehlerausgabe geschrieben.
Integration in Codex
Fügen Sie in ~/.codex/config.toml oder in .codex/config.toml eines vertrauenswürdigen Projekts hinzu:
[mcp_servers.game_assets]
command = "node"
args = ["C:\\path\\to\\game-asset-finder-mcp\\dist\\index.js"]
cwd = "C:\\path\\to\\game-asset-finder-mcp"
startup_timeout_sec = 30
tool_timeout_sec = 90
enabled = true
[mcp_servers.game_assets.env]
GAME_ASSET_LOCAL_ROOTS = "D:\\GameAssets;E:\\SharedAssets"
GAME_ASSET_CACHE_TTL_SECONDS = "600"Wenn Freesound aktiviert ist, wird empfohlen, den Schlüssel aus der lokalen Umgebung weiterzuleiten, anstatt den Wert in die Konfiguration zu schreiben:
[mcp_servers.game_assets]
env_vars = ["FREESOUND_API_KEY"]Sie können auch mit der Codex CLI einen stdio-Server hinzufügen:
codex mcp add game-assets -- node "C:\path\to\game-asset-finder-mcp\dist\index.js"
codex mcp listNach dem Speichern der Konfiguration starten Sie den Client neu und überprüfen Sie den Verbindungsstatus mit /mcp. Die Datei mcp-config.example.toml im Repository kann direkt kopiert und geändert werden.
MCP-Tools
search_game_assets
Quellenübergreifende Suche. Hauptparameter:
{
"query": "像素风地牢角色",
"types": ["sprite", "tileset"],
"sources": ["kenney", "opengameart", "itch"],
"formats": ["png"],
"tags": ["retro"],
"license_policy": "commercial",
"include_unknown_license": false,
"limit": 12,
"refresh": false
}license_policy kann sein:
any: Zeigt alle Ergebnisse an und markiert unbekannte Lizenzen explizit.commercial: Behält nur bekannte kommerziell nutzbare Lizenzen; mitinclude_unknown_licensekönnen unbekannte zurückgegeben werden.cc0: Behält nur CC0 / Public Domain Mark.no-attribution: Behält nur bekannte kommerziell nutzbare und nennungsfreie Einträge.
Für die nächste Seite setzen Sie den zurückgegebenen nextCursor unverändert in cursor ein, während andere Abfrageparameter unverändert bleiben. Die Verwendung eines alten Cursors nach Änderung der Abfragebedingungen gibt CURSOR_QUERY_MISMATCH zurück.
hasMore gibt an, dass im aktuellen Cache-Kandidaten-Snapshot eine weitere Seite vorhanden ist, nicht dass alle historischen Ergebnisse der entfernten Site abgerufen wurden. Wenn tiefere Ergebnisse benötigt werden, priorisieren Sie die Eingrenzung von Schlüsselwörtern, Typ oder Quellenbereich und führen Sie eine erneute Suche durch.
get_game_asset
Liest den vollständigen Datensatz der gerade gefundenen Assets:
{ "asset_id": "kenney:roguelike-characters" }Gibt Quelle, Autor, Lizenz, Vorschau, Dateivarianten, Spiegelquellen, Übereinstimmungsgrund und den direkt in Credits verwendbaren Attributionstext zurück. Remote-Einträge werden nach der Suche gelesen; lokale Einträge können auch direkt aus dem Index gelesen werden.
list_asset_sources
Listet alle Provider, Aktivierungsstatus, unterstützte Asset-Typen, Anmeldeinformationen, Cache-Konfiguration und lokalen Indexstatus auf.
index_local_assets
Scannt GAME_ASSET_LOCAL_ROOTS:
{ "mode": "incremental", "max_files": 20000 }incremental verwendet SHA-256 für Dateien mit unveränderter Größe und Änderungszeit wieder; rebuild berechnet alles neu. Der Index wird in GAME_ASSET_DATA_DIR/local-assets.json geschrieben, ohne die Asset-Dateien zu verändern.
Lokales Asset-Sidecar
Platzieren Sie neben hero.png eine Datei hero.png.asset.json oder hero.asset.json:
{
"title": "Azure Knight",
"description": "32x32 pixel hero with idle and run frames",
"type": "sprite",
"tags": ["player", "knight", "pixel-art"],
"author": "Studio Name",
"author_url": "https://example.com",
"license": "CC-BY-4.0",
"license_url": "https://creativecommons.org/licenses/by/4.0/",
"source_url": "https://example.com/azure-knight"
}Lokale Dateien ohne Sidecar können weiterhin durchsucht werden, aber die Lizenz wird als unbekannt angezeigt.
Umgebungsvariablen
Variable | Standardwert | Beschreibung |
| Leer | Stammverzeichnisse lokaler Assets; unter Windows mit |
|
| Lokales Indexverzeichnis |
|
| Cache-Dauer in Sekunden für Abfragen |
|
| Maximale Anzahl von Cache-Einträgen für Abfragen |
|
| Timeout für einen einzelnen Provider |
|
| Maximale Größe einer einzelnen Remote-Antwort |
|
| Anzahl der Wiederholungen bei 429/vorübergehenden Fehlern |
|
| Standardmäßige Obergrenze für lokale Indexdateien |
| Leer | Kommagetrennte Provider-IDs |
| Leer | Optionaler Freesound API-Schlüssel |
Entwicklung und Validierung
npm run check
npm test
npm run test:unit
npm run test:mcpDie Tests decken chinesische Abfrageerweiterung, Typenerkennung, Lizenzrichtlinien, URL-Normalisierung, Deduplizierung, Cache-Durchbruch-Zusammenführung, teilweisen Provider-Ausfall, Paginierung und Cursor, lokale inkrementelle Indizierung sowie tools/list / tools/call eines echten stdio MCP-Clients ab.
Hinweise zur Verwendung der Ergebnisse
MCP gibt Asset-Erkennung und Lizenzmetadaten zurück, ersetzt jedoch nicht die endgültigen Bedingungen der Quellseite. Unbekannte Lizenzen werden explizit als id: null beibehalten; vor der Veröffentlichung kann mit commercial, cc0 oder no-attribution der Bereich eingegrenzt werden, und die Quellen- und Zuschreibungsinformationen können in get_game_asset gespeichert werden.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityCmaintenanceA local MCP server for Nexus Mods mod discovery and research, backed by the v2 GraphQL API, enabling search of games, mods, collections, and users.1,8581ISC
- Alicense-qualityBmaintenanceMCP server for local-first lexical code search, providing tools for searching code, finding symbols, and reading chunks from indexed repositories.MIT
- Alicense-qualityCmaintenanceAn MCP server that aggregates web search results from multiple engines and optionally renders pages to Markdown, providing a unified search interface.103ISC
- Alicense-qualityBmaintenanceA Python MCP server for searching, downloading, extracting, inspecting, and previewing game assets from multiple public sources.MIT
Related MCP Connectors
MCP server for accessing curated awesome list documentation
An MCP server that gives your AI access to the source code and docs of all public github repos
A MCP server built for developers enabling Git based project management with project and personal…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/sudoriaa/game-asset-finder-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server