Skip to main content
Glama
osJedi

artifacts_colector

by osJedi

artifacts_colector

Пример MCP-сервера для предоставления команде версионированных навыков и артефактов: по умолчанию он отдаёт последнюю версию, но любую более старую можно закрепить тегом (например, stable) или точным номером версии.

Реализован на Python (MCP Python SDK v2). Сервер общается со своим клиентом (Claude Code) через stdio и распространяется в виде Docker-образа.

Структура

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

Каждый навык/артефакт — это папка с manifest.json (описание + необязательные теги) и вложенной папкой versions/, где каждая версия находится в собственной папке, названной по её semver (1.0.0, 1.1.0, ...). Версия «latest» вычисляется динамически как наибольший semver среди существующих папок, так что при добавлении новой версии ничего не нужно обновлять вручную.

Related MCP server: SkillShare MCP Server

MCP-инструменты

Tool

Описание

list_skills

Перечисляет все навыки: имя, описание, latest, доступные версии/теги

get_skill

Получает содержимое навыка по name (+ необязательный version: тег или semver)

list_artifacts

Перечисляет все артефакты: имя, описание, latest, версии/теги

get_artifact

Получает содержимое артефакта по name (+ необязательный 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

(как и выше: он ничего не выводит и блокируется, ожидая JSON-RPC-запросы на stdin; чтобы реально опробовать инструменты, направьте 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

Или через файл .mcp.json в корне проекта, где запускается Claude Code:

{
  "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

Добавление новой версии навыка/артефакта

  1. Скопируйте последнюю версию в новую папку versions/<new-semver>/ и внесите свои изменения.

  2. При желании закрепите стабильную версию тегом в manifest.json ("tags": { "stable": "1.0.0" }).

  3. Больше ничего регистрировать не нужно — latest пересчитывается автоматически.

  4. Если вы распространяете через Docker, пересоберите образ (docker build ...).

Безопасность

name и version/тег, приходящие от MCP-клиента, никогда не подставляются напрямую в путь файловой системы: они принимаются только в том случае, если совпадают с реальным именем папки, найденной при сканировании content/. Это исключает обход пути (path traversal) с помощью значений вроде ../../etc. Контейнер также работает от непривилегированного пользователя (USER mcp в Dockerfile).

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

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/osJedi/artifacts_colector'

If you have feedback or need assistance with the MCP directory API, please join our Discord server