Simple MCP

Simple MCP

A modular MCP server that provides comprehensive system automation capabilities including file operations, Telegram integration, job scheduling, system control, and YouTube downloads. Features persistent data storage and a clean architecture for easy extension and maintenance.

Category
Visit Server

README

MCP Server - Modular Architecture

This MCP (Model Context Protocol) server is built with a clean, modular architecture for maintainable, scalable, and robust development.

📁 Project Structure

MCP-test/
├── main.py                  # Main entry point
├── config.py                # Configuration and constants
├── persistence.py           # Data persistence layer
├── scheduler.py             # Job scheduling functionality
├── tools/                   # MCP tools organized by concern
│   ├── __init__.py          # Tools package initialization and registry
│   ├── basic_tools.py       # Basic utility tools
│   ├── control_tools.py     # Server control tools (restart, shutdown, etc)
│   ├── file_tools.py        # File system operations
│   ├── persistence_tools.py # Persistence management tools
│   ├── scheduling_tools.py  # Scheduling-related tools
│   ├── system_tools.py      # System information and commands
│   ├── telegram_tools.py    # Telegram integration
│   └── youtube_tools.py     # YouTube-related tools
├── requirements.txt         # Python dependencies
├── .env                     # Environment variables (create this)
└── README.md                # This file

🚀 Quick Start

  1. Install dependencies:

    pip install -r requirements.txt
    
  2. Create environment file:

    # Create .env file with your configuration
    TG_TOKEN=your_telegram_bot_token
    ADMIN_ID=your_telegram_chat_id
    
  3. Run the server:

    python main.py
    

📋 Available Tools

Basic Tools

  • echo — Echo back input text

File Tools

  • read_file — Read the contents of a file
  • write_file — Write content to a file
  • create_file — Create a new empty file
  • create_folder — Create a new directory
  • list_files — List files and folders in a directory
  • delete_file — Delete a file
  • rename_file — Rename or move a file
  • move_folder — Move a folder (directory) to a new location

System Tools

  • system_info — Get basic system information (platform, memory, CPU, etc.)
  • list_processes — List running processes (PID, name, user)
  • run_python_code — Execute a Python code snippet and return the output
  • install_python_library — Install a Python library (via pip) and update requirements.txt

Telegram Integration

  • send_telegram_message — Send Telegram messages, audio, video, or documents (with optional metadata)
  • receive_telegram_updates — Receive and download incoming Telegram messages and files

Scheduling & Job Tools (still in testing)

  • schedule_telegram_message — Schedule a Telegram message to be sent at a specific time (supports ISO datetime or relative times like "in 10 minutes")
  • schedule_function_call — Schedule any registered function to run once at a specified time
  • schedule_recurring_job — Schedule recurring jobs using cron expressions or intervals (e.g., "every 5 minutes", "0 9 ** 1-5")
  • list_scheduled_jobs — List all currently scheduled jobs with details
  • cancel_scheduled_job — Cancel a scheduled job by its ID
  • get_available_functions — List all functions available for scheduling
  • get_job_execution_log — View the execution history and results of scheduled jobs

Persistence Tools

  • update_persistent_info — Add or update a key-value pair in persistent storage
  • get_persistent_info — Retrieve all persistent data, or a specific key's value
  • delete_persistent_info_key — Delete a key from persistent storage

Control Tools

  • type_text — Simulate typing text using the keyboard
  • press_hotkey — Press a combination of keys as a hotkey (e.g., Ctrl+Tab)
  • switch_to_window — Switch focus to a window with a specified title
  • list_open_windows — List the titles of all currently open windows
  • move_mouse_to — Move the mouse cursor to specified screen coordinates
  • click_mouse — Click the mouse at specified coordinates or at the current position

YouTube Tools

  • youtube_download_video — Download a YouTube video as MP4
  • youtube_download_audio — Download YouTube audio as MP3
  • youtube_video_info — Get detailed YouTube video information

🔧 Architecture Benefits

Separation of Concerns

  • config.py: Centralized configuration
  • persistence.py: Data storage abstraction
  • scheduler.py: Scheduling logic isolated
  • tools/: Tools organized by functionality

Maintainability

  • Add new tools by creating new modules
  • Clear dependencies between components
  • Consistent error handling and logging

Scalability

  • Modular design for easy extension
  • Shared MCP instance prevents conflicts
  • Function registry enables dynamic scheduling

📊 Data Persistence

The server automatically persists:

  • Scheduled Jobs: Survives server restarts
  • Execution Logs: Detailed job run history
  • Persistent Info: Custom key-value storage

Files created:

  • scheduled_jobs.json — Job definitions
  • job_execution_log.json — Execution history
  • persistent_info.json — Custom data
  • main.log — Application logs
  • error.log — Error logs

🛠️ Development

Adding New Tools

  1. Create a new module in tools/
  2. Import the shared MCP instance: from . import mcp
  3. Define your tool function with @mcp.tool() decorator
  4. Register the function in tools/__init__.py if needed

Adding New Persistence Functions

  1. Add functions to persistence.py
  2. Import and use them in your tools
  3. Follow the existing pattern for error handling

🔍 Troubleshooting

  • Check logs in main.log and error.log
  • Verify environment variables in .env
  • Ensure all dependencies are installed
  • Check file permissions for persistence

Recommended Servers

playwright-mcp

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured