Snapstate について
提供されたREADMEは、タグラインにあるSnapstateではなくMCP Registryについて説明しています。MCPクライアント向けのサーバーディレクトリに加え、APIと公開用CLIを備えています。
主な機能
- 01クライアント向けMCPサーバーディレクトリ
- 02MCPサーバーの公開
- 03GitHub OAuthまたはOIDCでの認証
- 04DNSまたはHTTPによるドメイン所有権の確認
活用シーン
- 01MCPサーバーディレクトリの閲覧
- 02MCPサーバーの公開
- 03GitHub Actionsからの公開
- 04ドメイン名前空間の所有権確認
MCP 対応
MCP RegistryはMCPクライアントにMCPサーバー一覧を提供し、サーバーの公開にも対応します。提供資料には、Snapstateとの関係は記載されていません。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP レジストリ
MCP レジストリは、MCP サーバーのアプリストアのように、MCP クライアントに MCP サーバーの一覧を提供します。
📤 MCP サーバーを公開する | ⚡️ ライブ API ドキュメント | 👀 エコシステムのビジョン | 📖 ドキュメント全文
開発状況
2025-10-24 更新:レジストリ API は API 凍結(v0.1) に入りました 🎉。今後1か月以上にわたり、API は破壊的変更なしで安定した状態を保ち、インテグレーターが安心してサポートを実装できるようになります。この凍結は v0.1 に適用され、v0 の開発は継続します。この期間を利用して、実際の統合環境で API を検証し、一般提供に向けた v1 の策定に役立つフィードバックを集めます。貢献とご辛抱に感謝します。皆さんの参加が、ここまで進むうえで大きな力となりました!
2025-09-08 更新:レジストリのプレビュー版が公開されました 🎉(告知ブログ記事)。システムはより安定しましたが、これはまだプレビューリリースであり、破壊的変更やデータのリセットが発生する可能性があります。その後、一般提供(GA)リリースを予定しています。GitHub ディスカッションまたは #registry-dev Discord(参加方法はこちら)で、ぜひフィードバックをお寄せください。
現在の主なメンテナー:
- Adam Jones(Anthropic)@domdomegg
- Tadas Antanavicius(PulseMCP)@tadasant
- Toby Padilla(GitHub)@toby
- Radoslav (Rado) Dimitrov(Stacklok)@rdimitrov
貢献
複数のチャネルを通じて共同作業を行っています。詳しくはmodelcontextprotocol.io/community/communicationをご覧ください。
多くの場合(常にではありませんが)、アイデアは次の流れで進みます。
- Discord - リアルタイムのコミュニティディスカッション
- ディスカッション - 製品や技術要件の提案と議論
- イシュー - 範囲が明確な技術作業の追跡
- プルリクエスト - イシューに向けた作業への貢献
クイックスタート:
前提条件
- Docker
- Go 1.24.x
- ko - Go 用コンテナイメージビルダー(インストール手順)
- golangci-lint v2.4.0
サーバーの実行
# Start full development environment
make dev-compose
これにより、PostgreSQL を使用して localhost:8080 でレジストリが起動します。データベースには一時ストレージが使用され、コンテナを再起動するたびにリセットされるため、開発やテストに適したクリーンな状態を保てます。
注: レジストリでは、コンテナイメージのビルドに ko を使用します。make dev-compose コマンドは、サービスの起動前に ko でレジストリイメージを自動的にビルドし、ローカルの Docker デーモンに読み込みます。
デフォルトでは、本番 API からサーバーの一部をフィルタリングしてシードします(起動を速くするためです)。これにより、ローカル環境が本番環境の動作を再現し、すべてのシードデータが検証に合格することが保証されます。オフラインでの開発では、検証を行わずにファイルからシードできます。MCP_REGISTRY_SEED_FROM=data/seed.json MCP_REGISTRY_ENABLE_REGISTRY_VALIDATION=false make dev-compose
セットアップは、docker-compose.yml の環境変数で設定できます。参考として .env.example をご覧ください。
代替方法:ビルド済み Docker イメージの実行
ビルド済み Docker イメージは、GitHub Container Registry に自動的に公開されています。
# Run latest stable release
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:latest
# Run latest from main branch (continuous deployment)
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main
# Run specific release version
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:v1.0.0
# Run development build from main branch
docker run -p 8080:8080 ghcr.io/modelcontextprotocol/registry:main-20250906-abc123d
利用可能なタグ:
- リリース:
latest、v1.0.0、v1.1.0など - 継続ビルド:
main(最新の main ブランチのビルド) - 開発用:
main-<date>-<sha>(特定のコミットのビルド)
サーバーの公開
サーバーを公開するためのシンプルな CLI を用意しています。次のように使用できます。
# Build the latest CLI
make publisher
# Use it!
./bin/mcp-publisher --help
詳しくは、パブリッシャーガイドをご覧ください。
その他のコマンド
# Run lint, unit tests and integration tests
make check
開発に役立つコマンドもいくつかあります。詳しくは make help を実行するか、Makefile をご覧ください。
アーキテクチャ
プロジェクト構成
├── cmd/ # Application entry points
│ └── publisher/ # Server publishing tool
├── data/ # Seed data
├── deploy/ # Deployment configuration (Pulumi)
├── docs/ # Documentation
├── internal/ # Private application code
│ ├── api/ # HTTP handlers and routing
│ ├── auth/ # Authentication (GitHub OAuth, JWT, namespace blocking)
│ ├── config/ # Configuration management
│ ├── database/ # Data persistence (PostgreSQL)
│ ├── service/ # Business logic
│ ├── telemetry/ # Metrics and monitoring
│ └── validators/ # Input validation
├── pkg/ # Public packages
│ ├── api/ # API types and structures
│ │ └── v0/ # Version 0 API types
│ └── model/ # Data models for server.json
├── scripts/ # Development and testing scripts
├── tests/ # Integration tests
└── tools/ # CLI tools and utilities
└── validate-*.sh # Schema validation tools
認証
公開には複数の認証方法を利用できます。
- GitHub OAuth - GitHub にログインして公開する場合
- GitHub OIDC - GitHub Actions から公開する場合
- DNS 検証 - ドメインとそのサブドメインの所有権を証明する場合
- HTTP 検証 - ドメインの所有権を証明する場合
レジストリは公開時に名前空間の所有権を検証します。たとえば、次のように公開する場合:
io.github.domdomegg/my-cool-mcpを公開するには、GitHub でdomdomeggとしてログインするか、domdomegg のリポジトリで GitHub Action を実行する必要がありますme.adamjones/my-cool-mcpを公開するには、DNS または HTTP チャレンジでadamjones.meの所有権を証明する必要があります
コミュニティプロジェクト
コミュニティプロジェクトを確認して、コミュニティが作成した注目すべきレジストリ関連の取り組みをご覧ください。
その他のドキュメント
ここで質問への回答が見つからない場合は、詳しくはドキュメントをご覧ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。