diff --git a/apps/docs/components/docs-layout/docs-sidebar.tsx b/apps/docs/components/docs-layout/docs-sidebar.tsx index 24e33677746..c9d062c2e09 100644 --- a/apps/docs/components/docs-layout/docs-sidebar.tsx +++ b/apps/docs/components/docs-layout/docs-sidebar.tsx @@ -103,7 +103,7 @@ export function DocsSidebar() { ['Docs', '/introduction'], ['API Reference', '/api-reference/getting-started'], ['CLI', '/cli'], - ['MCP', '/mcp'], + ['MCP', '/mcp/overview'], ['Academy', '/academy'], ].map(([label, href]) => ( setOpen(false)}> diff --git a/apps/docs/components/navbar/navbar.tsx b/apps/docs/components/navbar/navbar.tsx index 4610c6d392f..c82d82421b0 100644 --- a/apps/docs/components/navbar/navbar.tsx +++ b/apps/docs/components/navbar/navbar.tsx @@ -46,7 +46,7 @@ const NAV_TABS = [ }, { label: 'MCP', - href: '/mcp', + href: '/mcp/overview', match: (p: string) => isInSection(p, 'mcp'), external: false, }, diff --git a/apps/docs/content/docs/agents/mcp.mdx b/apps/docs/content/docs/agents/mcp.mdx index b5f5adea4a4..60cce667fe1 100644 --- a/apps/docs/content/docs/agents/mcp.mdx +++ b/apps/docs/content/docs/agents/mcp.mdx @@ -9,6 +9,11 @@ import { Callout } from 'fumadocs-ui/components/callout' The Model Context Protocol ([MCP](https://modelcontextprotocol.com/)) is an open standard for connecting AI to external tools and data. Add an MCP server to your workspace and its tools become available to your agents — a way to integrate services Sim doesn't have a built-in integration for. + + To use your Sim workspace from Claude, Codex, or Cursor, connect the + [Sim MCP server](/mcp/overview). + + ## Adding an MCP Server as a Tool MCP servers provide collections of tools that your agents can use. diff --git a/apps/docs/content/docs/mcp/meta.json b/apps/docs/content/docs/mcp/meta.json index f111bfd9ece..3ec87c8bd01 100644 --- a/apps/docs/content/docs/mcp/meta.json +++ b/apps/docs/content/docs/mcp/meta.json @@ -1,5 +1,5 @@ { "title": "MCP", "root": true, - "pages": ["---Sim MCP---", "index", "authentication", "tools"] + "pages": ["---Sim MCP---", "overview", "authentication", "tools"] } diff --git a/apps/docs/content/docs/mcp/index.mdx b/apps/docs/content/docs/mcp/overview.mdx similarity index 100% rename from apps/docs/content/docs/mcp/index.mdx rename to apps/docs/content/docs/mcp/overview.mdx diff --git a/apps/docs/content/docs/platform/self-hosting/environment-variables.mdx b/apps/docs/content/docs/platform/self-hosting/environment-variables.mdx index 1c9e4b6b197..67ffc91f6da 100644 --- a/apps/docs/content/docs/platform/self-hosting/environment-variables.mdx +++ b/apps/docs/content/docs/platform/self-hosting/environment-variables.mdx @@ -34,7 +34,7 @@ import { Callout } from 'fumadocs-ui/components/callout' | `TRUSTED_ORIGINS` | Comma-separated additional origins to trust for auth (apex + `www`, alias domains) | | `AUTH_TRUSTED_PROXIES` | Comma-separated reverse-proxy IPs/CIDRs so the client IP cannot be forged through `X-Forwarded-For` | | `INTERNAL_API_BASE_URL` | Internal URL for server-side self-calls, e.g. `http://sim-app.simstudio.svc.cluster.local:3000`. Optional — falls back to the public base URL. Deliberately ignored inside the Trigger.dev worker runtime, where a cluster-internal address resolves to the worker itself | -| `SIM_MCP_URL` | Public URL of the [Sim MCP server](/mcp) when you serve it on its own host, e.g. `https://mcp.example.com/mcp`. Point that host at the app; Sim serves only the MCP endpoint and its OAuth metadata there, and stops serving `/api/mcp` on the app host so clients use one URL. Optional — defaults to `/api/mcp` | +| `SIM_MCP_URL` | Public URL of the [Sim MCP server](/mcp/overview) when you serve it on its own host, e.g. `https://mcp.example.com/mcp`. Point that host at the app; Sim serves only the MCP endpoint and its OAuth metadata there, and stops serving `/api/mcp` on the app host so clients use one URL. Optional — defaults to `/api/mcp` | | `DATABASE_REPLICA_URL` | Read-replica connection string for log listing, audit logs, and dashboard aggregations. Falls back to the primary when unset | ## AI Providers diff --git a/apps/docs/lib/redirects.ts b/apps/docs/lib/redirects.ts index fa6091908ca..a92193fcc9f 100644 --- a/apps/docs/lib/redirects.ts +++ b/apps/docs/lib/redirects.ts @@ -76,9 +76,9 @@ export const DOCS_REDIRECTS: DocsRedirect[] = [ destination: '/workflows/deployment/mcp', permanent: true, }, - // building-agents section renamed to agents; mcp and skills folded into it { source: '/building-agents', destination: '/agents', permanent: true }, { source: '/building-agents/:path*', destination: '/agents/:path*', permanent: true }, + // Browsers may retain this permanent redirect; the workspace guide uses /mcp/overview. { source: '/mcp', destination: '/agents/mcp', permanent: true }, { source: '/skills', destination: '/agents/skills', permanent: true }, // tools/ + triggers/ unified into per-service integrations/ pages. diff --git a/apps/sim/emails/broadcasts/desktop-cli-search.html b/apps/sim/emails/broadcasts/desktop-cli-search.html new file mode 100644 index 00000000000..f8110924202 --- /dev/null +++ b/apps/sim/emails/broadcasts/desktop-cli-search.html @@ -0,0 +1,861 @@ + + + + + + + + + Introducing Sim Desktop, CLI, and MCP + + + + + + +
+ Sim on your Mac, in your terminal, and in your AI tools. Plus, Search for enterprise teams. +
+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + Sim + +
+

+ Introducing Sim Desktop, CLI, and MCP +

+
+

+ Pick up where you left off. Your Sim workspace now works on your Mac, in your terminal, and inside + Claude, Codex, or Cursor. +

+
+ + + + +
+ Open your workspace +
+
+ + Sim Desktop with Chat and a built-in browser side by side. + +
+

+ Sim Desktop +

+
+

+ Chat with Sim, browse signed-in sites, and run terminal commands in one Mac app. Your workspace, side + by side. +

+
+ + + + +
+ Get Sim Desktop for macOS +
+
+ + Sim CLI commands: bun add -g sim; sim login; sim workflows list --output json. + +
+

+ Sim CLI +

+
+

+ Run workflows, query tables, and inspect logs from your terminal. Built for scripts, CI pipelines, and + coding agents. +

+
+ + + + +
+ Install Sim CLI +
+
+

+ Sim MCP +

+
+

+ Bring your Sim workspace into Claude, Codex, or Cursor. Run workflows, query tables, and manage files + from the AI tools you already use. +

+
+ + + + +
+ Connect Sim MCP +
+
+ + Search across Slack, Google Drive, GitHub, and Gmail. Example question: What’s the latest on the launch? + +
+

+ Sim Search for enterprise +

+
+

+ Search Slack, Google Drive, GitHub, and more. Get live answers with citations, while respecting each + person’s access. +

+
+ + + + +
+ Book a Search demo +
+
+

+ Thanks for building with us.
The Sim team +

+
+ + + + +
+ Open your workspace +
+
+   +
+ +
+ + diff --git a/apps/sim/emails/broadcasts/desktop-cli-search/visuals.tsx b/apps/sim/emails/broadcasts/desktop-cli-search/visuals.tsx new file mode 100644 index 00000000000..34626a558ef --- /dev/null +++ b/apps/sim/emails/broadcasts/desktop-cli-search/visuals.tsx @@ -0,0 +1,95 @@ +'use client' + +import { useRef } from 'react' +import { Chip, ComposerActionButton, cn } from '@sim/emcn' +import { ArrowUp } from '@sim/emcn/icons' +import { GithubIcon, GmailIcon, GoogleDriveIcon, SlackIcon } from '@/components/icons' +import { + LANDING_STAGE_RADIUS, + LANDING_STAGE_WINDOW_RADIUS, + LANDING_WINDOW_SHADOW, +} from '@/app/(landing)/components/landing-layout' +import { CodeWindowGraphic } from '@/app/(landing)/components/shared/code-window-graphic' +import { SearchInputBar } from '@/app/o/[organizationId]/components/search-input-bar' + +const SOURCES = [ + { name: 'Slack', icon: SlackIcon }, + { name: 'Google Drive', icon: GoogleDriveIcon }, + { name: 'GitHub', icon: GithubIcon }, + { name: 'Gmail', icon: GmailIcon }, +] as const + +interface NewsletterVisualProps { + kind: 'cli' | 'search' +} + +/** Render these product components to images; the broadcast itself stays email-safe HTML. */ +export function NewsletterVisual({ kind }: NewsletterVisualProps) { + return ( +
+ +
+ {kind === 'cli' ? ( + + ) : ( + + )} +
+
+ ) +} + +interface SearchNewsletterVisualProps { + query: string +} + +function SearchNewsletterVisual({ query }: SearchNewsletterVisualProps) { + const inputRef = useRef(null) + + return ( +
+

Search your company.

+ {}} + onSubmit={() => {}} + floating + submitControl={ + + + + } + /> +
+ {SOURCES.map(({ name, icon }) => ( + + {name} + + ))} +
+
+ ) +} diff --git a/apps/sim/lib/mothership/generated/docs-manifest.ts b/apps/sim/lib/mothership/generated/docs-manifest.ts index 1543436e363..b64681d07d7 100644 --- a/apps/sim/lib/mothership/generated/docs-manifest.ts +++ b/apps/sim/lib/mothership/generated/docs-manifest.ts @@ -373,8 +373,8 @@ export const DOCS_MANIFEST: readonly string[] = [ 'logs-debugging.mdx', 'logs-debugging/alerts.mdx', 'logs-debugging/logging.mdx', - 'mcp.mdx', 'mcp/authentication.mdx', + 'mcp/overview.mdx', 'mcp/tools.mdx', 'platform/connected-accounts.mdx', 'platform/costs.mdx', diff --git a/apps/sim/lib/sim-search/live/application.test.ts b/apps/sim/lib/sim-search/live/application.test.ts index bfffed53d2a..05fb108d72d 100644 --- a/apps/sim/lib/sim-search/live/application.test.ts +++ b/apps/sim/lib/sim-search/live/application.test.ts @@ -30,7 +30,11 @@ vi.mock('@/lib/sim-search/live/service-session', () => ({ })) vi.mock('@/lib/sim-search/live/http', async (original) => ({ ...(await original()), - createNativeClient: () => ({ json: mocks.json, text: vi.fn(), bytes: vi.fn() }), + createNativeClient: () => ({ + json: mocks.json, + text: vi.fn(async () => 'Original document text'), + bytes: vi.fn(), + }), })) vi.mock('@/lib/sim-search/live/gitlab-admin', () => ({ createAdminGitLabSession: mocks.admin })) vi.mock('@/lib/sim-search/live/policy-store', () => ({ @@ -518,7 +522,7 @@ describe('authorized live retrieval', () => { return { id: 'doc', name: 'Launch', - mimeType: 'application/pdf', + mimeType: 'application/vnd.google-apps.document', webViewLink: document.url, } controller.abort(reason) diff --git a/apps/sim/public/email/broadcast/desktop-cli-search/cli.png b/apps/sim/public/email/broadcast/desktop-cli-search/cli.png new file mode 100644 index 00000000000..e4ad57da3a8 Binary files /dev/null and b/apps/sim/public/email/broadcast/desktop-cli-search/cli.png differ diff --git a/apps/sim/public/email/broadcast/desktop-cli-search/search.png b/apps/sim/public/email/broadcast/desktop-cli-search/search.png new file mode 100644 index 00000000000..0e4406e11fa Binary files /dev/null and b/apps/sim/public/email/broadcast/desktop-cli-search/search.png differ