Send title, description, website and icons in the initialize result
JU
3d ago+408+408+012345678901234567890123456789-26-26-01234567890123456789
This is one of three small PRs split out of #540 (server info, idempotentHint, input descriptions), plus a release PR that merges last.
MCP clients and directories read the server's title, description, website and icon from the initialize result. Ours sends only name and version, because fastmcp builds that result from those two fields alone.
Changes
patches/fastmcp@4.3.2.patch: the existing patch now also acceptstitle,description,websiteUrlandiconsserver options and sends them ininitialize.title,websiteUrlandiconsuse upstream fastmcp's option names, so those hunks drop out when we upgrade.descriptionis not upstream.pnpm-lock.yamlonly gets the new patch hash.src/server.ts: sets the four fields next toname(stillfirecrawl-fastmcp, origin attribution keys on it) and adds an unstabledescriptionhook, with the default text, so an embedder can replace it.src/service/index.ts: the search-only surface sets its own description, because the default one mentions crawl, map and parse, which that surface does not have (Cubic's comment on #540).README.md:descriptionrow in the hooks table.tests/server-info.test.mjsand regenerated contract snapshots.
How I tested it
pnpm install --frozen-lockfile,pnpm run build,pnpm test: 169/169 (168 on main plus the new test).- Real MCP client (official SDK) over stdio and streamable HTTP, and with
CLOUD_SERVICE=true: connects and reads the new fields without schema errors. Tool lists and results are unchanged apart from the server info. - Icon and website URLs return 200 with the right content types.
Heads up
Independent of the other PRs. It does not bump the version; the release PR does.