### Install Python Client Source: https://viasocket.com/help/viasocket-mcp/python-client-integration Install the fastmcp package using pip. For uv support, use 'uv pip install fastmcp'. ```bash pip install fastmcp ``` ```bash uv pip install fastmcp ``` -------------------------------- ### Static Dropdown Configuration Example Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/dropdown/static-dropdown This example shows how to configure a static dropdown field, including its label, key, required status, placeholder, options, and default value. ```JSON { "type": "dropdown", "label": "Priority", "key": "priority", "required": "Yes", "help": "Select the priority level", "placeholder": "Select Priority", "options": [ {"label": "High", "value": "high"}, {"label": "Medium", "value": "medium"}, {"label": "Low", "value": "low"} ], "defaultValue": "Medium", "visibilityCondition": "context?.inputData?.type === \"task\"", "customHelp": "Enter the priority value", "customInputLabel": "Priority Value", "customPlaceholder": "high, medium, low" } ``` -------------------------------- ### Good AI Prompt Example Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/ai-field- An example of a clear and effective prompt for an AI Field, specifying the desired output format and criteria. ```text Generate a Notion filter JSON that returns only completed tasks with high priority. ``` -------------------------------- ### Install viaSocket TypeScript SDK using npm Source: https://viasocket.com/help/viasocket-mcp/typescript-client-integration Install the necessary package for TypeScript client integration using npm. ```bash npm install @modelcontextprotocol/sdk ``` -------------------------------- ### Install viaSocket TypeScript SDK using pnpm Source: https://viasocket.com/help/viasocket-mcp/typescript-client-integration Install the necessary package for TypeScript client integration using pnpm. ```bash pnpm add @modelcontextprotocol/sdk ``` -------------------------------- ### Claude Desktop MCP Configuration Example Source: https://viasocket.com/help/viasocket-mcp/claude-desktop/claude-desktop-integration-guide This is an example of the JSON configuration block you will paste into Claude Desktop's developer settings. Ensure you replace YOUR_UNIQUE_ID with your actual cluster ID from Mushrooms. ```json { "mcpServers": { "mushroom": { "url": "https://mcp.viasocket.com/mcp/YOUR_UNIQUE_ID" "transport": "sse" } }} ``` -------------------------------- ### Example Login URL Source: https://viasocket.com/help/plugin-builder/authentication/authentication-auth2-0-implicit-auth This is the login page URL for the OAuth 2.0 authorization server. ```text https://service.com/oauth/authorize ``` -------------------------------- ### Typeform API GET Request Example (cURL) Source: https://viasocket.com/help/in--built-tools/custom-api-integration An optional cURL reference for making a GET request to the Typeform API to retrieve responses. Use chips to dynamically pass the form ID. ```bash curl -X GET "https://api.typeform.com/forms/{form_id}/responses" \ -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \ -H "Content-Type: application/json" ``` -------------------------------- ### TypeScript Client Usage Example Source: https://viasocket.com/help/viasocket-mcp/typescript-client-integration Demonstrates connecting to a Mushroom cluster, listing available tools, and calling a specific tool. Ensure your MCP server URL is correctly configured. ```typescript import { Client } from "@modelcontextprotocol/sdk/client/index.js"; import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js"; // Initialize the client const client = new Client( { name: "mushroom-typescript-client", version: "1.0.0", }, { capabilities: {}, } ); // Replace with your Mushroom cluster's MCP Endpoint URL // Get this from mushroom.viasocket.com → your Cluster → Claude Configuration panel const serverUrl = "https://mcp.viasocket.com/mcp/YOUR_UNIQUE_ID"; const transport = new SSEClientTransport(new URL(serverUrl)); async function main() { // Connect to your Mushroom cluster console.log("Connecting to Mushroom MCP..."); await client.connect(transport); console.log("Connected to Mushroom MCP"); // List all Mushrooms (apps) your cluster has access to console.log("Fetching available Mushroom tools..."); const tools = await client.listTools(); console.log("Available Mushroom tools:", tools.tools.map(t => t.name)); // Example: call a tool from a connected Mushroom app (e.g. Google Sheets) const result = await client.callTool({ name: "Add New Row To Sheet", arguments: { spreadsheet_id: "your_spreadsheet_id", sheet_name: "Sheet1", values: ["2026-04-09", "New Lead", "Pending"], }, }); console.log("Tool result:", result); // Close the connection await client.transport?.close(); await client.close(); } main(); ``` -------------------------------- ### Bad AI Prompt Example Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/ai-field- An example of a vague and ineffective prompt for an AI Field, lacking specific instructions. ```text Create something useful. ``` -------------------------------- ### User Interface Example: Static Dropdown Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/dropdown/static-dropdown Illustrates how a static dropdown appears to the end-user, showing the label and the selectable options. ```Text Priority ▼ High Medium Low ``` -------------------------------- ### Python Client Usage Example Source: https://viasocket.com/help/viasocket-mcp/python-client-integration Connect to the Mushroom MCP server, list available tools, and call a specific tool. Ensure you replace 'YOUR_UNIQUE_ID' and 'your_spreadsheet_id' with your actual values. ```python import asyncio import json from fastmcp import Client from fastmcp.client.transports import StreamableHttpTransport # Replace with your Mushroom cluster's MCP Endpoint URL # Get this from mushroom.viasocket.com → your Cluster → Claude Configuration panel server_url = "https://mcp.viasocket.com/mcp/YOUR_UNIQUE_ID" transport = StreamableHttpTransport(server_url) # Initialize the client client = Client(transport=transport) async def main(): async with client: print("Connected to Mushroom MCP:", client.is_connected()) # List all Mushrooms (apps) your cluster has access to tools = await client.list_tools() print(f"Available Mushroom tools: {json.dumps([t.name for t in tools], indent=2)}") # Example: call a tool from a connected Mushroom app (e.g. Google Sheets) result = await client.call_tool( "Add New Row To Sheet", { "spreadsheet_id": "your_spreadsheet_id", "sheet_name": "Sheet1", "values": ["2026-04-09", "New Lead", "Pending"] } ) print("Tool result:", result) if __name__ == "__main__": asyncio.run(main()) ``` -------------------------------- ### User Interaction Example Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/static-input-fields/dynamic-input-group Illustrates the user experience with a dynamic input group, showing how selecting an option triggers the automatic appearance of relevant fields. ```Text Select User Type → Dynamic fields appear automatically ``` -------------------------------- ### MCP Endpoint URL Example Source: https://viasocket.com/help/viasocket-mcp/julius-ai-mcp-server This is an example of the MCP Endpoint URL you will copy from Mushrooms and paste into Julius AI. Treat this URL as a password. ```text https://mcp.viasocket.com/mcp/your-unique-id ``` -------------------------------- ### HTML Field Configuration Example Source: https://viasocket.com/help/plugin-builder/plugin-input-fields/html This JSON snippet demonstrates the configuration of an HTML field, including its key, type, label, help text, and required status. It serves as a template for setting up HTML input fields. ```json [\ { "key": "signature_template", "type": "html", "label": "Signature Template", "help": "Enter the HTML code for the signature template", "required": true, "placeholder": "