{"_id":"data-aggregator-mcp","_rev":"11-faa494e0a4d9d1344cb960bca1ad207e","name":"data-aggregator-mcp","dist-tags":{"latest":"1.1.4"},"versions":{"1.1.1":{"name":"data-aggregator-mcp","version":"1.1.1","keywords":["mcp","model-context-protocol","data-aggregator","stocks","weather","news","web-scraping","exchange-rates","claude","ai-tools"],"author":"","license":"MIT","_id":"data-aggregator-mcp@1.1.1","maintainers":[{"name":"aivp","email":"wasuppeople3@gmail.com"}],"bin":{"data-aggregator-mcp":"dist/index.js"},"dist":{"shasum":"07ec77faf348949e1f2aabdf1a889bcf91fd8b63","tarball":"https://registry.npmjs.org/data-aggregator-mcp/-/data-aggregator-mcp-1.1.1.tgz","fileCount":38,"integrity":"sha512-jsobxwg7VJ0oLMeOis6xxOKf8rzjndFZtM9gp768YT829sqGnZm/ZLY4N7wLq9nLhIzoeT72r0hMe8jq7vdgbw==","signatures":[{"sig":"MEQCIGm+2M9YG7F23bWjpMVeMvnIbL9ongre6JxuN2rxvR7wAiBfzq9fWJgTKlp8y1pwt1e/CUI8D6Gnc1SgxpCj0cdEyA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114063},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"4c2db3d7214a1ecbb45e5c3d246105a0288cd2ea","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","start:sse":"node dist/index.js --sse","prepublishOnly":"npm run build"},"_npmUser":{"name":"aivp","email":"wasuppeople3@gmail.com"},"_npmVersion":"11.11.0","description":"A unified MCP server replacing 5-10 separate data servers. Stocks, weather, news, web scraping, exchange rates, and public data APIs in one package.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/data-aggregator-mcp_1.1.1_1774963704853_0.286972971558334","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"data-aggregator-mcp","version":"1.1.3","keywords":["mcp","model-context-protocol","data-aggregator","stocks","weather","news","web-scraping","exchange-rates","claude","ai-tools"],"author":"","license":"MIT","_id":"data-aggregator-mcp@1.1.3","maintainers":[{"name":"aivp","email":"wasuppeople3@gmail.com"}],"bin":{"data-aggregator-mcp":"dist/index.js"},"dist":{"shasum":"6ed26fc09774a18208a515e61cf253b3c7b199ba","tarball":"https://registry.npmjs.org/data-aggregator-mcp/-/data-aggregator-mcp-1.1.3.tgz","fileCount":26,"integrity":"sha512-7+MndA0ddAdmOsGhUlrTWsPPPM03yaJ41dzrwKyyUreC2Mw25pOfMbOpNSvBtU8LyTEbEE4Ao20WKadSlKt3dQ==","signatures":[{"sig":"MEUCIQCCXHKZGjstYRkJQWY7ugjPJbnfBie8zT/Bb/t108aEggIgF9fnPHlMiVFC11kWI+/8m1mMDmeMjUtLqX275REBpJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":104572},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=18.0.0"},"gitHead":"90f4c3072f2309527d7163ea89461f69604894e2","scripts":{"dev":"tsc --watch","build":"tsc","start":"node dist/index.js","start:sse":"node dist/index.js --sse","prepublishOnly":"npm run build"},"_npmUser":{"name":"aivp","email":"wasuppeople3@gmail.com"},"_npmVersion":"11.11.0","description":"A unified MCP server replacing 5-10 separate data servers. Stocks, weather, news, web scraping, exchange rates, and public data APIs in one package.","directories":{},"_nodeVersion":"24.14.1","dependencies":{"zod":"^3.24.0","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/data-aggregator-mcp_1.1.3_1775025173697_0.8885394000430586","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"data-aggregator-mcp","version":"1.1.4","description":"A unified MCP server replacing 5-10 separate data servers. Stocks, weather, news, web scraping, exchange rates, and public data APIs in one package.","mcpName":"io.github.vpatser1/data-aggregator-mcp","repository":{"type":"git","url":"git+https://github.com/vpatser1/mcp-servers.git","directory":"data-aggregator"},"homepage":"https://aivp-mcp.vercel.app","type":"module","main":"dist/index.js","bin":{"data-aggregator-mcp":"dist/index.js"},"scripts":{"build":"tsc","start":"node dist/index.js","start:sse":"node dist/index.js --sse","dev":"tsc --watch","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","data-aggregator","stocks","weather","news","web-scraping","exchange-rates","claude","ai-tools"],"author":"","license":"MIT","dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","zod":"^3.24.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.0"},"engines":{"node":">=18.0.0"},"gitHead":"31655a90ad0cac3d56211a1e7a88dccaaef73640","types":"./dist/index.d.ts","_id":"data-aggregator-mcp@1.1.4","bugs":{"url":"https://github.com/vpatser1/mcp-servers/issues"},"_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-4WhBMAZcQ2yGToaNbpYZw3TXD2yBYo++dpy0wbe2NPre4H9QMhCV6rKTuI8SewO3gd7NqJjYJ6J/bRxsJnmJIw==","shasum":"805503e89f89ded32b980955b4a5239418cacb35","tarball":"https://registry.npmjs.org/data-aggregator-mcp/-/data-aggregator-mcp-1.1.4.tgz","fileCount":26,"unpackedSize":111785,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIE2qNNqS30mKEMcH4MIbfFGnDxiUTu2urPJ09tGYUvLOAiEAy3F5C87Qc8BUHni5DcXE6JgRAuVu94KTveqvZXvghWQ="}]},"_npmUser":{"name":"aivp","email":"wasuppeople3@gmail.com"},"directories":{},"maintainers":[{"name":"aivp","email":"wasuppeople3@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/data-aggregator-mcp_1.1.4_1785828910770_0.2885556952413597"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-31T11:24:26.615Z","modified":"2026-08-04T07:35:11.133Z","1.0.0":"2026-03-31T11:24:27.150Z","1.0.1":"2026-03-31T12:41:32.149Z","1.1.0":"2026-03-31T12:58:56.731Z","1.1.1":"2026-03-31T13:28:24.985Z","1.1.2":"2026-04-01T06:26:32.847Z","1.1.3":"2026-04-01T06:32:53.843Z","1.1.4":"2026-08-04T07:35:10.977Z"},"license":"MIT","keywords":["mcp","model-context-protocol","data-aggregator","stocks","weather","news","web-scraping","exchange-rates","claude","ai-tools"],"description":"A unified MCP server replacing 5-10 separate data servers. Stocks, weather, news, web scraping, exchange rates, and public data APIs in one package.","maintainers":[{"name":"aivp","email":"wasuppeople3@gmail.com"}],"readme":"# Data Aggregator MCP Server\n\nA 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.\n\n**Solves \"MCP server sprawl.\"**\n\n## Pricing\n\n| Plan | Price | |\n|------|-------|---|\n| **Free** | $0 | 100 queries/day, no credit card — just run it |\n| **Pro** | $16/mo | [Buy →](https://buy.stripe.com/bJedR1aiueeE1ID1l5gIo06) |\n| **Premium** | $32/mo | [Buy →](https://buy.stripe.com/9B614f2Q2daAevp9RBgIo07) |\n\nLicense keys are emailed instantly after checkout. Activate via the `LICENSE_KEY` environment variable. More info: [aivp-mcp.vercel.app](https://aivp-mcp.vercel.app)\n\n## Quick Start\n\n### Install and run with npx\n\n```bash\nnpx -y data-aggregator-mcp\n```\n\n### Claude Desktop Configuration\n\nAdd to your `claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"data-aggregator\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"data-aggregator-mcp\"],\n      \"env\": {\n        \"NEWS_API_KEY\": \"your-optional-newsapi-key\",\n        \"ALPHA_VANTAGE_KEY\": \"your-optional-alpha-vantage-key\",\n        \"LICENSE_KEY\": \"<your license key — omit for free tier>\"\n      }\n    }\n  }\n}\n```\n\n### HTTP/SSE Transport (Remote Deployment)\n\n```bash\n# Start with HTTP transport on port 3000 (default)\nnpx -y data-aggregator-mcp --sse\n\n# Or specify a custom port\nnpx -y data-aggregator-mcp --sse --port=8080\n```\n\n## Tools\n\n### 1. `query_stocks` - Market Data\n\nFetch real-time stock and cryptocurrency prices.\n\n**Sources:** Yahoo Finance (stocks), CoinGecko (crypto) -- both free, no API key required. Optional Alpha Vantage support with `ALPHA_VANTAGE_KEY` env variable.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `symbol` | string | Yes | Ticker symbol (e.g., `AAPL`, `BTC`, `ETH`) |\n| `type` | `\"stock\"` \\| `\"crypto\"` \\| `\"auto\"` | No | Asset type detection (default: `auto`) |\n\n**Example requests:**\n```\n\"Get me the current price of AAPL\"\n\"What's Bitcoin trading at?\"\n\"Fetch SOL crypto price\"\n```\n\n**Example response:**\n```json\n{\n  \"symbol\": \"AAPL\",\n  \"price\": 198.52,\n  \"currency\": \"USD\",\n  \"change\": 2.34,\n  \"changePercent\": 1.19,\n  \"volume\": 54321000,\n  \"high\": 199.10,\n  \"low\": 196.80,\n  \"source\": \"Yahoo Finance\"\n}\n```\n\n---\n\n### 2. `fetch_webpage` - Web Scraping\n\nExtract structured data from any web page.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `url` | string (URL) | Yes | Page to scrape |\n| `selector` | string | No | CSS selector (`#id`, `.class`, or tag name) |\n\n**Example requests:**\n```\n\"Scrape the main content from https://example.com\"\n\"Get the article text from this URL using selector .post-content\"\n```\n\n**Returns:** Title, meta description, headings, main content (text only), and links.\n\n---\n\n### 3. `search_news` - News Aggregation\n\nSearch and aggregate news from multiple sources.\n\n**Sources:** Google News RSS (free, no key) or NewsAPI.org (optional key via `NEWS_API_KEY` env).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `query` | string | No | Search keyword |\n| `category` | string | No | `business`, `technology`, `science`, etc. (NewsAPI only) |\n| `source` | string | No | Source ID (e.g., `bbc-news`) |\n| `language` | string | No | Language code (default: `en`) |\n| `from` | string | No | Start date `YYYY-MM-DD` (NewsAPI only) |\n| `to` | string | No | End date `YYYY-MM-DD` (NewsAPI only) |\n| `maxResults` | number | No | 1-100 (default: 10) |\n\n**Example requests:**\n```\n\"Search news about artificial intelligence\"\n\"Get top technology news\"\n\"Find news about climate change from the last week\"\n```\n\n---\n\n### 4. `query_weather` - Weather Data\n\nCurrent conditions and 7-day forecasts.\n\n**Source:** Open-Meteo API (100% free, no API key required).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `city` | string | No* | City name (e.g., `\"London\"`) |\n| `latitude` | number | No* | Latitude (-90 to 90) |\n| `longitude` | number | No* | Longitude (-180 to 180) |\n| `units` | `\"celsius\"` \\| `\"fahrenheit\"` | No | Temperature units (default: celsius) |\n\n*Provide either `city` or both `latitude`/`longitude`.\n\n**Example requests:**\n```\n\"What's the weather in Tokyo?\"\n\"Get the 7-day forecast for New York in Fahrenheit\"\n\"Weather at coordinates 51.5, -0.1\"\n```\n\n**Example response:**\n```json\n{\n  \"location\": \"London, England, United Kingdom\",\n  \"current\": {\n    \"temperature\": 15.2,\n    \"feelsLike\": 13.8,\n    \"humidity\": 72,\n    \"windSpeed\": 12.5,\n    \"weatherDescription\": \"Partly cloudy\"\n  },\n  \"forecast\": [\n    {\n      \"date\": \"2026-03-31\",\n      \"temperatureMax\": 17.1,\n      \"temperatureMin\": 8.3,\n      \"precipitationProbability\": 20,\n      \"weatherDescription\": \"Mainly clear\"\n    }\n  ]\n}\n```\n\n---\n\n### 5. `query_exchange_rates` - Currency Exchange\n\nReal-time and historical exchange rates with conversion.\n\n**Sources:** Frankfurter/ECB (fiat, free), CoinGecko (crypto, free).\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `base` | string | Yes | Base currency (`USD`, `EUR`, `BTC`, etc.) |\n| `target` | string | Yes | Target currency |\n| `amount` | number | No | Amount to convert (default: 1) |\n| `date` | string | No | Historical date `YYYY-MM-DD` (fiat only) |\n\n**Supported flows:** Fiat-to-fiat, fiat-to-crypto, crypto-to-fiat, crypto-to-crypto.\n\n**Example requests:**\n```\n\"Convert 100 USD to EUR\"\n\"What's the BTC to USD rate?\"\n\"Historical EUR/GBP rate on 2025-01-15\"\n```\n\n---\n\n### 6. `query_public_data` - Multi-Purpose API\n\nAccess various public data APIs through sub-commands.\n\n| Parameter | Type | Required | Description |\n|-----------|------|----------|-------------|\n| `command` | string | Yes | Sub-command (see below) |\n\n**Sub-commands:**\n\n#### `wikipedia` - Article Summaries\n| Parameter | Description |\n|-----------|-------------|\n| `query` | Search term (e.g., `\"Theory of relativity\"`) |\n| `language` | Wiki language code (default: `en`) |\n\n#### `ip_geolocation` - IP Location Lookup\n| Parameter | Description |\n|-----------|-------------|\n| `ip` | IP address (omit for your own IP) |\n\n#### `dns_lookup` - DNS Records\n| Parameter | Description |\n|-----------|-------------|\n| `domain` | Domain name (e.g., `\"example.com\"`) |\n| `recordType` | `A`, `AAAA`, `MX`, `TXT`, `NS`, `CNAME`, `SOA` (default: `A`) |\n\n#### `expand_url` - URL Expander\n| Parameter | Description |\n|-----------|-------------|\n| `url` | Shortened URL to follow to its destination |\n\n**Example requests:**\n```\n\"Look up the Wikipedia article on quantum computing\"\n\"What's the geolocation of IP 8.8.8.8?\"\n\"Get MX records for gmail.com\"\n\"Expand this shortened URL: https://bit.ly/xyz\"\n```\n\n## Environment Variables\n\n| Variable | Required | Description |\n|----------|----------|-------------|\n| `NEWS_API_KEY` | No | NewsAPI.org key for enhanced news search. Falls back to Google News RSS without it. |\n| `ALPHA_VANTAGE_KEY` | No | Alpha Vantage key for stock data fallback. Yahoo Finance is used by default. |\n\n## Architecture\n\n### Caching\n\nBuilt-in in-memory cache with per-category TTLs:\n\n| Data Type | Cache Duration |\n|-----------|---------------|\n| Market data (stocks/crypto) | 5 minutes |\n| Exchange rates | 30 minutes |\n| News articles | 15 minutes |\n| Weather | 1 hour |\n| Web scraping | 10 minutes |\n| Public data (Wikipedia, DNS, etc.) | 1 hour |\n\n### Rate Limiting\n\nPer-source sliding-window rate limiters prevent API abuse:\n\n| Source | Limit |\n|--------|-------|\n| CoinGecko | 30 req/min |\n| Open-Meteo | 60 req/min |\n| Frankfurter (exchange) | 60 req/min |\n| NewsAPI | 50 req/min |\n| Google News RSS | 60 req/min |\n| Wikipedia | 100 req/min |\n| Generic HTTP | 120 req/min |\n\n### Error Handling\n\n- Automatic retries with exponential back-off (up to 3 attempts)\n- Graceful degradation when APIs are unavailable\n- User-friendly error messages\n- Fallback sources (Yahoo Finance -> Alpha Vantage, NewsAPI -> Google News RSS)\n\n## Pricing\n\n### Free Tier\n- **100 queries/day** across all tools\n- No credit card required\n- All 6 tools included\n\n### Pay-Per-Query\n- **$0.01 - $0.05 per query** depending on data source\n- No monthly commitment\n- Volume discounts available\n\n### Pro Plan - $16/month\n- **Unlimited queries**\n- Priority rate limits\n- Email support\n- Via [MCPize](https://mcpize.com)\n\n### Premium Plan - $32/month\n- Everything in Pro\n- Dedicated rate limit pools\n- Custom API key management\n- Priority support\n- Historical data access\n- Via [MCPize](https://mcpize.com)\n\n## Development\n\n```bash\n# Install dependencies\nnpm install\n\n# Build TypeScript\nnpm run build\n\n# Watch mode for development\nnpm run dev\n\n# Run the server (stdio)\nnpm start\n\n# Run the server (HTTP/SSE)\nnpm run start:sse\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md","homepage":"https://aivp-mcp.vercel.app","repository":{"type":"git","url":"git+https://github.com/vpatser1/mcp-servers.git","directory":"data-aggregator"},"bugs":{"url":"https://github.com/vpatser1/mcp-servers/issues"}}