使用说明
MCP服务器-模块化架构
此MCP(模型上下文协议)服务器采用干净的模块化架构构建,用于可维护、可扩展和健壮的开发。
📁 项目结构
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
🚀 快速开始
-
安装依赖项:
pip install -r requirements.txt -
创建环境文件:
# Create .env file with your configuration TG_TOKEN=your_telegram_bot_token ADMIN_ID=your_telegram_chat_id -
运行服务器:
python main.py
📋 可用工具
基本工具
echo--回显输入文本
文件工具
read_file--读取文件内容write_file--将内容写入文件create_file--创建一个新的空文件create_folder--创建新目录list_files--列出目录中的文件和文件夹delete_file--删除文件rename_file--重命名或移动文件move_folder--将文件夹(目录)移动到新位置
系统工具
system_info--获取基本系统信息(平台、内存、CPU等)list_processes--列出正在运行的进程(PID、名称、用户)run_python_code--执行Python代码片段并返回输出install_python_library--安装Python库(通过pip)并更新requirements.txt
电报集成
send_telegram_message--发送电报消息、音频、视频或文档(带可选元数据)receive_telegram_updates--接收和下载收到的电报消息和文件
日程安排和作业工具(仍在测试中)
schedule_telegram_message--安排在特定时间发送电报消息(支持ISO日期时间或相对时间,如“10分钟内”)schedule_function_call--安排任何已注册的函数在指定时间运行一次schedule_recurring_job--使用cron表达式或间隔安排重复作业(例如,“每5分钟”、“0 9**1-5”)list_scheduled_jobs--列出所有当前计划的作业及其详细信息cancel_scheduled_job--按ID取消计划作业get_available_functions--列出所有可用于日程安排的功能get_job_execution_log--查看计划作业的执行历史和结果
持久性工具
update_persistent_info--在持久存储中添加或更新键值对get_persistent_info--检索所有持久数据或特定键的值delete_persistent_info_key--从持久存储中删除密钥
控制工具
type_text--使用键盘模拟键入文本press_hotkey--按组合键作为热键(例如Ctrl+Tab)switch_to_window--将焦点切换到具有指定标题的窗口list_open_windows--列出当前打开的所有窗口的标题move_mouse_to--将鼠标光标移动到指定的屏幕坐标click_mouse--在指定坐标或当前位置单击鼠标
YouTube工具
youtube_download_video--将YouTube视频下载为MP4youtube_download_audio--将YouTube音频下载为MP3youtube_video_info--获取详细的YouTube视频信息
🔧 架构优势
关注点分离
- config.py:集中配置
- 持久性.py:数据存储抽象
- scheduler.py:调度逻辑隔离
- 工具/:按功能组织的工具
可维护性
- 通过创建新模块添加新工具
- 明确组件之间的依赖关系
- 一致的错误处理和日志记录
可扩展性
- 模块化设计,易于扩展
- 共享MCP实例可防止冲突
- 功能注册表支持动态调度
📊 数据持久层
服务器会自动保持:
- 计划的作业:服务器重启后仍能存活
- 执行日志:详细的作业运行历史记录
- 持久信息:自定义键值存储
创建的文件:
scheduled_jobs.json--工作定义job_execution_log.json--执行历史persistent_info.json--自定义数据main.log--应用程序日志error.log--错误日志
🛠️ 发展
添加新工具
- 在中创建新模块
tools/ - 导入共享MCP实例:
from . import mcp - 定义您的工具功能
@mcp.tool()装饰器 - 在中注册该功能
tools/__init__.py如有需要
添加新的持久性函数
- 添加功能
persistence.py - 导入并在工具中使用它们
- 遵循现有的错误处理模式
🔍 故障排除
- 检查登录
main.log和error.log - 验证中的环境变量
.env - 确保安装了所有依赖项
- 检查文件持久性权限