mcpField
L
Logo.dev MCP

Logo.dev MCP

本地服务
pvliesdonk.github.io商业与营销018 周前更新

关于 Logo.dev MCP

Logo.dev MCP 将 logo.dev 服务提供给 MCP 客户端,用于获取公司 Logo 和结构化品牌信息。支持按多种标识查找品牌,并根据配置的 API 密钥启用相应工具。

主要功能

  1. 01按域名或标识获取 Logo
  2. 02搜索品牌并解析域名
  3. 03获取公司描述和品牌颜色
  4. 04获取完整品牌资料
  5. 05按 API 密钥注册工具

适用场景

  1. 01获取公司或股票代码对应的 Logo
  2. 02根据品牌名称查找其域名
  3. 03查看公司的品牌颜色和社交链接
  4. 04获取品牌 Logo、横幅和资料

MCP 相关

将 logo.dev 的 Logo 与品牌数据功能作为工具提供给 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 查询公司 Logo 和品牌数据。

文档 | 配置向导 | PyPI | Docker

功能

  • 获取 Logo(get_logo)— 根据域名、股票代码、ISIN、加密货币符号或品牌名称获取公司 Logo 图片及其 URL;支持尺寸、格式、主题、灰度、视网膜屏幕和回退选项。需要可发布密钥(pk_…)。
  • 品牌搜索(search_brands)— 通过输入提示或精确匹配,将品牌或公司名称解析为候选域名和 Logo URL。需要密钥(sk_…)。
  • 公司描述(describe_company)— 根据域名返回结构化的公司数据(名称、描述、品牌颜色、社交链接)。需要密钥(sk_…)。
  • 完整品牌档案(get_brand)— 根据域名返回完整的品牌档案(Logo、品牌标志、横幅、颜色、描述),内容比 describe_company 更丰富。需要密钥(sk_…)。
  • 优雅降级 — 仅在存在相应 API 密钥时才注册工具;缺少密钥的工具会对 MCP 客户端隐藏,而非注册后在调用时失败。

使用方法

在 MCP 客户端(Claude 等)中挂载此服务后,你可以:

  • 获取 Logo — “获取 stripe.com 的 Logo。”使用 get_logo(需要可发布密钥)。
  • 识别品牌域名 — “品牌‘Stripe’对应的域名是什么?”使用 search_brands(需要密钥)。
  • 查询公司信息 — “Stripe 的品牌使用了哪些颜色?”使用 describe_company(需要密钥)。
  • 获取完整品牌套件 — “显示 shopify.com 的完整品牌档案。”使用 get_brand(需要密钥)。
  • 按股票代码获取 Logo — “获取 AAPL 的 Logo。”使用 get_logo 并设置 identifier_type=ticker(需要可发布密钥)。

安装

从 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 bundle)

从 GitHub Releases 页面下载 .mcpb bundle,然后双击安装,或运行:

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 调用确认已部署的版本。默认响应包含 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设为 false 可输出纯文本 / 结构化 JSON 日志。
LOGODEV_MCP_KV_STORE_URLfile:///data/statepvl-core 子系统的持久状态后端 URL——file:///path(重启后保留)、memory://(开发 / 临时使用)。

领域专用变量见下文的领域配置。

身份验证

调用方通过 bearer 令牌或 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 工作流会引用三个仓库密钥。可通过 Settings → Secrets and variables → Actions 或使用 gh secret set 进行配置:

密钥使用方生成方式
RELEASE_TOKENrelease.yml、copier-update.yml在 https://github.com/settings/personal-access-tokens/new 创建细粒度 PAT,并授予 contents: write 和 pull_requests: write 权限(copier-update 定时任务会创建 PR)。权限仅限此仓库。
CODECOV_TOKENci.yml前往 https://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,或查看 CLAUDE.md 中完整的 Hard PR Acceptance Gates。

故障排除

移动已搭建的项目

uv sync 会创建 .venv/bin/* 脚本,其 shebang 使用绝对路径,指向虚拟环境中的 Python。如果在搭建项目后移动仓库(mv /old/path /new/path),uv run pytest 会因过时的 shebang 指向与虚拟环境的 site-packages 不同的解释器而失败,并报错 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 中添加新的 extra),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 工具。可以同时设置两个密钥,以启用全部四个工具。

logo.dev 各套餐可解锁的工具(免费套餐可用 get_logo/search_brands,任意付费套餐可用 describe_company,Pro/Enterprise 可用 get_brand)详见套餐与功能矩阵。

关键设计决策

  • 双密钥门控 — 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 包含 Service 类和 LogoDevError,不导入 FastMCP;src/logodev_mcp/tools.py 是唯一的 FastMCP 层。
  • 错误以字符串形式呈现 — 域代码中引发的 LogoDevError 会在各工具包装器中捕获,并作为纯文本消息返回,这样 MCP 客户端看到的是易读的错误,而不是服务异常。
  • Logo 工具返回 URL 和图像 — 除非设置 url_only=True,否则 get_logo 会同时返回 CDN URL(文本)和图像字节(图像内容块);设置后则只返回 URL 字符串。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。