@mcp-s/icons
v0.0.20260820171244
Published
Willow icons
Readme
icons
Static icon assets served via Cloudflare Pages CDN.
Structure
connectors/ # Connector icons (light theme)
connectors-dark/ # Connector icons (dark theme)
ai-hosts/ # AI agent/client icons (light theme)
ai-hosts-dark/ # AI agent/client icons (dark theme)
agent-avatars/ # Avatars users can pick for background agents
sso-providers/ # SSO provider icons
partners/ # Customer/partner logos (marketing surfaces)
testimonials/ # Testimonial author avatars (marketing surfaces)
willow/ # Willow logosUsage
Icons are served at:
https://icons.webrix.workers.dev/connectors/{id}.svg
https://icons.webrix.workers.dev/connectors-dark/{id}.svg
https://icons.webrix.workers.dev/ai-hosts/{slug}.svg
https://icons.webrix.workers.dev/ai-hosts-dark/{slug}.svg
https://icons.webrix.workers.dev/sso-providers/{provider}.svg
https://icons.webrix.workers.dev/partners/{name}.svg
https://icons.webrix.workers.dev/testimonials/{name}.png
https://icons.webrix.workers.dev/willow/{logo-name}.svgAdding new icons
- Add the SVG file to the appropriate folder (both light and dark variants)
- Commit and push — Cloudflare Pages deploys automatically
Agent avatars
Drop avatar files (SVG or PNG) into public/agent-avatars/ and register each
filename in public/agent-avatars/manifest.json:
{
"avatars": ["robot-1.svg", "robot-2.png"]
}The apps fetch the manifest to render the avatar picker for background agents.
PNG twins (required for Slack)
Some consumers can't render SVG and fetch a raster instead — notably the Slack
background-agent bot, which uses the chosen avatar as its icon_url and only
accepts raster images it can fetch over http(s). Every AvatarN.svg therefore
ships an AvatarN.png alongside it, served at
…/agent-avatars/AvatarN.png.
After adding or changing any avatar SVG, regenerate the PNG twins:
npm install # once, for the dev dependency
npm run avatars:pngCommit the generated .png files together with the .svg.
