← Back to search

io.github.cyanheads/fred-mcp-server

cyanheads Scanned 24d ago

Search and fetch ~800K Federal Reserve economic time-series from the FRED API via MCP.

B
89.5 / 100

Versions

No versions found.

PermissionsTool SafetyAuthAnnotationsCode QualityStabilitySpecVuln HistoryAuthorTransparencyCommunity

Tools 8

fedreserve_get_release
annotations: verified low

Return metadata and associated series for a FRED release (e.g., Employment Situation, Consumer Price Index). Accepts a release_id integer or a release_search text query — release_search performs a substring match across all FRED releases; prefer release_id when you know the ID. Returns release name, link, scheduled dates, and a paginated list of its series. Provide exactly one of release_id or release_search.

id number link string input object notes string output object press_release boolean
readOnlyHint true openWorldHint true
fedreserve_browse_categories
annotations: verified low

Navigate the FRED category tree. Returns the current category, its child categories, and — when viewing a leaf node with no children — a sample of series within it. Omit category_id to start at the root (ID 0).

id string input object notes string units string output object frequency string parent_id number
readOnlyHint true openWorldHint false
fedreserve_dataframe_drop
annotations: verified low

Drop a canvas dataframe by name. Idempotent — returns dropped: false when nothing matched. TTL handles cleanup in normal operation; this tool is for explicit early reclamation when an analysis session is complete. Requires CANVAS_PROVIDER_TYPE=duckdb and FRED_DATAFRAME_DROP_ENABLED=true.

input object output object
readOnlyHint false openWorldHint false idempotentHint true destructiveHint true
fedreserve_search_series
annotations: verified low

Search FRED series by full-text query across titles, tags, and notes. Returns matching series IDs with titles, units, frequency, and last-updated dates for use in follow-up observation or metadata calls. Supports post-search filtering by frequency, units, or seasonal adjustment status. To find series for a specific release, use fedreserve_get_release instead.

id string count number input object limit number query string units string offset number output object frequency string popularity number filter_value string last_updated string seasonal_adjustment string
readOnlyHint true openWorldHint true
fedreserve_get_observations
annotations: verified low

Fetch observation data (date + value pairs) for one or more FRED series over a date range. Supports FRED built-in unit transformations (lin, chg, ch1, pch, pc1, pca, cch, cca, log). Multi-series or >500-row results spill to a DataCanvas table — the response includes a `dataset` field with the handle to query via fedreserve_dataframe_query. Observation values are kept as strings to preserve trailing zeros.

input object
readOnlyHint true openWorldHint false
fedreserve_dataframe_query
annotations: verified low

Run a single-statement SELECT against canvas dataframes registered by fedreserve_get_observations. Standard DuckDB SQL — joins, aggregates, window functions, CTEs all supported. Reference dataframes by the df_<id> handles returned from fedreserve_get_observations or listed by fedreserve_dataframe_describe. Read-only: writes, DDL, DROP, COPY, PRAGMA, ATTACH, and external-file table functions are rejected. System catalogs are denied at the bridge layer. Optional register_as chains the result as a new dataframe with a fresh TTL. Requires CANVAS_PROVIDER_TYPE=duckdb.

input object output object columns array
readOnlyHint true openWorldHint false idempotentHint true
fedreserve_get_series
annotations: verified low

Retrieve metadata for one or more FRED series — title, units, frequency, seasonal adjustment status, observation range, popularity, and notes. Accepts up to 50 series IDs. Returns partial success when some IDs fail.

id string error string input object output object
readOnlyHint true openWorldHint false
fedreserve_dataframe_describe
annotations: verified low

List canvas dataframes materialized by fedreserve_get_observations, with provenance, TTL, column schema, and row count. Optionally filter to a single dataframe by name. Requires CANVAS_PROVIDER_TYPE=duckdb.

type string input object output object nullable boolean row_count number created_at string source_tool string
readOnlyHint true openWorldHint false idempotentHint true

Permissions 2

shell high
Server uses shell capabilities via: child_process, spawn(), spawnSync()
env_vars low
Server uses env_vars capabilities via: process.env

Scan Findings 25

info
Tool 'fedreserve_get_observations' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_dataframe_query' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_get_series' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_dataframe_describe' annotations are consistent annotation_checker · 80%
info
Sandbox failed to start for behavioral verification behavioral_verifier · 100%
info
Tool 'fedreserve_get_release' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_browse_categories' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_dataframe_drop' annotations are consistent annotation_checker · 80%
info
Tool 'fedreserve_search_series' annotations are consistent annotation_checker · 80%
info
package.json metadata manifest_parser · 100%
info
Tool: fedreserve_get_release manifest_parser · 75%
info
Tool: fedreserve_browse_categories manifest_parser · 75%
info
Tool: fedreserve_dataframe_drop manifest_parser · 75%
info
Tool: fedreserve_search_series manifest_parser · 75%
info
Tool: fedreserve_get_observations manifest_parser · 75%
info
Tool: fedreserve_dataframe_query manifest_parser · 75%
info
Tool: fedreserve_get_series manifest_parser · 75%
info
Tool: fedreserve_dataframe_describe manifest_parser · 75%
info
Required env vars (4) manifest_parser · 80%
info
Sandbox failed to start for output poisoning scan output_poisoning · 100%
high
Permission: shell access detected permission_analyzer · 95%
low
Permission: env_vars access detected permission_analyzer · 90%
info
SBOM generated: 12 components sbom_generator · 100%
high
Hardcoded Password found in cyanheads-federal-reserve-mcp-server-7729fd5/framework-skills/api-utils/references/security.md secret_scanner · 65%
medium
No build provenance detected (SLSA L0) slsa_assessor · 90%