LogoAPI.sh
Server Details
Company logos by domain as SVG or PNG URLs. Free, no API key. Search brands, get favicons.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- AlonHarpaz/logo-api
- GitHub Stars
- 20
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 3 tools
get_favicon and get_logo both take a domain and return icon URLs, so there is some surface overlap, but the descriptions clearly distinguish square site icons from brand logo variants. search_logos is clearly a discovery tool operating on names rather than domains, so selection is straightforward.
All three tools follow a consistent verb_noun snake_case pattern: get_favicon, get_logo, search_logos. The verbs (get vs search) map predictably to lookup-by-key vs discovery semantics.
Three tools is on the small side, but for a focused logo-lookup API each tool earns its place: discovery, brand logo retrieval, and favicon retrieval. No redundant or filler tools are present.
The surface covers the core lifecycle of finding a brand and retrieving its logo or favicon, including fallbacks for unknown brands and variant/format options. Minor gaps exist around bulk lookups or listing available variants/asset metadata, but agents can work around these via search plus get_logo.
Available Tools
3 toolsget_faviconGet a company faviconARead-onlyIdempotentInspect
Get the favicon (square icon) of a company by domain. Returns the scalable SVG URL and a PNG URL at the nearest standard size (128, 256, 512 or 1024). If the brand is not in the catalog, found is false.
| Name | Required | Description | Default |
|---|---|---|---|
| size | No | Wanted size in pixels. The PNG snaps to 128, 256, 512 or 1024. | |
| domain | Yes | Company domain, for example stripe.com. A URL or www. prefix is accepted. |
Output Schema
| Name | Required | Description |
|---|---|---|
| note | No | |
| found | Yes | |
| domain | Yes | |
| png_url | No | |
| svg_url | No | |
| png_size | No | |
| fallback_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description still adds real value beyond them: it discloses the miss case ('found is false') and the size-snapping behavior of the returned PNG, both of which the agent needs to interpret results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the identity of the tool, then the return shape, then the failure case. No padding or redundant framing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a low-complexity read tool with an output schema that already documents the return payload, so the description need not explain it. The only meaningful omission is sibling differentiation from get_logo/search_logos, which leaves the agent to guess between them.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already documented, including the 128/256/512/1024 snapping and the accepted URL or www. prefix. The description restates the snapping behavior rather than adding new meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Get the favicon (square icon) of a company by domain', with a parenthetical disambiguating what a favicon is. It does not, however, differentiate itself from the sibling get_logo, which an agent would reasonably think is the same thing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied by the noun 'favicon'; there is no explicit statement of when to pick this over get_logo or search_logos. The only conditional guidance is a behavioral one (brand absent from catalog), not a tool-selection one.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_logoGet a company logoARead-onlyIdempotentInspect
Look up the logo of a company by its domain (stripe.com). Returns a stable URL, the brand name, a ready img tag and the brand page. variant: base (original colours), white, black, grey or dark (for dark backgrounds); recolour variants exist for SVG only. format: svg (default) or png. If the brand is not in the catalog, found is false and fallback_url serves the site favicon or a name tile.
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | Company domain, for example stripe.com. A URL or www. prefix is accepted. | |
| format | No | File format. png is a rendered 512 px image. | svg |
| variant | No | Colour version. Only svg logos have white, black, grey and dark. | base |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | No | |
| name | No | |
| note | No | |
| found | Yes | |
| domain | Yes | |
| format | No | |
| img_tag | No | |
| variant | No | |
| brand_page | No | |
| fallback_url | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a safe, idempotent, catalog-bound read, so the bar is lower. The description still adds real value beyond them: it enumerates what is returned (stable URL, brand name, img tag, brand page), discloses the not-found path with fallback_url serving a favicon or name tile, and warns that recolour variants only exist for SVG — a constraint an agent would otherwise hit at runtime.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Everything is front-loaded: purpose, return payload, then the two parameter glosses, then the failure branch. It is a single dense semicolon-joined block rather than clean sentences, which slightly hurts scanability, but no clause is filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a three-parameter lookup with a full output schema and complete annotation coverage, the description covers input acceptability, enum intent, return contents, and the miss case. The only omission is sibling routing guidance, which is a usage concern rather than a completeness gap in the tool's own contract.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3, but the description adds meaning the schema does not: 'base (original colours)' glosses the enum value, 'dark (for dark backgrounds)' explains when that variant is appropriate, and the SVG-only restriction on recolour variants is spelled out rather than left implicit. It does not repeat the schema's 512 px detail for png, which is fine.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Look up the logo of a company by its domain', plus a concrete example (stripe.com). It implicitly separates itself from get_favicon via the fallback mention, but never names either sibling, so an agent must infer that search_logos exists for domain discovery.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: the domain example and the 'if the brand is not in the catalog' branch tell the agent what inputs are acceptable and what happens on a miss. There is no explicit guidance on when to prefer get_favicon or search_logos, which is the main routing decision an agent faces with these siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_logosSearch logos by company nameARead-onlyIdempotentInspect
Find brands in the catalog by company name or domain (exact and close matches). Returns up to 8 matches, each with domain, name and logo URL. Use it when you know the name but not the domain.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum matches to return (the catalog returns at most 8). | |
| query | Yes | Company name or domain, for example 'stripe'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| query | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world catalog, so safety needs no restating. The description adds real behavioral detail beyond them: fuzzy matching ('close matches') and a hard result ceiling of 8. It does not say what happens on zero matches or how matches are ranked.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences with the purpose first, the result shape second, and the routing condition last. Every sentence carries distinct information, with only mild overlap between the stated 8-match ceiling and the schema's limit note.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With only two simple, fully documented parameters, rich annotations, and an output schema that already describes the returned domain/name/logo URL, the description is nearly sufficient. The remaining gaps are the no-match behavior and result ordering, both minor for a read-only lookup.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already spells out the limit bounds, the catalog's 8-result cap, and the query format with an example. The only meaning the description adds is that matching is fuzzy as well as exact, which is a modest increment over an already self-documenting schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description gives a specific verb and resource ('Find brands in the catalog') plus the match key ('by company name or domain') and the match mode ('exact and close matches'). It implicitly separates itself from get_logo/get_favicon via the last sentence, but never names those siblings, so the differentiation is inferred rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing sentence 'Use it when you know the name but not the domain' gives a genuine selection condition, and 'exact and close matches' tells the agent near-miss queries are acceptable. It stops short of explicitly naming get_logo as the alternative when the domain is already known, and says nothing about when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
get_favicon - First observed
get_logo - First observed
search_logos
Publisher details
- Operator
- LogoAPI.sh
- Operator website
- https://logoapi.sh
- Vendor relationship
- First-party
- Documentation
- https://logoapi.sh/docs/mcp
- Trust center
- Not applicable
- Restrictions
- Not available
Related MCP Connectors
Logolark: company domain to logo, square icon and brand colour. Free tier; paid keys.
Find brands, logos and brandmarks, and manage brand subscriptions and webhooks with Logo.dev.
Logolark: company domain to logo, square icon and brand colour. Free, no key.
Logolark: company domain to logo, square icon and brand colour. Free, no key.
Related MCP Servers
- AlicenseAqualityDmaintenanceEnables searching for company logos by brand name and retrieving customizable logo image URLs with options for format, size, theme, and greyscale conversion using the Logo.dev API.2MIT
- AlicenseBqualityDmaintenanceIntelligently extracts and analyzes website logos from multiple sources (favicon, Apple Touch icons, OpenGraph, CSS) with automatic quality scoring and format support. Provides detailed logo information and returns the best logo URL for any given website.216 npmMIT
- AlicenseAqualityCmaintenanceEnables looking up company logos and brand data via the logo.dev API.132 PyPIMIT

Brandfetch MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables AI assistants to search and retrieve brand data, logos, design assets, and brand context via the Brandfetch API.9MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.