feat(desktop): grow the MCP suggestion directory to 18 official hosted remotes

Vercel, Supabase, Netlify, Hugging Face, Asana, Intercom, Airtable,
Webflow, PayPal, and Square join the directory. Every entry is a
vendor-operated remote with its docs page linked, same URL-only rule
as the founding eight. Trigger notes where words are ambiguous:
'square' the English word never fires (squareup only), and
vercel.app/netlify.app deploy-preview hosts are deliberately absent
(a pasted preview link is about the site, not the platform). Brand
glyphs wired for all newcomers.
This commit is contained in:
Brooklyn Nicholson
2026-08-13 16:47:12 -05:00
committed by brooklyn!
parent fb1ee93a63
commit 8c8d55bd07
2 changed files with 100 additions and 0 deletions
+13
View File
@@ -7,12 +7,17 @@
* a favicon service for it would leak that hostname off-box.
*/
import {
SiAirtable,
SiAsana,
SiAtlassian,
SiDatadog,
SiFigma,
SiGithub,
SiGitlab,
SiHuggingface,
SiIntercom,
SiLinear,
SiNetlify,
SiNotion,
SiPaypal,
SiPostgresql,
@@ -21,6 +26,7 @@ import {
SiStripe,
SiSupabase,
SiVercel,
SiWebflow,
SiZapier
} from '@icons-pack/react-simple-icons'
import type { ComponentType, SVGProps } from 'react'
@@ -35,12 +41,18 @@ export interface McpBrand {
}
export const MCP_BRAND_ICONS: Record<string, McpBrand> = {
airtable: { Icon: SiAirtable, color: '#18BFFF' },
asana: { Icon: SiAsana, color: '#F06A6A' },
atlassian: { Icon: SiAtlassian, color: '#0052CC' },
datadog: { Icon: SiDatadog, color: '#632CA6' },
figma: { Icon: SiFigma, color: '#F24E1E' },
github: { Icon: SiGithub, color: '#181717', monochrome: true },
gitlab: { Icon: SiGitlab, color: '#FC6D26' },
hugging_face: { Icon: SiHuggingface, color: '#FFD21E' },
huggingface: { Icon: SiHuggingface, color: '#FFD21E' },
intercom: { Icon: SiIntercom, color: '#6AFDEF' },
linear: { Icon: SiLinear, color: '#5E6AD2' },
netlify: { Icon: SiNetlify, color: '#00C7B7' },
notion: { Icon: SiNotion, color: '#000000', monochrome: true },
paypal: { Icon: SiPaypal, color: '#003087' },
postgres: { Icon: SiPostgresql, color: '#4169E1' },
@@ -50,6 +62,7 @@ export const MCP_BRAND_ICONS: Record<string, McpBrand> = {
stripe: { Icon: SiStripe, color: '#635BFF' },
supabase: { Icon: SiSupabase, color: '#3FCF8E' },
vercel: { Icon: SiVercel, color: '#000000', monochrome: true },
webflow: { Icon: SiWebflow, color: '#146EF5' },
zapier: { Icon: SiZapier, color: '#FF4A00' }
}
+87
View File
@@ -99,6 +99,93 @@ export const MCP_DIRECTORY: McpDirectoryEntry[] = [
keywords: ['stripe'],
name: 'stripe',
url: 'https://mcp.stripe.com'
},
{
description: 'Deployments, logs, and projects via Vercel’s hosted MCP.',
docs: 'https://vercel.com/docs/mcp',
// No `vercel.app` on purpose (same rule as GitHub): pasted deploy-preview
// links are about the site being previewed, not about managing Vercel.
hosts: ['vercel.com'],
keywords: ['vercel'],
name: 'vercel',
url: 'https://mcp.vercel.com'
},
{
description: 'Database, auth, and storage from your Supabase projects.',
docs: 'https://supabase.com/docs/guides/ai-tools/mcp',
hosts: ['supabase.com', 'supabase.co'],
keywords: ['supabase'],
name: 'supabase',
url: 'https://mcp.supabase.com/mcp'
},
{
description: 'Sites, deploys, and env vars via Netlify’s hosted MCP.',
docs: 'https://docs.netlify.com/build/build-with-ai/agent-setup-guides/agent-setup-overview/',
// No `netlify.app` for the same deploy-preview reason as vercel.app.
hosts: ['netlify.com'],
keywords: ['netlify'],
name: 'netlify',
url: 'https://netlify-mcp.netlify.app/mcp'
},
{
description: 'Models, datasets, Spaces, and papers from the Hugging Face Hub.',
docs: 'https://huggingface.co/docs/hub/agents-mcp',
hosts: ['huggingface.co', 'hf.co'],
keywords: ['hugging face', 'huggingface'],
// Underscored so prettyName renders "Hugging Face", not "Huggingface".
name: 'hugging_face',
url: 'https://huggingface.co/mcp'
},
{
description: 'Tasks, projects, and goals from your Asana workspace.',
docs: 'https://developers.asana.com/docs/using-asanas-mcp-server',
hosts: ['asana.com'],
keywords: ['asana'],
name: 'asana',
url: 'https://mcp.asana.com/sse'
},
{
description: 'Conversations, tickets, and customer data from Intercom.',
docs: 'https://developers.intercom.com/docs/guides/mcp',
hosts: ['intercom.com', 'intercom.io'],
keywords: ['intercom'],
name: 'intercom',
url: 'https://mcp.intercom.com/mcp'
},
{
description: 'Bases, tables, and records from your Airtable workspace.',
docs: 'https://support.airtable.com/articles/9897799762-using-the-airtable-mcp-server',
hosts: ['airtable.com'],
keywords: ['airtable'],
name: 'airtable',
url: 'https://mcp.airtable.com/mcp'
},
{
description: 'Sites, CMS collections, and pages via Webflow’s hosted MCP.',
docs: 'https://developers.webflow.com/mcp/reference/getting-started',
// No `webflow.io` — that's published staging sites, not Webflow intent.
hosts: ['webflow.com'],
keywords: ['webflow'],
name: 'webflow',
url: 'https://mcp.webflow.com/mcp'
},
{
description: 'Payments, invoices, and subscriptions via PayPal’s hosted MCP.',
docs: 'https://developer.paypal.com/tools/mcp-server/',
hosts: ['developer.paypal.com'],
keywords: ['paypal'],
name: 'paypal',
url: 'https://mcp.paypal.com/sse'
},
{
description: 'Catalog, orders, and payments via Square’s hosted MCP.',
docs: 'https://developer.squareup.com/docs/mcp',
hosts: ['squareup.com'],
// "square" the English word is everywhere ("square brackets", "square
// corners") — only the unambiguous brand form triggers.
keywords: ['squareup'],
name: 'square',
url: 'https://mcp.squareup.com/sse'
}
]