plain-sight
バージョン: 1.0.0
AIが見たものを語る。 生成型画像ディスクライバー — Florence-2 (MIT) をラップする MCP サーバー + CLI。散文による説明、OCR、LoRA データセット用キャプションサイドカーを提供する。ローカルで動作し、デフォルトで決定論的。
ai-eyes-mcp の兄弟ツールです:
ai-eyes-mcp | plain-sight | |
役割 | 画像を判定する | 画像を説明する |
モデル | SigLIP2 (識別型) | Florence-2 (生成型) |
出力 | 較正されたスコア | 散文 / OCR / キャプションファイル |
失敗モード | 説明できない | 詳細を幻覚することがある |
使うべき場面 | 「この画像にXは含まれるか?」 | 「この画像には何が写っているか?」 |
誠実性の契約
説明は生成的です。流暢で、通常は正確で、詳細を捏造し得ます。plain-sight は出力を再現可能にします(決定論的デコード——同じ画像は同じキャプションを生成する)が、真実であることを保証するものではありません。画像に関する特定の主張を検証するには、ai-eyes-mcp の image_verify を使ってください。これは測定するものであり、語るものではありません。この2つのツールは設計上異なるモデルファミリーなので、互いに検証し合うことができます。
Related MCP server: fm-mcp-comfyui-bridge
ツール (MCP)
ツール | 機能 |
| 1枚の画像 → 散文による説明(3段階の詳細度) |
| N枚の画像 → |
| OCR — 画像から可視テキストを抽出する |
| ヘルスチェック: モデル、デバイス、ロード状態 |
| 同梱の参照画像を説明し、出力の健全性を確認する |
クイックスタート
pip install -e .
plain-sight-mcp # starts the STDIO MCP serverまたはモジュールとして実行: python -m plain_sight
CLI
# One image, full paragraph
plain-sight describe hero.png
# One short sentence
plain-sight describe hero.png --detail low
# OCR
plain-sight ocr screenshot.png
# The dataset lane: caption a directory into .txt sidecars with a trigger token
plain-sight batch ./dataset --prefix "mcpt_style, " --detail high
# Re-runs are idempotent — existing sidecars are skipped unless you --overwrite
plain-sight batch ./dataset --prefix "mcpt_style, " --overwriteClaude Code 設定
{
"mcpServers": {
"plain-sight": {
"command": "plain-sight-mcp",
"env": {
"PLAIN_SIGHT_MODEL_DIR": "/path/to/model/cache"
}
}
}
}キャプション契約(データセットレーン)
LoRA トレーニングセット(style-dataset-lab など)向けに設計されています:
正確なベースネームのペアリング:
img_0042.png→img_0042.txt。カウンター サフィックスなし——ComfyUI の SaveText ノード(_00001を追加する)とは異なります。そのままの連結: サイドカーには
prefix + caption + suffixが 区切り文字を挿入されずに含まれます。"mcpt_style, <caption>"にしたい場合は、 カンマ+スペースをプレフィックスに入れてください。冪等な再実行: 既存のサイドカーはスキップされます(コストもかかりません)。
--overwrite/overwrite=trueを指定した場合のみ上書きされます。決定論的:
do_sample=false+ ビームサーチ——変更されていない画像を 再キャプションすると同じテキストが再現されるため、差分に意味があります。
詳細度の段階
Florence-2 のネイティブなタスクラダー:
段階 | タストークン | 出力 |
|
| 短い文1つ |
|
| 数文 |
|
| 完全な段落 |
high は段落であって、エッセイではありません——Florence-2 はコンパクトな (0.77B) モデルです。
その強みはスループットとライセンスであり、美術評論の深さではありません。キャプションが
途中で切れているように見える場合は、max_new_tokens(デフォルト 1024、最大 4096)を上げてください。
設定
環境変数 | デフォルト | 目的 |
|
| HuggingFace モデル |
| HF デフォルトキャッシュ | モデルキャッシュディレクトリ |
|
| torch デバイス |
| CUDA では |
|
|
| デフォルトの生成上限 |
|
| ビーム幅(決定論的デコード) |
|
|
|
| 未設定 | 真値ならサーバー起動時にモデルをロード |
ログ: stderr のみ(stdout は MCP プロトコルチャネル)、ロガー名は
plain_sight。
初回呼び出し: モデルは遅延ロードされます——最初の describe/OCR 呼び出しで
Florence-2 をロードします(GPU で約10〜20秒; 初回の呼び出しでは約1.5 GBをダウンロード)。
以降の呼び出しは、最新の GPU で high 詳細度の場合、画像1枚あたり約1〜2秒です。
ライセンスの姿勢
このツール: MIT。
モデル:
florence-community/Florence-2-largeに固定——Microsoft の Florence-2 リリースの 公式ネイティブ transformers 変換版です。MIT(ハブのライセンスタグは 2026-08-19 に確認済み)。 商用利用も問題ありません。microsoft/Florence-2-largeを使わない理由: 同じ重み、同じ MIT ライセンスですが、 元のリポジトリにはネイティブ以前の設定が同梱されており、trust_remote_code経由でしか ロードできません——このツールはその方式を原則として拒否します。コミュニティ変換版は transformers の組み込み Florence-2 クラスでロードできます。意図的に提供しないもの: Florence-2 のファインチューン群(MiaoshouAI PromptGen、CogFlorence、SD3/Flux キャプショナー、Castollux)。これらのライセンスは 未検証であり、確認が取れるまで対象外です。
PLAIN_SIGHT_MODEL_IDをそれらのいずれかに 上書きすることは可能ですが、ライセンスの責任はあなたにあります。リモートコードなし: エンジンは transformers のネイティブ Florence-2 サポートのみを使用します——
trust_remote_codeは決して渡されないため、ハブから取得した Python が実行されることはありません。これにはtransformers >= 4.51が必要です。
セキュリティと信頼
このツールはローカルのみで動作します。
触れるデータ: ローカル画像ファイル(読み取り専用); HuggingFace モデルキャッシュ (初回ダウンロード時に一度だけ書き込み);
.txtキャプションサイドカー——書き込むのは これだけであり、呼び出し元が指定した場所(out_dirまたは画像の隣)にのみ書き込み、 既存のサイドカーは明示的な--overwriteでのみ置き換えられます。実行時のネットワーク送信なし——モデルは初回使用時に一度だけダウンロードされ、 以降の推論はすべてローカルです。
リモートコード実行なし——ネイティブ transformers クラスのみ;
trust_remote_codeは決して渡されないため、ハブから取得した Python が実行されることはありません。シークレット処理なし、テレメトリなし——どこからも読み取らず、どこにも送信しません。
構造化エラーのみ——生のスタックトレースが MCP クライアントや CLI ユーザーに 届くことはありません。CLI 終了コード: 0 正常 · 1 ユーザーエラー · 2 ランタイムエラー · 3 部分成功。
完全なポリシー: SECURITY.md。積極的にメンテナンスされており、 サポート対象バージョンはそこに記載されています。
要件
Python >= 3.10
transformers >= 4.51(ネイティブ Florence-2)CUDA GPU 推奨(FP16 で約2GB VRAM); CPU フォールバックも動作します(遅い)
初回使用時にモデルを約1.5GBダウンロード
開発
# Install in editable mode with dev dependencies
pip install -e ".[dev]"
# CI-safe tests (no model, no GPU)
pytest tests/test_edge_cases.py -v
# Dogfood tests (real model + GPU)
pytest tests/test_dogfood.py -v
# Full verify: imports, edge tests, build
bash verify.shアーキテクチャ
engine.py Standalone Florence-2 wrapper — no MCP dependency.
Lazy-loads the model; validation runs BEFORE the load.
Importable directly: from plain_sight.engine import Florence2Engine
sidecars.py The training-data contract, pure stdlib: basename pairing,
bare concatenation, directory expansion. Testable without torch.
server.py FastMCP wrapper exposing engine methods as MCP tools.
Thin layer: validation, error shaping, tool metadata.
cli.py argparse CLI over the same engine (describe / ocr / batch /
status / selftest). Structured errors, meaningful exit codes.アーキテクチャは意図的に
ai-eyes-mcp から借用しています——同じ
エンジン/サーバー分割、同じエラー整形、同じセルフテストパターン。同じ契約のクラウド版は
Comfy Cloud で caption-florence2-v1 ワークフローとして動作しています(ジョブごとに
1枚の画像というメタデータライダー; このツールはバルクレーンです)。
ライセンス
MIT
MCP Tool Shop によって構築されました。
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that enables any LLM to describe images from file paths, URLs, or base64 data by forwarding them to a supported vision provider such as OpenAI, Anthropic, or local Ollama models.7149MIT
- AlicenseAqualityDmaintenanceMCP server that provides image generation, captioning, and tagging via ComfyUI API, configurable for agent tools.43MIT
- FlicenseNot gradedqualityCmaintenanceMCP server for local image generation using FLUX.2 via Hugging Face diffusers, designed to run on a Windows GPU and be called remotely by Claude Cowork over Tailscale.
- AlicenseNot gradedqualityCmaintenanceA local MCP server that gives LLMs eyes for images by performing object detection (YOLOv8) and text recognition (EasyOCR), outputting descriptive statements about objects and text positions without any API key or cloud dependency.MIT
Related MCP Connectors
MCP server for Flux AI image generation
MCP server for Grok Imagine AI video generation
MCP server for Hailuo (MiniMax) AI video generation
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/mcp-tool-shop-org/plain-sight'
If you have feedback or need assistance with the MCP directory API, please join our Discord server