MCP Server Practice
by mybarefootstory
This repository implements Model Context Protocol (MCP) servers for LinkedIn profile scraping and weather data retrieval. The MCP framework facilitates seamless integration and communication between AI services.
Last updated: N/A
MCP Server Practice
This repository contains implementations of Model Context Protocol (MCP) servers for LinkedIn profile scraping and weather data retrieval. The MCP framework facilitates seamless integration and communication between AI services.
Overview
- LinkedIn Profile Scraper: Fetches LinkedIn profile data using the Fresh LinkedIn Profile Data API.
- Weather Data Service: Retrieves weather alerts and forecasts using the National Weather Service (NWS) API.
Prerequisites
- Python 3.7+
httpx
for asynchronous HTTP requestspython-dotenv
for environment variable managementmcp
for MCP server implementation
Installation
-
Clone the repository:
git clone https://github.com/mybarefootstory/MCP-Server-Practice-2.git cd MCP-Server-Practice-2
-
Install dependencies:
pip install httpx python-dotenv mcp
-
Set up environment variables:
- Create a
.env
file in the root directory. - Add your RapidAPI key:
RAPIDAPI_KEY=your_rapidapi_key_here
- Create a
LinkedIn Profile Scraper
Description
Fetches LinkedIn profile data using the Fresh LinkedIn Profile Data API. The server is initialized with FastMCP
and listens for requests to retrieve profile information.
Code Snippet
from mcp.server.fastmcp import FastMCP
import httpx
import os
from dotenv import load_dotenv
load_dotenv()
RAPIDAPI_KEY = os.getenv("RAPIDAPI_KEY")
mcp = FastMCP("linkedin_profile_scraper")
async def get_linkedin_data(linkedin_url: str) -> dict:
# Fetch LinkedIn profile data
...
@mcp.tool()
async def get_profile(linkedin_url: str) -> str:
# Get LinkedIn profile data
...
if __name__ == "__main__":
mcp.run(transport="stdio")
Weather Data Service
Description
Retrieves weather alerts and forecasts using the NWS API. The server is initialized with FastMCP
and provides tools for fetching alerts and forecasts.
Code Snippet
from mcp.server.fastmcp import FastMCP
import httpx
mcp = FastMCP("weather")
async def make_nws_request(url: str) -> dict:
# Make a request to the NWS API
...
@mcp.tool()
async def get_alerts(state: str) -> str:
# Get weather alerts for a US state
...
@mcp.tool()
async def get_forecast(latitude: float, longitude: float) -> str:
# Get weather forecast for a location
...
if __name__ == "__main__":
mcp.run(transport='stdio')
Usage
- LinkedIn Profile Scraper: Run the server and use the
get_profile
tool to fetch LinkedIn data. - Weather Data Service: Run the server and use the
get_alerts
andget_forecast
tools to retrieve weather information.