Federal Reserve Economic Data
Acesse conjuntos de dados financeiros da API Federal Reserve Economic Data (FRED).
Documentação
Servidor MCP de Dados Econômicos do Federal Reserve
[!IMPORTANT] Aviso: Este projeto de código aberto não é afiliado, patrocinado ou endossado pelo Federal Reserve ou pelo Federal Reserve Bank of St. Louis. "FRED" é uma marca registrada do Federal Reserve Bank of St. Louis, usada aqui apenas para fins descritivos.
Um servidor Model Context Protocol (MCP) que fornece acesso universal a todas as mais de 800.000 séries temporais de Dados Econômicos do Federal Reserve (FRED®) por meio de três ferramentas poderosas.
https://github.com/user-attachments/assets/66c7f3ad-7b0e-4930-b1c5-a675a7eb1e09
[!TIP] Se você usar este projeto em sua pesquisa ou trabalho, cite-o usando o arquivo CITATION.cff ou use a seguinte citação:
Formato APA:
Amorelli, S. (2025). Federal Reserve Economic Data MCP (Model Context Protocol) Server (Version 1.0.2) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.14536707
BibTeX:
@software{amorelli_2025_14536707,
author = {Amorelli, Stefano},
title = {{Federal Reserve Economic Data MCP (Model Context
Protocol) Server}},
month = jan,
year = 2025,
publisher = {Zenodo},
version = {1.0.2},
doi = {10.5281/zenodo.14536707},
url = {https://doi.org/10.5281/zenodo.14536707}
}
Instalação
Instalação Manual
- Clone o repositório:
git clone https://github.com/stefanoamorelli/fred-mcp-server.git cd fred-mcp-server - Instale as dependências:
pnpm install - Compile o projeto:
pnpm build
Configuração
Este servidor requer uma chave de API FRED®. Você pode obter uma no site do FRED®.
Instale o servidor, por exemplo, no Claude Desktop, modifique o arquivo claude_desktop_config.json e adicione a seguinte configuração:
{
"mcpServers": {
"FRED MCP Server": {
"command": "/usr/bin/node",
"args": [
"<PATH_TO_YOUR_CLONED_REPO>/fred-mcp-server/build/index.js"
],
"env": {
"FRED_API_KEY": "<YOUR_API_KEY>"
}
}
}
}
Usando Docker
Você também pode executar o Servidor MCP FRED usando Docker. Adicione esta configuração ao seu claude_desktop_config.json:
{
"mcpServers": {
"fred-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"FRED_API_KEY=<your-key-here>",
"stefanoamorelli/fred-mcp-server:latest"
],
"env": {}
}
}
}
Substitua <your-key-here> pela sua chave real da API FRED.
Usando Transporte HTTP Streamable
Para implantações em rede, você pode executar o servidor com transporte HTTP Streamable em vez de stdio:
# Using CLI flag
node build/index.js --http
# Or using environment variable
TRANSPORT=http node build/index.js
# Custom port (default is 3000)
PORT=8080 node build/index.js --http
O servidor estará disponível em http://localhost:3000/mcp (ou na sua porta personalizada).
Exemplo de solicitação do cliente:
# Initialize session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"my-client","version":"1.0.0"}}}'
# Use the mcp-session-id from the response header for subsequent requests
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "mcp-session-id: <session-id-from-init>" \
-d '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
Um endpoint GET /healthz relata sessões ativas, estatísticas de cache e tempo de atividade para balanceadores de carga e orquestradores.
Configuração
Todas as configurações são variáveis de ambiente com padrões sensatos:
| Variável | Padrão | Descrição |
|---|---|---|
FRED_API_KEY | (obrigatório) | Sua chave da API FRED |
FRED_API_TIMEOUT_MS | 30000 | Tempo limite por solicitação contra a API FRED |
FRED_API_MAX_RETRIES | 3 | Tentativas para falhas 429/5xx/rede (backoff exponencial com jitter, respeita Retry-After) |
FRED_API_RETRY_BASE_DELAY_MS | 500 | Atraso base para backoff de tentativas |
FRED_RATE_LIMIT_PER_MINUTE | 120 | Token bucket no lado do cliente correspondente à cota por chave do FRED |
FRED_CACHE_TTL_MS | 60000 | TTL para respostas de API em cache (0 desativa o cache) |
FRED_CACHE_MAX_ENTRIES | 500 | Capacidade do cache LRU |
TRANSPORT | stdio | Defina como http para transporte HTTP Streamable |
HOST | (todas as interfaces) | Endereço de bind HTTP |
PORT | 3000 | Porta HTTP |
MCP_MAX_SESSIONS | 100 | Máximo de sessões MCP simultâneas (novas sessões recebem 503 além disso) |
MCP_SESSION_TTL_MS | 1800000 | Tempo ocioso antes que uma sessão seja encerrada |
MCP_SESSION_SWEEP_INTERVAL_MS | 60000 | Com que frequência o coletor de sessões ociosas é executado |
MCP_BODY_LIMIT | 1mb | Tamanho máximo aceito do corpo JSON |
LOG_LEVEL | info | error, warn, info ou debug (os logs vão para stderr) |
Solicitações concorrentes idênticas são combinadas em uma única chamada upstream, e respostas bem-sucedidas são armazenadas em cache, para que várias sessões compartilhem um orçamento de limite de taxa com eficiência.
Ferramentas Disponíveis
Este servidor MCP fornece três ferramentas abrangentes para acessar todas as mais de 800.000 séries de dados econômicos FRED®:
fred_browse
Descrição: Navegue pelo catálogo completo do FRED por categorias, lançamentos ou fontes.
Parâmetros:
browse_type(obrigatório): Tipo de navegação - "categories", "releases", "sources", "category_series", "release_series"category_id(opcional): ID da categoria para navegar por subcategorias ou séries dentro de uma categoriarelease_id(opcional): ID do lançamento para navegar por séries dentro de um lançamentolimit(opcional): Número máximo de resultados (padrão: 50)offset(opcional): Número de resultados a pular para paginaçãoorder_by(opcional): Campo para ordenar os resultadossort_order(opcional): "asc" ou "desc"
fred_search
Descrição: Pesquise séries de dados econômicos FRED por palavras-chave, tags ou filtros.
Parâmetros:
search_text(opcional): Texto para pesquisar em títulos e descrições de sériessearch_type(opcional): "full_text" ou "series_id"tag_names(opcional): Lista separada por vírgulas de nomes de tags para filtrarexclude_tag_names(opcional): Lista separada por vírgulas de nomes de tags para excluirlimit(opcional): Número máximo de resultados (padrão: 25)offset(opcional): Número de resultados a pular para paginaçãoorder_by(opcional): Campo para ordenar (ex.: "popularity", "last_updated")sort_order(opcional): "asc" ou "desc"filter_variable(opcional): Filtrar por "frequency", "units" ou "seasonal_adjustment"filter_value(opcional): Valor para filtrar a variável
fred_get_series
Descrição: Recupere dados de qualquer série FRED pelo seu ID com suporte para transformações e intervalos de datas.
Parâmetros:
series_id(obrigatório): O ID da série FRED (ex.: "GDP", "UNRATE", "CPIAUCSL")observation_start(opcional): Data de início no formato AAAA-MM-DDobservation_end(opcional): Data de término no formato AAAA-MM-DDlimit(opcional): Número máximo de observaçõesoffset(opcional): Número de observações a pularsort_order(opcional): "asc" ou "desc"units(opcional): Transformação de dados:- "lin" (níveis/sem transformação)
- "chg" (mudança em relação ao período anterior)
- "ch1" (mudança em relação ao ano anterior)
- "pch" (mudança percentual)
- "pc1" (mudança percentual em relação ao ano anterior)
- "pca" (taxa anual composta de mudança)
- "cch" (taxa de mudança continuamente composta)
- "log" (logaritmo natural)
frequency(opcional): Agregação de frequência ("d", "w", "m", "q", "a")aggregation_method(opcional): "avg" (média), "sum" ou "eop" (fim do período)
Exemplo de Uso
Com essas três ferramentas, você pode:
- Navegar por todas as categorias econômicas e descobrir dados disponíveis
- Pesquisar indicadores específicos por palavras-chave ou tags
- Recuperar qualquer uma das mais de 800.000 séries com transformações personalizadas
- Acessar dados econômicos em tempo real, incluindo PIB, desemprego, inflação, taxas de juros e muito mais
Menções nas Redes Sociais 📣
[!NOTE] Quer ser destaque? Marque Stefano Amorelli no LinkedIn ou @stefanoamorelli no X em sua publicação sobre o uso do Servidor MCP FRED, ou envie um PR para adicionar sua menção!
Somos gratos pelo apoio da comunidade! Aqui estão algumas menções de pessoas incríveis:
Scott G - "Um dos meus momentos de avanço para 'entender' o que é possível com Claude foi este projeto fred-mcp-server..."
Scott G - Profissional de Fintech e Análise de Dados | Perfil no LinkedIn
John Shelburne - "O Servidor MCP FRED é um divisor de águas para análise financeira..."
John Shelburne - Líder em Fintech de Renda Fixa com mais de 20 Anos de Experiência | Especialista em Machine Learning e Computação em Nuvem | Perfil no LinkedIn
Testes
Consulte TESTING.md para mais detalhes.
# Run all tests
pnpm test
# Run specific tests
pnpm test:registry
Licença ⚖️
Este projeto de código aberto é licenciado sob a GNU Affero General Public License v3.0 (AGPL-3.0). Isso significa:
- Você pode usar, modificar e distribuir este software
- Se você modificar e distribuir, deve divulgar suas alterações sob AGPL-3.0
- Se você executar uma versão modificada em um servidor, deve fornecer o código-fonte aos usuários
- Consulte o arquivo LICENSE para detalhes completos
Para opções de licenciamento comercial ou outras consultas de licenciamento, entre em contato com stefano@amorelli.tech.
© 2025 Stefano Amorelli