npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

data-aggregator-mcp

v1.1.4

Published

A unified MCP server replacing 5-10 separate data servers. Stocks, weather, news, web scraping, exchange rates, and public data APIs in one package.

Downloads

296

Readme

Data Aggregator MCP Server

A unified MCP (Model Context Protocol) server that replaces 5-10 separate data servers with one installation. Instead of juggling separate servers for financial data, weather, news, web scraping, and more, install one server that handles all your data needs.

Solves "MCP server sprawl."

Pricing

| Plan | Price | | |------|-------|---| | Free | $0 | 100 queries/day, no credit card — just run it | | Pro | $16/mo | Buy → | | Premium | $32/mo | Buy → |

License keys are emailed instantly after checkout. Activate via the LICENSE_KEY environment variable. More info: aivp-mcp.vercel.app

Quick Start

Install and run with npx

npx -y data-aggregator-mcp

Claude Desktop Configuration

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "data-aggregator": {
      "command": "npx",
      "args": ["-y", "data-aggregator-mcp"],
      "env": {
        "NEWS_API_KEY": "your-optional-newsapi-key",
        "ALPHA_VANTAGE_KEY": "your-optional-alpha-vantage-key",
        "LICENSE_KEY": "<your license key — omit for free tier>"
      }
    }
  }
}

HTTP/SSE Transport (Remote Deployment)

# Start with HTTP transport on port 3000 (default)
npx -y data-aggregator-mcp --sse

# Or specify a custom port
npx -y data-aggregator-mcp --sse --port=8080

Tools

1. query_stocks - Market Data

Fetch real-time stock and cryptocurrency prices.

Sources: Yahoo Finance (stocks), CoinGecko (crypto) -- both free, no API key required. Optional Alpha Vantage support with ALPHA_VANTAGE_KEY env variable.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | symbol | string | Yes | Ticker symbol (e.g., AAPL, BTC, ETH) | | type | "stock" | "crypto" | "auto" | No | Asset type detection (default: auto) |

Example requests:

"Get me the current price of AAPL"
"What's Bitcoin trading at?"
"Fetch SOL crypto price"

Example response:

{
  "symbol": "AAPL",
  "price": 198.52,
  "currency": "USD",
  "change": 2.34,
  "changePercent": 1.19,
  "volume": 54321000,
  "high": 199.10,
  "low": 196.80,
  "source": "Yahoo Finance"
}

2. fetch_webpage - Web Scraping

