fred-mcp-server
Version:
Federal Reserve Economic Data (FRED) MCP Server - Access all 800,000+ economic time series with search, browse, and data retrieval capabilities
28 lines (27 loc) • 1.27 kB
JavaScript
import { z } from "zod";
import { seriesMetadataMap, handleGenericSeries } from "./request.js";
/**
* Factory function to register a series-specific FRED tool on the MCP server
*/
export function registerSeriesSpecificTool(server, seriesId) {
// Get metadata for the series
const metadata = seriesMetadataMap[seriesId] || {
title: `FRED Data Series: ${seriesId}`,
description: `Economic data from FRED series ${seriesId}`,
units: "Value"
};
// Register the series-specific tool
server.tool(seriesId, `Retrieve data for ${metadata.title} (${seriesId}) from FRED`, {
start_date: z.string().optional().describe("Start date in YYYY-MM-DD format"),
end_date: z.string().optional().describe("End date in YYYY-MM-DD format"),
limit: z.number().optional().describe("Maximum number of observations to return"),
sort_order: z.enum(["asc", "desc"]).optional().describe("Sort order of observations")
},
// Handler with logging
async (input) => {
console.error(`${seriesId} tool called with params: ${JSON.stringify(input)}`);
const result = await handleGenericSeries(seriesId, input);
console.error(`${seriesId} tool handling complete`);
return result;
});
}