Skip to main content
Glama
lokendra005

MCP Multi-API Server

by lokendra005

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

Related MCP server: MCP-Server

๐Ÿ“‹ Prerequisites

๐Ÿ› ๏ธ 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

Variable

Description

Default

OPENWEATHER_API_KEY

OpenWeatherMap API key

Required

ALPHA_VANTAGE_API_KEY

Alpha Vantage API key

Required

NEWS_API_KEY

NewsAPI key

Required

MCP_SERVER_PORT

Server port

3000

LOG_LEVEL

Logging level

info

CACHE_TTL_WEATHER

Weather cache TTL (seconds)

300

CACHE_TTL_FINANCE

Finance cache TTL (seconds)

60

CACHE_TTL_NEWS

News cache TTL (seconds)

600

RATE_LIMIT_REQUESTS

Rate limit requests

100

RATE_LIMIT_WINDOW

Rate 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();

F
license - not found
-
quality - not tested
D
maintenance

Maintenance

โ€“Maintainers
โ€“Response time
โ€“Release cycle
โ€“Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    -
    quality
    D
    maintenance
    A Model Context Protocol (MCP) Server that provides unified access to multiple external APIs (weather, news, financial data) through a single, consistent interface for AI agents and LLMs.
    1
  • A
    license
    -
    quality
    D
    maintenance
    A lightweight bridge connecting LLMs to real-world APIs like finance, weather, news, and GitHub through Anthropic's Model Context Protocol, enabling unified access and intelligent query routing.
    19
    MIT
  • A
    license
    -
    quality
    C
    maintenance
    A unified MCP server providing AI agents with 40+ developer APIs including geolocation, crypto prices, DNS lookup, and web scraping. Enables natural language access to various tools through a single gateway.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Self-hosted MCP gateway: turn any API, database or MCP server into AI connectors โ€” no code.

  • 350+ production-ready APIs through one MCP server โ€” weather, geocoding, validation, financial data.

  • Connect any AI agent to 11+ social platforms: schedule, publish & track posts via hosted MCP.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/lokendra005/mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server