@visionpoint/avps-mcp 1.0.2 → 1.0.4
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/dist/index.js +78 -8
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -63,7 +63,7 @@ const RPC_ENDPOINT = `${API_URL}/mcp/rpc`;
|
|
|
63
63
|
// Server info for MCP initialize response
|
|
64
64
|
const SERVER_INFO = {
|
|
65
65
|
name: 'avps-mcp',
|
|
66
|
-
version: '1.0.
|
|
66
|
+
version: '1.0.4',
|
|
67
67
|
};
|
|
68
68
|
// MCP capabilities we support
|
|
69
69
|
const SERVER_CAPABILITIES = {
|
|
@@ -144,19 +144,31 @@ async function sendToApi(request) {
|
|
|
144
144
|
* Handle MCP initialize request locally (no auth needed)
|
|
145
145
|
*/
|
|
146
146
|
function handleInitialize(request) {
|
|
147
|
+
// Echo back the client's protocol version for compatibility
|
|
148
|
+
const clientProtocolVersion = request.params?.protocolVersion || '2024-11-05';
|
|
147
149
|
const response = {
|
|
148
150
|
jsonrpc: '2.0',
|
|
149
151
|
id: request.id,
|
|
150
152
|
result: {
|
|
151
|
-
protocolVersion:
|
|
153
|
+
protocolVersion: clientProtocolVersion,
|
|
152
154
|
capabilities: SERVER_CAPABILITIES,
|
|
153
155
|
serverInfo: SERVER_INFO,
|
|
154
156
|
},
|
|
155
157
|
};
|
|
156
158
|
sendResponse(response);
|
|
157
159
|
}
|
|
160
|
+
// Login tool shown when not authenticated
|
|
161
|
+
const LOGIN_TOOL = {
|
|
162
|
+
name: 'avps_login',
|
|
163
|
+
description: 'Sign in to AVPS (AV Professional Services) to access inventory, projects, service orders, and more. This will open a browser for Microsoft authentication.',
|
|
164
|
+
inputSchema: {
|
|
165
|
+
type: 'object',
|
|
166
|
+
properties: {},
|
|
167
|
+
required: [],
|
|
168
|
+
},
|
|
169
|
+
};
|
|
158
170
|
/**
|
|
159
|
-
* Handle tools/list - proxy to API if authenticated, return
|
|
171
|
+
* Handle tools/list - proxy to API if authenticated, return login tool if not
|
|
160
172
|
*/
|
|
161
173
|
async function handleToolsList(request) {
|
|
162
174
|
if (auth) {
|
|
@@ -170,11 +182,11 @@ async function handleToolsList(request) {
|
|
|
170
182
|
}
|
|
171
183
|
}
|
|
172
184
|
else {
|
|
173
|
-
// Return
|
|
185
|
+
// Return login tool - user needs to authenticate first
|
|
174
186
|
sendResponse({
|
|
175
187
|
jsonrpc: '2.0',
|
|
176
188
|
id: request.id,
|
|
177
|
-
result: { tools: [] },
|
|
189
|
+
result: { tools: [LOGIN_TOOL] },
|
|
178
190
|
});
|
|
179
191
|
}
|
|
180
192
|
}
|
|
@@ -201,6 +213,58 @@ async function handleResourcesList(request) {
|
|
|
201
213
|
});
|
|
202
214
|
}
|
|
203
215
|
}
|
|
216
|
+
/**
|
|
217
|
+
* Handle the login tool - triggers device code auth flow
|
|
218
|
+
*/
|
|
219
|
+
async function handleLoginTool(request) {
|
|
220
|
+
try {
|
|
221
|
+
if (auth) {
|
|
222
|
+
sendResponse({
|
|
223
|
+
jsonrpc: '2.0',
|
|
224
|
+
id: request.id,
|
|
225
|
+
result: {
|
|
226
|
+
content: [
|
|
227
|
+
{
|
|
228
|
+
type: 'text',
|
|
229
|
+
text: `Already signed in as ${auth.userName} (${auth.userEmail}). You can now use all AVPS tools.`,
|
|
230
|
+
},
|
|
231
|
+
],
|
|
232
|
+
},
|
|
233
|
+
});
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
// Trigger authentication
|
|
237
|
+
log('Login tool called - starting authentication...');
|
|
238
|
+
await ensureAuthenticated();
|
|
239
|
+
sendResponse({
|
|
240
|
+
jsonrpc: '2.0',
|
|
241
|
+
id: request.id,
|
|
242
|
+
result: {
|
|
243
|
+
content: [
|
|
244
|
+
{
|
|
245
|
+
type: 'text',
|
|
246
|
+
text: `Successfully signed in as ${auth.userName} (${auth.userEmail}). AVPS tools are now available. Please ask me again what you'd like to do.`,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
},
|
|
250
|
+
});
|
|
251
|
+
}
|
|
252
|
+
catch (error) {
|
|
253
|
+
sendResponse({
|
|
254
|
+
jsonrpc: '2.0',
|
|
255
|
+
id: request.id,
|
|
256
|
+
result: {
|
|
257
|
+
content: [
|
|
258
|
+
{
|
|
259
|
+
type: 'text',
|
|
260
|
+
text: `Authentication failed: ${error.message}. Please try again.`,
|
|
261
|
+
},
|
|
262
|
+
],
|
|
263
|
+
isError: true,
|
|
264
|
+
},
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
}
|
|
204
268
|
/**
|
|
205
269
|
* Handle incoming JSON-RPC message from stdin
|
|
206
270
|
*/
|
|
@@ -236,9 +300,15 @@ async function handleMessage(line) {
|
|
|
236
300
|
await handleResourcesList(request);
|
|
237
301
|
break;
|
|
238
302
|
case 'tools/call':
|
|
239
|
-
//
|
|
240
|
-
|
|
241
|
-
|
|
303
|
+
// Handle login tool specially
|
|
304
|
+
if (request.params?.name === 'avps_login') {
|
|
305
|
+
await handleLoginTool(request);
|
|
306
|
+
}
|
|
307
|
+
else {
|
|
308
|
+
// Requires auth - will trigger device code flow if needed
|
|
309
|
+
const response = await sendToApi(request);
|
|
310
|
+
sendResponse(response);
|
|
311
|
+
}
|
|
242
312
|
break;
|
|
243
313
|
default:
|
|
244
314
|
// Proxy all other requests to API
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|