@ancientwhispers54/leafengines-mcp-server 1.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/README.md ADDED
@@ -0,0 +1,181 @@
1
+ # LeafEngines MCP Server
2
+
3
+ [![MCP Registry](https://img.shields.io/badge/MCP_Registry-leafengines-blue)](https://registry.modelcontextprotocol.io/servers/io.github.QWarranto/leafengines)
4
+ [![npm version](https://img.shields.io/npm/v/@modelcontextprotocol/server-leafengines)](https://www.npmjs.com/package/@modelcontextprotocol/server-leafengines)
5
+ [![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](LICENSE)
6
+
7
+ Agricultural intelligence MCP server with soil analysis, crop recommendations, weather forecasts, and environmental impact assessment.
8
+
9
+ ## 🌱 Features
10
+
11
+ - **Soil Analysis** - USDA soil data, satellite intelligence, environmental factors
12
+ - **Crop Recommendations** - Optimal crop selection based on soil and climate
13
+ - **Weather Forecasts** - Agricultural weather data for planning
14
+ - **Environmental Impact** - Carbon footprint, water usage, sustainability analysis
15
+ - **TurboQuant Capabilities** - FREE hardware optimization check (no API key required)
16
+
17
+ ## 🚀 Quick Start
18
+
19
+ ### Installation
20
+
21
+ ```bash
22
+ # Install globally
23
+ npm install -g @modelcontextprotocol/server-leafengines
24
+
25
+ # Or use with npx
26
+ npx @modelcontextprotocol/server-leafengines
27
+ ```
28
+
29
+ ### Configuration
30
+
31
+ 1. **Get API Key:** [https://app.soilsidekickpro.com/api-docs](https://app.soilsidekickpro.com/api-docs)
32
+ 2. **Set Environment Variable:**
33
+ ```bash
34
+ export LEAFENGINES_API_KEY="your_api_key_here"
35
+ ```
36
+
37
+ ### Usage with Claude Desktop
38
+
39
+ Add to your Claude Desktop `mcp.json`:
40
+
41
+ ```json
42
+ {
43
+ "mcpServers": {
44
+ "leafengines": {
45
+ "command": "npx",
46
+ "args": ["-y", "@modelcontextprotocol/server-leafengines"],
47
+ "env": {
48
+ "LEAFENGINES_API_KEY": "your_api_key_here"
49
+ }
50
+ }
51
+ }
52
+ }
53
+ ```
54
+
55
+ ## 🛠️ Available Tools
56
+
57
+ ### 1. `turbo_quant_capabilities` (FREE)
58
+ Check TurboQuant optimization status and hardware compatibility.
59
+
60
+ **No API key required!**
61
+
62
+ ```json
63
+ {
64
+ "check_hardware": true,
65
+ "get_optimization_status": true
66
+ }
67
+ ```
68
+
69
+ ### 2. `soil_analysis`
70
+ Analyze soil composition and provide agricultural recommendations.
71
+
72
+ ```json
73
+ {
74
+ "latitude": 33.7490,
75
+ "longitude": -84.3880,
76
+ "soil_type": "loam"
77
+ }
78
+ ```
79
+
80
+ ### 3. `weather_forecast`
81
+ Get weather forecast for agricultural planning.
82
+
83
+ ```json
84
+ {
85
+ "latitude": 33.7490,
86
+ "longitude": -84.3880,
87
+ "days": 3
88
+ }
89
+ ```
90
+
91
+ ### 4. `crop_recommendation`
92
+ Recommend optimal crops based on soil and climate conditions.
93
+
94
+ ```json
95
+ {
96
+ "latitude": 33.7490,
97
+ "longitude": -84.3880,
98
+ "season": "spring"
99
+ }
100
+ ```
101
+
102
+ ### 5. `environmental_impact`
103
+ Analyze environmental impact of agricultural practices.
104
+
105
+ ```json
106
+ {
107
+ "latitude": 33.7490,
108
+ "longitude": -84.3880,
109
+ "crop_type": "corn",
110
+ "farming_practice": "organic"
111
+ }
112
+ ```
113
+
114
+ ## 💰 Pricing
115
+
116
+ - **FREE Tier:** `turbo_quant_capabilities` tool (no API key required)
117
+ - **Paid Tiers:** From $0.001/call for soil analysis, weather forecasts, etc.
118
+ - **Monthly Plans:** Save 30-70% with Starter ($149), Pro ($499), or Enterprise ($1,999) plans.
119
+
120
+ Get API key: [https://app.soilsidekickpro.com/api-docs](https://app.soilsidekickpro.com/api-docs)
121
+
122
+ ## 🔧 Development
123
+
124
+ ### Build from Source
125
+
126
+ ```bash
127
+ # Clone repository
128
+ git clone https://github.com/QWarranto/leafengines-claude-mcp.git
129
+ cd leafengines-claude-mcp
130
+
131
+ # Install dependencies
132
+ npm install
133
+
134
+ # Build
135
+ npm run build
136
+
137
+ # Run development server
138
+ npm run dev
139
+ ```
140
+
141
+ ### Testing
142
+
143
+ ```bash
144
+ # Test with sample data
145
+ LEAFENGINES_API_KEY="your_key" npm start
146
+ ```
147
+
148
+ ## 📚 Documentation
149
+
150
+ - **API Documentation:** [https://app.soilsidekickpro.com/api-docs](https://app.soilsidekickpro.com/api-docs)
151
+ - **GitHub Repository:** [https://github.com/QWarranto/leafengines-claude-mcp](https://github.com/QWarranto/leafengines-claude-mcp)
152
+ - **MCP Registry:** [https://registry.modelcontextprotocol.io/servers/io.github.QWarranto/leafengines](https://registry.modelcontextprotocol.io/servers/io.github.QWarranto/leafengines)
153
+
154
+ ## 🆓 Try It Free!
155
+
156
+ The `turbo_quant_capabilities` tool is completely free - no API key or payment required. Perfect for testing and demonstrations!
157
+
158
+ ```bash
159
+ # Test the FREE tool
160
+ npx @modelcontextprotocol/server-leafengines
161
+ # Then ask Claude: "Check TurboQuant capabilities"
162
+ ```
163
+
164
+ ## 🤝 Contributing
165
+
166
+ Contributions are welcome! Please see [CONTRIBUTING.md](CONTRIBUTING.md) for details.
167
+
168
+ ## 📄 License
169
+
170
+ Apache 2.0 - See [LICENSE](LICENSE) for details.
171
+
172
+ ## 🔗 Links
173
+
174
+ - **Website:** [https://soilsidekickpro.com](https://soilsidekickpro.com)
175
+ - **API Docs:** [https://app.soilsidekickpro.com/api-docs](https://app.soilsidekickpro.com/api-docs)
176
+ - **GitHub:** [https://github.com/QWarranto/leafengines-claude-mcp](https://github.com/QWarranto/leafengines-claude-mcp)
177
+ - **MCP Registry:** [https://registry.modelcontextprotocol.io/servers/io.github.QWarranto/leafengines](https://registry.modelcontextprotocol.io/servers/io.github.QWarranto/leafengines)
178
+
179
+ ---
180
+
181
+ 🌱 **Happy farming with AI!**
@@ -0,0 +1,18 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * LeafEngines MCP Server
4
+ *
5
+ * Agricultural intelligence MCP server with soil analysis, crop recommendations,
6
+ * weather forecasts, and environmental impact assessment.
7
+ *
8
+ * Features:
9
+ * - Soil analysis and recommendations
10
+ * - Crop suitability scoring
11
+ * - Weather forecasting for agriculture
12
+ * - Environmental impact assessment
13
+ * - TurboQuant capabilities checking (FREE)
14
+ *
15
+ * API Documentation: https://app.soilsidekickpro.com/api-docs
16
+ */
17
+ export {};
18
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;GAcG"}
package/dist/index.js ADDED
@@ -0,0 +1,286 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ /**
4
+ * LeafEngines MCP Server
5
+ *
6
+ * Agricultural intelligence MCP server with soil analysis, crop recommendations,
7
+ * weather forecasts, and environmental impact assessment.
8
+ *
9
+ * Features:
10
+ * - Soil analysis and recommendations
11
+ * - Crop suitability scoring
12
+ * - Weather forecasting for agriculture
13
+ * - Environmental impact assessment
14
+ * - TurboQuant capabilities checking (FREE)
15
+ *
16
+ * API Documentation: https://app.soilsidekickpro.com/api-docs
17
+ */
18
+ var __importDefault = (this && this.__importDefault) || function (mod) {
19
+ return (mod && mod.__esModule) ? mod : { "default": mod };
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
23
+ const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
24
+ const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
25
+ const axios_1 = __importDefault(require("axios"));
26
+ // MCP Server implementation
27
+ const server = new index_js_1.Server({
28
+ name: "leafengines",
29
+ version: "1.1.0",
30
+ }, {
31
+ capabilities: {
32
+ tools: {},
33
+ },
34
+ });
35
+ // Configuration
36
+ const MCP_SERVER_URL = "https://wzgnxkoeqzvueypwzvyn.supabase.co/functions/v1/mcp-server-v2";
37
+ // Helper function to call LeafEngines API
38
+ async function callLeafEnginesAPI(toolName, arguments_, apiKey) {
39
+ try {
40
+ const headers = {
41
+ "Content-Type": "application/json",
42
+ };
43
+ if (apiKey) {
44
+ headers["x-api-key"] = apiKey;
45
+ }
46
+ const response = await axios_1.default.post(MCP_SERVER_URL, {
47
+ jsonrpc: "2.0",
48
+ method: "tools/call",
49
+ params: {
50
+ name: toolName,
51
+ arguments: arguments_,
52
+ },
53
+ id: 1,
54
+ }, {
55
+ headers,
56
+ timeout: 30000,
57
+ });
58
+ return response.data;
59
+ }
60
+ catch (error) {
61
+ console.error(`LeafEngines API call failed: ${error.message}`);
62
+ throw error;
63
+ }
64
+ }
65
+ // Tool: TurboQuant Capabilities (FREE - no API key required)
66
+ server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
67
+ return {
68
+ tools: [
69
+ {
70
+ name: "turbo_quant_capabilities",
71
+ description: "Check TurboQuant optimization status and hardware compatibility. FREE tool - no API key required.",
72
+ inputSchema: {
73
+ type: "object",
74
+ properties: {
75
+ check_hardware: {
76
+ type: "boolean",
77
+ description: "Check if device can run Gemma 7B with TurboQuant optimization",
78
+ default: true,
79
+ },
80
+ get_optimization_status: {
81
+ type: "boolean",
82
+ description: "Get current TurboQuant optimization level",
83
+ default: true,
84
+ },
85
+ },
86
+ },
87
+ },
88
+ {
89
+ name: "soil_analysis",
90
+ description: "Analyze soil composition and provide agricultural recommendations. Uses USDA soil data, satellite intelligence, and environmental factors.",
91
+ inputSchema: {
92
+ type: "object",
93
+ properties: {
94
+ latitude: {
95
+ type: "number",
96
+ description: "Latitude coordinate (decimal degrees)",
97
+ },
98
+ longitude: {
99
+ type: "number",
100
+ description: "Longitude coordinate (decimal degrees)",
101
+ },
102
+ soil_type: {
103
+ type: "string",
104
+ description: "Optional: Known soil type classification",
105
+ optional: true,
106
+ },
107
+ },
108
+ required: ["latitude", "longitude"],
109
+ },
110
+ },
111
+ {
112
+ name: "weather_forecast",
113
+ description: "Get weather forecast for agricultural planning. Provides temperature, precipitation, humidity, wind, and growing degree days.",
114
+ inputSchema: {
115
+ type: "object",
116
+ properties: {
117
+ latitude: {
118
+ type: "number",
119
+ description: "Latitude coordinate",
120
+ },
121
+ longitude: {
122
+ type: "number",
123
+ description: "Longitude coordinate",
124
+ },
125
+ days: {
126
+ type: "number",
127
+ description: "Number of forecast days (1-7)",
128
+ default: 3,
129
+ minimum: 1,
130
+ maximum: 7,
131
+ },
132
+ },
133
+ required: ["latitude", "longitude"],
134
+ },
135
+ },
136
+ {
137
+ name: "crop_recommendation",
138
+ description: "Recommend optimal crops based on soil and climate conditions. Analyzes soil composition, climate data, and market conditions.",
139
+ inputSchema: {
140
+ type: "object",
141
+ properties: {
142
+ latitude: {
143
+ type: "number",
144
+ description: "Latitude coordinate",
145
+ },
146
+ longitude: {
147
+ type: "number",
148
+ description: "Longitude coordinate",
149
+ },
150
+ season: {
151
+ type: "string",
152
+ description: "Optional: Planting season (spring, summer, fall, winter)",
153
+ optional: true,
154
+ },
155
+ },
156
+ required: ["latitude", "longitude"],
157
+ },
158
+ },
159
+ {
160
+ name: "environmental_impact",
161
+ description: "Analyze environmental impact of agricultural practices. Calculates carbon footprint, water usage, soil health impact.",
162
+ inputSchema: {
163
+ type: "object",
164
+ properties: {
165
+ latitude: {
166
+ type: "number",
167
+ description: "Latitude coordinate",
168
+ },
169
+ longitude: {
170
+ type: "number",
171
+ description: "Longitude coordinate",
172
+ },
173
+ crop_type: {
174
+ type: "string",
175
+ description: "Optional: Type of crop being analyzed",
176
+ optional: true,
177
+ },
178
+ farming_practice: {
179
+ type: "string",
180
+ description: "Optional: Farming practice (conventional, organic, etc.)",
181
+ optional: true,
182
+ },
183
+ },
184
+ required: ["latitude", "longitude"],
185
+ },
186
+ },
187
+ ],
188
+ };
189
+ });
190
+ // Handle tool execution
191
+ server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
192
+ const { name, arguments: args } = request.params;
193
+ // Get API key from environment variable
194
+ const apiKey = process.env.LEAFENGINES_API_KEY;
195
+ // Special handling for FREE tool (no API key required)
196
+ if (name === "turbo_quant_capabilities") {
197
+ try {
198
+ const result = await callLeafEnginesAPI(name, args);
199
+ return {
200
+ content: [
201
+ {
202
+ type: "text",
203
+ text: JSON.stringify(result, null, 2),
204
+ },
205
+ ],
206
+ };
207
+ }
208
+ catch (error) {
209
+ return {
210
+ content: [
211
+ {
212
+ type: "text",
213
+ text: `Error calling ${name}: ${error.message}`,
214
+ },
215
+ ],
216
+ isError: true,
217
+ };
218
+ }
219
+ }
220
+ // For other tools, API key is required
221
+ if (!apiKey) {
222
+ return {
223
+ content: [
224
+ {
225
+ type: "text",
226
+ text: `API key required for ${name}. Please set LEAFENGINES_API_KEY environment variable. Get API key from: https://app.soilsidekickpro.com/api-docs`,
227
+ },
228
+ ],
229
+ isError: true,
230
+ };
231
+ }
232
+ try {
233
+ const result = await callLeafEnginesAPI(name, args, apiKey);
234
+ return {
235
+ content: [
236
+ {
237
+ type: "text",
238
+ text: JSON.stringify(result, null, 2),
239
+ },
240
+ ],
241
+ };
242
+ }
243
+ catch (error) {
244
+ // Check for specific error messages
245
+ if (error.response?.status === 401) {
246
+ return {
247
+ content: [
248
+ {
249
+ type: "text",
250
+ text: `Authentication failed for ${name}. Please check your API key. Get API key from: https://app.soilsidekickpro.com/api-docs`,
251
+ },
252
+ ],
253
+ isError: true,
254
+ };
255
+ }
256
+ return {
257
+ content: [
258
+ {
259
+ type: "text",
260
+ text: `Error calling ${name}: ${error.message}`,
261
+ },
262
+ ],
263
+ isError: true,
264
+ };
265
+ }
266
+ });
267
+ // Error handling
268
+ server.onerror = (error) => {
269
+ console.error("[MCP Server Error]", error);
270
+ };
271
+ // Connection handling
272
+ process.on("SIGINT", async () => {
273
+ await server.close();
274
+ process.exit(0);
275
+ });
276
+ // Start server
277
+ async function main() {
278
+ const transport = new stdio_js_1.StdioServerTransport();
279
+ await server.connect(transport);
280
+ console.error("LeafEngines MCP server running on stdio");
281
+ }
282
+ main().catch((error) => {
283
+ console.error("Failed to start server:", error);
284
+ process.exit(1);
285
+ });
286
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@ancientwhispers54/leafengines-mcp-server",
3
+ "version": "1.1.0",
4
+ "mcpName": "io.github.QWarranto/leafengines",
5
+ "description": "Agricultural intelligence MCP server with soil analysis, crop recommendations, weather forecasts, and environmental impact assessment.",
6
+ "main": "dist/index.js",
7
+ "bin": {
8
+ "server-leafengines": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "start": "node dist/index.js",
13
+ "dev": "tsx src/index.ts",
14
+ "test": "echo \"No tests yet\" && exit 0"
15
+ },
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/QWarranto/leafengines-claude-mcp.git"
19
+ },
20
+ "keywords": [
21
+ "mcp",
22
+ "mcp-server",
23
+ "agriculture",
24
+ "soil-analysis",
25
+ "crop-recommendation",
26
+ "weather",
27
+ "environmental-impact",
28
+ "turboquant",
29
+ "leafengines"
30
+ ],
31
+ "author": "QWarranto",
32
+ "license": "Apache-2.0",
33
+ "dependencies": {
34
+ "@modelcontextprotocol/sdk": "^0.6.0",
35
+ "axios": "^1.6.0"
36
+ },
37
+ "devDependencies": {
38
+ "@types/node": "^20.0.0",
39
+ "typescript": "^5.0.0",
40
+ "tsx": "^4.0.0"
41
+ },
42
+ "engines": {
43
+ "node": ">=18.0.0"
44
+ },
45
+ "files": [
46
+ "dist",
47
+ "README.md"
48
+ ]
49
+ }