Skip to main content
Glama
manolaz

Emergency Medicare Planner MCP Server

by manolaz

find_nearby_medical_facilities

Locate nearby hospitals and clinics based on user location, treatment needs, care quality, price range, and infrastructure. Designed for emergency medical planning by evaluating facility types and services.

Instructions

Finds hospitals and clinics nearby user location that match specific requirements

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
careQualityNoExpected quality of medical care
facilitiesNoTypes of medical facilities to search for
infrastructureNoQuality of infrastructure and cleanliness
priceRangeNoPrice range preference
radiusNoSearch radius in meters (default: 10000m = 10km)
treatmentNeedsNoSpecific medical treatments or services needed
userLocationYesUser's current location (address or coordinates)

Implementation Reference

  • The main handler function for the 'find_nearby_medical_facilities' tool. It validates input using the schema, uses mock data for nearby facilities, applies filters based on user preferences (treatment needs, care quality, price range, facility types, infrastructure), and returns a formatted list of matching facilities.
    case "find_nearby_medical_facilities": { const validatedArgs = FindNearbyMedicalFacilitiesSchema.parse(args); // Mock implementation - in a real scenario this would call the Google Maps API const mockFacilities = [ { name: "General Hospital", address: "123 Main St, Cityville", distance: "2.3 km", type: "hospital", treatmentsAvailable: ["emergency", "surgery", "cardiology"], careQuality: "high", priceRange: "moderate", infrastructure: "excellent" }, { name: "Community Clinic", address: "456 Oak Ave, Cityville", distance: "3.8 km", type: "clinic", treatmentsAvailable: ["general practice", "pediatrics"], careQuality: "medium", priceRange: "low", infrastructure: "good" }, { name: "Specialized Medical Center", address: "789 Pine St, Cityville", distance: "5.1 km", type: "specialist", treatmentsAvailable: ["oncology", "neurology"], careQuality: "high", priceRange: "high", infrastructure: "excellent" } ]; // Filter facilities based on user criteria let facilities = mockFacilities; // Filter by treatment needs if specified if (validatedArgs.treatmentNeeds && validatedArgs.treatmentNeeds.length > 0) { facilities = facilities.filter(facility => validatedArgs.treatmentNeeds!.some(treatment => facility.treatmentsAvailable.includes(treatment) ) ); } // Filter by care quality if specified if (validatedArgs.careQuality && validatedArgs.careQuality !== "any") { facilities = facilities.filter(facility => facility.careQuality === validatedArgs.careQuality || (validatedArgs.careQuality === "high" && facility.careQuality === "high") || (validatedArgs.careQuality === "medium" && ["medium", "high"].includes(facility.careQuality)) ); } // Filter by price range if specified if (validatedArgs.priceRange && validatedArgs.priceRange !== "any") { facilities = facilities.filter(facility => facility.priceRange === validatedArgs.priceRange); } // Filter by facility type if specified if (validatedArgs.facilities && validatedArgs.facilities.length > 0) { facilities = facilities.filter(facility => validatedArgs.facilities!.includes(facility.type as any) ); } // Filter by infrastructure quality if specified if (validatedArgs.infrastructure && validatedArgs.infrastructure !== "any") { facilities = facilities.filter(facility => facility.infrastructure === validatedArgs.infrastructure || (validatedArgs.infrastructure === "good" && ["good", "excellent"].includes(facility.infrastructure)) ); } return { content: [ { type: "text", text: `Found ${facilities.length} medical facilities near ${validatedArgs.userLocation} within ${validatedArgs.radius/1000} km:\n\n` + facilities.map(f => `- ${f.name} (${f.type})\n Address: ${f.address}\n Distance: ${f.distance}\n` + ` Treatments: ${f.treatmentsAvailable.join(", ")}\n` + ` Quality: ${f.careQuality}, Price: ${f.priceRange}, Infrastructure: ${f.infrastructure}` ).join("\n\n") }, ], }; }
  • Zod schema defining the input parameters for the 'find_nearby_medical_facilities' tool, including user location, search radius, treatment needs, care quality, price range, facility types, and infrastructure preferences.
    const FindNearbyMedicalFacilitiesSchema = z.object({ userLocation: z.string().describe("User's current location (address or coordinates)"), radius: z.number().default(10000).describe("Search radius in meters (default: 10000m = 10km)"), treatmentNeeds: z.array(z.string()).optional().describe("Specific medical treatments or services needed"), careQuality: z.enum(["high", "medium", "any"]).optional().describe("Expected quality of medical care"), priceRange: z.enum(["low", "moderate", "high", "any"]).optional().describe("Price range preference"), facilities: z.array(z.enum(["hospital", "clinic", "emergency", "pharmacy", "specialist"])).optional() .describe("Types of medical facilities to search for"), infrastructure: z.enum(["excellent", "good", "any"]).optional().describe("Quality of infrastructure and cleanliness"), });
  • index.ts:264-268 (registration)
    Registration of the 'find_nearby_medical_facilities' tool in the list of available tools returned by ListToolsRequestSchema handler, including name, description, and input schema.
    { name: "find_nearby_medical_facilities", description: "Finds hospitals and clinics nearby user location that match specific requirements", inputSchema: zodToJsonSchema(FindNearbyMedicalFacilitiesSchema), },

Other Tools

Related Tools

Latest Blog Posts

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/manolaz/emergency-medicare-planner-mcp-server'

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