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
Maintainers
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-mcpClaude 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=8080Tools
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:sseLicense
MIT
