import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
import { getAlerts, getForecast, alertsSchema, forecastSchema } from "./weather.js";
// Create server instance
const server = new McpServer({
name: "weather",
version: "1.0.0",
capabilities: {
resources: {},
tools: {},
},
});
// Register weather tools
server.tool("get_alerts", "Get weather alerts for a state", alertsSchema.shape, async ({ state }) => {
return await getAlerts(state);
});
server.tool("get_forecast", "Get weather forecast for a location", forecastSchema.shape, async ({ latitude, longitude }) => {
return await getForecast(latitude, longitude);
});
async function main() {
const transport = new StdioServerTransport();
await server.connect(transport);
console.error("Weather MCP Server running on stdio");
}
main().catch((error) => {
console.error("Fatal error in main():", error);
process.exit(1);
});