Extract structured data from any web page.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | url | string (URL) | Yes | Page to scrape | | selector | string | No | CSS selector (#id, .class, or tag name) |

Example requests:

"Scrape the main content from https://example.com"
"Get the article text from this URL using selector .post-content"

Returns: Title, meta description, headings, main content (text only), and links.


3. search_news - News Aggregation

Search and aggregate news from multiple sources.

Sources: Google News RSS (free, no key) or NewsAPI.org (optional key via NEWS_API_KEY env).

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | query | string | No | Search keyword | | category | string | No | business, technology, science, etc. (NewsAPI only) | | source | string | No | Source ID (e.g., bbc-news) | | language | string | No | Language code (default: en) | | from | string | No | Start date YYYY-MM-DD (NewsAPI only) | | to | string | No | End date YYYY-MM-DD (NewsAPI only) | | maxResults | number | No | 1-100 (default: 10) |

Example requests:

"Search news about artificial intelligence"
"Get top technology news"
"Find news about climate change from the last week"

4. query_weather - Weather Data

Current conditions and 7-day forecasts.

Source: Open-Meteo API (100% free, no API key required).

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | city | string | No* | City name (e.g., "London") | | latitude | number | No* | Latitude (-90 to 90) | | longitude | number | No* | Longitude (-180 to 180) | | units | "celsius" | "fahrenheit" | No | Temperature units (default: celsius) |

*Provide either city or both latitude/longitude.

Example requests:

"What's the weather in Tokyo?"
"Get the 7-day forecast for New York in Fahrenheit"
"Weather at coordinates 51.5, -0.1"

Example response:

{
  "location": "London, England, United Kingdom",
  "current": {
    "temperature": 15.2,
    "feelsLike": 13.8,
    "humidity": 72,
    "windSpeed": 12.5,
    "weatherDescription": "Partly cloudy"
  },
  "forecast": [
    {
      "date": "2026-03-31",
      "temperatureMax": 17.1,
      "temperatureMin": 8.3,
      "precipitationProbability": 20,
      "weatherDescription": "Mainly clear"
    }
  ]
}

5. query_exchange_rates - Currency Exchange

Real-time and historical exchange rates with conversion.

Sources: Frankfurter/ECB (fiat, free), CoinGecko (crypto, free).

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | base | string | Yes | Base currency (USD, EUR, BTC, etc.) | | target | string | Yes | Target currency | | amount | number | No | Amount to convert (default: 1) | | date | string | No | Historical date YYYY-MM-DD (fiat only) |

Supported flows: Fiat-to-fiat, fiat-to-crypto, crypto-to-fiat, crypto-to-crypto.

Example requests:

"Convert 100 USD to EUR"
"What's the BTC to USD rate?"
"Historical EUR/GBP rate on 2025-01-15"

6. query_public_data - Multi-Purpose API

Access various public data APIs through sub-commands.

| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | command | string | Yes | Sub-command (see below) |

Sub-commands:

wikipedia - Article Summaries

| Parameter | Description | |-----------|-------------| | query | Search term (e.g., "Theory of relativity") | | language | Wiki language code (default: en) |

ip_geolocation - IP Location Lookup

| Parameter | Description | |-----------|-------------| | ip | IP address (omit for your own IP) |

dns_lookup - DNS Records

| Parameter | Description | |-----------|-------------| | domain | Domain name (e.g., "example.com") | | recordType | A, AAAA, MX, TXT, NS, CNAME, SOA (default: A) |

expand_url - URL Expander

| Parameter | Description | |-----------|-------------| | url | Shortened URL to follow to its destination |

Example requests:

"Look up the Wikipedia article on quantum computing"
"What's the geolocation of IP 8.8.8.8?"
"Get MX records for gmail.com"
"Expand this shortened URL: https://bit.ly/xyz"

Environment Variables

| Variable | Required | Description | |----------|----------|-------------| | NEWS_API_KEY | No | NewsAPI.org key for enhanced news search. Falls back to Google News RSS without it. | | ALPHA_VANTAGE_KEY | No | Alpha Vantage key for stock data fallback. Yahoo Finance is used by default. |

Architecture

Caching

Built-in in-memory cache with per-category TTLs:

| Data Type | Cache Duration | |-----------|---------------| | Market data (stocks/crypto) | 5 minutes | | Exchange rates | 30 minutes | | News articles | 15 minutes | | Weather | 1 hour | | Web scraping | 10 minutes | | Public data (Wikipedia, DNS, etc.) | 1 hour |

Rate Limiting

Per-source sliding-window rate limiters prevent API abuse:

| Source | Limit | |--------|-------| | CoinGecko | 30 req/min | | Open-Meteo | 60 req/min | | Frankfurter (exchange) | 60 req/min | | NewsAPI | 50 req/min | | Google News RSS | 60 req/min | | Wikipedia | 100 req/min | | Generic HTTP | 120 req/min |

Error Handling

  • Automatic retries with exponential back-off (up to 3 attempts)
  • Graceful degradation when APIs are unavailable
  • User-friendly error messages
  • Fallback sources (Yahoo Finance -> Alpha Vantage, NewsAPI -> Google News RSS)

Pricing

Free Tier

  • 100 queries/day across all tools
  • No credit card required
  • All 6 tools included

Pay-Per-Query

  • $0.01 - $0.05 per query depending on data source
  • No monthly commitment
  • Volume discounts available

Pro Plan - $16/month

  • Unlimited queries
  • Priority rate limits
  • Email support
  • Via MCPize

Premium Plan - $32/month

  • Everything in Pro
  • Dedicated rate limit pools
  • Custom API key management
  • Priority support
  • Historical data access
  • Via MCPize

Development

# Install dependencies
npm install

# Build TypeScript
npm run build

# Watch mode for development
npm run dev

# Run the server (stdio)
npm start

# Run the server (HTTP/SSE)
npm run start:sse

License

MIT