create_connection
Establish a new app connection in Automatisch by providing app identifier, connection name, and required credentials to enable workflow automation.
Instructions
Create a new app connection
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| appKey | Yes | App identifier (e.g., 'slack', 'github') | |
| name | Yes | Connection name | |
| credentials | Yes | App-specific credentials and configuration |
Implementation Reference
- src/handlers.ts:337-345 (handler)MCP tool handler for 'create_connection': invokes the API helper method and formats the response as JSON text.case "create_connection": return { content: [ { type: "text", text: JSON.stringify(await main.api.createConnection(args), null, 2) } ] };
- src/handlers.ts:118-139 (schema)Input schema definition for the 'create_connection' tool, specifying required parameters: appKey, name, credentials.{ name: "create_connection", description: "Create a new app connection", inputSchema: { type: "object", properties: { appKey: { type: "string", description: "App identifier (e.g., 'slack', 'github')" }, name: { type: "string", description: "Connection name" }, credentials: { type: "object", description: "App-specific credentials and configuration" } }, required: ["appKey", "name", "credentials"] } },
- src/api.ts:27-29 (helper)API helper method 'createConnection' that is called by the tool handler (currently a placeholder for the core implementation logic).createConnection: async function(data: any) { // ... copy createConnection logic from index.ts ... },
- src/handlers.ts:32-279 (registration)Registration of the CallToolRequestHandler which dispatches to specific tool cases, including 'create_connection'.type: "object", properties: { workflowId: { type: "string", description: "Workflow ID to retrieve" } }, required: ["workflowId"] } }, { name: "create_workflow", description: "Create a new workflow", inputSchema: { type: "object", properties: { name: { type: "string", description: "Workflow name" }, description: { type: "string", description: "Workflow description" }, active: { type: "boolean", description: "Whether workflow should be active", default: false } }, required: ["name"] } }, { name: "update_workflow", description: "Update an existing workflow", inputSchema: { type: "object", properties: { workflowId: { type: "string", description: "Workflow ID to update" }, name: { type: "string", description: "New workflow name" }, description: { type: "string", description: "New workflow description" }, active: { type: "boolean", description: "Workflow active status" } }, required: ["workflowId"] } }, { name: "delete_workflow", description: "Delete a workflow", inputSchema: { type: "object", properties: { workflowId: { type: "string", description: "Workflow ID to delete" } }, required: ["workflowId"] } }, { name: "list_connections", description: "List all app connections", inputSchema: { type: "object", properties: { appKey: { type: "string", description: "Filter by specific app" } } } }, { name: "create_connection", description: "Create a new app connection", inputSchema: { type: "object", properties: { appKey: { type: "string", description: "App identifier (e.g., 'slack', 'github')" }, name: { type: "string", description: "Connection name" }, credentials: { type: "object", description: "App-specific credentials and configuration" } }, required: ["appKey", "name", "credentials"] } }, { name: "list_executions", description: "List workflow executions", inputSchema: { type: "object", properties: { workflowId: { type: "string", description: "Filter by workflow ID" }, status: { type: "string", enum: ["success", "failure", "running"], description: "Filter by execution status" }, limit: { type: "number", description: "Limit number of results" } } } }, { name: "get_available_apps", description: "Get list of available apps and their capabilities", inputSchema: { type: "object", properties: { category: { type: "string", description: "Filter by app category" } } } }, { name: "test_workflow", description: "Test a workflow with sample data", inputSchema: { type: "object", properties: { workflowId: { type: "string", description: "Workflow ID to test" }, testData: { type: "object", description: "Sample data for testing" } }, required: ["workflowId"] } } ] }; }); // List available resources server.setRequestHandler(ListResourcesRequestSchema, async () => { return { resources: [ { uri: "automatisch://workflows", mimeType: "application/json", name: "Workflows Overview", description: "Overview of all workflows and their status" }, { uri: "automatisch://connections", mimeType: "application/json", name: "App Connections", description: "List of configured app connections" }, { uri: "automatisch://apps", mimeType: "application/json", name: "Available Apps", description: "Catalog of available apps and integrations" }, { uri: "automatisch://executions/recent", mimeType: "application/json", name: "Recent Executions", description: "Recent workflow executions and their results" } ] }; }); // Handle resource reading server.setRequestHandler(ReadResourceRequestSchema, async (request: any) => { const { uri } = request.params; switch (uri) { case "automatisch://workflows": return { contents: [ { uri, mimeType: "application/json", text: JSON.stringify(await main.api.getWorkflowsOverview(), null, 2) } ] }; case "automatisch://connections": return { contents: [ { uri, mimeType: "application/json", text: JSON.stringify(await main.api.getConnectionsOverview(), null, 2) } ] }; case "automatisch://apps": return { contents: [ { uri, mimeType: "application/json", text: JSON.stringify(await main.api.getAvailableApps(), null, 2) } ] }; case "automatisch://executions/recent": return { contents: [ { uri, mimeType: "application/json", text: JSON.stringify(await main.api.getRecentExecutions(), null, 2) } ] }; default: throw new McpError(ErrorCode.InvalidRequest, `Unknown resource: ${uri}`); } }); // Handle tool calls server.setRequestHandler(CallToolRequestSchema, async (request: any) => {
- src/server.ts:35-36 (helper)Initializes the 'api' object on the main server instance with API helpers, providing 'createConnection' method.public api = apiHelpers(this);