LabscoMCP early access ↗
RonFelsenfeldMCP SERVER

MCP Playground

Two small stdio services — news and weather — set up as a worked example of running MCP servers from a Python project.

by RonFelsenfeld ↗MCP Plumbing: Proxies, Registries & InspectorsCommunity

LABSCO SUMMARY

Two servers from one project.

The interesting part is the shape rather than the features: one repository, two independent stdio entry points, each registered separately with its own environment. That is the pattern to copy if you are grouping several small servers in a single codebase. The news half needs a newsdata.io key before it will answer anything.

What it is

A playground project holding two separate MCP microservices, a News service and a Weather service, both over stdio. Each runs as its own module and is registered as its own entry in the client config.

What you get

  • A weather service and a news service as two independent stdio servers, started with python -m src.weather_mcp.main and python -m src.news_mcp.main
  • A Claude Desktop config block showing both registered side by side, so one project contributes two servers
  • A Makefile that handles the environment: make setup, make sync, make freeze-dependencies, make clean
  • A small, readable stack — mcp[cli] for the protocol, httpx for requests, python-dotenv for configuration

Requirements

Python 3.12 with the uv package manager and a virtual environment; make setup then make sync prepares it. The client entry points at the uv executable by absolute path with --directory set to the project. The news service needs a free API key from newsdata.io, passed as NEWS_API_KEY in that server's env block; the weather service takes no key.

Setup effort

Build from source — git clone https://github.com/RonFelsenfeld/mcp-playground.git