CM

codewithdks/mcp

Developer tools
1 stars 0 forks Quality 71 Trend 19MIT

A Model Context Protocol (MCP) server providing context, tools, and integrations for AI models.

Overview

A growing collection of , each built to explore a different real-world use case — from simple utilities to database-connected agents and DevOps automation. Every module lives in its own numbered folder and is a complete, runnable MCP server on its own. This repo is where I learn MCP by building it: one server at a time, each one a little more advanced than the last. The Model Context Protocol is an open standard that lets AI applications (like Claude, Cursor, or any MCP-compatible client) connect to external tools, data, and systems in a consistent way — through (actions the AI can perform), (data the AI can read), and (reusable instructions). Click here for the notes: https://heather-aura-1c8.notion.site/MCP-Complete-Beginner-Notes-3d84003352778003b141fee8d602ebc9?pvs=74 Each module is self-contained with its own README.md explaining what it does and how to run it. New modules will be added as 04_..., 05_...

README

🔌 MCP — Model Context Protocol Servers

A growing collection of Model Context Protocol (MCP) servers, each built to explore a different real-world use case — from simple utilities to database-connected agents and DevOps automation. Every module lives in its own numbered folder and is a complete, runnable MCP server on its own.

This repo is where I learn MCP by building it: one server at a time, each one a little more advanced than the last.


🧠 What is MCP?

The Model Context Protocol is an open standard that lets AI applications (like Claude, Cursor, or any MCP-compatible client) connect to external tools, data, and systems in a consistent way — through Tools (actions the AI can perform), Resources (data the AI can read), and Prompts (reusable instructions).

Click here for the notes: https://heather-aura-1c8.notion.site/MCP-Complete-Beginner-Notes-3d84003352778003b141fee8d602ebc9?pvs=74


📂 Repository Structure

mcp/
├── 01_simple_math/          ✅ Calculator MCP server (FastMCP)
├── 02_expense_tracker/      ✅ PostgreSQL-backed expense tracker (22 tools)
├── 03_github_mcp/           ✅ GitHub MCP server (30 tools)
├── pyproject.toml
├── pyrightconfig.json
├── uv.lock
└── .gitignore

Each module is self-contained with its own README.md explaining what it does and how to run it. New modules will be added as 04_..., 05_..., and so on — this repo will keep growing as I explore new kinds of MCP servers.


📖 Modules

✅ 01_simple_math — Calculator MCP Server

A calculator MCP server built with FastMCP, demonstrating all three core MCP primitives:

Primitive Examples
Tools add, subtract, multiply, divide, percentage
Resources calculator://about, calculator://operations, calculator://examples
Prompts solve_math_problem, explain_calculation, check_calculation

📄 Read the module README

✅ 02_expense_tracker — Expense Tracker MCP Server

A PostgreSQL-backed personal finance assistant — full CRUD on expenses, search/filter, monthly and category analytics, budgets, recurring expenses, multi-currency support, natural-language dates, and statistical anomaly detection. 22 tools, 5 resources, 2 prompts, with a documented three-round QA pass (90+ manually-run scenarios).

📄 Read the module README · Testing notes

✅ 03_github_mcp — GitHub MCP Server

Read and write access to GitHub — repositories, files, commits, branches, pull requests, issues, code review comments, and GitHub Actions — through the GitHub REST and Git Data APIs. 30 tools split across dedicated read/update/create files so a bug in a read operation can never accidentally become a write, including real atomic multi-file commits (push_files, via the low-level Git Data API — the same primitives git push itself is built on) and a guided organize_and_document_code prompt that plans a repo reorganization, waits for explicit approval, then applies it on a branch and opens a PR rather than pushing directly.

📄 Read the module README · Full feature log

As new modules are added, they’ll appear here the same way — a short summary and a link to that module’s own README.


🛠 Tech Stack

  • Python (3.12+)
  • FastMCP — the MCP server framework used across modules
  • MCP SDK (mcp[cli])
  • httpx — for MCP servers that call external APIs
  • psycopg — for MCP servers backed by PostgreSQL
  • Pydantic / pydantic-settings — data validation & config management
  • uv — dependency management (uv.lock)

⚙️ Getting Started

Clone the repository:

git clone https://github.com/CodeWithDks/mcp.git
cd mcp

This project uses uv for dependency management:

uv sync

Or with plain pip:

python -m venv .venv
source .venv/bin/activate      # Windows: .venv\Scripts\activate
pip install -e .

Then head into any module folder and follow its own README to run that specific server, e.g.:

cd 01_simple_math
python calculator_mcp.py

🔐 Environment Variables

Some modules (e.g. anything using psycopg) will need credentials such as a database connection string. Each module that requires configuration will document its own .env variables in its README.

⚠️ Never commit real credentials. Use a local .env file (already excluded via .gitignore) and reference values with os.getenv(...) / pydantic-settings.


🎯 Roadmap

  • [x] Simple math / calculator MCP server
  • [x] Expense tracker MCP server (database-backed)
  • [x] GitHub MCP server (DevOps automation)
  • [ ] MCP server with external API integration beyond GitHub (httpx-based)
  • [ ] MCP client examples showing how to connect to these servers

📌 Purpose

This repository exists to:

  • Learn the Model Context Protocol by building real, working servers
  • Explore different categories of MCP servers — utilities, database-backed tools, DevOps automation, and more
  • Keep a reusable reference of MCP server patterns for future projects

📄 License

Open source — feel free to explore, learn from, or build on any module here.


👨‍💻 Author

Built by Deepak Kumar Singh as a hands-on learning project for the Model Context Protocol.

Contact Email: [email protected]

If you find this useful, consider giving the repo a ⭐.

View the full README on GitHub

Install

This server does not publish a one-line install command.

Open the repository installation guide New to MCP? Start with the mcpskill.org guide →