๐ Advanced MCP Server
A professional Model Context Protocol (MCP) server built with Python and FastMCP. This server extends AI capabilities by providing real-time data and local system access.
โจ Features
- ๐ฆ๏ธ Weather Alerts: Fetches active US weather alerts from the National Weather Service.
- ๐ฐ News Search: Real-time news searching using the NewsAPI.
- ๐ Directory Explorer: Allows the AI to list and explore local system directories safely.
- ๐ Secure Secrets: Uses
.envfor safe API key management.
๐ ๏ธ Getting Started
Prerequisites
- Python 3.10+
- uv (Recommended)
Installation
- Clone the repository:
bash
git clone https://github.com/Rahii123/mcp.git cd mcp - Install dependencies:
bash
uv sync
Setup
Create a .env file in the root directory and add your NewsAPI key:
envNEWS_API_KEY=your_actual_key_here
๐ Running the Server
Run directly with uv:
bashuv run server.py
๐งช Testing Your Server
We have provided two separate clients for testing:
๐ 1. Local Testing (Stdio)
Use this when you are developing on your own machine.
bashuv run client_local.py
This starts the server as a background process and communicates directly.
๐ 2. Online Testing (SSE)
Use this after you have deployed your server to the web (e.g., Railway).
bashuv run client_online.py
This asks for your deployment URL and connects over the internet.
โ๏ธ Deployment to Railway (Step-by-Step)
1. Push to GitHub
Ensure all your changes are committed and pushed to your GitHub repository:
bashgit add . git commit -m "Prepare for deployment" git push origin main
2. Connect to Railway
- Go to Railway.app and log in.
- Click + New Project > Deploy from GitHub repo.
- Select your
mcprepository.
3. Configure the Service
- Environment Variables:
- Go to the Variables tab in Railway.
- Add
NEWS_API_KEY:(Your actual NewsAPI Key)
- Start Command:
- Railway should automatically detect
pyproject.toml, but if needed, set the start command to:bashuv run server.py
- Railway should automatically detect
- Networking:
- Railway will automatically detect the port from the
$PORTenvironment variable. Ensure yourserver.pyis usingmcp.run(transport='sse')(I've already configured this for you).
- Railway will automatically detect the port from the
4. Fetch your URL
Once the build is finished, Railway will provide a public URL (e.g., https://mcp-production.up.railway.app).
The MCP endpoint will be at: https://your-app-url.up.railway.app/sse




