Skip to main content
Glama

Agricultural AI MCP Server

by BishalJena

🌾 Agricultural AI MCP Server

A production-ready HTTP server providing crop price data and web search capabilities for agricultural AI chatbots. Features creative Docker MCP Gateway integration for intelligent tool routing and management. Built for hackathons and deployed on Render.

🏆 Creative Docker MCP Gateway Usage

This project showcases innovative Docker MCP Gateway integration that goes beyond basic tool serving - demonstrating intelligent agricultural tool orchestration, dynamic server management, and production-ready MCP protocol implementation.

🎯 Why This Wins Hackathons

Our Docker MCP Gateway implementation demonstrates:

  1. 🧠 Intelligent Tool Routing: Gateway automatically selects optimal tools based on query context

  2. 🔄 Dynamic Server Management: Runtime addition/removal of agricultural intelligence servers

  3. 📊 Production Catalog System: Sophisticated server registry with metadata and versioning

  4. 🌐 Hybrid Architecture: Seamless HTTP + MCP protocol support for maximum compatibility

  5. ⚡ Real-time Tool Discovery: Gateway dynamically discovers and routes to available agricultural tools

🚀 Features

Core Agricultural Intelligence

  • Crop Price Data: Real-time agricultural commodity prices from data.gov.in

  • Web Search: Agricultural news and information via EXA API

  • HTTP API: RESTful endpoints for easy integration

  • Health Checks: Built-in monitoring endpoints

Docker MCP Gateway Integration

  • 🎯 Intelligent Tool Routing: Gateway routes queries to optimal agricultural tools

  • 📋 Production Catalog Management: Sophisticated server registry with metadata

  • 🔄 Dynamic Server Discovery: Runtime tool registration and management

  • 🌐 Dual Protocol Support: Both HTTP REST and MCP protocol endpoints

  • ⚡ Real-time Tool Orchestration: Gateway manages multiple agricultural intelligence servers

  • 🛡️ Production-Ready Architecture: Health checks, monitoring, and error handling

🛠️ Quick Start

Option 1: Docker MCP Gateway (Recommended for Hackathons)

1. Setup Docker MCP Gateway

# Install and configure Docker MCP Gateway ./setup-mcp-gateway.sh

2. Set Environment Variables

export DATAGOVIN_API_KEY=your_datagovin_api_key export EXA_API_KEY=your_exa_api_key export DATAGOVIN_RESOURCE_ID=35985678-0d79-46b4-9ed6-6f13308a1d24

3. Deploy with Gateway

# Start services with Docker MCP Gateway docker-compose up -d # Test gateway routing docker mcp tools list docker mcp tools call crop-price state=Punjab commodity=Wheat

4. Access Services

Option 2: Direct HTTP Server

1. Install Dependencies

npm install

2. Set Environment Variables

export DATAGOVIN_API_KEY=your_datagovin_api_key export EXA_API_KEY=your_exa_api_key export DATAGOVIN_RESOURCE_ID=35985678-0d79-46b4-9ed6-6f13308a1d24 export PORT=10000

3. Build and Run

npm run build npm start

4. Test the API

# Health check curl http://localhost:10000/health # Get crop prices curl -X POST http://localhost:10000/tools/crop-price \ -H "Content-Type: application/json" \ -d '{"state": "Punjab", "commodity": "Wheat", "limit": 5}' # Search agriculture info curl -X POST http://localhost:10000/tools/search \ -H "Content-Type: application/json" \ -d '{"query": "Indian agriculture news", "num_results": 3}'

🌐 API Endpoints

Docker MCP Gateway Endpoints

Tool Discovery and Management

# List all available agricultural tools docker mcp tools list # Get tool details docker mcp tools describe crop-price # Call tools through gateway docker mcp tools call crop-price state=Punjab commodity=Wheat docker mcp tools call search query="sustainable farming India" # Manage server catalogs docker mcp catalog ls docker mcp catalog show agricultural-ai-dev

