FastMCP Multi-Tool Server
Provides comprehensive utility tools including file operations, weather information, system monitoring, mathematical calculations, text search, and safe command execution. Enables users to perform various system and data operations through a unified MCP interface with built-in security features.
README
FastMCP Multi-Tool Server
A comprehensive Model Context Protocol (MCP) server built with FastMCP that provides various utility tools.
Features
This MCP server includes the following tools:
🕒 Time & Date
- get_current_time: Get the current date and time
🌤️ Weather
- get_weather: Get weather information for any city (requires OpenWeatherMap API key)
📁 File Operations
- create_file: Create new files with specified content
- read_file: Read content from existing files
- list_directory: List contents of directories
- create_temporary_file: Create temporary files
🔍 Search & Analysis
- search_files: Search for text patterns in files within a directory
- calculate_expression: Safely evaluate mathematical expressions
💻 System Operations
- execute_command: Execute shell commands safely (with security restrictions)
- get_system_info: Get detailed system information (CPU, memory, disk usage)
Installation
Quick Setup
Windows:
scripts\build.bat
Linux/macOS:
chmod +x scripts/build.sh && scripts/build.sh
Cross-platform (Python):
python scripts/build.py
Manual Installation
- Install Python dependencies:
pip install -r requirements.txt
- (Optional) Configure environment variables:
# Copy the example environment file
cp .env.example .env
# Edit .env and add your OpenWeatherMap API key if needed
Usage
Running the Server
To run the MCP server:
python server.py
The server will start and listen for MCP connections.
Configuration with Claude Desktop
To use this server with Claude Desktop, add the following configuration to your claude_desktop_config.json:
{
"mcpServers": {
"multi-tool-server": {
"command": "python",
"args": ["C:/github/mcp-py/server.py"],
"cwd": "C:/github/mcp-py"
}
}
}
Note: Update the paths to match your actual installation directory.
Configuration File Location
The Claude Desktop configuration file is typically located at:
- Windows:
%APPDATA%/Claude/claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
Tool Examples
File Operations
# Create a new file
create_file("./example.txt", "Hello, World!")
# Read a file
read_file("./example.txt")
# List directory contents
list_directory("./")
Weather Information
# Get weather for a city (requires API key)
get_weather("London")
Mathematical Calculations
# Calculate mathematical expressions
calculate_expression("2 + 2 * 3")
calculate_expression("sqrt(16) + pow(2, 3)")
File Search
# Search for text in Python files
search_files("./", "import", ".py")
System Information
# Get system details
get_system_info()
Command Execution
# Execute safe commands
execute_command("echo Hello World")
execute_command("ls -la", "/tmp") # Unix
execute_command("dir", "C:\\") # Windows
Security Features
- Command Filtering: Dangerous commands are blocked automatically
- Safe Expression Evaluation: Mathematical expressions are evaluated in a secure environment
- Timeout Protection: Commands have a 30-second timeout limit
- Path Validation: File operations validate paths to prevent unauthorized access
Environment Variables
OPENWEATHER_API_KEY: Your OpenWeatherMap API key for weather functionalityMCP_SERVER_NAME: Custom server name (optional)MCP_SERVER_VERSION: Server version (optional)
Dependencies
fastmcp: FastMCP framework for MCP server developmentrequests: HTTP library for API callspython-dotenv: Environment variable managementpydantic: Data validation and settings managementpsutil: System and process utilities
Troubleshooting
Common Issues
-
Import Errors: Make sure all dependencies are installed:
pip install -r requirements.txt -
Weather Tool Not Working: Ensure you have a valid OpenWeatherMap API key set in the
.envfile. -
Permission Errors: Make sure the server has appropriate file system permissions for the operations you're trying to perform.
-
Command Execution Fails: Some commands may be blocked for security reasons. Check the error message for details.
Development
To extend this server with additional tools:
- Add new tool functions using the
@mcp.tool()decorator - Follow the existing pattern for error handling and return formats
- Update this README with documentation for new tools
License
This project is open source. Feel free to modify and distribute according to your needs.
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.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
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.