Skip to main content
Glama
Country Explorer MCP Server

Country Explorer MCP Server

by anilsharmay

MCP Demo: Country Explorer with LangGraph

๐ŸŒ Country Explorer: MCP + LangGraph Integration

This project demonstrates a complete MCP (Model Context Protocol) server integrated with LangGraph to create beautiful country profiles with embedded images.

Related MCP server: Unsplash MCP Server

โœจ Features

  • ๐Ÿ” MCP Server with Unsplash Search API integration

  • ๐Ÿค– LangGraph Agent for intelligent country exploration

  • ๐Ÿ–ผ๏ธ 10 Images per Country with photographer credits

  • ๐Ÿ“„ Beautiful Markdown Profiles with embedded images

  • ๐Ÿงช Comprehensive Test Suite for validation

  • ๐Ÿ“ Organized Project Structure with profiles/ and tests/ folders

๐Ÿ—๏ธ Project Structure

mcp-demo/
โ”œโ”€โ”€ country_explorer.py          # Main LangGraph app (10 images)
โ”œโ”€โ”€ server.py                   # MCP server with Unsplash API
โ”œโ”€โ”€ profiles/                   # ๐Ÿ“ Generated country profiles
โ”‚   โ”œโ”€โ”€ india_profile.md
โ”‚   โ”œโ”€โ”€ japan_profile.md
โ”‚   โ”œโ”€โ”€ uganda_profile.md
โ”‚   โ””โ”€โ”€ usa_profile.md
โ”œโ”€โ”€ tests/                      # ๐Ÿ“ Test files
โ”‚   โ”œโ”€โ”€ test_country_explorer.py
โ”‚   โ”œโ”€โ”€ test_unsplash.py
โ”‚   โ””โ”€โ”€ search_5_mountains.py
โ””โ”€โ”€ .env                        # API keys

๐Ÿš€ Quick Start

Prerequisites

  • Python 3.13+

  • Unsplash API key

  • OpenAI API key

Installation

  1. Clone the repository:

    git clone https://github.com/anilsharmay/mcp-demo.git
    cd mcp-demo
  2. Install dependencies:

    uv sync
  3. Configure environment variables: Create .env file with your API keys:

    UNSPLASH_API_KEY=your_unsplash_api_key_here
    OPENAI_API_KEY=your_openai_api_key_here
    TAVILY_API_KEY=your_tavily_api_key_here

Running the Country Explorer

  1. Start the MCP server:

    uv run mcp dev server.py
  2. Run the Country Explorer:

    uv run python country_explorer.py
  3. Run tests:

    cd tests && uv run python test_country_explorer.py

๐ŸŽฏ MCP Server Tools

The MCP server provides these tools:

  • unsplash_search: Search for beautiful images with orientation filters

  • web_search: Search the web for country information

  • roll_dice: Roll dice with custom notation

๐Ÿค– LangGraph Agent

The Country Explorer agent:

  • Researches countries using web search

  • Finds 10 beautiful images via Unsplash

  • Creates rich markdown profiles with embedded images

  • Includes photographer credits and links

๐Ÿ“ธ Sample Output

Each country profile includes:

  • Cultural information and history

  • Geographic details and landmarks

  • 10 high-quality images with credits

  • Clean markdown formatting for easy viewing

๐ŸŽฌ Demo GIFs

India Profile:

India Profile Demo

Switzerland Profile:

Switzerland Profile Demo

USA Profile:

USA Profile Demo

๐Ÿงช Testing

Run the comprehensive test suite:

# Test MCP server
uv run python tests/test_unsplash.py

# Test Country Explorer
cd tests && uv run python test_country_explorer.py

# Test mountain search
uv run python tests/search_5_mountains.py

๐Ÿ”ง MCP Configuration

Add to your Cursor MCP settings:

{
  "mcpServers": {
    "unsplash-mcp-server": {
      "command": "uv",
      "args": ["--directory", ".", "run", "server.py"]
    }
  }
}

๐Ÿ“š Technologies Used

  • MCP (Model Context Protocol) - Server framework

  • LangGraph - Agent orchestration

  • LangChain MCP Adapters - Tool integration

  • Unsplash API - Image search

  • OpenAI GPT-4 - Language model

  • Python 3.13 - Runtime environment

๐ŸŽ‰ Showcase

This project demonstrates:

  • โœ… MCP Server Development with custom API integration

  • โœ… LangGraph Agent Creation with tool orchestration

  • โœ… Beautiful Output Generation with embedded images

  • โœ… Clean Project Organization and testing

  • โœ… Real-world Application of AI agent frameworks

Perfect for showcasing MCP + LangGraph integration! ๐ŸŒโœจ

Available Tools

3 tools
roll_diceC

Roll the dice with the given notation

Inputs: notation (required), num_rolls. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelogโ€ฆ

    TDQS

    C2.7/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose with no ambiguity: roll_dice is for dice rolling, unsplash_search is for photo searches, and web_search is for general web searches. The domains are completely separate, making misselection unlikely.

    Naming Consistency2/5

    The naming is inconsistent with mixed conventions: roll_dice uses snake_case, unsplash_search uses snake_case, and web_search uses snake_case, but the verb styles vary (roll vs. search). There is no predictable pattern like verb_noun consistency across tools.

    Tool Count2/5

    With only 3 tools, the set feels thin for a server named 'Country Explorer MCP Server', which suggests a domain focused on country-related exploration. The tools do not align with this purpose, indicating a significant mismatch in scope.

    Completeness1/5

    The tool surface is severely incomplete for the stated purpose of country exploration. There are no tools for retrieving country data, demographics, maps, or other relevant information, leaving obvious gaps that will cause agent failures in this domain.

    Maintenance

    ActivityInactive
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Provides access to the Unsplash API, enabling AI assistants to search and retrieve high-quality photos, browse collections, view photographer profiles, and get photo statistics with advanced filtering options.
      187 npm
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables users to search for high-quality photos on Unsplash with support for advanced filtering by orientation and content safety. It provides formatted photo metadata and images in either base64-encoded format or as JSON with URLs via stdio transport.
      1
      31 npm
      MIT
    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables searching and downloading photos from Unsplash via the Unsplash API, with support for pagination, orientation filtering, and multiple resolutions.
      187 npm
      1
      MIT