diff --git a/apps/docs/content/docs/en/custom-tools/index.mdx b/apps/docs/content/docs/en/custom-tools/index.mdx new file mode 100644 index 00000000000..cc1787f93e1 --- /dev/null +++ b/apps/docs/content/docs/en/custom-tools/index.mdx @@ -0,0 +1,84 @@ +--- +title: Custom Tools +description: Extend your agents with your own functions — defined by a schema and executed as JavaScript +--- + +import { Callout } from 'fumadocs-ui/components/callout' + +Custom Tools let you define your own functions that agents can call, without needing an external MCP server. You write a JSON schema describing the function and the JavaScript code that runs when the agent invokes it. + +## What Is a Custom Tool? + +A custom tool has three parts: + +| Part | Description | +|------|-------------| +| **Schema** | OpenAI function-calling format — name, description, and parameters. This is what the agent sees when deciding whether to call the tool. | +| **Code** | JavaScript that runs when the tool is called. Parameters come in as variables matching the schema. | +| **Scope** | Custom tools are workspace-scoped and available to every agent in that workspace. | + +Use custom tools when you need tightly-scoped logic that doesn't warrant spinning up a full MCP server — one-off API calls, formatting helpers, internal utilities, etc. + +## Creating a Custom Tool + +1. Navigate to **Settings → Custom Tools** +2. Click **Add** +3. Fill out the **Schema** tab with your function definition +4. Write your implementation in the **Code** tab +5. Click **Save** + + +You can also create a custom tool directly from an Agent block — click **Add tool… → Create Tool** in the tool dropdown. The schema editor has an AI-generation option that drafts the schema from a plain-English description. + + +## Schema Format + +Custom tool schemas follow the OpenAI function-calling spec: + +```json +{ + "type": "function", + "function": { + "name": "get_weather", + "description": "Get the current weather for a city", + "parameters": { + "type": "object", + "properties": { + "city": { + "type": "string", + "description": "The city to get weather for" + } + }, + "required": ["city"] + } + } +} +``` + +The `name` must be lowercase, use underscores, and match what your code expects as input. + +## Using Custom Tools in Agents + +Once created, your tools become available in any Agent block: + +1. Open an **Agent** block +2. In the **Tools** section, click **Add tool…** +3. Under **Custom Tools**, click the tool you want to add +4. The agent can now call the tool the same way it calls MCP tools or built-in tools + +## Custom Tools vs MCP Tools + +| | **Custom Tools** | **MCP Tools** | +|---|---|---| +| **Defined** | Inline — schema + code in Sim | External MCP server | +| **Hosting** | Runs inside Sim | Runs on your server | +| **Best for** | Small, workspace-specific helpers | Shared tools, third-party services, complex integrations | +| **Setup** | One modal | Deploy and register a server | + +## Permission Requirements + +| Action | Required Permission | +|--------|-------------------| +| Create or update custom tools | **Write** or **Admin** | +| Delete custom tools | **Admin** | +| Use custom tools in agents | **Read**, **Write**, or **Admin** | diff --git a/apps/docs/content/docs/en/mcp/deploy-workflows.mdx b/apps/docs/content/docs/en/mcp/deploy-workflows.mdx index 1c031197ebb..08997e90b91 100644 --- a/apps/docs/content/docs/en/mcp/deploy-workflows.mdx +++ b/apps/docs/content/docs/en/mcp/deploy-workflows.mdx @@ -3,6 +3,7 @@ title: Deploy Workflows as MCP description: Expose your workflows as MCP tools for external AI assistants and applications --- +import { Image } from '@/components/ui/image' import { Video } from '@/components/ui/video' import { Callout } from 'fumadocs-ui/components/callout' import { FAQ } from '@/components/ui/faq' @@ -18,10 +19,45 @@ MCP servers group your workflow tools together. Create and manage them in worksp 1. Navigate to **Settings → MCP Servers** -2. Click **Create Server** + +
+ MCP Servers settings page +
+ +2. Click **Add** 3. Enter a name and optional description -4. Copy the server URL for use in your MCP clients -5. View and manage all tools added to the server + +
+ Add New MCP Server modal +
+ +4. Click **Add Server** +5. Click **Details** to view the MCP server + +
+ MCP Server details view +
+ +6. Copy the server URL for use in your MCP clients +7. View and manage all tools added to the server ## Adding a Workflow as a Tool @@ -33,9 +69,21 @@ Once your workflow is deployed, you can expose it as an MCP tool: 1. Open your deployed workflow 2. Click **Deploy** and go to the **MCP** tab + +
+ Workflow Deployment MCP tab +
+ 3. Configure the tool name and description 4. Add descriptions for each parameter (helps AI understand inputs) 5. Select which MCP servers to add it to +6. Click **Save Tool** The workflow must be deployed before it can be added as an MCP tool. @@ -54,27 +102,25 @@ Your workflow's input format fields become tool parameters. Add descriptions to ## Connecting MCP Clients -Use the server URL from settings to connect external applications: - -### Claude Desktop -Add to your Claude Desktop config (`~/Library/Application Support/Claude/claude_desktop_config.json`): +Sim generates a ready-to-paste configuration for every supported client. To get it: -```json -{ - "mcpServers": { - "my-sim-workflows": { - "command": "npx", - "args": ["-y", "mcp-remote", "YOUR_SERVER_URL"] - } - } -} -``` - -### Cursor -Add the server URL in Cursor's MCP settings using the same mcp-remote pattern. +1. Navigate to **Settings → MCP Servers** +2. Click **Details** on your server +3. Under **MCP Client**, select your client — **Cursor**, **Claude Code**, **Claude Desktop**, **VS Code**, or **Sim** +4. Copy the configuration, replacing `$SIM_API_KEY` with your Sim API key + +
+ MCP client configuration panel +
-Include your API key header (`X-API-Key`) for authenticated access when using mcp-remote or other HTTP-based MCP transports. +Every request must include the `X-API-Key` header for authenticated access. ## Server Management diff --git a/apps/docs/content/docs/en/mcp/index.mdx b/apps/docs/content/docs/en/mcp/index.mdx index 4e966165dc5..f6613de3d06 100644 --- a/apps/docs/content/docs/en/mcp/index.mdx +++ b/apps/docs/content/docs/en/mcp/index.mdx @@ -18,19 +18,42 @@ MCP is an open standard that enables AI assistants to securely connect to extern - Execute custom tools and scripts - Maintain secure, controlled access to external resources -## Configuring MCP Servers +## Adding an MCP Server as a Tool -MCP servers provide collections of tools that your agents can use. Configure them in workspace settings: +MCP servers provide collections of tools that your agents can use.
-1. Navigate to your workspace settings -2. Go to the **MCP Servers** section -3. Click **Add MCP Server** -4. Enter the server configuration details -5. Save the configuration +To add one: + +1. Navigate to **Settings → MCP Tools** + +
+ MCP Tools settings page +
+ +2. Click **Add** to open the configuration modal +3. Enter a **Server Name** and **Server URL** +4. Add any required **Headers** (e.g. API keys) +5. Click **Add MCP** to save + +
+ Add New MCP Server modal +
You can also configure MCP servers directly from the toolbar in an Agent block for quick setup. @@ -38,7 +61,7 @@ You can also configure MCP servers directly from the toolbar in an Agent block f ### Refresh Tools -Click **Refresh** on a server to fetch the latest tool schemas and automatically update any agent blocks using those tools with the new parameter definitions. +To auto-refresh an MCP tool already in use by an agent, go to **Settings → MCP Tools**, open the server's details, and click **Refresh**. This fetches the latest tool schemas and automatically updates any agent blocks using those tools with the new parameter definitions. ## Using MCP Tools in Agents @@ -46,7 +69,7 @@ Once MCP servers are configured, their tools become available within your agent
Using MCP Tool in Agent Block 1. Open an **Agent** block -2. In the **Tools** section, you'll see available MCP tools -3. Select the tools you want the agent to use -4. The agent can now access these tools during execution +2. In the **Tools** section, click **Add tool…** +3. Under **MCP Servers**, click a server to see its tools + +
+ MCP tools list for a selected server +
+ +4. Select individual tools, or choose **Use all N tools** to add every tool from that server +5. The agent can now access these tools during execution + + +If you haven't configured a server yet, click **Add MCP Server** at the top of the dropdown to open the setup modal without leaving the block. + ## Standalone MCP Tool Block @@ -65,7 +104,7 @@ For more granular control, you can use the dedicated MCP Tool block to execute s
Standalone MCP Tool Block + Opening the Variables panel from the toolbar menu +
+ +Each variable has: - **Name**: A unique identifier used to reference the variable -- **Value**: The data stored in the variable (supports various data types) -- **Description** (optional): A note explaining the variable's purpose +- **Type**: The data type (Plain, Number, Boolean, Object, Array) +- **Value**: The data stored in the variable + +
+ Variables panel with a number variable +
## Accessing Variables @@ -69,12 +92,12 @@ Variables can be accessed from any block in your workflow using the variable dro Variables in Sim can store various types of data: - + ``` "Hello, World!" ``` -

