mcp-utility-server
A Python-based MCP server providing essential utility tools: web fetching, current time, and calculator functionality.
README
MCP Utility Server
A Python-based MCP (Model Context Protocol) server providing essential utility tools: web fetching, current time, and calculator functionality.
๐ Overview
mcp-utility-server is a lightweight, production-ready MCP server that exposes three powerful utility tools for AI assistants and LLM applications:
web_fetchโ Fetch and extract content from web pagescurrent_timeโ Get the current time in any timezonecalculatorโ Perform mathematical calculations with precision
Designed for seamless integration with MCP-compatible clients like Claude Desktop, VS Code Copilot, and custom LLM workflows.
๐ฆ Installation
Via pip (Recommended for Python projects)
pip install mcp-utility-server
Via npm (For Node.js/TypeScript ecosystems)
npm install mcp-utility-server
From source
git clone https://github.com/yourusername/mcp-utility-server.git
cd mcp-utility-server
pip install -e .
Note: The npm package is a wrapper that bundles the Python server. Ensure Python 3.9+ is available on your system.
๐งช Quick Start
1. Configure your MCP client
Add this configuration to your MCP client (e.g., ~/.config/claude/claude_desktop_config.json for Claude Desktop):
{
"mcpServers": {
"utility": {
"command": "mcp-utility-server",
"args": []
}
}
}
Or if installed globally via npm:
{
"mcpServers": {
"utility": {
"command": "npx",
"args": ["mcp-utility-server"]
}
}
}
2. Start using the tools
Once connected, your AI assistant can call these tools naturally:
"What's the current time in Tokyo?"
โ Calls current_time(timezone="Asia/Tokyo")
"Calculate 15% of โฌ2,500"
โ Calls calculator(expression="2500 * 0.15")
"Fetch the content from https://example.com"
โ Calls web_fetch(url="https://example.com")
๐ ๏ธ API Reference
Tool: web_fetch
Fetches the text content from a given URL.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
url |
string | โ Yes | โ | The URL to fetch (must include scheme, e.g., https://). |
Returns:
string โ The page title followed by the extracted text content (cleaned HTML-free text).
Example:
{
"input": {
"url": "https://en.wikipedia.org/wiki/Python"
},
"output": "Python (programming language)\n\nPython is a high-level, general-purpose programming language..."
}
Errors: Returns an error message for invalid URLs, network issues, or non-200 responses.
Tool: current_time
Returns the current date and time for a specified timezone.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
timezone |
string | โ No | "UTC" |
A valid IANA timezone name (e.g., "America/New_York", "Asia/Kolkata"). |
Returns:
string โ Formatted as YYYY-MM-DD HH:MM:SS TZ (e.g., 2025-03-15 14:30:00 EST).
Example:
{
"input": {
"timezone": "Europe/London"
},
"output": "2025-03-15 19:30:00 GMT"
}
Errors: Returns an error for invalid timezone names (use pytz.all_timezones for a complete list).
Tool: calculator
Evaluates a mathematical expression with full operator support.
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
expression |
string | โ Yes | โ | A mathematical expression (e.g., "2 + 2 * 5"). |
Supported operations:
+, -, *, /, ** (power), % (modulo), parentheses, pi, e, sqrt(), sin(), cos(), tan(), log(), abs(), etc. (backed by math module).
Returns:
number โ The evaluated result (float or int).
Example:
{
"input": {
"expression": "sin(pi/4) + log(100, 10)"
},
"output": 2.7071067811865475
}
Errors: Returns a clear error message for syntax errors, division by zero, or unsafe expressions (only mathematical operations allowed; no __import__, exec, or system calls).
๐งฐ Use Cases
- Claude Desktop โ Give Claude web browsing, time awareness, and calculation capabilities
- VS Code Copilot โ Enhance code suggestions with real-time data and computations
- Custom LLM Agents โ Add utility tools to any MCP-compatible AI pipeline
- Testing & Automation โ Use as a reliable, stateless utility service
๐งโ๐ป Development
Requirements
- Python 3.9+
mcppackagehttpx(for HTTP requests)pytz(for timezone handling)
Setup
# Clone the repository
git clone https://github.com/yourusername/mcp-utility-server.git
cd mcp-utility-server
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Run tests
pytest tests/
Project Structure
mcp-utility-server/
โโโ src/
โ โโโ mcp_utility_server/
โ โโโ __init__.py # Package entry point
โ โโโ server.py # MCP server with tool definitions
โ โโโ tools/ # Tool implementations
โ โโโ web_fetch.py
โ โโโ current_time.py
โ โโโ calculator.py
โโโ tests/
โ โโโ test_tools.py
โโโ pyproject.toml # Build configuration
โโโ package.json # npm wrapper
โโโ README.md # You are here
๐งช Testing
# Run all tests
pytest
# Run with coverage
pytest --cov=src/mcp_utility_server tests/
๐ค Contributing
Contributions are welcome! Please follow these steps:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please ensure tests pass and coverage remains high.
๐ License
Distributed under the MIT License. See LICENSE for more information.
๐ Acknowledgements
- Built on the MCP Python SDK
- Powered by httpx, pytz, and Python's
mathmodule
Made with โค๏ธ for the AI developer community
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.