Skip to content

4ier/mom

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Master of Metal (MoM) 🎸

License: MIT Python 3.8+ MCP Compatible

让你的AI说金属语言 - 专门为金属音乐设计的MCP (Model Context Protocol) 工具

🎯 项目概述

Master of Metal 是一个专业的金属音乐MCP工具,为AI助手提供丰富的金属音乐知识和功能。项目包含完整的歌词搜索系统、乐队信息查询、专辑详情获取等功能,专注于提供技术工具和文化指导。

✨ 核心功能

  • 🎵 多源歌词搜索 - 集成5个数据源,智能选择最佳结果
  • 🎸 乐队信息查询 - 成员、历史、风格详细信息
  • 💿 专辑详情获取 - 曲目列表、发行信息
  • 🏷️ 金属子流派分类 - 专业的流派知识库
  • 📊 相似乐队推荐 - 基于风格的智能推荐
  • 🇨🇳 国内平台集成 - 网易云、QQ音乐、豆瓣等
  • 专合法资源链接 - 指向官方和授权渠道

🚀 5分钟快速开始

1. 克隆项目

git clone https://github.com/4ier/mom.git
cd mom

2. 安装依赖

pip install -r requirements.txt

3. 基础测试

python tests/test_mcp.py

4. 启动MCP服务器

python scripts/start_mcp.py

5. 配置Kiro

将以下配置添加到你的Kiro MCP配置文件:

{
  "mcpServers": {
    "master-of-metal": {
      "command": "python",
      "args": ["scripts/start_mcp.py"],
      "cwd": "/path/to/mom",
      "disabled": false,
      "autoApprove": [
        "search_band",
        "get_album_info", 
        "get_lyrics",
        "get_subgenres",
        "recommend_similar",
        "search_china_platforms",
        "search_china_concerts"
      ]
    }
  }
}

6. 开始使用

在Kiro中询问:

请帮我查找Metallica乐队的信息,并推荐一些相似的乐队

📁 项目结构

mom/
├── 📁 metal_mcp/                    # MCP服务器核心代码
│   ├── __init__.py                  # 模块初始化
│   ├── __main__.py                  # 主入口
│   ├── server.py                    # MCP服务器实现
│   ├── metal_api.py                 # 金属音乐API
│   ├── data_sources.py              # 数据源集成
│   ├── china_sources.py             # 国内平台数据源
│   └── improved_lyrics.py           # 改进的歌词搜索
│
├── 📁 scripts/                      # 实用脚本
│   ├── start_mcp.py                 # MCP服务器启动脚本
│   └── ...                         # 其他工具脚本
│
├── 📁 tests/                        # 测试文件
│   ├── test_mcp.py                  # MCP基础功能测试
│   ├── test_china_sources.py        # 国内数据源测试
│   ├── test_improved_lyrics.py      # 改进歌词搜索测试
│   └── verify_mcp.py                # MCP验证脚本
│
├── 📁 examples/                     # 配置示例
│   ├── .env.example                 # 环境变量示例
│   ├── kiro-config-ready.json       # Kiro配置示例
│   └── kiro-mcp-config.json         # MCP配置示例
│
├── 📁 vektor_project/               # Vektor项目成果
├── 📁 data/                         # 数据文件
├── requirements.txt                 # Python依赖
└── setup.py                        # 安装脚本

📋 核心模块说明

文件 功能 说明
server.py MCP服务器 主要的MCP工具实现
metal_api.py 金属音乐API 核心业务逻辑
improved_lyrics.py 歌词搜索 改进的多源歌词搜索
data_sources.py 数据源 国外数据源集成
china_sources.py 国内数据源 中国音乐平台集成

🎸 特色项目:Vektor研究成果

项目亮点

  • 4张专辑 完整收录和分析
  • 31首歌曲 数据收集 (96.8%成功率)
  • 技术实现展示 - 自动化数据收集工具
  • 文化背景分析 - 科幻、哲学概念深度解读

技术成果

🛠️ 支持的MCP工具

基础工具

  • search_band - 搜索金属乐队信息(成员、历史、风格)
  • get_album_info - 获取专辑详细信息(曲目列表、发行信息)
  • get_lyrics - 多源歌词搜索(提供合法搜索链接)
  • get_subgenres - 获取金属子流派信息(特点、代表乐队)
  • recommend_similar - 推荐相似乐队(基于风格关联)

国内平台工具

  • search_china_platforms - 搜索国内音乐平台(网易云、QQ音乐、豆瓣)
  • search_china_concerts - 搜索国内演出信息(秀动、大麦等)

数据源策略

  • 多数据源并行搜索 - 自动选择最佳结果
  • 智能缓存机制 - 提高响应速度
  • 容错处理 - 单个数据源失败不影响整体功能
  • 合法链接提供 - 指向官方和授权渠道

