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:
committed by
brooklyn!
parent
fb1ee93a63
commit
8c8d55bd07
@@ -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' }
|
||||
}
|
||||
|
||||
|
||||
@@ -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'
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user