@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 +21 -0
- package/README.md +215 -0
- package/b0883e1d9dc54fbaad7ad133edf2c8f8_process.log +4 -0
- package/bun.lock +124 -0
- package/dist/api.d.ts.map +1 -0
- package/dist/api.js +48 -0
- package/dist/api.js.map +1 -0
- package/dist/handlers.d.ts.map +1 -0
- package/dist/handlers.js +378 -0
- package/dist/handlers.js.map +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +36 -0
- package/dist/server.js.map +1 -0
- package/package.json +38 -0
- package/push_info.json +1 -0
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
|
+
[](https://mseep.ai/app/milisp-automatisch-mcp-server)
|
|
2
|
+
|
|
3
|
+
# Automatisch MCP Server
|
|
4
|
+
|
|
5
|
+
[](https://www.npmjs.com/package/automatisch-mcp-server)
|
|
6
|
+
[](https://www.npmjs.com/package/automatisch-mcp-server)
|
|
7
|
+
[](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
|
package/dist/api.js.map
ADDED
|
@@ -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"}
|
package/dist/handlers.js
ADDED
|
@@ -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 @@
|
|
|
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"}
|