artifacts_colector
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@artifacts_colectorGet the stable version of the onboarding skill"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
artifacts_colector
An example MCP server for sharing versioned skills and artifacts with a
team: by default it serves the latest version, but any older one can be pinned
by tag (e.g. stable) or by an exact version number.
Implemented in Python (MCP Python SDK v2). The server talks to its client (Claude Code) over stdio and is distributed as a Docker image.
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.txtEach skill/artifact is a folder with a manifest.json (description + optional
tags) and a versions/ subfolder, where every version is its own folder named
after its semver (1.0.0, 1.1.0, ...). The "latest" version is computed
dynamically as the highest semver among the existing folders, so there is
nothing to update by hand when a new version is added.
Related MCP server: SkillShare MCP Server
MCP tools
Tool | Description |
| List every skill: name, description, |
| Fetch a skill's content by |
| List every artifact: name, description, |
| Fetch an artifact's content by |
If version is omitted, the latest version is returned. If a tag (e.g.
stable) is given, it resolves to whatever version that tag points to in
manifest.json. If an exact semver is given, that exact version is returned.
Local run (venv)
Requires Python 3.10+.
python3 -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python -m server.appThe process prints nothing and never returns — it's waiting on stdin for an MCP host to speak first. That is expected.
Local sanity check without Claude Code, via MCP Inspector (requires npx):
npx @modelcontextprotocol/inspector --cli python -m server.app --method tools/listRunning in Docker
Build the image:
docker build -t artifacts-collector-mcp .Run it manually:
docker run -i --rm artifacts-collector-mcp(same as above: it prints nothing and blocks, waiting for JSON-RPC requests on
stdin; to actually exercise the tools, point MCP Inspector at the same
docker run -i --rm ... command).
Connecting from Claude Code
Option 1 — Docker (recommended for team distribution)
docker build -t artifacts-collector-mcp .
claude mcp add artifacts-collector -- docker run -i --rm artifacts-collector-mcpOr via a .mcp.json file at the root of the project where Claude Code runs:
{
"mcpServers": {
"artifacts-collector": {
"command": "docker",
"args": ["run", "-i", "--rm", "artifacts-collector-mcp"]
}
}
}The image can be published to a team registry (e.g.
ghcr.io/<org>/artifacts-collector-mcp) and shared via that same .mcp.json,
so teammates only need docker pull instead of a local build.
Option 2 — local venv (for developing the server itself)
claude mcp add artifacts-collector -- /absolute/path/to/artifacts_colector/.venv/bin/python -m server.appAdding a new skill/artifact version
Copy the latest version into a new
versions/<new-semver>/folder and make your changes.Optionally pin a stable version with a tag in
manifest.json("tags": { "stable": "1.0.0" }).Nothing else needs registering —
latestis recomputed automatically.If distributing via Docker, rebuild the image (
docker build ...).
Security
A name and version/tag coming from an MCP client are never substituted
directly into a filesystem path: they're only accepted if they match a real
folder name found by scanning content/. This rules out path traversal via
values like ../../etc. The container also runs as a non-root user
(USER mcp in the Dockerfile).
This server cannot be deployed
Maintenance
Related MCP Connectors
A MCP server built for developers enabling Git based project management with project and personal…
MCP server for skill documentation, generated by doc2mcp.
MCP Server for JFrog, providing tools for development and artifact management.
- UnifAPIOAuthcom.unifapi
Hosted MCP server for live public-data APIs and Skills for AI agents.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server for searching, security scanning, installing, and managing skills from the SkillsMP marketplace, designed for Claude Code and other MCP-compatible clients.4 npm4MIT
- AlicenseNot gradedqualityBmaintenanceAn 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.4MIT
- AlicenseNot gradedqualityCmaintenanceSelf-hosted MCP server for publishing, sharing, and reviewing AI agent artifacts with version history and pinned comments.MIT