mcpField
S
serieslib

serieslib

Local
github.com/CloudCorpRecordsFinance0Updated 1w ago

About serieslib

serieslib is a local bridge to the ElKassabgi data family's hosted MCP server. It forwards tools for economics series, high-frequency market data and patent-based innovation measures, returning upstream results without alteration.

Key features

  1. 01Search economic data series
  2. 02Read series data and metadata
  3. 03Browse data sources and freshness
  4. 04Get high-frequency data download instructions
  5. 05List patent and innovation bundles
  6. 06Check library and authentication status

Use cases

  1. 01Find economic series by topic or source
  2. 02Retrieve series values and licensing details
  3. 03Check data update status by source
  4. 04Locate high-frequency or patent data downloads

MCP support

Exposes the hosted server's tools through a local MCP server and forwards calls upstream over a reusable Streamable HTTP session. Successful results are passed through unchanged.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-serieslib": {
"command": "npx",
"args": [
"-y",
"@reneturcios/serieslib"
]
}
}
}
Run commandnpx -y @reneturcios/serieslib

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/serieslib0.1.0
ocighcr.io/cloudcorprecords/serieslib:0.1.0

Tools

12

Saved tool list · updated 1w ago

ParameterTypeRequiredDescription
langenumNoTitle language. Only official translations are shown; a title without one stays in English.en | ar | es | fr | ru | zh
limitintegerNoMaximum number of catalog results to return.
querystringYesFree-text search, e.g. 'germany inflation' or 'GDP per capita'
offsetintegerNoSkip this many results (paging). The API caps how deep it pages and says so if exceeded.
sourcestringNoRestrict to one source id, e.g. 'worldbank', 'ecb', 'imf_weo'

Details

From the project README

serieslib

serieslib is a thin local bridge to the ElKassabgi data family's hosted MCP server, which publishes three libraries under one endpoint: an economics catalog with billions of time series drawn from hundreds of official sources, a high-frequency library of 1-minute US equity bars and pre-computed academic variables, and an intellectual-property library of patent-level innovation measures.

The bridge holds no data and computes nothing. It serves the upstream server's tool list locally — exactly as captured from the live endpoint — and forwards each tool call upstream, returning the result untouched. Search, metadata, source lists, freshness and status tools are free at the upstream; a few downloads there ask for the family's own free API key, which stays an upstream concern: this client sends no credential of its own, and get_auth_status reports the upstream connection's key state.

Tools

  • search_econ_series — search the economics catalog by free text (query, required). Optional: source to restrict to one source id, limit (1-50, default 15) and offset for paging, and lang (en, ar, es, fr, ru, zh) for source-official translated titles where they exist. Returns series ids for the other tools.
  • get_econ_series — download one series as date/value rows with its citation and licence. Required: series_id. Optional: date_from / date_to (YYYY-MM-DD) to window long series, and max_rows (10-2000, default 400).
  • get_econ_series_metadata — full metadata for one series (series_id, required): title, frequency, geography, unit, licence including the commercial-use flag, attribution, and coverage dates.
  • list_econ_sources — enumerate the catalog's sources (statistical offices, monetary authorities, IGOs, research datasets) with their licences. Optional: contains, a case-insensitive filter on source id or name.
  • get_data_freshness — the per-source update board from the upstream updater's ledger: last successful update, data frontier, and stale or failure flags. Optional: source for a single source.
  • get_econ_bundle_manifest — build a citable Frictionless-style bundle manifest: up to 50 explicit series ids (ids), or every series of one small source (source, up to 1,000). Unresolvable ids are reported, never dropped.
  • get_hf_download_link — authenticated download instructions for the high-frequency library. Required: ticker (e.g. AAPL). Optional: dataset (bars, variables or quality, default bars), version (clean or raw, default clean), and format (parquet or csv, default parquet; csv applies to bars only). Files hold all of a ticker's bars and are fetched by your own code, not returned inline.
  • get_hf_variables_dictionary — the exact published definitions and formulas of the 25 pre-computed academic variables. No arguments.
  • list_ip_bundles — list the IP library's snapshot-pinned patent and innovation bundles, with sizes, vintages and download paths. No arguments.
  • get_ip_download_link — authenticated download instructions for one IP bundle. Required: file (patent_measures.parquet or assignee_year.parquet). Optional: vintage to pin a snapshot instead of the newest.
  • get_family_status — live headline stats and data currency for all three libraries. No arguments.
  • get_auth_status — whether the upstream connection has a family API key configured (masked; the key is never echoed) and how to add one. No arguments.

Configuration

  • ELKASSABGI_MCP_URL (optional) — override the upstream endpoint. Defaults to https://elkassabgidata-mcp.elkassabgi.workers.dev/mcp. (The override hook is this rebuild's own labelled reconstruction.)
Forwarding mechanics

On the first tool call the client opens a streamable HTTP session with the upstream: a JSON-RPC initialize request (protocolVersion 2025-03-26, clientInfo name serieslib), then a notifications/initialized notification, then the tools/call request carrying the caller's arguments unchanged. When the upstream answers initialize with an Mcp-Session-Id header, that value rides on every later request of the session, which is reused for the life of the process. Replies may arrive as plain JSON or as server-sent events; both are read.

Successful upstream results pass through verbatim, including any isError flag the upstream sets. Failures — a JSON-RPC error, a non-2xx status, an unreadable response, or a request that cannot be completed — come back as an isError result whose text starts with serieslib error: (this rendering is this rebuild's own labelled reconstruction).

CLI

Each tool is also a subcommand taking one JSON argument string (omit it for tools that take none):

npx @reneturcios/serieslib search_econ_series '{"query":"germany inflation"}'
npx @reneturcios/serieslib get_econ_series_metadata '{"series_id":"worldbank:NY.GDP.MKTP.CD:DEU"}'
npx @reneturcios/serieslib list_econ_sources
npx @reneturcios/serieslib --version

Exit codes: 0 on success, 1 on an isError result, 2 on a usage error.

MCP server

npx -y @reneturcios/serieslib mcp

MCP client config:

{
  "mcpServers": {
    "serieslib": {
      "command": "npx",
      "args": ["-y", "@reneturcios/serieslib", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/serieslib
docker run --rm ghcr.io/cloudcorprecords/serieslib --version

The container's default command is mcp, so the first form is a stdio MCP server; any other arguments reach the CLI normally.

Development

npm install
npm run build
npm test
npm run dev

The test suite runs entirely against a stubbed JSON-RPC upstream — no live network calls.

License

MIT — see LICENSE.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.