Skip to content

Fix Tembo icon for Claude MCP connectors - #380

Merged
ryw merged 4 commits into
mainfrom
tembo/fix-mcp-connector-favicon
Aug 10, 2026
Merged

Fix Tembo icon for Claude MCP connectors#380
ryw merged 4 commits into
mainfrom
tembo/fix-mcp-connector-favicon

Conversation

@ryw

@ryw ryw commented Aug 10, 2026

Copy link
Copy Markdown
Member

Summary

  • advertise the Tembo Agent Studio display name and PNG icon in MCP serverInfo
  • make connector favicon assets publicly accessible and add /favicon.ico as a fallback
  • document that Claude Web and Desktop share the same custom connector setup

Root cause

Claude could not retrieve TAS branding from the deployed origin: /favicons/default-tembo.svg redirected unauthenticated requests to sign-in, /favicon.ico returned 404, and the MCP initialize response did not include serverInfo.icons. Claude consequently fell back to the Railway deployment icon.

Verification

  • pnpm test — 34 files, 232 tests passed
  • pnpm exec next typegen && pnpm exec tsc --noEmit
  • pnpm lint — no errors; three pre-existing warnings
  • pnpm build in web/
  • pnpm build in docs/
  • production server probe confirmed unauthenticated 200 image/png and 200 image/x-icon responses with byte-for-byte matching assets

Want tembo to make any changes? Add a comment with @tembo and i'll get back to work!

View on Tembo  Review in Tembo  View Agent Settings

Copilot AI lite review requested due to automatic review settings August 10, 2026 17:09
@tembo tembo Bot added the tembo Pull request created by Tembo label Aug 10, 2026
@ryw
ryw merged commit 7cd3523 into main Aug 10, 2026
6 checks passed
@ryw
ryw deleted the tembo/fix-mcp-connector-favicon branch August 10, 2026 17:10

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR fixes Claude MCP connector branding by ensuring Tembo Agent Studio advertises a display name + icon via MCP serverInfo, and by making favicon assets reachable without an authenticated TAS session (plus updating docs/changelogs to reflect the Claude Desktop setup).

Changes:

  • Update the middleware matcher to avoid redirecting unauthenticated requests for /favicons/* branding assets.
  • Advertise title, icons, and websiteUrl in the MCP server initialization response.
  • Regenerate and update documentation/changelogs to document Claude Web + Desktop connector setup and the branding fix.

Reviewed changes

Copilot reviewed 6 out of 9 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
web/src/proxy.ts Adjusts middleware matching to prevent session redirects for public favicon branding assets.
web/src/lib/mcp/server.ts Adds MCP serverInfo metadata (display name, icon URL, website URL) built from the public origin.
web/src/lib/mcp/server.test.ts Adds coverage asserting the MCP server advertises the new branding fields.
web/src/lib/docs-content.ts Regenerates in-app docs bundle to reflect updated MCP docs and changelog entries.
docs/src/content/docs/mcp.md Documents that Claude Web and Desktop share the same custom connector configuration.
docs/src/content/docs/changelog.md Adds an Unreleased “Fixed” entry describing the connector branding fix.
CHANGELOG.md Mirrors the changelog update in the repo-root changelog.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread web/src/proxy.ts
Comment on lines +58 to 62
// session when rendering serverInfo.icons, so those assets must never hit
// the sign-in redirect. (API routes resolve workspaces themselves.)
matcher: [
"/((?!api|_next/static|_next/image|favicon.ico|robots.txt|sitemap.xml).*)",
"/((?!api|_next/static|_next/image|favicons|favicon.ico|robots.txt|sitemap.xml).*)",
],
Comment on lines +101 to +116
it("advertises the TAS display name and public icon", async () => {
const client = await connectedClient();
expect(client.getServerVersion()).toEqual({
name: "tembo-agent-studio",
title: "Tembo Agent Studio",
version: "1.0.0",
icons: [
{
src: "https://tas.example.com/favicons/default-tembo.png?v=3",
mimeType: "image/png",
sizes: ["256x256"],
},
],
websiteUrl: "https://tas.example.com",
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tembo Pull request created by Tembo

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants