asm-mcp-proxy 2.0.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/README.md +109 -0
- package/dist/gateway-client.d.ts +21 -0
- package/dist/gateway-client.d.ts.map +1 -0
- package/dist/gateway-client.js +266 -0
- package/dist/gateway-client.js.map +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +424 -0
- package/dist/index.js.map +1 -0
- package/dist/local-tools.d.ts +93 -0
- package/dist/local-tools.d.ts.map +1 -0
- package/dist/local-tools.js +356 -0
- package/dist/local-tools.js.map +1 -0
- package/dist/router.d.ts +44 -0
- package/dist/router.d.ts.map +1 -0
- package/dist/router.js +223 -0
- package/dist/router.js.map +1 -0
- package/dist/token-manager.d.ts +55 -0
- package/dist/token-manager.d.ts.map +1 -0
- package/dist/token-manager.js +210 -0
- package/dist/token-manager.js.map +1 -0
- package/package.json +47 -0
package/README.md
ADDED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
# ASM MCP Proxy
|
|
2
|
+
|
|
3
|
+
Stdio to HTTP proxy for ASM MCP Gateway. Connects Model Context Protocol (MCP) clients like Windsurf, Cursor, and Claude Desktop to ASM Platform running on Cloudflare Workers.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
- ✅ **Stdio ↔ HTTP Bridge**: Converts MCP stdio protocol to HTTP/JSON-RPC
|
|
8
|
+
- ✅ **JWT Authentication**: Secure token-based auth with auto-refresh
|
|
9
|
+
- ✅ **Local Tools**: File operations, git, terminal commands
|
|
10
|
+
- ✅ **Intelligent Router**: Routes tools between local and cloud
|
|
11
|
+
- ✅ **29+ ASM Tools**: Full access to ASM Platform capabilities
|
|
12
|
+
|
|
13
|
+
## Quick Start
|
|
14
|
+
|
|
15
|
+
### Option 1: NPX (Recommended)
|
|
16
|
+
|
|
17
|
+
No installation needed! Use directly in your MCP config:
|
|
18
|
+
|
|
19
|
+
```json
|
|
20
|
+
{
|
|
21
|
+
"mcpServers": {
|
|
22
|
+
"asm-platform": {
|
|
23
|
+
"command": "npx",
|
|
24
|
+
"args": ["-y", "asm-mcp-proxy"],
|
|
25
|
+
"env": {
|
|
26
|
+
"MCP_JWT_TOKEN": "your-jwt-token-here",
|
|
27
|
+
"MCP_GATEWAY_URL": "https://asm-api-gateway.vitor-9a3.workers.dev"
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Option 2: Global Install
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npm install -g asm-mcp-proxy
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Then in your MCP config:
|
|
41
|
+
|
|
42
|
+
```json
|
|
43
|
+
{
|
|
44
|
+
"mcpServers": {
|
|
45
|
+
"asm-platform": {
|
|
46
|
+
"command": "asm-mcp-proxy",
|
|
47
|
+
"env": {
|
|
48
|
+
"MCP_JWT_TOKEN": "your-jwt-token-here"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Getting Your JWT Token
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
curl -X POST https://asm-api-gateway.vitor-9a3.workers.dev/auth/login \
|
|
59
|
+
-H "Content-Type: application/json" \
|
|
60
|
+
-d '{"email":"your-email@example.com","password":"your-password"}'
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
Copy the `token` field from the response.
|
|
64
|
+
|
|
65
|
+
## Environment Variables
|
|
66
|
+
|
|
67
|
+
- `MCP_JWT_TOKEN` (required): Your authentication token
|
|
68
|
+
- `MCP_GATEWAY_URL` (optional): Gateway URL (default: https://asm-api-gateway.vitor-9a3.workers.dev)
|
|
69
|
+
- `MCP_DEBUG` (optional): Enable debug logging (true/false)
|
|
70
|
+
|
|
71
|
+
## Supported Clients
|
|
72
|
+
|
|
73
|
+
- ✅ Windsurf (Codeium)
|
|
74
|
+
- ✅ Cursor
|
|
75
|
+
- ✅ Claude Desktop
|
|
76
|
+
- ✅ Any MCP-compatible client
|
|
77
|
+
|
|
78
|
+
## Architecture
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
MCP Client (Windsurf/Cursor)
|
|
82
|
+
↓ stdio (JSON-RPC 2.0)
|
|
83
|
+
asm-mcp-proxy
|
|
84
|
+
↓ HTTPS (JSON-RPC 2.0)
|
|
85
|
+
ASM API Gateway (Cloudflare Workers)
|
|
86
|
+
↓
|
|
87
|
+
ASM Platform (29+ tools)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Available Tools
|
|
91
|
+
|
|
92
|
+
The proxy provides access to 29+ ASM tools including:
|
|
93
|
+
|
|
94
|
+
- Memory management (L1/L2/L3)
|
|
95
|
+
- Pattern storage and search
|
|
96
|
+
- Code generation (Nuxt, components, APIs)
|
|
97
|
+
- Validation (Gate5, AI review)
|
|
98
|
+
- Git operations
|
|
99
|
+
- File operations (read, write, edit)
|
|
100
|
+
- Terminal commands
|
|
101
|
+
- And more...
|
|
102
|
+
|
|
103
|
+
## License
|
|
104
|
+
|
|
105
|
+
MIT
|
|
106
|
+
|
|
107
|
+
## Support
|
|
108
|
+
|
|
109
|
+
For issues and questions, visit: https://github.com/vitor606/ASM-MCP
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway Client - Forward tools to cloud gateway
|
|
3
|
+
*/
|
|
4
|
+
import { ToolResult } from './local-tools';
|
|
5
|
+
/**
|
|
6
|
+
* Forward tool call to gateway via JSON-RPC
|
|
7
|
+
*/
|
|
8
|
+
export declare function forwardToGateway(toolName: string, args: Record<string, unknown>, gatewayUrl: string, jwtToken: string): Promise<ToolResult>;
|
|
9
|
+
/**
|
|
10
|
+
* List tools from gateway
|
|
11
|
+
*/
|
|
12
|
+
export declare function listToolsFromGateway(gatewayUrl: string, jwtToken: string): Promise<ToolResult>;
|
|
13
|
+
/**
|
|
14
|
+
* Refresh JWT token
|
|
15
|
+
*/
|
|
16
|
+
export declare function refreshToken(email: string, password: string, gatewayUrl: string): Promise<{
|
|
17
|
+
success: boolean;
|
|
18
|
+
token?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
}>;
|
|
21
|
+
//# sourceMappingURL=gateway-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-client.d.ts","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CAsGrB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,UAAU,CAAC,CA8ErB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA8D/D"}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Gateway Client - Forward tools to cloud gateway
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
22
|
+
var ownKeys = function(o) {
|
|
23
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
24
|
+
var ar = [];
|
|
25
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
26
|
+
return ar;
|
|
27
|
+
};
|
|
28
|
+
return ownKeys(o);
|
|
29
|
+
};
|
|
30
|
+
return function (mod) {
|
|
31
|
+
if (mod && mod.__esModule) return mod;
|
|
32
|
+
var result = {};
|
|
33
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
34
|
+
__setModuleDefault(result, mod);
|
|
35
|
+
return result;
|
|
36
|
+
};
|
|
37
|
+
})();
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.forwardToGateway = forwardToGateway;
|
|
40
|
+
exports.listToolsFromGateway = listToolsFromGateway;
|
|
41
|
+
exports.refreshToken = refreshToken;
|
|
42
|
+
const https = __importStar(require("https"));
|
|
43
|
+
const http = __importStar(require("http"));
|
|
44
|
+
/**
|
|
45
|
+
* Forward tool call to gateway via JSON-RPC
|
|
46
|
+
*/
|
|
47
|
+
async function forwardToGateway(toolName, args, gatewayUrl, jwtToken) {
|
|
48
|
+
return new Promise((resolve) => {
|
|
49
|
+
const url = new URL('/api/mcp', gatewayUrl);
|
|
50
|
+
const isHttps = url.protocol === 'https:';
|
|
51
|
+
const jsonRpcRequest = {
|
|
52
|
+
jsonrpc: '2.0',
|
|
53
|
+
id: Date.now(),
|
|
54
|
+
method: 'tools/call',
|
|
55
|
+
params: {
|
|
56
|
+
name: toolName,
|
|
57
|
+
arguments: args,
|
|
58
|
+
},
|
|
59
|
+
};
|
|
60
|
+
const postData = JSON.stringify(jsonRpcRequest);
|
|
61
|
+
const options = {
|
|
62
|
+
hostname: url.hostname,
|
|
63
|
+
port: url.port || (isHttps ? 443 : 80),
|
|
64
|
+
path: url.pathname,
|
|
65
|
+
method: 'POST',
|
|
66
|
+
headers: {
|
|
67
|
+
'Content-Type': 'application/json',
|
|
68
|
+
'Content-Length': Buffer.byteLength(postData),
|
|
69
|
+
'Authorization': `Bearer ${jwtToken}`,
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
const client = isHttps ? https : http;
|
|
73
|
+
const req = client.request(options, (res) => {
|
|
74
|
+
let data = '';
|
|
75
|
+
res.on('data', (chunk) => {
|
|
76
|
+
data += chunk;
|
|
77
|
+
});
|
|
78
|
+
res.on('end', () => {
|
|
79
|
+
try {
|
|
80
|
+
const response = JSON.parse(data);
|
|
81
|
+
// JSON-RPC error
|
|
82
|
+
if (response.error) {
|
|
83
|
+
resolve({
|
|
84
|
+
success: false,
|
|
85
|
+
error: response.error.message || 'Gateway error',
|
|
86
|
+
});
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
// JSON-RPC success
|
|
90
|
+
if (response.result) {
|
|
91
|
+
// MCP tools/call retorna { content: [...], isError: boolean }
|
|
92
|
+
if (response.result.isError) {
|
|
93
|
+
resolve({
|
|
94
|
+
success: false,
|
|
95
|
+
error: response.result.content?.[0]?.text || 'Tool execution failed',
|
|
96
|
+
});
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Parse output do content[0].text
|
|
100
|
+
let output;
|
|
101
|
+
try {
|
|
102
|
+
const textContent = response.result.content?.[0]?.text || '{}';
|
|
103
|
+
output = JSON.parse(textContent);
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
output = response.result.content?.[0]?.text || response.result;
|
|
107
|
+
}
|
|
108
|
+
resolve({
|
|
109
|
+
success: true,
|
|
110
|
+
output,
|
|
111
|
+
});
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
// Fallback
|
|
115
|
+
resolve({
|
|
116
|
+
success: false,
|
|
117
|
+
error: 'Invalid gateway response',
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
resolve({
|
|
122
|
+
success: false,
|
|
123
|
+
error: `Failed to parse gateway response: ${error.message}`,
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
});
|
|
128
|
+
req.on('error', (error) => {
|
|
129
|
+
resolve({
|
|
130
|
+
success: false,
|
|
131
|
+
error: `Gateway request failed: ${error.message}`,
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
req.write(postData);
|
|
135
|
+
req.end();
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* List tools from gateway
|
|
140
|
+
*/
|
|
141
|
+
async function listToolsFromGateway(gatewayUrl, jwtToken) {
|
|
142
|
+
return new Promise((resolve) => {
|
|
143
|
+
const url = new URL('/api/mcp', gatewayUrl);
|
|
144
|
+
const isHttps = url.protocol === 'https:';
|
|
145
|
+
const jsonRpcRequest = {
|
|
146
|
+
jsonrpc: '2.0',
|
|
147
|
+
id: Date.now(),
|
|
148
|
+
method: 'tools/list',
|
|
149
|
+
params: {},
|
|
150
|
+
};
|
|
151
|
+
const postData = JSON.stringify(jsonRpcRequest);
|
|
152
|
+
const options = {
|
|
153
|
+
hostname: url.hostname,
|
|
154
|
+
port: url.port || (isHttps ? 443 : 80),
|
|
155
|
+
path: url.pathname,
|
|
156
|
+
method: 'POST',
|
|
157
|
+
headers: {
|
|
158
|
+
'Content-Type': 'application/json',
|
|
159
|
+
'Content-Length': Buffer.byteLength(postData),
|
|
160
|
+
'Authorization': `Bearer ${jwtToken}`,
|
|
161
|
+
},
|
|
162
|
+
};
|
|
163
|
+
const client = isHttps ? https : http;
|
|
164
|
+
const req = client.request(options, (res) => {
|
|
165
|
+
let data = '';
|
|
166
|
+
res.on('data', (chunk) => {
|
|
167
|
+
data += chunk;
|
|
168
|
+
});
|
|
169
|
+
res.on('end', () => {
|
|
170
|
+
try {
|
|
171
|
+
const response = JSON.parse(data);
|
|
172
|
+
if (response.error) {
|
|
173
|
+
resolve({
|
|
174
|
+
success: false,
|
|
175
|
+
error: response.error.message || 'Gateway error',
|
|
176
|
+
});
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (response.result?.tools) {
|
|
180
|
+
resolve({
|
|
181
|
+
success: true,
|
|
182
|
+
output: response.result.tools,
|
|
183
|
+
});
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
resolve({
|
|
187
|
+
success: false,
|
|
188
|
+
error: 'Invalid tools/list response',
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
resolve({
|
|
193
|
+
success: false,
|
|
194
|
+
error: `Failed to parse gateway response: ${error.message}`,
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
req.on('error', (error) => {
|
|
200
|
+
resolve({
|
|
201
|
+
success: false,
|
|
202
|
+
error: `Gateway request failed: ${error.message}`,
|
|
203
|
+
});
|
|
204
|
+
});
|
|
205
|
+
req.write(postData);
|
|
206
|
+
req.end();
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Refresh JWT token
|
|
211
|
+
*/
|
|
212
|
+
async function refreshToken(email, password, gatewayUrl) {
|
|
213
|
+
return new Promise((resolve) => {
|
|
214
|
+
const url = new URL('/auth/login', gatewayUrl);
|
|
215
|
+
const isHttps = url.protocol === 'https:';
|
|
216
|
+
const postData = JSON.stringify({ email, password });
|
|
217
|
+
const options = {
|
|
218
|
+
hostname: url.hostname,
|
|
219
|
+
port: url.port || (isHttps ? 443 : 80),
|
|
220
|
+
path: url.pathname,
|
|
221
|
+
method: 'POST',
|
|
222
|
+
headers: {
|
|
223
|
+
'Content-Type': 'application/json',
|
|
224
|
+
'Content-Length': Buffer.byteLength(postData),
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
const client = isHttps ? https : http;
|
|
228
|
+
const req = client.request(options, (res) => {
|
|
229
|
+
let data = '';
|
|
230
|
+
res.on('data', (chunk) => {
|
|
231
|
+
data += chunk;
|
|
232
|
+
});
|
|
233
|
+
res.on('end', () => {
|
|
234
|
+
try {
|
|
235
|
+
const response = JSON.parse(data);
|
|
236
|
+
if (response.success && response.token) {
|
|
237
|
+
resolve({
|
|
238
|
+
success: true,
|
|
239
|
+
token: response.token,
|
|
240
|
+
});
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
resolve({
|
|
244
|
+
success: false,
|
|
245
|
+
error: response.error || 'Login failed',
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
resolve({
|
|
250
|
+
success: false,
|
|
251
|
+
error: `Failed to parse login response: ${error.message}`,
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
});
|
|
255
|
+
});
|
|
256
|
+
req.on('error', (error) => {
|
|
257
|
+
resolve({
|
|
258
|
+
success: false,
|
|
259
|
+
error: `Login request failed: ${error.message}`,
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
req.write(postData);
|
|
263
|
+
req.end();
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
//# sourceMappingURL=gateway-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway-client.js","sourceRoot":"","sources":["../src/gateway-client.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;GAGG"}
|