MCP 学习服务器
一个具备动态工具注册功能的全面模型上下文协议(MCP)服务器,具有先进的社交媒体自动化和数学计算能力。
🎯 项目概述
这个项目展示了采用动态工具注册系统的现代MCP(可能是指某种中间件或计算平台)服务器架构。它支持多个工具提供商,提供可配置的工具管理功能,并且兼具计算工具和社会媒体自动化能力。
🏗️ 建筑学
采用简洁、可扩展的架构构建,特点包括:
- 动态工具注册表运行时工具的注册与管理
- 工具提供商按功能模块化组织工具
- 配置管理基于JSON的工具配置,支持热重载
- HTTP传输支持JSON-RPC的生产就绪HTTP服务器
- 错误处理全面的错误处理,配备重试机制
核心组件
src/core/tool_registry.py- 中央工具管理系统src/core/tool_providers.py- 工具提供商的实现src/config/tools_config.py- 配置管理src/http_server.py- HTTP传输服务器src/config/tools.json- 工具配置文件
🚀 功能特点
可用工具(2类共13个工具)
计算器工具(4个工具)
- 计算执行数学计算
- 求解二次方程解二次方程 ax² + bx + c = 0
- 单位转换器在不同单位之间进行转换
- 统计计算器计算统计指标
小红书工具(9款工具)
- 检查登录状态检查小红书登录状态
- 获取登录二维码获取用于认证的登录二维码
- 等待登录等待用户完成登录过程
- 发布内容在小红书上发布文本/图片内容
- 列表订阅源(或:订阅源列表)从主页获取推荐的订阅列表
- 搜索订阅源(或:搜索信息源)按关键词搜索内容
- 获取动态详情获取帖子的详细信息
- 将评论发布到动态中在特定帖子下发表评论
- 用户配置文件获取用户个人资料信息
资源
- 文件管理器浏览并读取文件系统中的文件
- 系统信息获取系统信息和资源使用情况
提示
- 代码审查全面代码分析模板
- 文档为代码生成文档
- 数据分析使用可定制的方法分析数据
- 文档生成文档的模板
- 数据分析分析数据集的模板
📋 先决条件
- Python 3.10 或更高版本
- 紫外线 (推荐)或使用 pip
🛠️ 安装
使用紫外线(推荐)
# Clone the repository
git clone
cd mcp_learn_py
# Install dependencies
uv sync
# Or install with development dependencies
uv sync --dev使用 pip
# Clone the repository
git clone
cd mcp_learn_py
# Create virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txt
# Or install development dependencies
pip install -r requirements-dev.txt⚙️ 配置
- 复制示例环境文件:
cp .env.example .env- 编辑
.env使用您偏好的设置:
MCP_SERVER_NAME="My MCP Server"
MCP_SERVER_PORT="8000"
DEBUG="true"
# ... other settings🏃♂️ 运行服务器
开发模式
# Using uv
uv run python scripts/start_server.py
# Using pip
python scripts/start_server.py生产模式
# Using uvicorn directly
uvicorn src.server:app --host 0.0.0.0 --port 8000
# Or using the configured script
mcp-server服务器将在 http://localhost:8000 默认情况下。
🔑 小红书登录管理
该框架现在包含了全面的登录管理功能,支持通过cookie实现持久化:
交互式登录
# Check current login status
./scripts/mcp_server.sh login status
# Start interactive login process
./scripts/mcp_server.sh login interactive
# Get cookie information
./scripts/mcp_server.sh login info
# Clear saved login session
./scripts/mcp_server.sh login clear直接登录脚本
# Using the login script directly
uv run python scripts/login.py --status # Check status
uv run python scripts/login.py --login # Interactive login
uv run python scripts/login.py --clear # Clear session
uv run python scripts/login.py --info # Show cookie info关键特性
- Cookie 持久性登录会话会自动保存和恢复
- 二维码支持获取用于手机认证的登录二维码
- 可靠检测使用精确选择器进行准确的登录状态检查
- 跨平台在Windows、macOS和Linux系统上均可运行
- 多种方法交互式登录、二维码登录或手动浏览器登录
用于登录的MCP工具
check_login_status- 检查是否已登录小红书get_login_qrcode- 获取用于手机登录的二维码图像wait_for_login- 等待登录完成,设置超时时间
🧪 测试
运行测试
# Using uv
uv run pytest
# Using pip
pytest
# With coverage
pytest --cov=src --cov-report=html手动测试
使用随附的测试客户端:
# Using uv
uv run python scripts/test_client.py
# Using pip
python scripts/test_client.py
# Or using the script
mcp-test-client📖 使用示例
从Claude桌面端连接
在您的Claude桌面配置中添加:
{
"mcpServers": {
"mcp-learning-server": {
"command": "uv",
"args": ["run", "python", "/path/to/mcp_learn_py/scripts/start_server.py"],
"env": {
"UV_PROJECT_ENVIRONMENT": "/path/to/mcp_learn_py/.venv"
}
}
}
}远程部署
服务器支持通过HTTP传输进行远程部署。参见 docs/deployment.md 翻译为中文是:文档/部署.md 以获取详细说明。
🔧 开发
代码风格
这个项目使用:
- 黑色 用于代码格式化
- isort(注:这是一个专有名词,通常指的是一种用于排序或整理的工具或程序,在中文中直接音译,但具体含义需根据上下文确定) 用于进口分类
- flake8 用于代码检查(或语法检查)
- mypy 用于类型检查
# Format code
uv run black src/ tests/
uv run isort src/ tests/
# Lint code
uv run flake8 src/ tests/
# Type check
uv run mypy src/预提交钩子(Pre-commit Hooks)
# Install pre-commit hooks
uv run pre-commit install
# Run hooks manually
uv run pre-commit run --all-files📚 学习资源
🤝 贡献
- 为仓库创建分支(或“克隆仓库”)
- 创建一个特性分支(
git checkout -b feature/amazing-feature) - 做出你的更改
- 如有需要,请添加测试
- 运行测试套件(
pytest) - 提交你的更改(
git commit -m 'Add amazing feature') - 推送到分支(
git push origin feature/amazing-feature) - 提交拉取请求
📄 许可证
这个项目遵循MIT许可证授权——详见 许可证 文件中有详细信息。
🙏 致谢
- “Anthropic”翻译成中文是“类人(的)”或“与人类相似的”。这个词汇通常用于描述具有人类特征或行为的事物,或者在某些上下文中可能指代与人类智能相关的技术或概念 用于创建模型上下文协议
- MCP社区(用于示例和文档)
- MCP生态系统的贡献者
