JUHE API Marketplace
lokendra005 avatar
MCP Server

MCP Multi-API Server

A bridge allowing AI/LLMs to seamlessly interact with external APIs for weather, finance, and news services through a standardized MCP-compliant interface.

0
GitHub Stars
11/23/2025
Last Updated
No Configuration
Please check the documentation below.
  1. Home
  2. MCP Servers
  3. mcp

README Documentation

MCP Multi-API Server ๐ŸŒ‰

A Model Context Protocol (MCP) server that bridges AI/LLMs with multiple real-world APIs including weather, finance, and news services. This server acts as a standardized interface, allowing any MCP-compatible AI application to seamlessly interact with external APIs without custom integration work.

๐Ÿš€ Features

  • Multi-API Support: Weather (OpenWeatherMap), Finance (Alpha Vantage), News (NewsAPI)
  • MCP Protocol Compliant: Full implementation of Anthropic's MCP standard
  • Intelligent Caching: Configurable TTL-based caching to reduce API calls
  • Rate Limiting: Built-in rate limiting to respect API quotas
  • Comprehensive Logging: Winston-based logging with multiple transports
  • Error Handling: Robust error handling with meaningful error messages
  • TypeScript: Fully typed for better developer experience

๐Ÿ“‹ Prerequisites

  • Node.js 18+
  • npm or yarn
  • API keys for:
    • OpenWeatherMap
    • Alpha Vantage
    • NewsAPI

๐Ÿ› ๏ธ Installation

  1. Clone the repository:
git clone https://github.com/yourusername/mcp-multi-api-server.git
cd mcp-multi-api-server
  1. Install dependencies:
npm install
  1. Copy the environment template and add your API keys:
cp .env.example .env
  1. Edit .env and add your API keys:
OPENWEATHER_API_KEY=your_key_here
ALPHA_VANTAGE_API_KEY=your_key_here
NEWS_API_KEY=your_key_here
  1. Build the project:
npm run build

๐Ÿš€ Usage

Starting the Server

npm start

For development with auto-reload:

npm run dev

๐Ÿ—๏ธ Architecture

src/
โ”œโ”€โ”€ index.ts          # Entry point & MCP server setup
โ”œโ”€โ”€ api/              # API client implementations
โ”œโ”€โ”€ tools/            # MCP tool definitions
โ”œโ”€โ”€ utils/            # Utilities (cache, rate limiter, logger)
โ””โ”€โ”€ types/            # TypeScript type definitions

โš™๏ธ Configuration

Environment Variables

VariableDescriptionDefault
OPENWEATHER_API_KEYOpenWeatherMap API keyRequired
ALPHA_VANTAGE_API_KEYAlpha Vantage API keyRequired
NEWS_API_KEYNewsAPI keyRequired
MCP_SERVER_PORTServer port3000
LOG_LEVELLogging levelinfo
CACHE_TTL_WEATHERWeather cache TTL (seconds)300
CACHE_TTL_FINANCEFinance cache TTL (seconds)60
CACHE_TTL_NEWSNews cache TTL (seconds)600
RATE_LIMIT_REQUESTSRate limit requests100
RATE_LIMIT_WINDOWRate limit window (ms)60000

๐Ÿงช Testing

Run the test script:

npm test

Using MCP Inspector (Visual Testing)

# Install MCP Inspector globally
npm install -g @modelcontextprotocol/inspector

# Run the inspector
mcp-inspector node dist/index.js

This opens a web interface at http://localhost:5173 where you can:

  • See all available tools
  • Test tool calls interactively
  • View request/response logs

Manual STDIO Testing

# Start the server
node dist/index.js

# Run the test script
node dist/test-runner.js

## Testing Individual APIs

### Test Weather API

```bash
# Create a test file: test-weather.ts
import { getCurrentWeather, getWeatherForecast } from './src/api/weather.js';

async function testWeather() {
  try {
    console.log('Testing current weather...');
    const current = await getCurrentWeather('London');
    console.log('Current weather:', current);
    
    console.log('\nTesting forecast...');
    const forecast = await getWeatherForecast('Paris', 3);
    console.log('Forecast:', forecast);
  } catch (error) {
    console.error('Error:', error);
  }
}

testWeather();

Run:

npx tsx test-weather.ts

Test Finance API

import { getStockQuote, getCurrencyExchange } from './src/api/finance.js';

async function testFinance() {
  try {
    console.log('Testing stock quote...');
    const stock = await getStockQuote('AAPL');
    console.log('Stock:', stock);
    
    console.log('\nTesting currency exchange...');
    const exchange = await getCurrencyExchange('USD', 'EUR');
    console.log('Exchange:', exchange);
  } catch (error) {
    console.error('Error:', error);
  }
}

testFinance();

Test News API

# Create a test file: test-news.ts
import { getTopHeadlines, searchNews } from './src/api/news.js';

async function testNews() {
  try {
    console.log('Testing headlines...');
    const headlines = await getTopHeadlines('us', 'technology');
    console.log('Headlines:', headlines);
    
    console.log('\nTesting search...');
    const search = await searchNews('artificial intelligence');
    console.log('Search results:', search);
  } catch (error) {
    console.error('Error:', error);
  }
}

testNews();

Quick Actions

View on GitHubView All Servers

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source

Boost your projects with Wisdom Gate LLM API

Supporting GPT-5, Claude-4, DeepSeek v3, Gemini and more.

Enjoy a free trial and save 20%+ compared to official pricing.

Learn More
JUHE API Marketplace

Accelerate development, innovate faster, and transform your business with our comprehensive API ecosystem.

JUHE API VS

  • vs. RapidAPI
  • vs. API Layer
  • API Platforms 2025
  • API Marketplaces 2025
  • Best Alternatives to RapidAPI

For Developers

  • Console
  • Collections
  • Documentation
  • MCP Servers
  • Free APIs
  • Temp Mail Demo

Product

  • Browse APIs
  • Suggest an API
  • Wisdom Gate LLM
  • Global SMS Messaging
  • Temp Mail API

Company

  • What's New
  • Welcome
  • About Us
  • Contact Support
  • Terms of Service
  • Privacy Policy
Featured on Startup FameFeatured on Twelve ToolsFazier badgeJuheAPI Marketplace - Connect smarter, beyond APIs | Product Huntai tools code.marketDang.ai
Copyright ยฉ 2025 - All rights reserved