@iflow-mcp/milisp-automatisch-mcp-server 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 milisp
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,215 @@
1
+ [![MseeP.ai Security Assessment Badge](https://mseep.net/pr/milisp-automatisch-mcp-server-badge.png)](https://mseep.ai/app/milisp-automatisch-mcp-server)
2
+
3
+ # Automatisch MCP Server
4
+
5
+ [![npm version](https://img.shields.io/npm/v/automatisch-mcp-server)](https://www.npmjs.com/package/automatisch-mcp-server)
6
+ [![npm downloads](https://img.shields.io/npm/dm/automatisch-mcp-server)](https://www.npmjs.com/package/automatisch-mcp-server)
7
+ [![bundle size](https://img.shields.io/bundlephobia/min/automatisch-mcp-server)](https://bundlephobia.com/result?p=automatisch-mcp-server)
8
+
9
+ A Model Context Protocol (MCP) server that provides AI assistants with access to [Automatisch](https://github.com/automatisch/automatisch) workflow automation capabilities.
10
+
11
+ ## Overview
12
+
13
+ This MCP server enables AI assistants to interact with Automatisch, an open-source Zapier alternative for workflow automation. It provides tools to manage workflows, connections, executions, and app integrations.
14
+
15
+ ## Features
16
+
17
+ ### Tools Available
18
+ - **Workflow Management**: Create, read, update, delete, and test workflows
19
+ - **Connection Management**: Manage app connections and credentials
20
+ - **Execution Monitoring**: View workflow execution history and status
21
+ - **App Discovery**: Browse available apps and their capabilities
22
+ - **Testing**: Test workflows with sample data
23
+
24
+ ### Resources Provided
25
+ - Workflows overview with status summary
26
+ - App connections listing
27
+ - Available apps catalog
28
+ - Recent executions log
29
+
30
+ ## Prerequisites
31
+
32
+ - Node.js 18+
33
+ - Running Automatisch instance
34
+ - Automatisch API access (API key recommended)
35
+
36
+ ## Installation
37
+
38
+ 1. Clone or download the MCP server code
39
+ 2. Install dependencies:
40
+ ```bash
41
+ npm install
42
+ ```
43
+
44
+ 3. Build the project:
45
+ ```bash
46
+ npm run build
47
+ ```
48
+
49
+ ## Configuration
50
+
51
+ Set environment variables:
52
+
53
+ ```bash
54
+ # Automatisch instance URL (default: http://localhost:3001)
55
+ export AUTOMATISCH_BASE_URL="http://your-automatisch-instance:3001"
56
+
57
+ # API key for authentication (optional but recommended)
58
+ export AUTOMATISCH_API_KEY="your-api-key"
59
+ ```
60
+
61
+ ## Usage
62
+
63
+ ### Claude Desktop Integration
64
+
65
+ Add to your Claude Desktop configuration file:
66
+
67
+ ```json
68
+ {
69
+ "mcpServers": {
70
+ "automatisch": {
71
+ "command": "npx",
72
+ "args": ["-y", "automatisch-mcp-server"],
73
+ "env": {
74
+ "AUTOMATISCH_BASE_URL": "http://localhost:3001",
75
+ "AUTOMATISCH_API_KEY": "your-api-key"
76
+ }
77
+ }
78
+ }
79
+ }
80
+ ```
81
+
82
+ ### Standalone Usage
83
+
84
+ ```bash
85
+ npm start
86
+ ```
87
+
88
+ ## Available Tools
89
+
90
+ ### Workflow Management
91
+ - `list_workflows` - List all workflows with optional filtering
92
+ - `get_workflow` - Get detailed workflow information
93
+ - `create_workflow` - Create new workflow
94
+ - `update_workflow` - Update existing workflow
95
+ - `delete_workflow` - Delete workflow
96
+ - `test_workflow` - Test workflow with sample data
97
+
98
+ ### Connection Management
99
+ - `list_connections` - List app connections
100
+ - `create_connection` - Create new app connection
101
+
102
+ ### Monitoring & Discovery
103
+ - `list_executions` - View workflow execution history
104
+ - `get_available_apps` - Browse available apps and integrations
105
+
106
+ ## Example Usage with AI Assistant
107
+
108
+ ```
109
+ # List all active workflows
110
+ "Show me all active workflows"
111
+
112
+ # Create a new workflow
113
+ "Create a workflow named 'Email Notifications' that sends emails when new GitHub issues are created"
114
+
115
+ # Check recent executions
116
+ "Show me the recent workflow executions and their status"
117
+
118
+ # Get workflow details
119
+ "Tell me about the workflow with ID 'abc123'"
120
+
121
+ # List available apps
122
+ "What apps are available for integration?"
123
+ ```
124
+
125
+ ## API Endpoints
126
+
127
+ The server interfaces with these Automatisch API endpoints:
128
+
129
+ - `GET /api/flows` - List workflows
130
+ - `POST /api/flows` - Create workflow
131
+ - `PATCH /api/flows/:id` - Update workflow
132
+ - `DELETE /api/flows/:id` - Delete workflow
133
+ - `GET /api/connections` - List connections
134
+ - `POST /api/connections` - Create connection
135
+ - `GET /api/executions` - List executions
136
+ - `GET /api/apps` - List available apps
137
+
138
+ ## Development
139
+
140
+ ### Running in Development Mode
141
+
142
+ ```bash
143
+ npm run dev
144
+ ```
145
+
146
+ ### Building
147
+
148
+ ```bash
149
+ npm run build
150
+ ```
151
+
152
+ ### Cleaning Build Files
153
+
154
+ ```bash
155
+ npm run clean
156
+ ```
157
+
158
+ ## Error Handling
159
+
160
+ The server includes comprehensive error handling:
161
+
162
+ - Network connectivity issues with Automatisch
163
+ - Invalid API responses
164
+ - Missing required parameters
165
+ - Authentication failures
166
+
167
+ Errors are logged and returned as structured responses to the AI assistant.
168
+
169
+ ## Security Considerations
170
+
171
+ - Use API keys for authentication when available
172
+ - Ensure Automatisch instance is properly secured
173
+ - Limit network access to trusted sources
174
+ - Regularly update dependencies
175
+
176
+ ## Troubleshooting
177
+
178
+ ### Common Issues
179
+
180
+ 1. **Connection Failed**: Verify `AUTOMATISCH_BASE_URL` is correct and accessible
181
+ 2. **Authentication Error**: Check `AUTOMATISCH_API_KEY` is valid
182
+ 3. **Tool Not Found**: Ensure MCP server is properly registered with Claude Desktop
183
+ 4. **API Errors**: Check Automatisch logs for detailed error information
184
+
185
+ ### Debug Mode
186
+
187
+ Enable debug logging by setting:
188
+ ```bash
189
+ export NODE_ENV=development
190
+ ```
191
+
192
+ ## Contributing
193
+
194
+ 1. Fork the repository
195
+ 2. Create a feature branch
196
+ 3. Make your changes
197
+ 4. Add tests if applicable
198
+ 5. Submit a pull request
199
+
200
+ ## License
201
+
202
+ This project is licensed under the MIT License.
203
+
204
+ ## Related Projects
205
+
206
+ - [Automatisch](https://github.com/automatisch/automatisch) - Open source workflow automation
207
+ - [Model Context Protocol](https://modelcontextprotocol.io/) - Protocol specification
208
+ - [MCP SDK](https://github.com/modelcontextprotocol/typescript-sdk) - TypeScript SDK
209
+
210
+ ## Support
211
+
212
+ For issues related to:
213
+ - **Issues specific to MCP Server integration or this repository**: [Open an issue here](https://github.com/milisp/automatisch-mcp-server/issues)
214
+ - **Automatisch**: Visit [Automatisch GitHub Issues](https://github.com/automatisch/automatisch/issues)
215
+ - **MCP Protocol**: Check [MCP Documentation](https://modelcontextprotocol.io/)
@@ -0,0 +1,4 @@
1
+ [2026-01-12 13:29:37] [SUCCESS] 获取项目: 成功fork并克隆仓库 https://github.com/milisp/automatisch-mcp-server
2
+ [2026-01-12 13:30:03] [SUCCESS] 阅读代码: 项目是MCP服务端项目,使用@modelcontextprotocol/sdk,支持stdio协议,Node.js项目
3
+ [2026-01-12 13:30:55] [SUCCESS] 本地测试: 成功构建并测试,检测到10个工具
4
+ [2026-01-12 13:31:17] [SUCCESS] 推送iflow分支: 成功推送到远程仓库
package/bun.lock ADDED
@@ -0,0 +1,124 @@
1
+ {
2
+ "lockfileVersion": 1,
3
+ "workspaces": {
4
+ "": {
5
+ "name": "automatisch-mcp-server",
6
+ "dependencies": {
7
+ "@modelcontextprotocol/sdk": "^0.6.0",
8
+ "node-fetch": "^3.3.2",
9
+ },
10
+ "devDependencies": {
11
+ "@types/node": "^20.0.0",
12
+ "tsx": "^4.0.0",
13
+ "typescript": "^5.0.0",
14
+ },
15
+ },
16
+ },
17
+ "packages": {
18
+ "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.25.5", "", { "os": "aix", "cpu": "ppc64" }, "sha512-9o3TMmpmftaCMepOdA5k/yDw8SfInyzWWTjYTFCX3kPSDJMROQTb8jg+h9Cnwnmm1vOzvxN7gIfB5V2ewpjtGA=="],
19
+
20
+ "@esbuild/android-arm": ["@esbuild/android-arm@0.25.5", "", { "os": "android", "cpu": "arm" }, "sha512-AdJKSPeEHgi7/ZhuIPtcQKr5RQdo6OO2IL87JkianiMYMPbCtot9fxPbrMiBADOWWm3T2si9stAiVsGbTQFkbA=="],
21
+
22
+ "@esbuild/android-arm64": ["@esbuild/android-arm64@0.25.5", "", { "os": "android", "cpu": "arm64" }, "sha512-VGzGhj4lJO+TVGV1v8ntCZWJktV7SGCs3Pn1GRWI1SBFtRALoomm8k5E9Pmwg3HOAal2VDc2F9+PM/rEY6oIDg=="],
23
+
24
+ "@esbuild/android-x64": ["@esbuild/android-x64@0.25.5", "", { "os": "android", "cpu": "x64" }, "sha512-D2GyJT1kjvO//drbRT3Hib9XPwQeWd9vZoBJn+bu/lVsOZ13cqNdDeqIF/xQ5/VmWvMduP6AmXvylO/PIc2isw=="],
25
+
26
+ "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.25.5", "", { "os": "darwin", "cpu": "arm64" }, "sha512-GtaBgammVvdF7aPIgH2jxMDdivezgFu6iKpmT+48+F8Hhg5J/sfnDieg0aeG/jfSvkYQU2/pceFPDKlqZzwnfQ=="],
27
+
28
+ "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.25.5", "", { "os": "darwin", "cpu": "x64" }, "sha512-1iT4FVL0dJ76/q1wd7XDsXrSW+oLoquptvh4CLR4kITDtqi2e/xwXwdCVH8hVHU43wgJdsq7Gxuzcs6Iq/7bxQ=="],
29
+
30
+ "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.25.5", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-nk4tGP3JThz4La38Uy/gzyXtpkPW8zSAmoUhK9xKKXdBCzKODMc2adkB2+8om9BDYugz+uGV7sLmpTYzvmz6Sw=="],
31
+
32
+ "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.25.5", "", { "os": "freebsd", "cpu": "x64" }, "sha512-PrikaNjiXdR2laW6OIjlbeuCPrPaAl0IwPIaRv+SMV8CiM8i2LqVUHFC1+8eORgWyY7yhQY+2U2fA55mBzReaw=="],
33
+
34
+ "@esbuild/linux-arm": ["@esbuild/linux-arm@0.25.5", "", { "os": "linux", "cpu": "arm" }, "sha512-cPzojwW2okgh7ZlRpcBEtsX7WBuqbLrNXqLU89GxWbNt6uIg78ET82qifUy3W6OVww6ZWobWub5oqZOVtwolfw=="],
35
+
36
+ "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.25.5", "", { "os": "linux", "cpu": "arm64" }, "sha512-Z9kfb1v6ZlGbWj8EJk9T6czVEjjq2ntSYLY2cw6pAZl4oKtfgQuS4HOq41M/BcoLPzrUbNd+R4BXFyH//nHxVg=="],
37
+
38
+ "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.25.5", "", { "os": "linux", "cpu": "ia32" }, "sha512-sQ7l00M8bSv36GLV95BVAdhJ2QsIbCuCjh/uYrWiMQSUuV+LpXwIqhgJDcvMTj+VsQmqAHL2yYaasENvJ7CDKA=="],
39
+
40
+ "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-0ur7ae16hDUC4OL5iEnDb0tZHDxYmuQyhKhsPBV8f99f6Z9KQM02g33f93rNH5A30agMS46u2HP6qTdEt6Q1kg=="],
41
+
42
+ "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kB/66P1OsHO5zLz0i6X0RxlQ+3cu0mkxS3TKFvkb5lin6uwZ/ttOkP3Z8lfR9mJOBk14ZwZ9182SIIWFGNmqmg=="],
43
+
44
+ "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.25.5", "", { "os": "linux", "cpu": "ppc64" }, "sha512-UZCmJ7r9X2fe2D6jBmkLBMQetXPXIsZjQJCjgwpVDz+YMcS6oFR27alkgGv3Oqkv07bxdvw7fyB71/olceJhkQ=="],
45
+
46
+ "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.25.5", "", { "os": "linux", "cpu": "none" }, "sha512-kTxwu4mLyeOlsVIFPfQo+fQJAV9mh24xL+y+Bm6ej067sYANjyEw1dNHmvoqxJUCMnkBdKpvOn0Ahql6+4VyeA=="],
47
+
48
+ "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.25.5", "", { "os": "linux", "cpu": "s390x" }, "sha512-K2dSKTKfmdh78uJ3NcWFiqyRrimfdinS5ErLSn3vluHNeHVnBAFWC8a4X5N+7FgVE1EjXS1QDZbpqZBjfrqMTQ=="],
49
+
50
+ "@esbuild/linux-x64": ["@esbuild/linux-x64@0.25.5", "", { "os": "linux", "cpu": "x64" }, "sha512-uhj8N2obKTE6pSZ+aMUbqq+1nXxNjZIIjCjGLfsWvVpy7gKCOL6rsY1MhRh9zLtUtAI7vpgLMK6DxjO8Qm9lJw=="],
51
+
52
+ "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.25.5", "", { "os": "none", "cpu": "arm64" }, "sha512-pwHtMP9viAy1oHPvgxtOv+OkduK5ugofNTVDilIzBLpoWAM16r7b/mxBvfpuQDpRQFMfuVr5aLcn4yveGvBZvw=="],
53
+
54
+ "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.25.5", "", { "os": "none", "cpu": "x64" }, "sha512-WOb5fKrvVTRMfWFNCroYWWklbnXH0Q5rZppjq0vQIdlsQKuw6mdSihwSo4RV/YdQ5UCKKvBy7/0ZZYLBZKIbwQ=="],
55
+
56
+ "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.25.5", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-7A208+uQKgTxHd0G0uqZO8UjK2R0DDb4fDmERtARjSHWxqMTye4Erz4zZafx7Di9Cv+lNHYuncAkiGFySoD+Mw=="],
57
+
58
+ "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.25.5", "", { "os": "openbsd", "cpu": "x64" }, "sha512-G4hE405ErTWraiZ8UiSoesH8DaCsMm0Cay4fsFWOOUcz8b8rC6uCvnagr+gnioEjWn0wC+o1/TAHt+It+MpIMg=="],
59
+
60
+ "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.25.5", "", { "os": "sunos", "cpu": "x64" }, "sha512-l+azKShMy7FxzY0Rj4RCt5VD/q8mG/e+mDivgspo+yL8zW7qEwctQ6YqKX34DTEleFAvCIUviCFX1SDZRSyMQA=="],
61
+
62
+ "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.25.5", "", { "os": "win32", "cpu": "arm64" }, "sha512-O2S7SNZzdcFG7eFKgvwUEZ2VG9D/sn/eIiz8XRZ1Q/DO5a3s76Xv0mdBzVM5j5R639lXQmPmSo0iRpHqUUrsxw=="],
63
+
64
+ "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.25.5", "", { "os": "win32", "cpu": "ia32" }, "sha512-onOJ02pqs9h1iMJ1PQphR+VZv8qBMQ77Klcsqv9CNW2w6yLqoURLcgERAIurY6QE63bbLuqgP9ATqajFLK5AMQ=="],
65
+
66
+ "@esbuild/win32-x64": ["@esbuild/win32-x64@0.25.5", "", { "os": "win32", "cpu": "x64" }, "sha512-TXv6YnJ8ZMVdX+SXWVBo/0p8LTcrUYngpWjvm91TMjjBQii7Oz11Lw5lbDV5Y0TzuhSJHwiH4hEtC1I42mMS0g=="],
67
+
68
+ "@modelcontextprotocol/sdk": ["@modelcontextprotocol/sdk@0.6.1", "", { "dependencies": { "content-type": "^1.0.5", "raw-body": "^3.0.0", "zod": "^3.23.8" } }, "sha512-OkVXMix3EIbB5Z6yife2XTrSlOnVvCLR1Kg91I4pYFEsV9RbnoyQVScXCuVhGaZHOnTZgso8lMQN1Po2TadGKQ=="],
69
+
70
+ "@types/node": ["@types/node@20.19.1", "", { "dependencies": { "undici-types": "~6.21.0" } }, "sha512-jJD50LtlD2dodAEO653i3YF04NWak6jN3ky+Ri3Em3mGR39/glWiboM/IePaRbgwSfqM1TpGXfAg8ohn/4dTgA=="],
71
+
72
+ "bytes": ["bytes@3.1.2", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
73
+
74
+ "content-type": ["content-type@1.0.5", "", {}, "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA=="],
75
+
76
+ "data-uri-to-buffer": ["data-uri-to-buffer@4.0.1", "", {}, "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A=="],
77
+
78
+ "depd": ["depd@2.0.0", "", {}, "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="],
79
+
80
+ "esbuild": ["esbuild@0.25.5", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.5", "@esbuild/android-arm": "0.25.5", "@esbuild/android-arm64": "0.25.5", "@esbuild/android-x64": "0.25.5", "@esbuild/darwin-arm64": "0.25.5", "@esbuild/darwin-x64": "0.25.5", "@esbuild/freebsd-arm64": "0.25.5", "@esbuild/freebsd-x64": "0.25.5", "@esbuild/linux-arm": "0.25.5", "@esbuild/linux-arm64": "0.25.5", "@esbuild/linux-ia32": "0.25.5", "@esbuild/linux-loong64": "0.25.5", "@esbuild/linux-mips64el": "0.25.5", "@esbuild/linux-ppc64": "0.25.5", "@esbuild/linux-riscv64": "0.25.5", "@esbuild/linux-s390x": "0.25.5", "@esbuild/linux-x64": "0.25.5", "@esbuild/netbsd-arm64": "0.25.5", "@esbuild/netbsd-x64": "0.25.5", "@esbuild/openbsd-arm64": "0.25.5", "@esbuild/openbsd-x64": "0.25.5", "@esbuild/sunos-x64": "0.25.5", "@esbuild/win32-arm64": "0.25.5", "@esbuild/win32-ia32": "0.25.5", "@esbuild/win32-x64": "0.25.5" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-P8OtKZRv/5J5hhz0cUAdu/cLuPIKXpQl1R9pZtvmHWQvrAUVd0UNIPT4IB4W3rNOqVO0rlqHmCIbSwxh/c9yUQ=="],
81
+
82
+ "fetch-blob": ["fetch-blob@3.2.0", "", { "dependencies": { "node-domexception": "^1.0.0", "web-streams-polyfill": "^3.0.3" } }, "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ=="],
83
+
84
+ "formdata-polyfill": ["formdata-polyfill@4.0.10", "", { "dependencies": { "fetch-blob": "^3.1.2" } }, "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g=="],
85
+
86
+ "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="],
87
+
88
+ "get-tsconfig": ["get-tsconfig@4.10.1", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-auHyJ4AgMz7vgS8Hp3N6HXSmlMdUyhSUrfBF16w153rxtLIEOE+HGqaBppczZvnHLqQJfiHotCYpNhl0lUROFQ=="],
89
+
90
+ "http-errors": ["http-errors@2.0.0", "", { "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", "setprototypeof": "1.2.0", "statuses": "2.0.1", "toidentifier": "1.0.1" } }, "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ=="],
91
+
92
+ "iconv-lite": ["iconv-lite@0.6.3", "", { "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" } }, "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw=="],
93
+
94
+ "inherits": ["inherits@2.0.4", "", {}, "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="],
95
+
96
+ "node-domexception": ["node-domexception@1.0.0", "", {}, "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ=="],
97
+
98
+ "node-fetch": ["node-fetch@3.3.2", "", { "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", "formdata-polyfill": "^4.0.10" } }, "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA=="],
99
+
100
+ "raw-body": ["raw-body@3.0.0", "", { "dependencies": { "bytes": "3.1.2", "http-errors": "2.0.0", "iconv-lite": "0.6.3", "unpipe": "1.0.0" } }, "sha512-RmkhL8CAyCRPXCE28MMH0z2PNWQBNk2Q09ZdxM9IOOXwxwZbN+qbWaatPkdkWIKL2ZVDImrN/pK5HTRz2PcS4g=="],
101
+
102
+ "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="],
103
+
104
+ "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="],
105
+
106
+ "setprototypeof": ["setprototypeof@1.2.0", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
107
+
108
+ "statuses": ["statuses@2.0.1", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
109
+
110
+ "toidentifier": ["toidentifier@1.0.1", "", {}, "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="],
111
+
112
+ "tsx": ["tsx@4.20.3", "", { "dependencies": { "esbuild": "~0.25.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-qjbnuR9Tr+FJOMBqJCW5ehvIo/buZq7vH7qD7JziU98h6l3qGy0a/yPFjwO+y0/T7GFpNgNAvEcPPVfyT8rrPQ=="],
113
+
114
+ "typescript": ["typescript@5.8.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ=="],
115
+
116
+ "undici-types": ["undici-types@6.21.0", "", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
117
+
118
+ "unpipe": ["unpipe@1.0.0", "", {}, "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="],
119
+
120
+ "web-streams-polyfill": ["web-streams-polyfill@3.3.3", "", {}, "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw=="],
121
+
122
+ "zod": ["zod@3.25.67", "", {}, "sha512-idA2YXwpCdqUSKRCACDE6ItZD9TZzy3OZMtpfLoh6oPR47lipysRrJfjzMqFxQ3uJuUPyUeWe1r9vLH33xO/Qw=="],
123
+ }
124
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAGA,wBAAgB,UAAU,CAAC,IAAI,EAAE,GAAG;2BAEK,GAAG,YAAW,GAAG;2BAGlB,GAAG;8BAGC,GAAG;2BAGN,GAAG;iCAGG,GAAG,QAAQ,GAAG;iCAGd,GAAG;6BAGR,GAAG;6BAGF,GAAG;4BAGL,GAAG;8BAGD,GAAG;+BAGD,GAAG,aAAY,GAAG;;;;EAa9D"}
package/dist/api.js ADDED
@@ -0,0 +1,48 @@
1
+ // Provide all API helper methods for Automatisch MCP
2
+ export function apiHelpers(main) {
3
+ return {
4
+ apiRequest: async function (endpoint, options = {}) {
5
+ // ... copy apiRequest logic from index.ts ...
6
+ },
7
+ listWorkflows: async function (args = {}) {
8
+ // ... copy listWorkflows logic from index.ts ...
9
+ },
10
+ getWorkflow: async function (workflowId) {
11
+ // ... copy getWorkflow logic from index.ts ...
12
+ },
13
+ createWorkflow: async function (data) {
14
+ // ... copy createWorkflow logic from index.ts ...
15
+ },
16
+ updateWorkflow: async function (workflowId, data) {
17
+ // ... copy updateWorkflow logic from index.ts ...
18
+ },
19
+ deleteWorkflow: async function (workflowId) {
20
+ // ... copy deleteWorkflow logic from index.ts ...
21
+ },
22
+ listConnections: async function (args = {}) {
23
+ // ... copy listConnections logic from index.ts ...
24
+ },
25
+ createConnection: async function (data) {
26
+ // ... copy createConnection logic from index.ts ...
27
+ },
28
+ listExecutions: async function (args = {}) {
29
+ // ... copy listExecutions logic from index.ts ...
30
+ },
31
+ getAvailableApps: async function (args = {}) {
32
+ // ... copy getAvailableApps logic from index.ts ...
33
+ },
34
+ testWorkflow: async function (workflowId, testData = {}) {
35
+ // ... copy testWorkflow logic from index.ts ...
36
+ },
37
+ getWorkflowsOverview: async function () {
38
+ // ... copy getWorkflowsOverview logic from index.ts ...
39
+ },
40
+ getConnectionsOverview: async function () {
41
+ // ... copy getConnectionsOverview logic from index.ts ...
42
+ },
43
+ getRecentExecutions: async function () {
44
+ // ... copy getRecentExecutions logic from index.ts ...
45
+ }
46
+ };
47
+ }
48
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAEA,qDAAqD;AACrD,MAAM,UAAU,UAAU,CAAC,IAAS;IAClC,OAAO;QACL,UAAU,EAAE,KAAK,WAAU,QAAa,EAAE,UAAe,EAAE;YACzD,8CAA8C;QAChD,CAAC;QACD,aAAa,EAAE,KAAK,WAAU,OAAY,EAAE;YAC1C,iDAAiD;QACnD,CAAC;QACD,WAAW,EAAE,KAAK,WAAU,UAAe;YACzC,+CAA+C;QACjD,CAAC;QACD,cAAc,EAAE,KAAK,WAAU,IAAS;YACtC,kDAAkD;QACpD,CAAC;QACD,cAAc,EAAE,KAAK,WAAU,UAAe,EAAE,IAAS;YACvD,kDAAkD;QACpD,CAAC;QACD,cAAc,EAAE,KAAK,WAAU,UAAe;YAC5C,kDAAkD;QACpD,CAAC;QACD,eAAe,EAAE,KAAK,WAAU,OAAY,EAAE;YAC5C,mDAAmD;QACrD,CAAC;QACD,gBAAgB,EAAE,KAAK,WAAU,IAAS;YACxC,oDAAoD;QACtD,CAAC;QACD,cAAc,EAAE,KAAK,WAAU,OAAY,EAAE;YAC3C,kDAAkD;QACpD,CAAC;QACD,gBAAgB,EAAE,KAAK,WAAU,OAAY,EAAE;YAC7C,oDAAoD;QACtD,CAAC;QACD,YAAY,EAAE,KAAK,WAAU,UAAe,EAAE,WAAgB,EAAE;YAC9D,gDAAgD;QAClD,CAAC;QACD,oBAAoB,EAAE,KAAK;YACzB,wDAAwD;QAC1D,CAAC;QACD,sBAAsB,EAAE,KAAK;YAC3B,0DAA0D;QAC5D,CAAC;QACD,mBAAmB,EAAE,KAAK;YACxB,uDAAuD;QACzD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAwXtD"}
@@ -0,0 +1,378 @@
1
+ import { ListToolsRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, CallToolRequestSchema, McpError, ErrorCode } from "@modelcontextprotocol/sdk/types.js";
2
+ // Setup all request handlers for the Automatisch MCP server
3
+ export function setupHandlers(server, main) {
4
+ // List available tools
5
+ server.setRequestHandler(ListToolsRequestSchema, async () => {
6
+ return {
7
+ tools: [
8
+ {
9
+ name: "list_workflows",
10
+ description: "List all workflows in Automatisch",
11
+ inputSchema: {
12
+ type: "object",
13
+ properties: {
14
+ status: {
15
+ type: "string",
16
+ enum: ["active", "inactive", "all"],
17
+ description: "Filter workflows by status"
18
+ },
19
+ limit: {
20
+ type: "number",
21
+ description: "Limit number of results"
22
+ }
23
+ }
24
+ }
25
+ },
26
+ {
27
+ name: "get_workflow",
28
+ description: "Get detailed information about a specific workflow",
29
+ inputSchema: {
30
+ type: "object",
31
+ properties: {
32
+ workflowId: {
33
+ type: "string",
34
+ description: "Workflow ID to retrieve"
35
+ }
36
+ },
37
+ required: ["workflowId"]
38
+ }
39
+ },
40
+ {
41
+ name: "create_workflow",
42
+ description: "Create a new workflow",
43
+ inputSchema: {
44
+ type: "object",
45
+ properties: {
46
+ name: {
47
+ type: "string",
48
+ description: "Workflow name"
49
+ },
50
+ description: {
51
+ type: "string",
52
+ description: "Workflow description"
53
+ },
54
+ active: {
55
+ type: "boolean",
56
+ description: "Whether workflow should be active",
57
+ default: false
58
+ }
59
+ },
60
+ required: ["name"]
61
+ }
62
+ },
63
+ {
64
+ name: "update_workflow",
65
+ description: "Update an existing workflow",
66
+ inputSchema: {
67
+ type: "object",
68
+ properties: {
69
+ workflowId: {
70
+ type: "string",
71
+ description: "Workflow ID to update"
72
+ },
73
+ name: {
74
+ type: "string",
75
+ description: "New workflow name"
76
+ },
77
+ description: {
78
+ type: "string",
79
+ description: "New workflow description"
80
+ },
81
+ active: {
82
+ type: "boolean",
83
+ description: "Workflow active status"
84
+ }
85
+ },
86
+ required: ["workflowId"]
87
+ }
88
+ },
89
+ {
90
+ name: "delete_workflow",
91
+ description: "Delete a workflow",
92
+ inputSchema: {
93
+ type: "object",
94
+ properties: {
95
+ workflowId: {
96
+ type: "string",
97
+ description: "Workflow ID to delete"
98
+ }
99
+ },
100
+ required: ["workflowId"]
101
+ }
102
+ },
103
+ {
104
+ name: "list_connections",
105
+ description: "List all app connections",
106
+ inputSchema: {
107
+ type: "object",
108
+ properties: {
109
+ appKey: {
110
+ type: "string",
111
+ description: "Filter by specific app"
112
+ }
113
+ }
114
+ }
115
+ },
116
+ {
117
+ name: "create_connection",
118
+ description: "Create a new app connection",
119
+ inputSchema: {
120
+ type: "object",
121
+ properties: {
122
+ appKey: {
123
+ type: "string",
124
+ description: "App identifier (e.g., 'slack', 'github')"
125
+ },
126
+ name: {
127
+ type: "string",
128
+ description: "Connection name"
129
+ },
130
+ credentials: {
131
+ type: "object",
132
+ description: "App-specific credentials and configuration"
133
+ }
134
+ },
135
+ required: ["appKey", "name", "credentials"]
136
+ }
137
+ },
138
+ {
139
+ name: "list_executions",
140
+ description: "List workflow executions",
141
+ inputSchema: {
142
+ type: "object",
143
+ properties: {
144
+ workflowId: {
145
+ type: "string",
146
+ description: "Filter by workflow ID"
147
+ },
148
+ status: {
149
+ type: "string",
150
+ enum: ["success", "failure", "running"],
151
+ description: "Filter by execution status"
152
+ },
153
+ limit: {
154
+ type: "number",
155
+ description: "Limit number of results"
156
+ }
157
+ }
158
+ }
159
+ },
160
+ {
161
+ name: "get_available_apps",
162
+ description: "Get list of available apps and their capabilities",
163
+ inputSchema: {
164
+ type: "object",
165
+ properties: {
166
+ category: {
167
+ type: "string",
168
+ description: "Filter by app category"
169
+ }
170
+ }
171
+ }
172
+ },
173
+ {
174
+ name: "test_workflow",
175
+ description: "Test a workflow with sample data",
176
+ inputSchema: {
177
+ type: "object",
178
+ properties: {
179
+ workflowId: {
180
+ type: "string",
181
+ description: "Workflow ID to test"
182
+ },
183
+ testData: {
184
+ type: "object",
185
+ description: "Sample data for testing"
186
+ }
187
+ },
188
+ required: ["workflowId"]
189
+ }
190
+ }
191
+ ]
192
+ };
193
+ });
194
+ // List available resources
195
+ server.setRequestHandler(ListResourcesRequestSchema, async () => {
196
+ return {
197
+ resources: [
198
+ {
199
+ uri: "automatisch://workflows",
200
+ mimeType: "application/json",
201
+ name: "Workflows Overview",
202
+ description: "Overview of all workflows and their status"
203
+ },
204
+ {
205
+ uri: "automatisch://connections",
206
+ mimeType: "application/json",
207
+ name: "App Connections",
208
+ description: "List of configured app connections"
209
+ },
210
+ {
211
+ uri: "automatisch://apps",
212
+ mimeType: "application/json",
213
+ name: "Available Apps",
214
+ description: "Catalog of available apps and integrations"
215
+ },
216
+ {
217
+ uri: "automatisch://executions/recent",
218
+ mimeType: "application/json",
219
+ name: "Recent Executions",
220
+ description: "Recent workflow executions and their results"
221
+ }
222
+ ]
223
+ };
224
+ });
225
+ // Handle resource reading
226
+ server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
227
+ const { uri } = request.params;
228
+ switch (uri) {
229
+ case "automatisch://workflows":
230
+ return {
231
+ contents: [
232
+ {
233
+ uri,
234
+ mimeType: "application/json",
235
+ text: JSON.stringify(await main.api.getWorkflowsOverview(), null, 2)
236
+ }
237
+ ]
238
+ };
239
+ case "automatisch://connections":
240
+ return {
241
+ contents: [
242
+ {
243
+ uri,
244
+ mimeType: "application/json",
245
+ text: JSON.stringify(await main.api.getConnectionsOverview(), null, 2)
246
+ }
247
+ ]
248
+ };
249
+ case "automatisch://apps":
250
+ return {
251
+ contents: [
252
+ {
253
+ uri,
254
+ mimeType: "application/json",
255
+ text: JSON.stringify(await main.api.getAvailableApps(), null, 2)
256
+ }
257
+ ]
258
+ };
259
+ case "automatisch://executions/recent":
260
+ return {
261
+ contents: [
262
+ {
263
+ uri,
264
+ mimeType: "application/json",
265
+ text: JSON.stringify(await main.api.getRecentExecutions(), null, 2)
266
+ }
267
+ ]
268
+ };
269
+ default:
270
+ throw new McpError(ErrorCode.InvalidRequest, `Unknown resource: ${uri}`);
271
+ }
272
+ });
273
+ // Handle tool calls
274
+ server.setRequestHandler(CallToolRequestSchema, async (request) => {
275
+ const { name, arguments: args } = request.params;
276
+ try {
277
+ switch (name) {
278
+ case "list_workflows":
279
+ return {
280
+ content: [
281
+ {
282
+ type: "text",
283
+ text: JSON.stringify(await main.api.listWorkflows(args), null, 2)
284
+ }
285
+ ]
286
+ };
287
+ case "get_workflow":
288
+ return {
289
+ content: [
290
+ {
291
+ type: "text",
292
+ text: JSON.stringify(await main.api.getWorkflow(args?.workflowId), null, 2)
293
+ }
294
+ ]
295
+ };
296
+ case "create_workflow":
297
+ return {
298
+ content: [
299
+ {
300
+ type: "text",
301
+ text: JSON.stringify(await main.api.createWorkflow(args), null, 2)
302
+ }
303
+ ]
304
+ };
305
+ case "update_workflow":
306
+ return {
307
+ content: [
308
+ {
309
+ type: "text",
310
+ text: JSON.stringify(await main.api.updateWorkflow(args?.workflowId, args), null, 2)
311
+ }
312
+ ]
313
+ };
314
+ case "delete_workflow":
315
+ return {
316
+ content: [
317
+ {
318
+ type: "text",
319
+ text: JSON.stringify(await main.api.deleteWorkflow(args?.workflowId), null, 2)
320
+ }
321
+ ]
322
+ };
323
+ case "list_connections":
324
+ return {
325
+ content: [
326
+ {
327
+ type: "text",
328
+ text: JSON.stringify(await main.api.listConnections(args), null, 2)
329
+ }
330
+ ]
331
+ };
332
+ case "create_connection":
333
+ return {
334
+ content: [
335
+ {
336
+ type: "text",
337
+ text: JSON.stringify(await main.api.createConnection(args), null, 2)
338
+ }
339
+ ]
340
+ };
341
+ case "list_executions":
342
+ return {
343
+ content: [
344
+ {
345
+ type: "text",
346
+ text: JSON.stringify(await main.api.listExecutions(args), null, 2)
347
+ }
348
+ ]
349
+ };
350
+ case "get_available_apps":
351
+ return {
352
+ content: [
353
+ {
354
+ type: "text",
355
+ text: JSON.stringify(await main.api.getAvailableApps(args), null, 2)
356
+ }
357
+ ]
358
+ };
359
+ case "test_workflow":
360
+ return {
361
+ content: [
362
+ {
363
+ type: "text",
364
+ text: JSON.stringify(await main.api.testWorkflow(args?.workflowId, args?.testData), null, 2)
365
+ }
366
+ ]
367
+ };
368
+ default:
369
+ throw new McpError(ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
370
+ }
371
+ }
372
+ catch (error) {
373
+ const errorMessage = error instanceof Error ? error.message : String(error);
374
+ throw new McpError(ErrorCode.InternalError, `Tool execution failed: ${errorMessage}`);
375
+ }
376
+ });
377
+ }
378
+ //# sourceMappingURL=handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handlers.js","sourceRoot":"","sources":["../src/handlers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env node
2
+ import AutomatischMCPServer from './server.js';
3
+ const server = new AutomatischMCPServer();
4
+ server.run().catch(console.error);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,oBAAoB,MAAM,aAAa,CAAC;AAE/C,MAAM,MAAM,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAC1C,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,cAAM,oBAAoB;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;;IAyBhB,GAAG;;;;;;;;;;;;;;;MAAoB;IAGxB,GAAG;CAKV;AAED,eAAe,oBAAoB,CAAC"}
package/dist/server.js ADDED
@@ -0,0 +1,36 @@
1
+ import { Server } from "@modelcontextprotocol/sdk/server/index.js";
2
+ import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
3
+ import { setupHandlers } from './handlers.js';
4
+ import { apiHelpers } from './api.js';
5
+ // AutomatischMCPServer provides the main server logic for Automatisch MCP
6
+ class AutomatischMCPServer {
7
+ server;
8
+ baseUrl;
9
+ apiKey;
10
+ constructor() {
11
+ this.server = new Server({
12
+ name: "automatisch-mcp-server",
13
+ version: "0.1.0",
14
+ }, {
15
+ capabilities: {
16
+ resources: {},
17
+ tools: {},
18
+ },
19
+ });
20
+ // Environment variables for Automatisch API connection
21
+ this.baseUrl = process.env.AUTOMATISCH_BASE_URL || 'http://localhost:3001';
22
+ this.apiKey = process.env.AUTOMATISCH_API_KEY || '';
23
+ // Setup all request handlers
24
+ setupHandlers(this.server, this);
25
+ }
26
+ // Expose API helpers for handlers
27
+ api = apiHelpers(this);
28
+ // Start the server using stdio transport
29
+ async run() {
30
+ const transport = new StdioServerTransport();
31
+ await this.server.connect(transport);
32
+ console.error("Automatisch MCP server running on stdio");
33
+ }
34
+ }
35
+ export default AutomatischMCPServer;
36
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,0EAA0E;AAC1E,MAAM,oBAAoB;IAChB,MAAM,CAAS;IACf,OAAO,CAAS;IAChB,MAAM,CAAS;IAEvB;QACE,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CACtB;YACE,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;SACjB,EACD;YACE,YAAY,EAAE;gBACZ,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,EAAE;aACV;SACF,CACF,CAAC;QAEF,uDAAuD;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,uBAAuB,CAAC;QAC3E,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;QAEpD,6BAA6B;QAC7B,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,kCAAkC;IAC3B,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAE9B,yCAAyC;IACzC,KAAK,CAAC,GAAG;QACP,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;QAC7C,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,yCAAyC,CAAC,CAAC;IAC3D,CAAC;CACF;AAED,eAAe,oBAAoB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "@iflow-mcp/milisp-automatisch-mcp-server",
3
+ "version": "0.1.0",
4
+ "description": "MCP Server for Automatisch workflow automation platform",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "automatisch-mcp-server": "./dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts",
14
+ "clean": "rm -rf dist"
15
+ },
16
+ "keywords": [
17
+ "mcp",
18
+ "model-context-protocol",
19
+ "automatisch",
20
+ "workflow",
21
+ "automation",
22
+ "ai"
23
+ ],
24
+ "author": "milisp",
25
+ "license": "MIT",
26
+ "dependencies": {
27
+ "@modelcontextprotocol/sdk": "^0.6.0",
28
+ "node-fetch": "^3.3.2"
29
+ },
30
+ "devDependencies": {
31
+ "@types/node": "^20.0.0",
32
+ "tsx": "^4.0.0",
33
+ "typescript": "^5.0.0"
34
+ },
35
+ "engines": {
36
+ "node": ">=18.0.0"
37
+ }
38
+ }
package/push_info.json ADDED
@@ -0,0 +1 @@
1
+ {"push_platform":"github","fork_url":"https://github.com/iflow-mcp/milisp-automatisch-mcp-server","fork_branch":"iflow"}