Skip to main content
Glama
Isuprman

toolscope

by Isuprman

ToolScope

Mac上のすべてのツールをスキャンして、人間とAIエージェントの両方が検索できるようにします。

ToolScopeは、マシンにインストールされているGUIアプリケーションとCLIツール(Homebrew、npm、pipx、uv、/Applications、$PATH経由)を、ローカルのSQLiteデータベースにまとめます。このデータベースは、機能で検索してクリーンアップの棚卸しに使うことも、MCP経由でAIエージェントから参照することもできます。読み取り専用で、一切アンインストールしません。

なぜ

  • 何をインストールしたかを忘れてしまう。 何年にもわたる brew install、npm install -g、pipx install によって何百件ものエントリが積み重なります。brew list は使用の手がかりがまったくないテキストの壁にすぎません。

  • 思い出せるのはツール名でなくタスク。 「動画をトランスコードしたい」と思っても、それがffmpegだと出てこない。ToolScopeは名前だけでなく、説明文とAI生成の機能メモまで検索します。

  • AIエージェントにはマシンの状況が見えない。 コーディングエージェントがタスクを引き受けても「このMacは何ができるか」という問いに構造化された答えを持ちません。ToolScopeはそれをMCPツール呼び出し1回で返します。

Related MCP server: WEATHGARDS

機能

  • 6つのソースを一度にスキャンして ~/.toolscope/toolscope.db のSQLiteに保存。再スキャンはアップデート処理で既存の行を更新し、first_seen は保持される

  • 名前・手書きの説明・AI生成の説明にまたがった能力検索

  • 冪等なzsh preexecフックによる使用状況の追跡(usage.count、usage.last_used)。実際に使われていないものが分かります

  • ローカルWebダッシュボード(React + TypeScript、UIフレームワークなし)。6つのビュー(概要カード、検索可能なツール一覧、未使用表示、使用統計(トップ20+30日トレンド)、初回ガイド、LLM設定)に加えて ⌘K コマンドパレットと詳細ドロワー

  • stdio MCPサーバー。エージェント連携用の3つのツールを搭載

  • マシン移行用のBrewfileエクスポート

  • doctor による環境自己チェック

  • OpenAI互換エンドポイントを使った、中国語の1行の機能説明(オプション)。プロバイダー/モデル/キーはダッシュボードのSettingsタブか toolscope config で設定(0600でローカル保存、環境変数不要)

  • ダッシュボードを包む薄型Electronシェル(オプション)

クイックスタート

macOSとPython 3.12+が必要です。

pipx install toolscope
toolscope scan                  # ~13s; prints per-source counts; missing sources count 0
toolscope list                  # everything recorded so far
toolscope search video --json   # capability search; parseable JSON envelope
toolscope serve                 # dashboard at http://127.0.0.1:8421

CLIリファレンス

一覧系コマンドはデフォルトで人間が読みやすいテキストを出力し、--json を付けると {"items": [...], "total": N} というJSONエンベロープを出力します。

コマンド

動作

toolscope scan

6つすべてのソースをスキャンし、DBにUPSERTして、ソースごとの件数を表示

toolscope list [--json]

記録されているすべてのツールを一覧表示(--kind / --sort / --unused-days フィルター)

toolscope search QUERY [--json]

名前 / description / ai_descriptionを横断検索

toolscope info NAME [--json]

単一のツール詳細。見つからない場合は非ゼロ終了

toolscope serve [--host H] [--port P]

APIとダッシュボードを配信。デフォルトのポートは8421

toolscope stats [--json]

{total, by_kind, never_used} の概要

toolscope mcp

stdio MCPサーバーを起動

toolscope hook

zshのprem実行スニペットを出力

toolscope hook-install

スニペットを ~/.zshrc にインストール。元等で再実行しても安全

toolscope export [--out FILE] [--json]

Brewfile(casks + formulaeセクション)を生成

toolscope doctor [--json]

環境チェック:ソースマネージャー、フロントエンドビルド、DBの健全性

toolscope config

LLM設定を表示(キーはマスク表示)。サブコマンド config set provider/base-url/model/api-key/clear-api-key と config test

toolscope describe

空のai_descriptionを埋めるオプションのLLMパス。設定は config(または環境変数)から読込。APIキーがない場合はセットアップ案内を表示して終了コード2で終了

使用状況の追跡:

toolscope hook-install   # run once; new shells log each command to ~/.toolscope/usage.log

マシン移行:

toolscope scan
toolscope export --out Brewfile
brew bundle --file=Brewfile

AIエージェント向け

同じJSONコントラクトに対する2つの接続面があります。

