Skip to main content
Glama
artifacts_colector

artifacts_colector

by osJedi

artifacts_colector

チームでバージョン管理されたスキルとアーティファクトを共有するためのMCPサーバーの例です。デフォルトでは最新バージョンを提供しますが、タグ(例: stable)または正確なバージョン番号で任意の古いバージョンを固定することもできます。

Python(MCP Python SDK v2)で実装されています。サーバーはstdioを介してクライアント(Claude Code)と通信し、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、...)を名前とする独自のフォルダーです。「最新」バージョンは、既存のフォルダーの中で最も高いsemverとして動的に計算されるため、新しいバージョンが追加されたときに手動で更新する必要はありません。

Related MCP server: SkillShare MCP Server

MCPツール

ツール

説明

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

プロセスは何も出力せず、決して戻りません。MCPホストが最初に話しかけるのをstdinで待機しています。これは想定された動作です。

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

新しいスキル/アーティファクトのバージョンを追加する

  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