mcpField
L
Logo.dev MCP

Logo.dev MCP

ローカル
pvliesdonk.github.ioビジネス・マーケティング018 週間前に更新

Logo.dev MCP について

Logo.dev MCP は logo.dev のロゴ取得とブランド情報を MCP クライアントに提供します。複数の識別子でブランドを検索でき、設定された API キーに応じてツールを登録します。

主な機能

  1. 01ドメインや識別子からロゴ取得
  2. 02ブランド検索とドメイン特定
  3. 03企業説明とブランドカラーの取得
  4. 04ブランドプロフィール全体の取得
  5. 05APIキーに応じたツール登録

活用シーン

  1. 01企業名やティッカーからロゴを取得
  2. 02ブランド名からドメインを特定
  3. 03企業の色やソーシャルリンクを確認
  4. 04ロゴやバナーを含むブランド情報を取得

MCP 対応

logo.dev のロゴ取得とブランドデータ機能を MCP クライアント向けのツールとして公開します。利用可能なツールは publishable key と secret key の設定に応じて決まります。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"pvliesdonk-logodev": {
"command": "uvx",
"args": [
"logodev-mcp"
],
"env": {
"FASTMCP_LOG_LEVEL": "<FASTMCP_LOG_LEVEL>",
"LOGODEV_MCP_SERVER_NAME": "<LOGODEV_MCP_SERVER_NAME>",
"LOGODEV_MCP_BEARER_TOKEN": "<LOGODEV_MCP_BEARER_TOKEN>",
"LOGODEV_MCP_AUTH_MODE": "<LOGODEV_MCP_AUTH_MODE>",
"LOGODEV_MCP_BASE_URL": "<LOGODEV_MCP_BASE_URL>",
"LOGODEV_MCP_OIDC_CONFIG_URL": "<LOGODEV_MCP_OIDC_CONFIG_URL>",
"LOGODEV_MCP_OIDC_CLIENT_ID": "<LOGODEV_MCP_OIDC_CLIENT_ID>",
"LOGODEV_MCP_OIDC_CLIENT_SECRET": "<LOGODEV_MCP_OIDC_CLIENT_SECRET>",
"LOGODEV_MCP_OIDC_JWT_SIGNING_KEY": "<LOGODEV_MCP_OIDC_JWT_SIGNING_KEY>",
"LOGODEV_MCP_OIDC_AUDIENCE": "<LOGODEV_MCP_OIDC_AUDIENCE>",
"LOGODEV_MCP_OIDC_REQUIRED_SCOPES": "<LOGODEV_MCP_OIDC_REQUIRED_SCOPES>",
"LOGODEV_MCP_KV_STORE_URL": "<LOGODEV_MCP_KV_STORE_URL>",
"PUID": "<PUID>",
"PGID": "<PGID>"
}
}
}
}
起動コマンドuvx logodev-mcp
設定が必要な環境変数
FASTMCP_LOG_LEVELLog level (DEBUG, INFO, WARNING, ERROR)
LOGODEV_MCP_SERVER_NAMEMCP server name shown to clients
LOGODEV_MCP_BEARER_TOKENシークレットBearer token for authentication
LOGODEV_MCP_AUTH_MODEシークレットOIDC auth mode: 'remote' (JWKS validation) or 'oidc-proxy' (OAuth proxy). Auto-detected if not set.
LOGODEV_MCP_BASE_URLPublic base URL of this server (required for OIDC)
LOGODEV_MCP_OIDC_CONFIG_URLOIDC discovery endpoint URL
LOGODEV_MCP_OIDC_CLIENT_IDOIDC client ID
LOGODEV_MCP_OIDC_CLIENT_SECRETシークレットOIDC client secret
LOGODEV_MCP_OIDC_JWT_SIGNING_KEYシークレットSigning key for OIDC session JWTs (critical on Linux/Docker)
LOGODEV_MCP_OIDC_AUDIENCEExpected OIDC token audience
LOGODEV_MCP_OIDC_REQUIRED_SCOPESSpace-separated required OIDC scopes
LOGODEV_MCP_KV_STORE_URLPersistent-state backend URL for pvl-core subsystems. Schemes: file:///path (survives restarts), memory:// (dev/ephemeral).
PUIDRun as this UID (Docker entrypoint)
PGIDRun as this GID (Docker entrypoint)

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilogodev-mcp1.1.0
ocighcr.io/pvliesdonk/logodev-mcp:v1.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Logo.dev MCP

CI codecov PyPI Python License Docker Docs llms.txt Template

logo.dev API を介して、企業のロゴやブランドデータを検索します。

ドキュメント | 設定ウィザード | PyPI | Docker

機能

  • ロゴの取得(get_logo)— ドメイン、ティッカー、ISIN、暗号資産シンボル、またはブランド名を指定して、企業のロゴを画像と URL で取得します。サイズ、形式、テーマ、グレースケール、Retina、フォールバックの各オプションに対応しています。公開可能キー(pk_…)が必要です。
  • ブランド検索(search_brands)— 入力補完検索または完全一致検索を使って、ブランド名や企業名から候補となるドメインとロゴ URL を特定します。シークレットキー(sk_…)が必要です。
  • 企業の説明(describe_company)— ドメインについて、企業データ(名前、説明、ブランドカラー、ソーシャルリンク)を構造化して返します。シークレットキー(sk_…)が必要です。
  • ブランドプロフィール全体(get_brand)— ドメインについて、完全なブランドプロフィール(ロゴ、ブランドマーク、バナー、カラー、説明)を返します。describe_company より多くの情報を含みます。シークレットキー(sk_…)が必要です。
  • 適切な縮退動作 — 対応する API キーがある場合にのみツールを登録します。キーが不足しているツールは登録されて呼び出し時に失敗するのではなく、MCP クライアントから非表示になります。

できること

このサーバーを MCP クライアント(Claude など)に接続すると、次のことができます。

  • ロゴを取得する — 「stripe.com のロゴを取得して。」get_logo を使用します(公開可能キーが必要です)。
  • ブランドのドメインを特定する — 「『Stripe』ブランドのドメインは何ですか?」search_brands を使用します(シークレットキーが必要です)。
  • 企業情報を調べる — 「Stripe のブランドカラーは何ですか?」describe_company を使用します(シークレットキーが必要です)。
  • ブランドキット全体を取得する — 「shopify.com の完全なブランドプロフィールを表示して。」get_brand を使用します(シークレットキーが必要です)。
  • ティッカーからロゴを取得する — 「AAPL のロゴを取得して。」identifier_type=ticker を指定して get_logo を使用します(公開可能キーが必要です)。

インストール

PyPI から
pip install logodev-mcp

pyproject.toml の PROJECT-EXTRAS-START / PROJECT-EXTRAS-END センチネルを使ってオプションの追加機能を追加する場合は、以下に記載してください。

ソースから
git clone https://github.com/pvliesdonk/logodev-mcp.git
cd logodev-mcp
uv sync --all-extras --all-groups
Docker
docker pull ghcr.io/pvliesdonk/logodev-mcp:latest

リポジトリのルートには、出発点として compose.yml が用意されています。.env.example を .env にコピーして編集し、docker compose up -d を実行してください。

リモートの Python デバッガーを接続する方法(開発時のみ。プロトコルは認証されません)については、リモートデバッグを参照してください。

Linux パッケージ(.deb/.rpm)

GitHub Releases ページから .deb または .rpm パッケージをダウンロードします。どちらも強化された systemd ユニットをインストールします。環境設定は /etc/logodev-mcp/env から読み込まれます(同梱されている /etc/logodev-mcp/env.example をコピーしてください)。

Claude Desktop(.mcpb バンドル)

GitHub Releases ページから .mcpb バンドルをダウンロードしてダブルクリックでインストールするか、次のコマンドを実行します。

mcpb install logodev-mcp-<version>.mcpb

Claude Desktop では、GUI ウィザードを通じて必須の環境変数を入力できます。JSON を手動で編集する必要はありません。

Claude Desktop の手動設定とセットアップのオプションについては、Claude Desktop のデプロイをご覧ください。

クイックスタート

logodev-mcp serve                                # stdio transport
logodev-mcp serve --transport http --port 8000   # streamable HTTP

ライブラリとして使用する場合(MCP トランスポートを使わずにドメインロジックを組み込む場合)は、logodev_mcp パッケージから直接インポートしてください。エントリーポイントについては、プロジェクトの src/logodev_mcp/ 以下にあるドメインモジュールをご覧ください。

サーバー情報

サーバーには組み込みの get_server_info ツールが登録されています(fastmcp_pvl_core.register_server_info_tool 経由)。これにより、運用担当者は MCP 呼び出しを 1 回行うだけでデプロイ済みのバージョンを確認できます。デフォルトの応答には server_name、server_version、core_version が含まれます。リモート上流と通信するサーバーでは、src/logodev_mcp/server.py の DOMAIN-UPSTREAM-START/DOMAIN-UPSTREAM-END センチネル内で上流のバージョン報告を設定します。設定方法については、CLAUDE.mdをご覧ください。

設定

fastmcp-pvl-core ベースのすべてのサービスで共通する、コア環境変数:

変数デフォルト説明
FASTMCP_LOG_LEVELINFOFastMCP 内部とアプリのロガーのログレベル(DEBUG/INFO/WARNING/ERROR)。-v CLI フラグを指定すると DEBUG に上書きされます。
FASTMCP_ENABLE_RICH_LOGGINGtrueプレーンまたは構造化 JSON 形式のログ出力にする場合は、false に設定します。
LOGODEV_MCP_KV_STORE_URLfile:///data/statepvl-core サブシステムの永続状態バックエンド URL。file:///path(再起動後も保持)、memory://(開発用/一時的)を指定できます。

ドメイン固有の変数は、以下のドメイン設定をご覧ください。

認証

呼び出し元はベアラートークンまたは OIDC で認証します(併用不可)。設定、複数サブジェクトにマッピングされたトークン、OIDC、トラブルシューティングについては、認証ガイドをご覧ください。

スキャフォールド後のチェックリスト

copier copy と gh repo create --push の実行後:

  1. この README(Features、What you can do with it、Domain configuration、Key design decisions)と CLAUDE.md の DOMAIN ブロックを埋めます。
  2. GitHub シークレットを設定します。以下をご覧ください。
  3. 開発・ドキュメント用ツールをインストールします:uv sync --all-extras --all-groups。
  4. pre-commit フックをインストールします:uv run pre-commit install。
  5. ローカルでゲートを実行します:uv run pytest -x -q && uv run ruff check --fix . && uv run ruff format . && uv run mypy src/ tests/。
  6. 最初のコミットをプッシュします。CI が成功するはずです。

GitHub シークレット

CI ワークフローでは 3 つのリポジトリシークレットを参照します。Settings → Secrets and variables → Actions から設定するか、gh secret set を使用してください。

シークレット使用先生成方法
RELEASE_TOKENrelease.yml、copier-update.ymlcontents: write と pull_requests: write の権限を持つ、https://github.com/settings/personal-access-tokens/new で作成したファイングレインド PAT(copier-update の cron が PR を作成します)。このリポジトリにスコープを限定します。
CODECOV_TOKENci.ymlhttps://codecov.io に GitHub アカウントでサインインしてリポジトリを追加し、リポジトリ設定ページからアップロードトークンをコピーします。
CLAUDE_CODE_OAUTH_TOKENclaude.yml、claude-code-review.ymlローカルで claude setup-token を実行し、表示された結果を貼り付けます。
gh secret set RELEASE_TOKEN
gh secret set CODECOV_TOKEN
gh secret set CLAUDE_CODE_OAUTH_TOKEN

GITHUB_TOKEN は自動的に提供されるため、操作は不要です。

ローカル開発

PR ゲート(CI と同じ):

uv run pytest -x -q                                  # tests
uv run ruff check --fix . && uv run ruff format .    # lint + format
uv run mypy src/ tests/                              # type-check

pre-commit は各コミット時にゲートの一部を実行します。詳細は .pre-commit-config.yaml、Hard PR Acceptance Gates 全体については CLAUDE.mdをご覧ください。

