Fossick について
Fossickは、GitHub、PyPI、npmのコードを探索し、リモートリポジトリを調べるAIエージェント向けの読み取り専用MCPサーバーです。リポジトリをクローンせずに、パッケージの発見から定義や実コードの確認まで行えます。
主な機能
- 01GitHubリポジトリとパッケージの検索
- 02リモートリポジトリの構成やファイルの閲覧
- 03AST検索によるシンボル定義の特定
- 04GitHub公開コードの使用例検索
- 05タグと最近のリリースの確認
活用シーン
- 01プロジェクトに合う依存パッケージの発見
- 02パッケージのメンテナンス状況の確認
- 03APIの実際の使用例の検索
- 04リポジトリをクローンせずにファイルを調査
MCP 対応
MCPを通じて、リポジトリやパッケージの検索、リモートリポジトリの閲覧、コード検索を行う7つの読み取り専用ツールを提供します。stdioトランスポートで対応するMCPクライアントに接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
AI エージェントから GitHub 全体を調査できます。
ライブラリを見つけ、優れたプロジェクトを発掘し、コードパターンを検索して、実際の本番コードを読み取れます。200M 以上のリポジトリ、PyPI、npm が対象です。
目次
Fossick とは
fossick /ˈfɒsɪk/ 動詞(オーストラリア/ニュージーランド)— 宝石を探したり、あちこち掘り返したりすること。特に、小規模な採掘で、川床や古いズリをふるいにかけ、大規模な採掘者が見落としたものを探すこと。
このツールが行うのは、まさにこれです。ただし、対象はコードです。
Fossick は、AI エージェントに読み取り専用のツールを7つ提供し、GitHub、PyPI、npm 全体をくまなく調査して、発見までの一連の流れを最初から最後までカバーします。
- 検索して発見する。 複数のクエリによる関連度ランキングで2億以上のリポジトリを調べ、大きなツールに埋もれがちな小規模ながら優れたライブラリを見つけ、PyPI と npm のパッケージを検索します。
- クローンせずに、あらゆるリポジトリを詳しく調べる。 深さや glob フィルターを指定してリモートリポジトリのツリーを閲覧し、任意のブランチ、タグ、コミットにあるファイルを読み、クラス、関数、型の定義へ移動できます。すべてリモートの GitHub 上で行うため、ローカルにチェックアウトする必要はありません。
- GitHub 全体からコードパターンを検索する。 すべての公開ファイルを対象に、全文検索、正規表現検索、修飾子に対応した検索を行います。ドキュメント上の例ではなく、本番環境で API が 実際に どのように使われているかを見つけます。
エージェントが世界最大のコードコーパスにアクセスできると役立つ場面なら、いつでも活用できます。
- 適切なライブラリを選ぶ。 どんなタスクにも、小規模で用途が明確、かつ活発にメンテナンスされている選択肢を見つけます。最も人気のあるものだけに限定されません。
- 隠れた逸品を見つける。 5万スターの定番よりも 関連度 の高い、500スターのライブラリを見つけ出します。
- 見つけたリポジトリを詳しく調べる。
git cloneせずに構成をたどり、README を読み、コア API の定義場所を見つけます。 - 実際のコードから利用パターンを見つける。 本番環境で API がどのように呼び出されているかを検索し、一致したファイルを前後の文脈とともに読みます。
- アイデアを得る。 類似プロジェクトの構成や、使われているパターン、選択されたトレードオフを確認できます。
- 最新情報を把握する。 モデルの学習データのカットオフ以降に公開された、トレンドのもの、リリースされたばかりのもの、エコシステムの新しいものを見つけます。
コードの歴史調査(git blame、PR の履歴、バージョン間の差分)は行いません。その用途には git と gh をお使いください。
例
Fossick を接続すると、エージェントに次のようなことを尋ねられます。
ライブラリとパッケージを見つける
- 「ratatui より新しい、活発にメンテナンスされている小規模な Rust TUI ライブラリを探してください。」
- 「最近は LangChain の代わりに何が使われていますか?」
- 「過去90日間にリリースされた、トレンドの Python Web フレームワークを見せてください。」
- 「実行時のバリデーションに使える、Pydantic より軽量な代替品はありますか?」
特定のリポジトリを詳しく調べる
- 「
astral-sh/uvの構成を見てください。crates/には何がありますか?」 - 「
pydantic/pydanticのメインの__init__.pyを読んでください。」 - 「
anthropics/anthropic-sdk-pythonでは、Streamクラスはどこで定義されていますか?」 - 「
modelcontextprotocol/python-sdkの最新リリースは何ですか?また、いつリリースされましたか?」
実際に使われているコードパターンを見つける
- 「本番環境の FastAPI アプリでは、
structlogとasyncioを使った構造化ログを実際にどのように設定していますか?」 - 「タイムアウトによるキャンセルとともに
tokio::select!を使っている実例を見せてください。」 - 「
uvで複数ステージの Python イメージをビルドする Dockerfile を探してください。」 - 「Go から OpenAI API のストリーミングエンドポイントをどのように呼び出していますか?」
導入前に依存関係を評価する
- 「
requestsライブラリは現在もメンテナンスされていますか?」 - 「
httpxとaiohttpの新しさを比較してください。最終リリース日と最近の活動を教えてください。」 - 「実際に
msgspecを使っているのは誰ですか?本番環境のコードベースでの実例を見せてください。」 - 「
polarsPyPI パッケージの GitHub リポジトリを見つけて、最終リリースを確認してください。」
インストール
前提条件: uv —
curl -LsSf https://astral.sh/uv/install.sh | shでインストールしてください。 その後、uvxが必要に応じて Fossick をダウンロードして実行します。クローンは不要です。
Claude Code
インストール範囲は3種類です。Fossick をグローバルに、チームと共有して、または1つのプロジェクトで自分だけが使えるようにするなど、希望に合った範囲を選んでください。範囲フラグによって、設定の書き込み先が決まります(Claude Code MCP scopes)。
グローバル(個人利用におすすめ)
お使いのマシンのすべてのプロジェクトで利用できます。~/.claude.json に保存され、ユーザーアカウント専用です。
claude mcp add fossick --scope user uvx fossick-mcp
チームで共有(git にコミット)
プロジェクトルートの .mcp.json に保存され、バージョン管理にチェックインされます。リポジトリをクローンした人は誰でも、同じ MCP サーバーを利用できます。チーム全体で Fossick を使う場合はこちらを選んでください。
claude mcp add fossick --scope project uvx fossick-mcp
このプロジェクトのみ(デフォルト)
デフォルトではローカルスコープが適用されます。現在のプロジェクトでのみ有効になり、利用できるのはあなただけです。このプロジェクトのパスに対応する ~/.claude.json 内に保存されるため、コミットされず、共同作業者とも共有されません。
claude mcp add fossick uvx fossick-mcp
手動でインストール
CLI を使わない場合は、設定を自分で記述してください。スコープにかかわらず JSON の形式は同じで、変更されるのはファイルのみです。
- ユーザー/ローカルスコープの場合は
~/.claude.json - プロジェクトスコープの場合は
.mcp.json(プロジェクトルート)
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}
その他のクライアント
Cursor
または、~/.cursor/mcp.json または .cursor/mcp.json に手動で追加します。
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}
VS Code
または、CLI からインストールします。
code --add-mcp '{"name":"fossick","command":"uvx","args":["fossick-mcp"]}'
Claude Desktop
~/Library/Application Support/Claude/claude_desktop_config.json(macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)を編集します。
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}
保存した後、Claude Desktop を再起動します。
Windsurf
~/.codeium/windsurf/mcp_config.json を編集します。
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}
Cline
Cline 拡張機能の MCP 設定パネルから cline_mcp_settings.json を編集します。
{
"mcpServers": {
"fossick": {
"type": "stdio",
"command": "uvx",
"args": ["fossick-mcp"]
}
}
}
Codex
codex mcp add fossick -- uvx fossick-mcp
または、~/.codex/config.toml を編集します。
[mcp_servers.fossick]
command = "uvx"
args = ["fossick-mcp"]
ソースから(開発用)
git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv sync
次に、MCP の設定でローカルのクローンを指定します。
{
"mcpServers": {
"fossick": {
"command": "uv",
"args": ["run", "--directory", "/path/to/fossick-mcp", "fossick-mcp"]
}
}
}
ツール
検出ワークフローでの役割に応じて整理された、読み取り専用のツールが 7 つあります。
候補を見つける
| ツール | 機能 |
|---|---|
search_repos | トピック、スター数、言語、更新時期、トレンドを基にリポジトリを見つけます。検索精度を高めるには、1 回の呼び出しで複数のクエリ表現を渡してください。 |
search_packages | PyPI または npm でパッケージ名を直接検索します。バージョン、説明、リンク、GitHub リポジトリの URL を返します。 |
候補を評価する
| ツール | 機能 |
|---|---|
repo_tree | 深さや glob フィルターを指定して、リポジトリのファイル構成を確認します。 |
get_file | 任意のブランチ、タグ、コミットにあるファイルを読み取ります。 |
find_symbol | 実際の AST クエリによる定義ジャンプ機能です。部分文字列の一致ではなく、クラス、関数、型が実際に宣言されている場所を見つけます。 |
list_tags | タグと最近のリリースを確認します。「現在もメンテナンスされているか」を最もすばやく確認できます。 |
GitHub 全体からコードを検索する
| ツール | 機能 |
|---|---|
search_code | GitHub 上のすべての公開ファイルを全文検索します。repo:、language:、path:、ブール演算子、正規表現をサポートします。実際の使用パターン、設定例など、世界最大のコードコーパスからあらゆる情報を見つけられます。 |
すべてのツールは読み取り専用、冪等で、自動承認しても安全です。各レスポンスの末尾にはヒントを使った次のステップが示されるため、エージェントは次に何をすべきか把握できます。
Fossick を選ぶ理由
- 発見ワークフロー向けに構築されています。 ツールは自然な流れに沿っています。候補を見つける → 詳しく調べる → API を読む → 他の人の使い方を確認する、という流れです。次のステップを示すヒントが連鎖するため、エージェントは一連の作業を通して迷わず進めます。
- クローンせずに、公開リポジトリを詳しく調べられます。 深さと glob フィルターを指定してリモートリポジトリのツリーを閲覧し、任意のブランチ、タグ、コミットにあるファイルを読み取れます。また、GitHub 上で AST ベースのシンボル検索を実行し、クラス、関数、型の定義へ移動できます。
- 複数クエリ検索とスマートなランキング。
search_reposは1回の呼び出しで複数の検索文を受け付け、単純な人気度よりも文字列の一致を優先する複合関連度ランキングを適用します。5万スターの有力リポジトリを上回る、500スターの逸品も見つけられます。 - トークン使用量を抑える設計です。 焦点を絞った7つのツール(30以上ではありません)、JSON ダンプではなく整形済み Markdown の出力、TTL キャッシュ、エージェントの推論ターンを減らすヒント連鎖、N 件のリクエストを1つにまとめる複数クエリ検索を備えています。すべてのツールの説明と応答は、コンテキストの予算を実際の作業に使えるよう、必要な分だけに抑えられています。
- レート制限に対応しています。 GitHub の Search API と Core API のレート制限枠を別々に追跡し、上限に達すると待機して、指数バックオフで再試行します。
ghユーザーなら設定不要です。 GitHub CLI で認証済みであれば、設定は必要ありません。- 他のツールとも連携しやすい設計です。 読み取り専用で、冪等性があり、自動承認しても安全です。自分のリポジトリに対する操作(Issue、PR、Actions)も必要な場合は、Fossick を github-mcp-server と組み合わせてください。
FAQ
GitHub トークンは必要ですか?
はい。トークンがないと、認証なしでの GitHub のリクエスト上限である 1 時間あたり 60 回に、ほぼすぐ達してしまいます。最も簡単なのは、GitHub CLI をインストールして、gh auth login を一度実行する方法です。Fossick がトークンを自動的に取得します。MCP の設定に何かを渡す必要はありません。
pip install ではなく uvx を使うのはなぜですか?
uvx は Fossick を一時的な隔離環境で実行するため、システム全体の Python 環境を汚しません。初回使用時にダウンロードし、次回以降の実行に備えてキャッシュするため、簡単に最新の状態を保てます。また、仮想環境を管理したり、Python のバージョンの競合を心配したりする必要もありません。pip を使いたい場合は、pip install fossick-mcp も利用できます。その場合は、インストールした fossick-mcp バイナリを MCP クライアントに指定してください。
Fossick は GitHub API の使用量に加算されますか?
はい。検索、ファイルの取得、タグ一覧の取得はすべて、トークンのレート制限に加算されます。Fossick はリクエストを 2 つの枠(Search API(30 回/分)と Core API(5,000 回/時間))に振り分け、いずれかを使い切ると自動的に待機します。ほとんどの探索セッションで、上限に達することはありません。
MCP クライアント X でも動作しますか?
クライアントが標準の MCP stdio トランスポートに対応していれば、動作します。標準の uvx fossick-mcp 設定は、Claude Code、Claude Desktop、Cursor、Windsurf、VS Code、Cline、Codex など、ほとんどのクライアントで利用できます。クライアントごとの設定例は、インストールセクションを参照してください。
Fossick は非公開リポジトリも検索しますか?
GitHub トークンでアクセスできるリポジトリのみ検索します。制約となるのはトークンの権限だけです。Fossick 独自の ACL レイヤーはありません。トークンで非公開リポジトリを読み取れる場合は Fossick で検索できますが、読み取れない場合は検索できません。
git blame、PR の履歴、バージョン差分に対応していないのはなぜですか?
意図的なスコープの判断です。コードの変遷を調べる(誰が、何を、なぜ、いつ変更したか)ことは、性質の異なる問題であり、git と gh CLI が適しています。Fossick は探索ワークフロー(調査ではなく、発見と評価)に重点を置いています。
データはどの程度新しいですか?
リクエストのたびに GitHub から最新のデータを取得します。同じリクエストが繰り返された際に API へ過剰な負荷をかけないよう、Fossick は結果を短時間キャッシュします。特定のコミット SHA に固定されたコンテンツについては、TTL が長くなります。TTL を過ぎると、最新のデータを取得します。
設定
認証
Fossick は GitHub トークンを自動的に取得します。
GH_TOKEN、GITHUB_TOKEN、またはGITHUB_PERSONAL_ACCESS_TOKEN環境変数- GitHub CLI の
gh auth token— すでにログイン済みなら設定は不要です
トークンを明示的に渡すには、次のようにします。
{
"mcpServers": {
"fossick": {
"command": "uvx",
"args": ["fossick-mcp"],
"env": { "GITHUB_TOKEN": "ghp_your_token_here" }
}
}
}
トークンに必要なのは、公開リポジトリの読み取りアクセスのみです(スコープを選択しなくても問題ありません)。
レート制限
Fossick は GitHub API の両方の枠を追跡し、いずれかを使い切ると自動的に待機します。
| 枠 | 上限 | ツール |
|---|---|---|
| Search API | 30 回/分 | search_repos、search_code、find_symbol |
| Core API | 5,000 回/時間 | get_file、repo_tree、list_tags |
| External | GitHub の制限なし | search_packages(PyPI/npm に直接アクセス) |
レート制限エラーや一時的なエラーが発生した場合、リトライでは指数バックオフを使用します。重複する API 呼び出しを避けるため、結果を短時間キャッシュします。特定のコミット SHA に固定されたコンテンツについては、TTL が長くなります。
開発
前提条件
- Python 3.11+
- uv
セットアップ
git clone https://github.com/Lipdog/fossick-mcp.git
cd fossick-mcp
uv sync
実行
標準入出力で MCP サーバーを起動します(手動テストまたはローカルの MCP クライアント設定用)。
uv run fossick-mcp
テスト
ユニットテストと登録テストです。ネットワーク接続は不要で、数秒で完了します。
uv run pytest
実際の GitHub を対象にしたライブ統合テストです。固定された modelcontextprotocol/[email protected] を使用します。
uv run pytest -m live
ビルド
uv build
dist/fossick_mcp-<version>.tar.gz と対応するホイールを生成します。
アーキテクチャ
アーキテクチャの全体像、主要なパターン、新しいツールを追加する手順については、CLAUDE.md をご覧ください。
スター履歴
ライセンス
MIT — fossick をお楽しみください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。