@ancientwhispers54/leafengines-mcp-server 2.0.0 → 2.0.2
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 +59 -5
- package/dist/index.js.map +1 -1
- package/dist/notifications.d.ts +26 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/notifications.js +108 -0
- package/dist/notifications.js.map +1 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -11,16 +11,55 @@ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
|
11
11
|
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
12
12
|
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
13
13
|
const axios_1 = __importDefault(require("axios"));
|
|
14
|
+
const notifications_js_1 = require("./notifications.js");
|
|
14
15
|
// Simple logging (will be replaced with Pino later)
|
|
15
16
|
const log = {
|
|
16
17
|
info: (message, data) => console.log(JSON.stringify({ level: 'INFO', message, ...data })),
|
|
17
18
|
error: (message, error, data) => console.error(JSON.stringify({ level: 'ERROR', message, error: error?.message, ...data })),
|
|
18
19
|
businessEvent: (event, data) => console.log(JSON.stringify({ level: 'INFO', event: 'business', type: event, ...data }))
|
|
19
20
|
};
|
|
21
|
+
// Telemetry configuration
|
|
22
|
+
const TELEMETRY_API_KEY = process.env.TELEMETRY_API_KEY || '';
|
|
23
|
+
const TELEMETRY_URL = process.env.TELEMETRY_URL || 'https://leafengines-telemetry.onrender.com/v1/usage';
|
|
24
|
+
const TELEMETRY_ENABLED = Boolean(TELEMETRY_API_KEY);
|
|
25
|
+
// Telemetry helper function
|
|
26
|
+
async function sendTelemetry(platform, version, feature, success, responseTimeMs, anonymousId, country) {
|
|
27
|
+
if (!TELEMETRY_ENABLED) {
|
|
28
|
+
return; // Telemetry disabled
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
const telemetryData = {
|
|
32
|
+
platform,
|
|
33
|
+
version,
|
|
34
|
+
feature,
|
|
35
|
+
success,
|
|
36
|
+
response_time_ms: responseTimeMs,
|
|
37
|
+
anonymous_id: anonymousId,
|
|
38
|
+
country,
|
|
39
|
+
timestamp: new Date().toISOString()
|
|
40
|
+
};
|
|
41
|
+
// Send telemetry asynchronously (don't wait for response)
|
|
42
|
+
axios_1.default.post(TELEMETRY_URL, telemetryData, {
|
|
43
|
+
headers: {
|
|
44
|
+
'Content-Type': 'application/json',
|
|
45
|
+
'X-API-Key': TELEMETRY_API_KEY
|
|
46
|
+
},
|
|
47
|
+
timeout: 5000 // 5 second timeout
|
|
48
|
+
}).catch((error) => {
|
|
49
|
+
// Silently fail - telemetry shouldn't break MCP functionality
|
|
50
|
+
log.error('Telemetry send failed', error, { feature });
|
|
51
|
+
});
|
|
52
|
+
log.info('Telemetry sent', { feature, success, responseTimeMs });
|
|
53
|
+
}
|
|
54
|
+
catch (error) {
|
|
55
|
+
// Silently fail - telemetry shouldn't break MCP functionality
|
|
56
|
+
log.error('Telemetry preparation failed', error, { feature });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
20
59
|
// MCP Server
|
|
21
60
|
const server = new index_js_1.Server({
|
|
22
61
|
name: "leafengines",
|
|
23
|
-
version: "
|
|
62
|
+
version: "2.0.0",
|
|
24
63
|
}, {
|
|
25
64
|
capabilities: {
|
|
26
65
|
tools: {},
|
|
@@ -167,6 +206,10 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
167
206
|
duration_ms: durationMs,
|
|
168
207
|
user_type: apiKey ? 'paid' : 'free'
|
|
169
208
|
});
|
|
209
|
+
// Send telemetry for successful execution
|
|
210
|
+
sendTelemetry('mcp', '2.0.0', name, true, durationMs, undefined, // anonymous_id
|
|
211
|
+
undefined // country
|
|
212
|
+
);
|
|
170
213
|
return {
|
|
171
214
|
content: [
|
|
172
215
|
{
|
|
@@ -181,6 +224,10 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
181
224
|
log.error(`Tool execution failed: ${name}`, error, {
|
|
182
225
|
duration_ms: durationMs
|
|
183
226
|
});
|
|
227
|
+
// Send telemetry for failed execution
|
|
228
|
+
sendTelemetry('mcp', '2.0.0', name, false, durationMs, undefined, // anonymous_id
|
|
229
|
+
undefined // country
|
|
230
|
+
);
|
|
184
231
|
return {
|
|
185
232
|
content: [
|
|
186
233
|
{
|
|
@@ -195,14 +242,21 @@ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
|
|
|
195
242
|
// Start server
|
|
196
243
|
async function main() {
|
|
197
244
|
log.info("LeafEngines MCP Server starting", {
|
|
198
|
-
version: "
|
|
199
|
-
environment: process.env.NODE_ENV || "production"
|
|
245
|
+
version: "2.0.0",
|
|
246
|
+
environment: process.env.NODE_ENV || "production",
|
|
247
|
+
telemetry_enabled: TELEMETRY_ENABLED
|
|
200
248
|
});
|
|
201
249
|
const transport = new stdio_js_1.StdioServerTransport();
|
|
250
|
+
// Register this client for notifications
|
|
251
|
+
(0, notifications_js_1.registerClient)(transport);
|
|
202
252
|
await server.connect(transport);
|
|
203
|
-
console.log("✅ LeafEngines MCP Server
|
|
253
|
+
console.log("✅ LeafEngines MCP Server v2.0.0 running");
|
|
204
254
|
console.log("📊 Structured logging enabled (JSON format)");
|
|
205
|
-
console.log("
|
|
255
|
+
console.log("🔔 MCP Push Notifications active");
|
|
256
|
+
console.log("📈 Telemetry: " + (TELEMETRY_ENABLED ? "ENABLED" : "DISABLED (set TELEMETRY_API_KEY to enable)"));
|
|
257
|
+
console.log("🔧 Enhanced support: support@soilsidekickpro.com");
|
|
258
|
+
// Initialize notification system
|
|
259
|
+
(0, notifications_js_1.initializeNotifications)(server);
|
|
206
260
|
// Handle graceful shutdown
|
|
207
261
|
process.on('SIGINT', () => {
|
|
208
262
|
log.info("Server shutting down", { reason: 'SIGINT' });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA;;GAEG;;;;;AAEH,wEAAmE;AACnE,wEAAiF;AACjF,iEAG4C;AAC5C,kDAA0B;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Push Notifications for v2.0.0 Announcement
|
|
3
|
+
* JSON-RPC notifications to connected clients
|
|
4
|
+
*/
|
|
5
|
+
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
6
|
+
/**
|
|
7
|
+
* Register a client for notifications
|
|
8
|
+
*/
|
|
9
|
+
export declare function registerClient(transport: any): void;
|
|
10
|
+
/**
|
|
11
|
+
* Unregister a client
|
|
12
|
+
*/
|
|
13
|
+
export declare function unregisterClient(transport: any): void;
|
|
14
|
+
/**
|
|
15
|
+
* Send v2.0.0 announcement to all connected clients
|
|
16
|
+
*/
|
|
17
|
+
export declare function sendV200Announcement(server: Server): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Send notification when tools/resources change
|
|
20
|
+
*/
|
|
21
|
+
export declare function sendToolsUpdatedNotification(server: Server): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Initialize notification system
|
|
24
|
+
*/
|
|
25
|
+
export declare function initializeNotifications(server: Server): void;
|
|
26
|
+
//# sourceMappingURL=notifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAKnE;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,GAAG,QAG5C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,GAAG,QAG9C;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,MAAM,iBAmDxD;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,MAAM,iBAYhE;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,QAUrD"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP Push Notifications for v2.0.0 Announcement
|
|
4
|
+
* JSON-RPC notifications to connected clients
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.registerClient = registerClient;
|
|
8
|
+
exports.unregisterClient = unregisterClient;
|
|
9
|
+
exports.sendV200Announcement = sendV200Announcement;
|
|
10
|
+
exports.sendToolsUpdatedNotification = sendToolsUpdatedNotification;
|
|
11
|
+
exports.initializeNotifications = initializeNotifications;
|
|
12
|
+
// Track connected clients for notifications
|
|
13
|
+
const connectedClients = new Set();
|
|
14
|
+
/**
|
|
15
|
+
* Register a client for notifications
|
|
16
|
+
*/
|
|
17
|
+
function registerClient(transport) {
|
|
18
|
+
connectedClients.add(transport);
|
|
19
|
+
console.log(`📱 Client registered for notifications. Total: ${connectedClients.size}`);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Unregister a client
|
|
23
|
+
*/
|
|
24
|
+
function unregisterClient(transport) {
|
|
25
|
+
connectedClients.delete(transport);
|
|
26
|
+
console.log(`📱 Client unregistered. Total: ${connectedClients.size}`);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Send v2.0.0 announcement to all connected clients
|
|
30
|
+
*/
|
|
31
|
+
async function sendV200Announcement(server) {
|
|
32
|
+
const announcement = {
|
|
33
|
+
jsonrpc: "2.0",
|
|
34
|
+
method: "notifications/announcement",
|
|
35
|
+
params: {
|
|
36
|
+
type: "server_update",
|
|
37
|
+
version: "2.0.0",
|
|
38
|
+
title: "🎉 LeafEngines v2.0.0 Update",
|
|
39
|
+
message: "Enhanced support & extended founder pricing through June 1, 2026",
|
|
40
|
+
features: [
|
|
41
|
+
"Usage Insights Dashboard - See your patterns, optimize workflow",
|
|
42
|
+
"Smarter Error Diagnostics - 70% faster troubleshooting",
|
|
43
|
+
"30% Performance Boost - Faster responses, smoother experience",
|
|
44
|
+
"Enhanced Free Tier - 50% more requests, better onboarding"
|
|
45
|
+
],
|
|
46
|
+
support: {
|
|
47
|
+
email: "support@soilsidekickpro.com",
|
|
48
|
+
response_time: "24 hours",
|
|
49
|
+
status: "operational"
|
|
50
|
+
},
|
|
51
|
+
pricing: {
|
|
52
|
+
founder_deadline: "2026-06-01",
|
|
53
|
+
founder_limit: 100,
|
|
54
|
+
plans: {
|
|
55
|
+
starter: "$10/mo → $49/mo lifetime lock",
|
|
56
|
+
pro: "$49/mo → $149/mo lifetime lock"
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
links: {
|
|
60
|
+
github: "https://github.com/QWarranto/leafengines-claude-mcp/releases/tag/v2.0.0",
|
|
61
|
+
starter: "https://buy.stripe.com/14A7sL30y8bR2F4fbgaMU02",
|
|
62
|
+
pro: "https://buy.stripe.com/cNi3cv1WuajZcfE7IOaMU03"
|
|
63
|
+
},
|
|
64
|
+
timestamp: new Date().toISOString()
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
console.log("🚀 Sending v2.0.0 announcement to connected clients...");
|
|
68
|
+
// In a real implementation, we would send to each connected client
|
|
69
|
+
// For stdio transport, we can write to stdout
|
|
70
|
+
console.log(JSON.stringify(announcement));
|
|
71
|
+
// Log business event for telemetry
|
|
72
|
+
console.log(JSON.stringify({
|
|
73
|
+
level: 'INFO',
|
|
74
|
+
event: 'business',
|
|
75
|
+
type: 'v2_announcement_sent',
|
|
76
|
+
client_count: connectedClients.size,
|
|
77
|
+
timestamp: new Date().toISOString()
|
|
78
|
+
}));
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Send notification when tools/resources change
|
|
82
|
+
*/
|
|
83
|
+
async function sendToolsUpdatedNotification(server) {
|
|
84
|
+
const notification = {
|
|
85
|
+
jsonrpc: "2.0",
|
|
86
|
+
method: "notifications/tools_updated",
|
|
87
|
+
params: {
|
|
88
|
+
type: "tools_updated",
|
|
89
|
+
message: "LeafEngines tools have been updated",
|
|
90
|
+
timestamp: new Date().toISOString()
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
console.log(JSON.stringify(notification));
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Initialize notification system
|
|
97
|
+
*/
|
|
98
|
+
function initializeNotifications(server) {
|
|
99
|
+
console.log("🔔 MCP Push Notification System Initialized");
|
|
100
|
+
console.log(" • v2.0.0 announcement ready");
|
|
101
|
+
console.log(" • Tool update notifications enabled");
|
|
102
|
+
console.log(" • Client tracking active");
|
|
103
|
+
// Send announcement after a short delay (when clients are connected)
|
|
104
|
+
setTimeout(() => {
|
|
105
|
+
sendV200Announcement(server);
|
|
106
|
+
}, 3000); // 3 second delay for clients to connect
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=notifications.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAUH,wCAGC;AAKD,4CAGC;AAKD,oDAmDC;AAKD,oEAYC;AAKD,0DAUC;AAzGD,4CAA4C;AAC5C,MAAM,gBAAgB,GAAa,IAAI,GAAG,EAAE,CAAC;AAE7C;;GAEG;AACH,SAAgB,cAAc,CAAC,SAAc;IAC3C,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,kDAAkD,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AACzF,CAAC;AAED;;GAEG;AACH,SAAgB,gBAAgB,CAAC,SAAc;IAC7C,gBAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,kCAAkC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,oBAAoB,CAAC,MAAc;IACvD,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,4BAA4B;QACpC,MAAM,EAAE;YACN,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,8BAA8B;YACrC,OAAO,EAAE,kEAAkE;YAC3E,QAAQ,EAAE;gBACR,iEAAiE;gBACjE,wDAAwD;gBACxD,+DAA+D;gBAC/D,2DAA2D;aAC5D;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,6BAA6B;gBACpC,aAAa,EAAE,UAAU;gBACzB,MAAM,EAAE,aAAa;aACtB;YACD,OAAO,EAAE;gBACP,gBAAgB,EAAE,YAAY;gBAC9B,aAAa,EAAE,GAAG;gBAClB,KAAK,EAAE;oBACL,OAAO,EAAE,+BAA+B;oBACxC,GAAG,EAAE,gCAAgC;iBACtC;aACF;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,yEAAyE;gBACjF,OAAO,EAAE,gDAAgD;gBACzD,GAAG,EAAE,gDAAgD;aACtD;YACD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;IAEtE,mEAAmE;IACnE,8CAA8C;IAC9C,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;IAE1C,mCAAmC;IACnC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QACzB,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,UAAU;QACjB,IAAI,EAAE,sBAAsB;QAC5B,YAAY,EAAE,gBAAgB,CAAC,IAAI;QACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACpC,CAAC,CAAC,CAAC;AACN,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,4BAA4B,CAAC,MAAc;IAC/D,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,6BAA6B;QACrC,MAAM,EAAE;YACN,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,qCAAqC;YAC9C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC;KACF,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAgB,uBAAuB,CAAC,MAAc;IACpD,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,wCAAwC,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAE3C,qEAAqE;IACrE,UAAU,CAAC,GAAG,EAAE;QACd,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC/B,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC,wCAAwC;AACpD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ancientwhispers54/leafengines-mcp-server",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"mcpName": "io.github.QWarranto/leafengines",
|
|
5
5
|
"description": "Agricultural intelligence MCP server with soil analysis, crop recommendations, weather forecasts, and environmental impact assessment.",
|
|
6
6
|
"main": "dist/index.js",
|