Skip to main content
Glama
RyanWang945

self-mcp-server

by RyanWang945

self-mcp-server

FastMCP server for querying FRED financial and macroeconomic data plus AKShare A-share stock basics.

Design doc:

Setup

uv sync
$env:FRED_API_KEY = ""
uv run python main.py

Alternatively, create a local .env file from .env.example:

Copy-Item .env.example .env

Then set FRED_API_KEY in .env. The server loads it from environment variables via python-dotenv; the key is never exposed as a tool parameter.

Related MCP server: FRED MCP Server

Local MCP Loader Demo

This repo also includes a small local MCP loader demo. The config is in deployments/mcp.local.yaml and follows the same simple stdio shape used by Codex/OpenCode-style MCP configs: server name plus command, args, env, and optional env_files.

The demo loads:

  • fred: this local FRED MCP server via .venv/Scripts/python.exe main.py

  • github: the local Docker image docker.xuanyuan.run/mcp/github:latest

Prepare local secrets:

Copy-Item .env.example .env
Copy-Item deployments/github-mcp/.env.example deployments/github-mcp/.env

Set FRED_API_KEY in .env and GITHUB_PERSONAL_ACCESS_TOKEN in deployments/github-mcp/.env.

Run the demo:

.venv\Scripts\python.exe scripts\demo_load_mcp_servers.py

It initializes both MCP servers, lists their tools, and calls one sample tool on each server.

For HTTP mode, these can also live in .env:

MCP_TRANSPORT=http
MCP_HOST=127.0.0.1
MCP_PORT=8765
MCP_PATH=/mcp
MCP_STATELESS_HTTP=true
MCP_JSON_RESPONSE=true

HTTP mode for curl-based E2E checks:

$env:MCP_TRANSPORT = "http"
$env:MCP_HOST = "127.0.0.1"
$env:MCP_PORT = "8765"
$env:MCP_PATH = "/mcp"
uv run python main.py

Tools

  • fred_search_series

  • fred_get_series

  • fred_get_observations

  • fred_get_latest_observation

  • fred_get_vintage_dates

  • fred_get_canonical_indicators

  • fred_get_macro_snapshot

  • akshare_stock_zh_a_code_name

  • akshare_stock_profile_cninfo

  • akshare_stock_valuation_em

  • akshare_stock_financial_abstract

  • akshare_stock_basic_metrics

All tools return a common envelope:

{
  "ok": true,
  "data": {},
  "meta": {
    "source": "FRED",
    "endpoint": "series/observations",
    "cached": false,
    "fetched_at": "2026-05-13T12:00:00Z"
  },
  "request": {},
  "warnings": []
}

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    A Model Context Protocol server that provides tools to search and retrieve economic data series from the Federal Reserve Economic Data (FRED) API.
    2
    317 npm
    11
    AGPL 3.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that provides access to Federal Reserve Economic Data (FRED), enabling users to retrieve, analyze, and compare economic indicators and time series data through natural language.
    2
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that wraps the Federal Reserve Economic Data (FRED) API, providing access to over 800,000 economic time series like GDP and unemployment. It enables AI agents to search for data, retrieve metadata, and fetch historical observations directly from the St. Louis Fed.
    -
  • A
    license
    B
    quality
    C
    maintenance
    An MCP server that provides access to the full FRED API (Federal Reserve Economic Data), including the Maps API for regional and geographic data.
    33
    32 PyPI
    2
    MIT