CLI。 一覧系コマンドは --json を受け付けて {"items": [...], "total": N} を出力し、単一オブジェクトを返すコマンドはそのオブジェクトを直接出力します。ツールオブジェクトは id, name, kind, version, path, origin, description, ai_description, usage:{count,last_used}|null の形式です。

toolscope search video --json
toolscope info ffmpeg --json
toolscope stats --json

HTTP API。 toolscope serve は同じデータをJSONで 127.0.0.1:8421 に公開し、一覧系エンドポイントはすべて上記のエンベロープを返します:/api/tools、/api/tools/{id}、/api/search?q=、/api/stats、/api/usage/log、/api/usage/stats、/api/export(Brewfileダウンロード)、/api/doctor、/api/hook/snippet、そして POST /api/scan。LLM設定もエージェントから管理可能です:GET/PUT /api/settings、GET /api/settings/providers、POST /api/settings/test。APIキーは常にマスクした形でのみ返され、完全な形では返されません。

MCP。 先にオプションをインストールしてください:pipx install "toolscope[mcp]"。次にクライアントにサーバーを登録します — Claude Codeスタイルの mcpServers 設定:

{
  "mcpServers": {
    "toolscope": {
      "command": "toolscope",
      "args": ["mcp"]
    }
  }
}

以下3つのツールが公開されています:

  • search_tools(query, kind?) — 機能検索(「このマシンでXができますか?」)。上記のエンベロープを返す

  • get_tool(name) — 単一のツールオブジェクト、存在しない場合はテキスト null を返す(エラーではなく正常な結果)

  • machine_stats() — {total, by_kind, never_used}

スクリーンショット

最初の実機キャプチャまで本プレースホルダーとして保留しています。予定ショットは docs/screenshots.md にあります。

仕組み

scan は6つのソースから収集し、(name, kind, origin) をキーとして ~/.toolscope/ 配下のSQLiteにUPSERTします。後でシステムから消えたエントリは削除せずに保持します。

ソース

kind値

収集方法

マネージャーなし

/Applications、~/Applications

app

Info.plistの解析

macOSでは該当なし

Homebrew

formula, cask

brew list --formula/--cask --versions

スキップし0件として計上

PATHディレクトリ

binary

PATHエントリ内の実行可能ファイル

空結果

npmグローバルパッケージ

npm

npm ls -g --json --depth=0

スキップし0件として計上

pipx環境

pipx

pipx list --json

スキップし0件として計上

uvツール

uv

uv tool command list

スキップし0件として計上

マネージャーバイナリがないソースがあってもスキャンが失敗することはありません。その場合はスキップされ、0件として報告されます。

開発

git clone <repo-url> && cd toolscope
python3.12 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
python -m pytest -q                              # backend suite must be green
cd frontend && npm install && npm run build      # dashboard build; tsc must be clean
cd .. && toolscope serve                         # serves frontend/dist at :8421

オプションのデスクトップシェル:desktop/ を参照(npm install && npm start)。

ライセンス

MIT


日本語説明

ToolScopeは、Macに長年積み重なった数十個のGUIアプリと、数十個のCLIツールをローカルSQLiteライブラリ(~/.toolscope/)にまとめ、3つの質問に答えます:何を入れたか / 何ができるか / 使ったか。読み取り専用で、何もアンインストールしません。

pipx install toolscope            # 需 MCP 时:pipx install "toolscope[mcp]"
toolscope scan                    # 全量扫描六来源,输出各来源计数;缺失来源计 0 跳过
toolscope search 视频 --json      # 能力搜索:跨名称与描述匹配,支持中文关键词
toolscope serve                   # 浏览器打开 http://127.0.0.1:8421 看板
toolscope config                  # 可选:配置 LLM 供应商/模型/Key(看板「设置」页签同源,Key 打码 0600 存储)
toolscope hook-install            # 可选:安装 zsh 钩子记录使用度(幂等)
toolscope export --out Brewfile   # 迁移新机时配合 brew bundle 还原环境

ダッシュボードには6つのビュー(概要 / 一覧 / 未使用 / 使用統計 / 初回ガイド / 設定)に加えて、⌘Kコマンドパレットと詳細ドロワーがあります。AIエージェントからは、上記 For AI Agents を参照してください:CLIは全コマンドが --json エンベロープ出力に対応。HTTP APIは同じデータ面に対応しています(/api/tools、/api/search?q=、/api/usage/stats、/api/settings など)。また、mcpServers 設定で toolscope mcp をstdio MCPサーバーとして登録できます(3ツール:search_tools / get_tool / machine_stats)。ライセンスはMITです。

Related MCP Connectors

Related MCP Servers