From 5881304ed8b568c150a8369ef5c6dc8a4a8fe0e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Romuald=20Cz=C5=82onkowski?= <56956555+czlonkowski@users.noreply.github.com> Date: Sat, 18 Oct 2025 19:01:32 +0200 Subject: [PATCH] feat: Add MCP server icon support (SEP-973) v2.20.0 (#333) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: Add MCP server icon support (SEP-973) v2.20.0 Implements custom server icons for MCP clients according to the MCP specification SEP-973. Icons enable better visual identification of the n8n-mcp server in MCP client interfaces. Features: - Added 3 icon sizes: 192x192, 128x128, 48x48 (PNG format) - Icons served from https://www.n8n-mcp.com/logo*.png - Added websiteUrl field pointing to https://n8n-mcp.com - Server version now uses package.json (PROJECT_VERSION) instead of hardcoded '1.0.0' Changes: - Upgraded @modelcontextprotocol/sdk from ^1.13.2 to ^1.20.1 - Updated src/mcp/server.ts with icon configuration - Bumped version to 2.20.0 - Updated CHANGELOG.md with release notes Testing: - All icon URLs verified accessible (HTTP 200, CORS enabled) - Build passes, type checking passes - No breaking changes, fully backward compatible Icons won't display in Claude Desktop yet (pending upstream UI support), but will appear automatically when support is added. Other MCP clients may already support icon display. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude * docs: Fix icon URLs in CHANGELOG to reflect actual implementation The CHANGELOG incorrectly documented icon URLs as https://api.n8n-mcp.com/public/logo-*.png when the actual implementation uses https://www.n8n-mcp.com/logo*.png This updates the documentation to match the code. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --------- Co-authored-by: Claude --- CHANGELOG.md | 30 ++++++++++++++++++++++++++++++ data/nodes.db | Bin 62623744 -> 62623744 bytes package-lock.json | 12 ++++++------ package.json | 4 ++-- src/mcp/server.ts | 20 +++++++++++++++++++- 5 files changed, 57 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 503ef7c..0e78107 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,36 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [2.20.0] - 2025-10-18 + +### ✨ Features + +**MCP Server Icon Support (SEP-973)** + +- Added custom server icons for MCP clients + - Icons served from https://www.n8n-mcp.com/logo*.png + - Multiple sizes: 48x48, 128x128, 192x192 + - Future-proof for Claude Desktop icon UI support +- Added websiteUrl field pointing to https://n8n-mcp.com +- Server now reports correct version from package.json instead of hardcoded '1.0.0' + +### 📦 Dependency Updates + +- Upgraded `@modelcontextprotocol/sdk` from ^1.13.2 to ^1.20.1 + - Enables icon support as per MCP specification SEP-973 + - No breaking changes, fully backward compatible + +### 🔧 Technical Improvements + +- Server version now dynamically sourced from package.json via PROJECT_VERSION +- Enhanced server metadata to include branding and website information + +### 📝 Notes + +- Icons won't display in Claude Desktop yet (pending upstream UI support) +- Icons will appear automatically when Claude Desktop adds icon rendering +- Other MCP clients (Cursor, Windsurf) may already support icon display + ## [2.19.6] - 2025-10-14 ### 📦 Dependency Updates diff --git a/data/nodes.db b/data/nodes.db index 4111320c5bfe72e6e9ad6e13c3f35d3cc5d4693d..e6e795daa589cd62bf158636ce772bce94101dba 100644 GIT binary patch delta 3601 zcmWmDW7`l007l^#*|u%lw(Xv5+kC1w+qP}HwrpEl*47r*P9N?+aIWhNUHmrjP)tq` zV{7SvfP#Ah0^(-~2nf6w5E%cg6 zD~c7>ie^Q(VpuV)SXOK+juqF6XT`S?SP88}R$?oOmDEaRCAU&oDXmmiYAcPE)=Fok zw=!56txQ&CD~pxY%4TJ^a#%U7Tvl!?kCoTTXXUpFSOu*@R$;4%Rn#hG6}L)QC9P6c zX{(G?)+%R}w<=f_tx8s9tBO_Cs%BNUYFIU`T2^hVj#byHXVteFSPiX4R%5G))zqR- zGpo7P!fI)?vRYehthQD=tG(61>S%ScI$K?=u2wgzyVb+$Y4x&tTYap)RzIu1HNYBZ z4YCGXL#(0JFl)Fq!WwDW8fA^P##kZNSZka$-kM-dv?f`Tttr-2YnnCPnqkefW?8eX zIo4cjo;BZEU@f#3S&OYD)>3PkwcJ`^t+ZBItF1NGT5FxP-r8Vov^H6rtu5A8Yn!#* z+F|Xqc3HcvJ=R`ppS9mQU>&p$S%)oy&S?ip2-nw92 zv@Thftt-}5>zZ}lx?$b4ZdtdjJJwz6o^{`PU_G=RS&ywJ)>G@5_1t=4{bBuSy|i9g zudO%MTkDzno6`eFTN{R~my1O*}p!3c%W2!pT) zhwzAih=_#9h=QnyhUkcan23egh=aI@hxkZ4JD1)*nhw`X^il~Ij zsDi4fhU%z+ny7`^sDrwwhx%xMhG>MwXo9Br)xQ~{ zx}qDpqX&AT7kZ-)`l28DV*mzX5C&rihGH0oV+2OR7=_UogAk0xIE=>xOvEHi#uQA& zG)%_~%)~6r#vIJWJj}-eEW{!##u6;WGAzdmti&p;#u}`}I;_VAY{VvP#ujYFHf+ZZ z?8GkY#vbg&KJ3Q<9K<0U#t|IFF&xJUoWv=d#&7r?XK)tha2^+M5tncoS8x^Aa2+>r z6Sr_1cW@W?a32rw5RdQ}Pw*7a@EkAj2mZuMyuxd|!CSn;dwjr0e8Ok^g}?Cy|KMMI z#W#G%5B!IpfguWFe*_^Ip%5Bj5EkJO9uW``kq{YC5Eao79Wf9Su@D<^5Etb93@Z^rBE7WP!{D-9u-g#l~5T~P!-is9W_uBwNM*%P#5)39}UnDjnEiP&=kM= zH$!u@KufejYqUXIv_pGzKu2^!XLLbVbVGOaKu`2SZ}dT5^h19Pz(5SbU<|=f48w4Y zz(^RQFdAbJg0UEf@tA;#n1sogf~lB>>6n3;n1$JxgSnW8`B;F3ScJt`f~8o78~sH@@H>{EM&nhVS@+|L`*?M8WKjAOs^6LL&^qA{@da0wN+3 zA|nc-A{wG224W%>Vj~XXA|B!+0TLn+5+ezcA{mk+1yUjvQX>u0A|28r12Q5LG9wGJ zA{(+J2XZ18aw8A&A|LXj01BcI3Zn>$q8N&!1WKY5N}~+Qq8!Sj0xF^sDx(Ujq8h5B z25O=fYNHP7q8{p_0UDwa8lwrC;#dD>XpRXpau)h)(E?F6fGG=#C!f ziC*Z9KIn^n=#K#yh(Q>PAsC8b7>*Gb31bvSV+=wt7UM7;6EG2zFd0)Y71J;sGcXgg zFdK6)7xOS53$PH2uoz3Q6w9z2E3gu)uo`Qy7VEGc8?X_Zuo+vh72B{KJFpYGup4`@ MH~4_|1uvfTKaY(<4*&oF delta 3601 zcmWmDW1A2N07cMLog|R z^bKDF0t)O72#A+HARxqrfDn;8PR^J;aKqQ3vO-vaR*)6a3T1`1!dPLga8`ILf)&w< zWJR{3SW&HLR&*)<+k!zd98d_eyf00&?;mVwu)FqtzuSjtAth3 zDrJ?n%2;Ksa#ne(f>qI~WL37RSXHfRR&}d}Rnw|v)wb$bb**|D ztbx`bYp^xM8fp!*hFc>nTO+Me)@Uo(8e@&M##!U73D!hwk~P_yVokNCS<|f<)=X=b zHQSnF&9&xP^Q{HeLTiz=*ji#OwU$}StrgZvYn8RyT4SxX)>-SV4c10$leO8}Vr{jy zS=+50)=q1ewcFZb?X~t<`>g}kLFy&lcI%A!+&ROTJ z3)V&Jl6Bd-VqLYaS=X%_)=le{b=$gQ-L>vn_pJxkL+g?C*!s)*+j?R>wVqketryly z>y`D|dSkt{-dXRh57tNPll71Ful3pbVtuu~S>LT6)=%p{>sPQsj8_N*A_yT73ZW4O zVG$1D5djeq36T*6Q4tN%5d$$13$YOgaS;#kkpKyi2#JvdNs$c6kpd}^3aOC>X^{@; zkpUTz37L@vS&jWjj|rHFNtlc& zn2Kqbjv1JVS(uGEn2ULsj|EtWMOcg_Sc+v>julvmRalKRSc`R7j}6#}P1uYr*otk~ zjvd&EUD%C1*o%GGj{`V}L-+%K;xLZjD30McPT(X?;WW5v{7kP(@X8Cj4O*^nJMkQ2F(8+niy`H&w4P!NSs z7)4MN#ZVk2P!gq38f8!xDtgfQgud$(Vwvn1<?rv zPT~|!;|$K?9M0ncF5(g{;|i|g8m{98ZsHbh;|}iP9`54-9^w%m<1hS;CwPiyc#ao% ziC1`yH+YM8c#jYGh)?(j|Kc;g;48l2JAU9N{==`pUf~u&7 z>ZpO5sD;|7gSx1P`e=ZLXoSXSg5Uj{q8XZ_1zMsNTB8lxq8-|!13ID;I-?7^q8qxS z2YR9xdZQ2eq96KW00v?Z24e_@Vi<;F1dNdwh0zGc7>va@jK>5_#3W3{6imf5Oven& z#4OCl9L&W$%*O&O#3C%l5-i0sEXNA0#44=D8mz@Stj7jy#3pRU7Hq{fY{w4l#4hZ{ Mo}m5O8?