🧪 测试验证

# 运行基础测试
python tests/test_mcp.py

# 测试歌词搜索
python tests/test_improved_lyrics.py

# 测试国内平台
python tests/test_china_sources.py

# 验证整体功能
python tests/verify_mcp.py

📚 详细部署指南

环境配置

1. 创建配置文件

cp examples/.env.example .env

2. 配置API密钥

# 网易云音乐API地址
NETEASE_API_BASE=http://localhost:3000

# 代理配置(可选)
HTTP_PROXY=http://proxy-server:port
HTTPS_PROXY=https://proxy-server:port

# 日志配置
LOG_LEVEL=INFO

3. 启动依赖服务(可选)

网易云音乐API增强

# 克隆网易云API项目
git clone https://github.com/Binaryify/NeteaseCloudMusicApi.git
cd NeteaseCloudMusicApi

# 安装并启动
npm install
npm start

高级配置

方式1: 使用启动脚本(推荐)

{
  "mcpServers": {
    "master-of-metal": {
      "command": "python",
      "args": ["scripts/start_mcp.py"],
      "cwd": "/path/to/mom",
      "env": {
        "NETEASE_API_BASE": "http://localhost:3000"
      },
      "disabled": false,
      "autoApprove": ["search_band", "get_album_info", "get_lyrics"]
    }
  }
}

方式2: 直接运行模块

{
  "mcpServers": {
    "master-of-metal": {
      "command": "python",
      "args": ["-m", "metal_mcp"],
      "cwd": "/path/to/mom",
      "disabled": false
    }
  }
}

故障排除

常见问题

Q: 网易云音乐搜索失败 A: 确保NeteaseCloudMusicApi在localhost:3000运行

Q: 某些歌词搜索失败 A: 这是正常的,系统会尝试多个数据源并返回最佳结果

Q: 演出信息显示"开发中" A: 演出信息抓取需要处理反爬虫,目前提供搜索链接

调试模式

LOG_LEVEL=DEBUG python scripts/start_mcp.py

🎵 使用示例

基础查询

# 乐队信息
请介绍一下Metallica乐队

# 专辑信息  
我想了解Master of Puppets这张专辑

# 歌词搜索
帮我找Enter Sandman的歌词

# 流派介绍
请介绍Thrash Metal这个金属子流派

# 相似推荐
推荐一些和Metallica相似的乐队

国内平台查询

# 搜索国内平台
在网易云和QQ音乐上搜索Metallica

# 演出信息
查找Metallica在北京的演出信息

# 综合搜索
帮我全面了解Beyond乐队,包括他们在国内平台的信息

高级查询示例

组合查询

我想了解Thrash Metal这个流派,并推荐几个代表性乐队,然后帮我找一下Slayer乐队的信息

深度探索

请帮我深入了解Black Metal,包括它的特点、代表乐队,然后选择一个乐队详细介绍,最后推荐一首经典歌曲并提供搜索链接

支持的查询类型

  • 🎸 乐队查询: 成员、历史、风格、专辑列表
  • 💿 专辑查询: 发行信息、曲目列表、制作信息
  • 📝 歌词查询: 搜索链接、歌曲信息
  • 🏷️ 流派查询: 子流派特点、代表乐队、发展历史
  • 🔗 推荐查询: 相似乐队、风格关联、影响关系

提示技巧

  1. 具体化查询: 提供准确的乐队名和专辑名能获得更好的结果
  2. 组合查询: 可以在一次对话中询问多个相关问题
  3. 上下文延续: AI会记住之前的查询内容,可以进行深入讨论
  4. 中英文混用: 支持中英文乐队名和专辑名查询

🔧 技术特色

核心技术架构

  • 多数据源并行搜索 - 提高成功率和准确性
  • 智能容错机制 - 单个数据源失败不影响整体
  • 模块化设计 - 易于扩展和维护
  • 异步处理 - 提高响应速度和并发性能

歌词搜索改进

问题解决

  • 原始问题: 歌词搜索返回占位符文本,成功率0%
  • 改进方案: 集成5个数据源,智能选择最佳结果
  • 技术实现: 多源并行搜索 + 置信度评估

改进效果

测试歌曲 改进前 改进后 效果
Enter Sandman ❌ 占位符 ✅ 真实歌词 🎯 成功
Black Future ❌ 占位符 ✅ 真实歌词 🎯 成功
Master of Puppets ❌ 占位符 ✅ 真实歌词 🎯 成功

数据源策略

search_methods = [
    ("genius_search", self._search_genius_web),      # 网页版Genius
    ("lyrics_com", self._search_lyrics_com),         # Lyrics.com
    ("songlyrics", self._search_songlyrics),         # SongLyrics
    ("metrolyrics", self._search_metrolyrics),       # MetroLyrics
    ("google_search", self._search_google_lyrics)    # Google搜索
]

