artifacts_colector
artifacts_colector
Ein Beispiel-MCP-Server zum Teilen versionierter Skills und Artifacts mit einem Team: Standardmäßig wird die neueste Version ausgeliefert, aber jede ältere kann per Tag (z. B. stable) oder über eine exakte Versionsnummer festgelegt werden.
Implementiert in Python (MCP Python SDK v2). Der Server kommuniziert über stdio mit seinem Client (Claude Code) und wird als Docker-Image verteilt.
Layout
content/
skills/<name>/manifest.json # description + tags (alias -> version)
skills/<name>/versions/<semver>/... # files for one skill version
artifacts/<name>/manifest.json
artifacts/<name>/versions/<semver>/...
server/
models.py # Pydantic response models (LibraryItemSummary, ResolvedItem)
library.py # scans content/, resolves versions/tags, reads files safely
app.py # MCP server: registers tools and serves them over stdio
Dockerfile
requirements.txtJeder Skill/jedes Artifact ist ein Ordner mit einer manifest.json (Beschreibung + optionale Tags) und einem versions/-Unterordner, in dem jede Version ein eigener Ordner ist, der nach ihrem Semver benannt ist (1.0.0, 1.1.0, ...). Die „latest“-Version wird dynamisch als höchstes Semver unter den vorhandenen Ordnern berechnet, sodass beim Hinzufügen einer neuen Version nichts von Hand aktualisiert werden muss.
Related MCP server: SkillShare MCP Server
MCP-Tools
Tool | Beschreibung |
| Alle Skills auflisten: Name, Beschreibung, |
| Inhalt eines Skills per |
| Alle Artifacts auflisten: Name, Beschreibung, |
| Inhalt eines Artifacts per |
Wenn version weggelassen wird, wird die neueste Version zurückgegeben. Wenn ein Tag (z. B. stable) angegeben wird, wird die Version aufgelöst, auf die das Tag in manifest.json verweist. Wenn ein exaktes Semver angegeben wird, wird genau diese Version zurückgegeben.
Lokaler Lauf (venv)
Erfordert Python 3.10+.
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python -m server.appDer Prozess gibt nichts aus und kehrt nie zurück – er wartet auf stdin darauf, dass ein MCP-Host zuerst spricht. Das ist erwartet.
Lokaler Sanity-Check ohne Claude Code über MCP Inspector (erfordert npx):
npx @modelcontextprotocol/inspector --cli python -m server.app --method tools/listAusführen in Docker
Image bauen:
docker build -t artifacts-collector-mcp .Manuell ausführen:
docker run -i --rm artifacts-collector-mcp(wie oben: Es gibt nichts aus und blockiert, während es auf JSON-RPC-Anfragen auf stdin wartet; um die Tools tatsächlich zu testen, richten Sie MCP Inspector auf denselben docker run -i --rm ...-Befehl).
Verbinden von Claude Code
Option 1 – Docker (empfohlen für Team-Verteilung)
docker build -t artifacts-collector-mcp .
claude mcp add artifacts-collector -- docker run -i --rm artifacts-collector-mcpOder über eine .mcp.json-Datei im Stammverzeichnis des Projekts, in dem Claude Code ausgeführt wird:
{
"mcpServers": {
"artifacts-collector": {
"command": "docker",
"args": ["run", "-i", "--rm", "artifacts-collector-mcp"]
}
}
}Das Image kann in eine Team-Registry veröffentlicht (z. B. ghcr.io/<org>/artifacts-collector-mcp) und über dieselbe .mcp.json geteilt werden, sodass Teammitglieder nur docker pull benötigen, statt lokal zu bauen.
Option 2 – lokales venv (zum Entwickeln des Servers selbst)
claude mcp add artifacts-collector -- /absolute/path/to/artifacts_colector/.venv/bin/python -m server.appHinzufügen einer neuen Skill-/Artifact-Version
Kopieren Sie die neueste Version in einen neuen
versions/<new-semver>/-Ordner und nehmen Sie Ihre Änderungen vor.Optional eine stabile Version mit einem Tag in
manifest.jsonfestlegen ("tags": { "stable": "1.0.0" }).Sonst muss nichts registriert werden –
latestwird automatisch neu berechnet.Bei Verteilung über Docker das Image neu bauen (
docker build ...).
Sicherheit
Ein name und eine version/ein Tag von einem MCP-Client werden nie direkt in einen Dateisystempfad eingesetzt: Sie werden nur akzeptiert, wenn sie mit einem echten Ordnernamen übereinstimmen, der durch Scannen von content/ gefunden wurde. Das schließt Path Traversal über Werte wie ../../etc aus. Der Container läuft außerdem als Nicht-Root-Benutzer (USER mcp im Dockerfile).
This server cannot be deployed
Maintenance
Related MCP Connectors
Marketplace and infrastructure for MCP servers and skills: deploy, host, monetize, analytics.
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for skill documentation, generated by doc2mcp.
Skills, agents and memory in the cloud, plus a gateway to your other MCP servers.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceAn MCP server for searching, security scanning, installing, and managing skills from the SkillsMP marketplace, designed for Claude Code and other MCP-compatible clients.10 npm4MIT
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to interact with the SkillShare registry, including searching, reading, creating, and managing resources like skills, MCP configurations, and notes.MIT
- AlicenseNot gradedqualityBmaintenanceAn MCP server that makes Agent Skills available to any MCP-compatible agent through a declarative, package.json-based configuration, enabling team-shareable skill management and execution.5MIT
- AlicenseNot gradedqualityDmaintenanceSelf-hosted MCP server for publishing, sharing, and reviewing AI agent artifacts with version history and pinned comments.MIT