HTTP Gateway Access

  • Gateway: http://localhost:8811

  • Tool Routing: Gateway automatically routes to optimal servers

  • Real-time Discovery: Dynamic tool registration and management

Direct HTTP API Endpoints

Crop Price Tool

POST /tools/crop-price

Parameters:

  • state (optional): State filter (e.g., "Punjab", "Maharashtra")

  • district (optional): District filter (e.g., "Ludhiana", "Mumbai")

  • commodity (optional): Commodity filter (e.g., "Wheat", "Rice", "Cotton")

  • limit (optional): Max records (default: 50, max: 10000)

  • offset (optional): Records to skip (default: 0)

Search Tool

POST /tools/search

Parameters:

  • query (required): Search query

  • num_results (optional): Number of results (default: 5, max: 20)

  • include_domains (optional): Array of domains to include

  • exclude_domains (optional): Array of domains to exclude

MCP Protocol Endpoints

  • POST /mcp - MCP protocol endpoint for AI clients

  • GET / - API documentation with MCP capabilities

  • GET /health - Health check with protocol support info

🐳 Docker MCP Gateway Architecture

Creative Implementation Highlights

Our Docker MCP Gateway integration showcases several innovative patterns:

1. Intelligent Agricultural Tool Orchestration

# agricultural-ai-catalog.yaml - Production catalog with intelligent routing registry: agricultural-ai-unified: description: "Unified agricultural intelligence with smart tool selection" tools: - name: "crop-price" description: "Real-time crop price data from government sources" - name: "search" description: "Agricultural news and research intelligence" metadata: category: "agriculture" tags: ["ai", "crops", "intelligence", "unified"] featured: true

2. Dynamic Server Management

# Runtime server management through MCP Gateway docker mcp catalog create agricultural-ai-production docker mcp catalog add agricultural-ai-production unified ./agricultural-ai-catalog.yaml docker mcp gateway run --use-configured-catalogs --transport=sse

3. Production-Ready Deployment

# Build and deploy with gateway docker-compose up -d # Services automatically available: # - MCP Gateway: localhost:8811 (intelligent routing) # - Direct API: localhost:10001 (HTTP access) # - Health monitoring and tool discovery

Traditional Docker Deployment

Build Image

docker build -t agricultural-ai-mcp .

Run Container

docker run -p 10000:10000 \ -e DATAGOVIN_API_KEY=your_key \ -e EXA_API_KEY=your_key \ agricultural-ai-mcp

☁️ Cloud Deployment

Render (Recommended)

  1. Push code to GitHub

  2. Connect repo to Render

  3. Set environment variables

  4. Deploy!

See RENDER_DEPLOY.md for detailed instructions.

🤖 Agentic Chatbot Integration

Docker MCP Gateway Integration (Recommended)

// Intelligent tool routing through MCP Gateway class AgricultureAI { constructor(gatewayUrl = 'http://localhost:8811') { this.gatewayUrl = gatewayUrl; } // Gateway automatically selects optimal tool based on query context async callTool(toolName, params) { const response = await fetch(`${this.gatewayUrl}/tools/call`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ name: toolName, arguments: params }) }); return response.json(); } // Smart crop price queries with gateway routing async getCropIntelligence(query) { // Gateway routes to crop-price tool automatically return this.callTool('crop-price', { state: query.state, commodity: query.commodity, limit: query.limit || 10 }); } // Intelligent agricultural research async getAgriculturalInsights(query) { // Gateway routes to search tool for comprehensive results return this.callTool('search', { query: `${query} Indian agriculture farming`, num_results: 5 }); } // Combined intelligence - gateway orchestrates multiple tools async getComprehensiveAnalysis(cropQuery, researchQuery) { const [prices, insights] = await Promise.all([ this.getCropIntelligence(cropQuery), this.getAgriculturalInsights(researchQuery) ]); return { market_data: prices, research_insights: insights, analysis_timestamp: new Date().toISOString() }; } } // Usage in your agentic chatbot const agriAI = new AgricultureAI(); // Gateway intelligently routes and manages tools const analysis = await agriAI.getComprehensiveAnalysis( { state: 'Punjab', commodity: 'Wheat' }, 'sustainable wheat farming practices 2024' );