国内平台集成

支持平台

  • 网易云音乐 - 通过第三方API集成
  • QQ音乐 - 搜索接口集成
  • 豆瓣音乐 - 音乐人信息获取
  • 演出平台 - 秀动、大麦等搜索链接

技术实现

  • 反爬虫处理 - 智能User-Agent和请求头
  • 代理支持 - 可配置HTTP/HTTPS代理
  • 缓存机制 - Redis缓存提高响应速度

🤝 贡献指南

感谢你对Master of Metal项目的关注!我们欢迎各种形式的贡献。

贡献方式

1. 报告Bug

  • 使用 GitHub Issues 报告bug
  • 请提供详细的复现步骤
  • 包含错误信息和环境信息

2. 功能建议

  • 通过 GitHub Issues 提出新功能建议
  • 详细描述功能需求和使用场景
  • 欢迎提供设计思路

3. 代码贡献

  • Fork项目到你的GitHub账户
  • 创建功能分支: git checkout -b feature/amazing-feature
  • 提交更改: git commit -m 'feat: add amazing feature'
  • 推送分支: git push origin feature/amazing-feature
  • 创建Pull Request

开发环境设置

# 克隆项目
git clone https://github.com/4ier/mom.git
cd mom

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
# 或 venv\Scripts\activate  # Windows

# 安装依赖
pip install -r requirements.txt

# 运行测试
python tests/verify_mcp.py

贡献领域

1. 核心功能

  • MCP工具扩展 - 添加新的音乐查询工具
  • 数据源集成 - 集成更多音乐平台API
  • 搜索算法优化 - 改进歌词搜索准确性
  • 缓存机制 - 提高响应速度

2. 国际化

  • 多语言支持 - 添加其他语言界面
  • 本地化适配 - 适配不同地区的音乐平台
  • 文化背景 - 添加不同文化的音乐知识

3. 用户体验

  • 文档完善 - 改进使用说明
  • 示例丰富 - 添加更多使用案例
  • 错误处理 - 优化错误信息和处理

代码规范

Python代码风格

  • 遵循 PEP 8 规范
  • 使用有意义的变量和函数名
  • 添加适当的注释和文档字符串

提交信息规范

使用 Conventional Commits 格式:

<type>[optional scope]: <description>

[optional body]

[optional footer(s)]

类型说明

  • feat: 新功能
  • fix: Bug修复
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • test: 测试相关
  • chore: 构建过程或辅助工具的变动

示例

feat(lyrics): 添加Genius API集成
fix(search): 修复国内平台搜索超时问题
docs(readme): 更新安装说明

📄 版权合规说明

项目定位

Master of Metal MCP项目专注于提供技术工具文化指导,而非分发受版权保护的内容。

合规内容

  • MCP服务器代码 - 原创技术实现
  • 数据源集成 - 搜索API和工具集成
  • 教育资源 - 乐队介绍、音乐风格分析
  • 工具功能 - 搜索链接生成、资源推荐

法律声明

本项目:

  • 尊重所有版权持有者的权利
  • 不存储或分发受版权保护的歌词内容
  • 仅提供技术工具和教育资源
  • 鼓励用户通过合法途径获取音乐内容
  • 支持音乐产业和艺术家的权益

许可证

本项目采用 MIT License

项目宗旨: 通过技术工具和文化教育,促进金属音乐的合法传播和跨文化理解。

🎯 项目状态

功能完成度

  • MCP服务器: 完全功能,7个工具
  • 歌词搜索: 多源搜索,智能选择
  • 国内平台: 基础集成,持续优化
  • 文档: 完整覆盖,详细说明
  • 测试: 全面验证,持续集成
  • 技术架构: 模块化设计,易于扩展

项目统计

  • Python文件: 15个
  • 文档文件: 12个
  • 配置文件: 3个
  • 测试覆盖: 主要功能完整测试

版本历史

v1.0.0 (2025年1月)

  • 🎉 首次发布
  • ✨ 7个MCP工具完整实现
  • 🎵 多数据源歌词搜索系统
  • 🇨🇳 国内平台集成
  • 📚 完整文档和测试

🌟 Star History

如果这个项目对你有帮助,请给个Star支持!⭐

📞 联系方式

🔮 未来规划

短期目标

  • 优化歌词搜索算法
  • 增加更多数据源
  • 改进国内平台集成
  • 完善错误处理机制

长期愿景

  • 支持更多音乐流派
  • 国际化和本地化
  • 社区贡献系统
  • 高级分析功能

让AI说金属语言,让金属跨越语言障碍! 🤘

Master of Metal - 专业的金属音乐MCP工具 - 2025年1月

About

master of metal, let your AI speak metal.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages