Skip to main content
Glama

FinBridge

Get FRED Series Observations

get_fred_series
Read-only

Fetch observations (time series data points) for a FRED series, with optional date range, frequency aggregation, and unit transformation.

Args:

  • series_id: FRED series ID, e.g. 'CPIAUCSL', 'UNRATE', 'DGS10', 'DEXKOUS' (case-insensitive)

  • from / to: YYYY-MM-DD observation range (optional)

  • frequency: aggregate to d/w/m/q/a (optional; FRED averages within the period; cannot be finer than the native frequency)

  • units: lin (levels, default) | chg (change) | pch (% change) | pc1 (% change from year ago) | log (natural log)

  • limit: 1-1000 (default 120). Without from/to this returns the LATEST N observations; with a range, the latest N within the range.

  • response_format: 'markdown' (default) or 'json'

Returns: {series:{id,title,units,frequency,last_updated}, observations:[{date, value}], source}. Observations are ascending by date; value is null where FRED reports '.'.

Examples:

  • "US 10Y treasury yield, last 30 points" -> {series_id:'DGS10', limit:30}

  • "CPI YoY inflation since 2020" -> {series_id:'CPIAUCSL', units:'pc1', from:'2020-01-01'}

  • "annual average USD/KRW 2023-2025" -> {series_id:'DEXKOUS', from:'2023-01-01', to:'2025-12-31', frequency:'a'}

  • Don't use for series discovery — use search_fred_series first.

Errors: unknown series_id suggests search_fred_series; invalid frequency/range combinations explain the constraint; missing FRED_API_KEY returns a hint to obtain a free key.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoObservation end date YYYY-MM-DD (optional)
fromNoObservation start date YYYY-MM-DD (optional)
limitNoMax observations, latest first-served (default 120)
unitsNoTransformation: lin=levels (default), chg=change, pch=% change, pc1=% change from year ago, log=natural loglin
frequencyNoAggregate to daily/weekly/monthly/quarterly/annual (FRED period average). Optional.
series_idYesFRED series ID, e.g. 'CPIAUCSL' (case-insensitive)
response_formatNo'markdown' for a table, 'json' for compact machine-readable outputmarkdown

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
seriesYes
sourceYes
observationsYes

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. First observed

TDQS

A5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark readOnlyHint=true and openWorldHint=true, and the description adds meaningful behavioral details: frequency aggregation 'cannot be finer than the native frequency', 'value is null where FRED reports .', the latest-N semantics of limit, and an API-key error hint. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long but every section earns its place: one-line purpose, parameter semantics, return shape, examples, and error guidance. It is clearly structured with labels, making it easy to scan, and the examples are high-value rather than filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-parameter tool with one required parameter, this description fully equips an agent to invoke it correctly: it covers parameter combinations, return format, null handling, error behavior, and relationship to the FRED API key. Nothing necessary for correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds substantial value: frequency constraint versus native frequency, limit behavior in and out of a date range, unit transformation choices with examples, and realistic series IDs. The examples map entire user intents to parameter combinations, which goes far beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Fetch observations (time series data points) for a FRED series', with optional modifiers. It clearly distinguishes from series discovery by saying 'Don't use for series discovery — use search_fred_series first', and the examples reinforce the observation-fetching purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly tells the agent when not to use it ('Don't use for series discovery — use search_fred_series first') and gives four concrete natural-language-to-parameter examples. It also explains the behavior of limit with and without a date range, which is exactly the kind of usage nuance an agent needs.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.2/5.0
Disambiguation4/5

Most tools have clearly distinct resource+action targets, and the overlapping screen_* tools are thoroughly cross-referenced with 'use screen_X instead' guidance. Minor ambiguity exists between get_disclosure_feed, get_dart_filings, and get_dart_major_events, which all surface KR filings from different angles but remain distinguishable.

Naming Consistency5/5

Every tool follows a consistent verb_noun snake_case pattern: get_* for retrievers, screen_* for screeners, search_* for lookups, plus action verbs like analyze_, backtest_, compare_, import_, and query_. Subfamilies (dart_*, edgar_*, fred_*, crypto_*) are consistently prefixed, making tool selection predictable.

Tool Count3/5

37 tools is heavy, and the four momentum screeners (canslim/kell/minervini/schwartz) plus three KR disclosure tools could arguably be collapsed into parameterized variants. However, the server's unusually broad scope—KR/US/TW/JP/EU equities, crypto, macro, portfolio, backtesting—means most tools earn their place, so the count is high but not chaotic.

Completeness4/5

The surface covers the core workflow well: search, prices, fundamentals, filings, insider trades, valuation, screeners, backtesting, and portfolio tracking for KR/US, plus crypto and macro. Notable gaps are the lack of single-company financial-statement tools for TW/JP/EU (only available through screen_companies) and no real-time stock quotes, but these are workable for the stated local-database research purpose.

Resources