トラブルシューティング

スキャフォールド済みプロジェクトの移動

uv sync は、仮想環境の Python を指す絶対パスのシバンを持つ .venv/bin/* スクリプトを作成します。スキャフォールド後にリポジトリを移動すると(mv /old/path /new/path)、古いシバンが仮想環境の site-packages とは異なるインタープリターを参照するため、uv run pytest は ModuleNotFoundError: No module named 'fastmcp' で失敗します。

修正方法:

rm -rf .venv
uv sync --all-extras --all-groups

uv run python -m pytest も、一時的な回避策として使用できます(古いエントリースクリプトのシムを回避します)。

copier update 後の uv.lock の更新

copier update によって新しい依存関係(たとえば、pyproject.toml.jinja に新しいエクストラが追加される場合)が導入されると、CI で実行される uv sync --frozen が古いロックファイルを使って失敗します。ローカルで uv lock を実行し、copier-update の PR を受け入れる際に更新した uv.lock もコミットしてください。

リンク

ドメインの設定

ドメイン環境変数には LOGODEV_MCP_ 接頭辞を使用します。

変数デフォルト必須説明
LOGODEV_MCP_PUBLISHABLE_KEY—条件付きlogo.dev のパブリッシャブルキー(pk_…)です。get_logo ツールを有効にします。このツールを非表示にするには省略します。
LOGODEV_MCP_SECRET_KEY—条件付きlogo.dev のシークレットキー(sk_…)です。search_brands、describe_company、get_brand を有効にします。これらのツールを非表示にするには省略します。
LOGODEV_MCP_DETECT_PLANtrueいいえ起動時に describe/brand の利用権を確認し、プランで許可されていないツールを非表示にします。確認を省略して、すべてのシークレットキー用ツールを登録するには false を設定します。
LOGODEV_MCP_STATE_DIR/data/stateいいえキャッシュされたプラン検出結果(entitlements.json)を保存するディレクトリです。

API ツールを登録するには、少なくとも 1 つのキーを設定する必要があります。両方のキーを同時に設定すると、4 つすべてのツールが有効になります。

各 logo.dev プランで利用できるツール(無料プランでは get_logo/search_brands、有料プランでは describe_company、Pro/Enterprise では get_brand)については、プランと機能の一覧に記載されています。

主な設計上の決定

  • 2 つのキーによる制御 — LOGODEV_MCP_PUBLISHABLE_KEY は get_logo を制御し、LOGODEV_MCP_SECRET_KEY は search_brands、describe_company、get_brand を制御します。キーが設定されていない場合、そのキーに対応するツールは呼び出し時に制限されるのではなく、登録されません。
  • プラン検出による利用権のないツールの非表示 — describe_company には有料プランが必要で、get_brand には Pro/Enterprise が必要です。logo.dev にはプラン照会用エンドポイントがないため、サーバーは起動時に logo.dev でそれぞれを確認し、401/403 の場合はツールを無効にします。search_brands は利用制限の対象外です。確認結果が不確定な場合(タイムアウト、5xx、404、429)は利用可能とみなし、ツールを有効なままにします。結果は LOGODEV_MCP_STATE_DIR に 7 日間キャッシュされます(キーのローテーション時には再確認されます)。無効にするには LOGODEV_MCP_DETECT_PLAN=false を設定します。
  • ドメインロジックを FastMCP から分離 — src/logodev_mcp/domain.py には FastMCP のインポートを含めずに Service クラスと LogoDevError を定義します。FastMCP レイヤーは src/logodev_mcp/tools.py のみです。
  • エラーは文字列として返す — ドメインコードで発生した LogoDevError は各ツールのラッパーで捕捉され、プレーンテキストのメッセージとして返されるため、MCP クライアントにはサーバー例外ではなく、読みやすいエラーが表示されます。
  • ロゴツールは URL と画像を返す — get_logo は、url_only=True が指定されない限り、CDN URL(テキスト)と画像データ(画像コンテンツブロック)の両方を返します。その場合は URL 文字列のみを返します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。