MCP Hub
Back to servers

MCP Tool Server

A production-ready Python MCP server providing tools for fetching live weather data, querying local SQLite databases, reading files, summarizing webpages, and performing safe mathematical calculations. It enables MCP-compatible LLM clients to execute these tasks autonomously as part of agentic workflows.

Updated
Mar 1, 2026

MCP Tool Server — Custom Model Context Protocol Server

A production-ready MCP server exposing 5 tools that any MCP-compatible LLM client (Claude Desktop, etc.) can call as part of agentic workflows.

Built with Python MCP SDK + httpx + SQLite.


What This Project Demonstrates

  • MCP (Model Context Protocol) — the open standard for LLM tool integration
  • Agentic AI architecture — LLMs calling real tools autonomously
  • Tool design patterns — input schemas, error handling, security guardrails
  • Async Python — all tools are async-ready for performance

Tools Exposed

ToolWhat it does
get_weatherLive weather for any city (Open-Meteo, no API key needed)
query_databaseSafe SELECT queries on a local SQLite employee database
read_fileRead any local text file
summarize_webpageFetch and extract text from any URL
calculatorEvaluate math expressions safely (sqrt, sin, log, etc.)

Architecture

Claude Desktop (or any MCP client)
         │
         │  MCP Protocol (JSON-RPC over stdio)
         ▼
┌─────────────────────────────────┐
│        MCP Tool Server          │
│                                 │
│  list_tools()  → returns schema │
│  call_tool()   → executes tool  │
│                                 │
│  ┌──────────┐  ┌─────────────┐  │
│  │ Weather  │  │  Database   │  │
│  │  (HTTP)  │  │  (SQLite)   │  │
│  └──────────┘  └─────────────┘  │
│  ┌──────────┐  ┌─────────────┐  │
│  │  Files   │  │  Webpage    │  │
│  │  (disk)  │  │   (HTTP)    │  │
│  └──────────┘  └─────────────┘  │
│        ┌──────────────┐         │
│        │  Calculator  │         │
│        │  (safe eval) │         │
│        └──────────────┘         │
└─────────────────────────────────┘

Project Structure

mcp-server/
├── server.py                  # Main MCP server — all 5 tools defined here
├── test_tools.py              # Test script — verify tools without Claude
├── claude_desktop_config.json # Config snippet for Claude Desktop
├── requirements.txt
└── README.md

Step-by-Step Setup

Step 1 — Clone and enter project

git clone https://github.com/YOUR_USERNAME/mcp-tool-server.git
cd mcp-tool-server

Step 2 — Create virtual environment

python -m venv venv
source venv/bin/activate        # Mac/Linux
venv\Scripts\activate           # Windows

Step 3 — Install dependencies

pip install -r requirements.txt

Step 4 — Run the tests (no Claude needed)

python test_tools.py

You should see:

✅ Calculator PASS
✅ Database Query PASS
✅ Read File PASS
✅ Weather API PASS

Step 5 — Connect to Claude Desktop

  1. Open Claude Desktop settings → Developer → Edit Config
  2. Add the following to claude_desktop_config.json:
{
  "mcpServers": {
    "rakesh-tool-server": {
      "command": "python",
      "args": ["/full/path/to/mcp-server/server.py"]
    }
  }
}
  1. Replace /full/path/to/ with your actual path
  2. Restart Claude Desktop
  3. You'll see a 🔧 tool icon — Claude can now call your tools!

Step 6 — Test with Claude

Ask Claude:

  • "What's the weather in Bengaluru?" → calls get_weather
  • "Show me all engineers in the database" → calls query_database
  • "What is sqrt(2025) + 100?" → calls calculator

How MCP Works (Simple Explanation)

  1. Server starts and waits on stdin/stdout
  2. Claude Desktop discovers tools by calling list_tools() — gets names, descriptions, input schemas
  3. When you ask Claude something, it decides which tool to call based on the schemas
  4. Claude sends a call_tool(name, args) request to the server
  5. Server executes the tool and returns the result as text
  6. Claude uses the result to formulate its final answer

The key innovation: tools are described with JSON Schema so the LLM understands exactly what inputs to provide.


Security Notes

  • query_database only allows SELECT — blocks any destructive SQL
  • calculator uses safe eval with an allowlisted namespace — no import, os, etc.
  • read_file is path-restricted to readable files only

Tech Stack

LayerTechnology
ProtocolMCP (Model Context Protocol) v1.0
LanguagePython 3.11+ async
HTTP Clienthttpx (async)
DatabaseSQLite (built-in)
Weather APIOpen-Meteo (free, no key)

Resume Line

Built a custom MCP server exposing 5 production-ready tools (weather, database, file I/O, web fetch, calculator) — demonstrating hands-on agentic AI architecture using the Model Context Protocol for LLM tool integration.

Reviews

No reviews yet

Sign in to write a review