Direct HTTP API Integration

const API_BASE = 'https://your-app.onrender.com'; // Get crop prices async function getCropPrices(state, commodity) { const response = await fetch(`${API_BASE}/tools/crop-price`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ state, commodity, limit: 10 }) }); return response.json(); } // Search agriculture info async function searchAgriculture(query) { const response = await fetch(`${API_BASE}/tools/search`, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query, num_results: 5 }) }); return response.json(); }

MCP Protocol Integration

// Direct MCP protocol communication async function callMCPTool(toolName, params) { const response = await fetch('http://localhost:10001/mcp', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ jsonrpc: '2.0', id: 1, method: 'tools/call', params: { name: toolName, arguments: params } }) }); return response.json(); }

📊 Response Format

Success Response

{ "success": true, "data": { "records": [...], "total": 150, "limit": 10, "offset": 0, "query": { "state": "Punjab", "commodity": "Wheat" } } }

Error Response

{ "error": "Configuration error: API key not set" }

🔐 Security

  • Environment variables for API keys

  • Input validation and sanitization

  • CORS enabled for web access

  • Error handling for API failures

  • Rate limiting handled gracefully

� Crefative Docker MCP Gateway Features

What Makes This Implementation Special

1. Intelligent Tool Orchestration

  • Gateway automatically routes queries to optimal agricultural tools

  • Smart context analysis determines whether to use crop-price or search tools

  • Real-time tool discovery and registration

2. Production Catalog Management

# Sophisticated server registry with metadata docker mcp catalog create agricultural-ai-production docker mcp catalog add agricultural-ai-production unified ./agricultural-ai-catalog.yaml docker mcp catalog export agricultural-ai-production ./backup.yaml

3. Dynamic Server Management

  • Runtime addition/removal of agricultural intelligence servers

  • Health monitoring and automatic failover

  • Load balancing across multiple tool instances

4. Hybrid Architecture Innovation

  • Seamless HTTP REST + MCP protocol support

  • Gateway bridges traditional APIs with modern MCP clients

  • Backward compatibility with existing chatbot frameworks

5. Real-time Agricultural Intelligence

  • Gateway aggregates data from multiple sources

  • Intelligent caching and response optimization

  • Context-aware tool selection for agricultural queries

Demo Commands for Judges

# Show intelligent tool routing docker mcp tools list docker mcp tools call crop-price state=Punjab commodity=Wheat docker mcp tools call search query="climate change impact on Indian farming" # Demonstrate catalog management docker mcp catalog ls docker mcp catalog show agricultural-ai-dev # Show dual protocol support curl http://localhost:10001/health # HTTP API curl http://localhost:8811/ # MCP Gateway

🎯 Perfect for Hackathons

Technical Innovation

  • Creative Docker MCP Gateway Usage - Intelligent agricultural tool orchestration

  • Production-Ready Architecture - Real catalog management and server routing

  • Dual Protocol Support - HTTP + MCP for maximum compatibility

  • Dynamic Tool Management - Runtime server discovery and registration

Practical Value

  • Real Agricultural Data - Government crop prices and market intelligence

  • Comprehensive Search - Agricultural news, research, and insights

  • 5-minute Deployment - Both local Docker and cloud deployment ready

  • Live Demo URLs - Judges can test both gateway and direct API access

Hackathon Winning Factors

  • Solves Real Problems - Addresses agricultural information access challenges

  • Technical Depth - Sophisticated MCP Gateway integration patterns

  • Production Ready - Health checks, monitoring, error handling

  • Easy Integration - Works with any chatbot or AI framework

📝 License

MIT License - Perfect for hackathon projects!

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BishalJena/fs-gate'

If you have feedback or need assistance with the MCP directory API, please join our Discord server