Text variables store strings of characters. They're useful for storing messages, names, and other text data.

+

Plain variables store strings of characters. They're useful for storing messages, names, and other text data.

``` diff --git a/apps/docs/public/static/blocks/mcp-add-modal.png b/apps/docs/public/static/blocks/mcp-add-modal.png new file mode 100644 index 00000000000..f80bc53f9bf Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-add-modal.png differ diff --git a/apps/docs/public/static/blocks/mcp-agent-dropdown.png b/apps/docs/public/static/blocks/mcp-agent-dropdown.png new file mode 100644 index 00000000000..580286a18b6 Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-agent-dropdown.png differ diff --git a/apps/docs/public/static/blocks/mcp-agent-tools.png b/apps/docs/public/static/blocks/mcp-agent-tools.png new file mode 100644 index 00000000000..31242e894ce Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-agent-tools.png differ diff --git a/apps/docs/public/static/blocks/mcp-client-config.png b/apps/docs/public/static/blocks/mcp-client-config.png new file mode 100644 index 00000000000..40887f50051 Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-client-config.png differ diff --git a/apps/docs/public/static/blocks/mcp-deploy-modal.png b/apps/docs/public/static/blocks/mcp-deploy-modal.png new file mode 100644 index 00000000000..efb51451ace Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-deploy-modal.png differ diff --git a/apps/docs/public/static/blocks/mcp-server-add-modal.png b/apps/docs/public/static/blocks/mcp-server-add-modal.png new file mode 100644 index 00000000000..55b59a227f7 Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-server-add-modal.png differ diff --git a/apps/docs/public/static/blocks/mcp-server-details.png b/apps/docs/public/static/blocks/mcp-server-details.png new file mode 100644 index 00000000000..b454438d897 Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-server-details.png differ diff --git a/apps/docs/public/static/blocks/mcp-servers-settings.png b/apps/docs/public/static/blocks/mcp-servers-settings.png new file mode 100644 index 00000000000..b75ad706447 Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-servers-settings.png differ diff --git a/apps/docs/public/static/blocks/mcp-settings.png b/apps/docs/public/static/blocks/mcp-settings.png new file mode 100644 index 00000000000..cb4c420814c Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-settings.png differ diff --git a/apps/docs/public/static/blocks/mcp-tool-block.png b/apps/docs/public/static/blocks/mcp-tool-block.png new file mode 100644 index 00000000000..d4c28cacb0d Binary files /dev/null and b/apps/docs/public/static/blocks/mcp-tool-block.png differ diff --git a/apps/docs/public/static/blocks/variables-menu.png b/apps/docs/public/static/blocks/variables-menu.png new file mode 100644 index 00000000000..90e0c7dcf5d Binary files /dev/null and b/apps/docs/public/static/blocks/variables-menu.png differ diff --git a/apps/docs/public/static/blocks/variables-panel.png b/apps/docs/public/static/blocks/variables-panel.png new file mode 100644 index 00000000000..66152d886ee Binary files /dev/null and b/apps/docs/public/static/blocks/variables-panel.png differ