Skip to main content
Glama
artifacts_colector

artifacts_colector

by osJedi

artifacts_colector

一个用于与团队共享带版本管理的 skills 和 artifacts 的示例 MCP 服务器:默认提供最新版本,但任何旧版本都可以通过标签(例如 stable)或精确版本号进行固定。

使用 Python(MCP Python SDK v2)实现。服务器通过 stdio 与客户端(Claude Code)通信,并以 Docker 镜像形式分发。

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.txt

每个 skill/artifact 都是一个包含 manifest.json(描述 + 可选标签)和 versions/ 子文件夹的文件夹,其中每个版本都是自己的文件夹,以 semver 命名(1.0.0、1.1.0、...)。"latest" 版本会根据现有文件夹中的最高 semver 动态计算,因此添加新版本时无需手动更新任何内容。

Related MCP server: SkillShare MCP Server

MCP tools

Tool

Description

list_skills

列出所有 skill:名称、描述、latest、可用版本/标签

get_skill

按 name 获取 skill 的内容(+ 可选 version:标签或 semver)

list_artifacts

列出所有 artifact:名称、描述、latest、版本/标签

get_artifact

按 name 获取 artifact 的内容(+ 可选 version:标签或 semver)

如果省略 version,则返回最新版本。如果提供了标签(例如 stable),则解析为该标签在 manifest.json 中指向的版本。如果提供了精确的 semver,则返回该精确版本。

本地运行(venv)

需要 Python 3.10+。

python3 -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate
pip install -r requirements.txt
python -m server.app

该进程不打印任何内容且永不返回——它正在 stdin 上等待 MCP 主机先发起通信。这是预期行为。

无需 Claude Code,通过 MCP Inspector 进行本地健全性检查(需要 npx):

npx @modelcontextprotocol/inspector --cli python -m server.app --method tools/list

在 Docker 中运行

构建镜像:

docker build -t artifacts-collector-mcp .

手动运行:

docker run -i --rm artifacts-collector-mcp

(与上面相同:它不打印任何内容并阻塞,等待 stdin 上的 JSON-RPC 请求;要实际使用这些工具,请将 MCP Inspector 指向相同的 docker run -i --rm ... 命令)。

从 Claude Code 连接

选项 1 — Docker(推荐用于团队分发)

docker build -t artifacts-collector-mcp .
claude mcp add artifacts-collector -- docker run -i --rm artifacts-collector-mcp

或者通过 Claude Code 运行所在项目根目录下的 .mcp.json 文件:

{
  "mcpServers": {
    "artifacts-collector": {
      "command": "docker",
      "args": ["run", "-i", "--rm", "artifacts-collector-mcp"]
    }
  }
}

镜像可以发布到团队注册表(例如 ghcr.io/<org>/artifacts-collector-mcp),并通过同一个 .mcp.json 共享,这样团队成员只需 docker pull 而无需本地构建。

选项 2 — 本地 venv(用于开发服务器本身)

claude mcp add artifacts-collector -- /absolute/path/to/artifacts_colector/.venv/bin/python -m server.app

添加新的 skill/artifact 版本

  1. 将最新版本复制到新的 versions/<new-semver>/ 文件夹中并进行修改。

  2. 可选地,在 manifest.json 中使用标签固定稳定版本("tags": { "stable": "1.0.0" })。

  3. 无需注册其他任何内容——latest 会自动重新计算。

  4. 如果通过 Docker 分发,请重新构建镜像(docker build ...)。

安全性

来自 MCP 客户端的 name 和 version/标签永远不会被直接替换到文件系统路径中:只有当它们与通过扫描 content/ 找到的真实文件夹名称匹配时才会被接受。这排除了通过 ../../etc 之类的值进行路径遍历的可能性。容器还以非 root 用户身份运行(Dockerfile 中的 USER mcp)。

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Self-hosted MCP server for publishing, sharing, and reviewing AI agent artifacts with version history and pinned comments.
    MIT