FRED MCP Server
Here's the README formatted in proper markdown:
# FRED MCP Server
A Model Context Protocol (MCP) server implementation for accessing the Federal Reserve Economic Data (FRED) API. This server provides tools to search and retrieve economic data series from FRED.
## Prerequisites
- Node.js (v16 or higher)
- FRED API Key (obtain from [FRED API](https://fred.stlouisfed.org/docs/api/api_key.html))
## Installation
1. Clone the repository:
```bash
git clone https://github.com/kablewy/fred-mcp-server
cd fred-mcp-server
```
2. Install dependencies:
```bash
npm install
```
3. Copy the `.env.example` file to `.env` and add your FRED API key:
```
FRED_API_KEY=your_api_key_here
```
## Usage
### Development
Run the server in development mode:
```bash
npm run dev
```
### Production
1. Build the project:
```bash
npm run build
```
2. Start the server:
```bash
npm start
```
## Available Tools
The server provides the following FRED API tools:
### Series Search
Search for economic data series using various parameters.
### Series Observations
Retrieve observations for a specific economic data series with options for:
- Date range filtering
- Frequency adjustment
- Aggregation methods
- Sorting and pagination
## Development
### Project Structure
```
fred-mcp-server/
├── src/
│ ├── index.ts # Server entry point
│ ├── tools.ts # Tool implementations
│ └── types.ts # TypeScript interfaces
├── package.json
├── tsconfig.json
└── .env
```
### Testing
Run the test suite:
```bash
npm test
```
## License
[Your chosen license]
## Contributing
[Your contribution guidelines]
## Acknowledgments
- Built with [Model Context Protocol SDK](https://github.com/modelcontextprotocol/sdk)
- Data provided by [Federal Reserve Economic Data (FRED)](https://fred.stlouisfed.org/)
TDQS
Scored across 2 tools
The two tools have distinct purposes: 'search' is for finding data series, while 'series' is for retrieving observations for a specific series. There is minimal overlap, though the 'advanced options' in both descriptions could cause slight confusion if not detailed further, but the core functions are clearly separated.
Both tool names are single, lowercase nouns ('search' and 'series'), which is consistent and simple. There are no mixed conventions or deviations, making the naming pattern predictable and easy to understand.
With only 2 tools, the server feels thin for a data service like FRED, which typically involves more operations such as listing categories, getting metadata, or managing favorites. This limited set may hinder agents from performing comprehensive tasks in the domain.
The tool surface is severely incomplete for a FRED server. It lacks essential operations like listing available series categories, retrieving series metadata, or supporting updates and deletions. Agents will face significant gaps when trying to navigate or manipulate FRED data beyond basic search and observation retrieval.