@ancientwhispers54/leafengines-mcp-server 1.1.9 → 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 +113 -11
- package/dist/index.d.ts +1 -15
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +132 -236
- package/dist/index.js.map +1 -1
- package/dist/index_final.d.ts +20 -0
- package/dist/index_final.d.ts.map +1 -0
- package/dist/index_final.js +474 -0
- package/dist/index_final.js.map +1 -0
- package/dist/index_simple.d.ts +6 -0
- package/dist/index_simple.d.ts.map +1 -0
- package/dist/index_simple.js +220 -0
- package/dist/index_simple.js.map +1 -0
- package/dist/index_updated.d.ts +20 -0
- package/dist/index_updated.d.ts.map +1 -0
- package/dist/index_updated.js +390 -0
- package/dist/index_updated.js.map +1 -0
- package/dist/logger.d.ts +17 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +155 -0
- package/dist/logger.js.map +1 -0
- package/dist/metrics-server.d.ts +11 -0
- package/dist/metrics-server.d.ts.map +1 -0
- package/dist/metrics-server.js +106 -0
- package/dist/metrics-server.js.map +1 -0
- package/dist/metrics.d.ts +37 -0
- package/dist/metrics.d.ts.map +1 -0
- package/dist/metrics.js +223 -0
- package/dist/metrics.js.map +1 -0
- package/dist/sentry.d.ts +17 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +166 -0
- package/dist/sentry.js.map +1 -0
- package/package.json +6 -2
package/dist/sentry.js
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Sentry error tracking for LeafEngines MCP Server
|
|
4
|
+
*
|
|
5
|
+
* Provides centralized error tracking and monitoring
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
19
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
20
|
+
}) : function(o, v) {
|
|
21
|
+
o["default"] = v;
|
|
22
|
+
});
|
|
23
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
24
|
+
var ownKeys = function(o) {
|
|
25
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
26
|
+
var ar = [];
|
|
27
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
28
|
+
return ar;
|
|
29
|
+
};
|
|
30
|
+
return ownKeys(o);
|
|
31
|
+
};
|
|
32
|
+
return function (mod) {
|
|
33
|
+
if (mod && mod.__esModule) return mod;
|
|
34
|
+
var result = {};
|
|
35
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
36
|
+
__setModuleDefault(result, mod);
|
|
37
|
+
return result;
|
|
38
|
+
};
|
|
39
|
+
})();
|
|
40
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
+
exports.sentryTracking = void 0;
|
|
42
|
+
exports.initializeSentry = initializeSentry;
|
|
43
|
+
const Sentry = __importStar(require("@sentry/node"));
|
|
44
|
+
const logger_js_1 = require("./logger.js");
|
|
45
|
+
// Initialize Sentry if DSN is provided
|
|
46
|
+
function initializeSentry() {
|
|
47
|
+
const dsn = process.env.SENTRY_DSN;
|
|
48
|
+
if (!dsn) {
|
|
49
|
+
logger_js_1.logging.businessEvent('sentry_disabled', { reason: 'no_dsn' });
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
try {
|
|
53
|
+
Sentry.init({
|
|
54
|
+
dsn,
|
|
55
|
+
environment: process.env.NODE_ENV || 'production',
|
|
56
|
+
release: process.env.npm_package_version || '1.1.9',
|
|
57
|
+
tracesSampleRate: parseFloat(process.env.SENTRY_TRACES_SAMPLE_RATE || '0.1'),
|
|
58
|
+
profilesSampleRate: parseFloat(process.env.SENTRY_PROFILES_SAMPLE_RATE || '0.0'),
|
|
59
|
+
// Performance monitoring
|
|
60
|
+
integrations: [
|
|
61
|
+
new Sentry.Integrations.Http({ tracing: true }),
|
|
62
|
+
new Sentry.Integrations.Express(),
|
|
63
|
+
new Sentry.Integrations.OnUncaughtException(),
|
|
64
|
+
new Sentry.Integrations.OnUnhandledRejection(),
|
|
65
|
+
],
|
|
66
|
+
// Filter out common non-errors
|
|
67
|
+
beforeSend(event) {
|
|
68
|
+
// Filter out specific error types if needed
|
|
69
|
+
return event;
|
|
70
|
+
},
|
|
71
|
+
// Debug logging in development
|
|
72
|
+
debug: process.env.NODE_ENV === 'development',
|
|
73
|
+
});
|
|
74
|
+
logger_js_1.logging.businessEvent('sentry_initialized', {
|
|
75
|
+
environment: process.env.NODE_ENV || 'production',
|
|
76
|
+
sample_rate: parseFloat(process.env.SENTRY_TRACES_SAMPLE_RATE || '0.1')
|
|
77
|
+
});
|
|
78
|
+
return Sentry;
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
logger_js_1.logging.error('sentry_initialization', error);
|
|
82
|
+
return null;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Error tracking utilities
|
|
86
|
+
exports.sentryTracking = {
|
|
87
|
+
// Capture error with context
|
|
88
|
+
captureError: (error, context) => {
|
|
89
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
90
|
+
Sentry.captureException(error, {
|
|
91
|
+
extra: context,
|
|
92
|
+
tags: {
|
|
93
|
+
service: 'leafengines-mcp-server',
|
|
94
|
+
version: process.env.npm_package_version || '1.1.9'
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
// Also log locally
|
|
99
|
+
logger_js_1.logging.error('sentry_captured', error, context);
|
|
100
|
+
},
|
|
101
|
+
// Capture message (non-error events)
|
|
102
|
+
captureMessage: (message, level = 'info', context) => {
|
|
103
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
104
|
+
Sentry.captureMessage(message, {
|
|
105
|
+
level,
|
|
106
|
+
extra: context,
|
|
107
|
+
tags: {
|
|
108
|
+
service: 'leafengines-mcp-server',
|
|
109
|
+
version: process.env.npm_package_version || '1.1.9'
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
// Also log locally
|
|
114
|
+
logger.info({
|
|
115
|
+
event: 'sentry_message',
|
|
116
|
+
message,
|
|
117
|
+
level,
|
|
118
|
+
...context
|
|
119
|
+
}, message);
|
|
120
|
+
},
|
|
121
|
+
// Set user context for authenticated requests
|
|
122
|
+
setUserContext: (userId, email, additionalData) => {
|
|
123
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
124
|
+
Sentry.setUser({
|
|
125
|
+
id: userId,
|
|
126
|
+
email: email,
|
|
127
|
+
...additionalData
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
// Clear user context (for anonymous requests)
|
|
132
|
+
clearUserContext: () => {
|
|
133
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
134
|
+
Sentry.setUser(null);
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
// Add breadcrumb for tracing
|
|
138
|
+
addBreadcrumb: (message, category, data) => {
|
|
139
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
140
|
+
Sentry.addBreadcrumb({
|
|
141
|
+
message,
|
|
142
|
+
category,
|
|
143
|
+
data,
|
|
144
|
+
level: 'info',
|
|
145
|
+
timestamp: Date.now() / 1000
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
// Start a transaction for performance monitoring
|
|
150
|
+
startTransaction: (name, operation) => {
|
|
151
|
+
if (Sentry.getCurrentHub().getClient()) {
|
|
152
|
+
return Sentry.startTransaction({
|
|
153
|
+
name,
|
|
154
|
+
op: operation,
|
|
155
|
+
description: `${operation} - ${name}`,
|
|
156
|
+
metadata: {
|
|
157
|
+
source: 'leafengines-mcp-server'
|
|
158
|
+
}
|
|
159
|
+
});
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
// Export Sentry instance
|
|
165
|
+
exports.default = Sentry;
|
|
166
|
+
//# sourceMappingURL=sentry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ancientwhispers54/leafengines-mcp-server",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
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",
|
|
@@ -32,7 +32,11 @@
|
|
|
32
32
|
"license": "Apache-2.0",
|
|
33
33
|
"dependencies": {
|
|
34
34
|
"@modelcontextprotocol/sdk": "^0.6.0",
|
|
35
|
-
"axios": "^1.6.0"
|
|
35
|
+
"axios": "^1.6.0",
|
|
36
|
+
"pino": "^9.0.0",
|
|
37
|
+
"pino-pretty": "^11.0.0",
|
|
38
|
+
"@sentry/node": "^8.0.0",
|
|
39
|
+
"prom-client": "^15.0.0"
|
|
36
40
|
},
|
|
37
41
|
"devDependencies": {
|
|
38
42
|
"@types/node": "^20.0.0",
|