Token导航 LogoToken导航TokenDH.com
Encoding Music MCP logo
音视频stdio官方级别未说明来源级核验

Encoding Music MCP

MCP Server

一个用于分析MEI(音乐编码倡议)文件的服务,提供元数据提取、音乐结构分析和编码乐谱理解工具。

工具数

8

提示词数

0

GitHub Stars

2

资源数

0
PythonClaude语音音频Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

unimelbmdap

提供方

unimelbmdap

最后核验

2026/5/17 20:21

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

uv run encoding-music-mcp

详细介绍

编码音乐mcp

![License: MIT](https://opensource.org/licenses/MIT) ![Python 3.12+](https://www.python.org/downloads/) ![uv](https://github.com/astral-sh/uv) ![Ruff](https://github.com/astral-sh/ruff) ![Documentation](https://unimelbmdap.github.io/encoding-music-mcp/) ![MCP](https://modelcontextprotocol.io) ![MEI](https://music-encoding.org/)

用于分析MEI(音乐编码倡议)文件的MCP服务器。提供提取元数据、分析音乐结构和理解编码乐谱的工具。

特性

  • 46个内置MEI文件:巴赫发明、巴托克·米克罗科斯莫斯、莫利·坎佐涅茨——准备分析
  • MEI元数据提取:提取标题、作曲家、编辑、分析员、出版日期和版权信息
  • 关键分析:使用music21检测具有置信度分数的音乐键
  • 区间分析:使用CRIM音程提取音符、旋律音程、和声音程和旋律n元语法
  • 符号显示:使用Verovio将乐谱渲染为SVG,并使用交互式分页(需要 MCP应用程序扩展)
  • 简单高效:直接从磁盘读取工具-无令牌浪费

文档

📚 阅读完整文档 用于:

  • 详细工具参考
  • 快速入门指南
  • MEI文件收集详细信息
  • 发展指南
  • API 参考

安装

先决条件:此项目需要 紫外线 待安装。

选项1:快速入门(使用uvx)

无需克隆!将此添加到MCP客户端配置中:

{
  "mcpServers": {
    "encoding-music-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/unimelbmdap/encoding-music-mcp.git",
        "encoding-music-mcp"
      ]
    }
  }
}

方案2:地方发展

克隆存储库并安装依赖项:

git clone https://github.com/unimelbmdap/encoding-music-mcp.git
cd encoding-music-mcp
uv sync

用法

使用克劳德桌面

  1. 打开您的Claude Desktop配置文件:

- 在Claude Desktop中,打开 设置>开发人员 - 在...之下 本地MCP服务器,单击 编辑配置

  1. 添加配置(选择一种方法):

方法A:使用uvx(不需要克隆)

{
  "mcpServers": {
    "encoding-music-mcp": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/unimelbmdap/encoding-music-mcp.git",
        "encoding-music-mcp"
      ]
    }
  }
}

方法B:使用本地克隆

{
  "mcpServers": {
    "encoding-music-mcp": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/encoding-music-mcp",
        "run",
        "encoding-music-mcp"
      ]
    }
  }
}
  1. 重新启动克劳德桌面
  1. 试试看:

- “有哪些MEI文件可用?”→ 列出所有46个内置文件 - “跟我说说Bach_BWV_0772.mei吧”→ 提取元数据 - “Bach_BWV_0772.mei用的是什么钥匙?”→ 用置信度得分分析密钥 - “获取Bach_BWV_0772.mei的旋律音程”→ 提取旋律音程 - “在Bach_BWV_0772.mei中找到旋律4克”→ 提取旋律n元语法 - “给我看看Bach_BWV_0772.mei的符号”→ 显示渲染的乐谱

独立

直接运行服务器:

uv run encoding-music-mcp

可用工具

list_available_mei_files

发现所有内置的MEI文件。

退货:词典:

  • bach_inventions:巴赫作品列表
  • bartok_mikrokosmos:Bartók文件列表
  • morley_canzonets:Morley文件列表
  • all_files:所有文件名的完整列表

get_mei_metadata

从内置的MEI文件中提取详细的元数据。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)

退货:包含元数据的词典,包括:

  • 标题和作品标题
  • 作曲家
  • MEI编辑
  • XML编辑器
  • 分析师
  • 出版日期
  • 版权/可用性信息
  • 用于创建文件的应用程序

输出示例:

{
  "title": "Invention No. 1 in C major",
  "composer": "Bach, Johann Sebastian",
  "mei_editors": ["Freedman, Richard"],
  "xml_editors": ["Schölkopf, Tobias"],
  "analysts": ["Student, This"],
  "publication_date": "2024-11-19"
}

analyze_key

使用music21的键检测算法分析乐曲的音乐键。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)

退货:词典:

  • Key Name:检测到的密钥(例如,“C大调”、“小调”)
  • Confidence Factor:相关系数在0.0和1.0之间

输出示例:

{
  "Key Name": "C major",
  "Confidence Factor": 0.9451
}

get_notes

使用CRIM间隔从MEI文件中提取所有笔记。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)

退货:词典:

  • filename:输入文件名
  • notes:带有音高和八度音信息的音符数据帧的字符串表示

列代表单个木条或声音部分。行以浮点数表示度量和节拍信息。

get_melodic_intervals

使用CRIM音程从MEI文件中提取旋律音程。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)

退货:词典:

  • filename:输入文件名
  • melodic_intervals:旋律音程数据帧的字符串表示

列代表单个木条或声音部分。行以浮点数表示度量和节拍信息。

get_harmonic_intervals

使用CRIM间隔从MEI文件中提取谐波间隔。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)

退货:词典:

  • filename:输入文件名
  • harmonic_intervals:谐波间隔数据帧的字符串表示

列表示成对的语音部分。行以浮点数表示度量和节拍信息。

get_melodic_ngrams

使用CRIM间隔从MEI文件中提取旋律n元语法。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)
  • n (整数,可选):n元语法的长度(默认值:4)

退货:词典:

  • filename:输入文件名
  • n:使用的n元语法长度
  • melodic_ngrams:旋律n报数据帧的字符串表示

N-grams是转换为带下划线分隔符的字符串的区间元组(例如“2\_-2_3\_-1”)。

show_notation

将MEI文件的乐谱显示为渲染的SVG。需要 MCP应用程序扩展 用于内联显示。

参数:

  • filename (字符串,必填):MEI文件的名称(例如,“Bach_BWV_0772.MEI”)
  • start_measure (整数,可选):要显示的第一个度量值(默认为整件)
  • end_measure (整数,可选):要显示的最后一个度量值(如果只给出start,则默认为start_measure)
  • page (整数,可选):要显示的页码(默认值:1)

退货:由Verovio渲染的SVG表示法,在带有分页控件的交互式查看器中显示。

内置文件

服务器包括46个MEI文件:

  • 15巴赫的两部分发明 (体重772-786)
  • 19件巴托克·米克罗科斯莫斯作品
  • 12 Morley 歌曲 从1595

使用 list_available_mei_files() 以发现所有可用文件。

发展

该项目使用uv进行依赖关系管理:

# Install dependencies
uv sync

# Run the server
uv run encoding-music-mcp

# Format code
uv run ruff format .

# Run tests
uv run pytest

# Run tests with verbose output
uv run pytest -v

# Serve documentation locally
uv run mkdocs serve

# Build documentation
uv run mkdocs build

测试

该项目包括对所有工具的全面测试。看 测试/README.md 获取详细的测试文档。

文档

文档是用 MkDocs材料:

# Serve locally at http://localhost:8000
uv run mkdocs serve

# Build static site
uv run mkdocs build

即将推出

计划使用的其他工具:

  • 时间特征检测
  • 音高直方图和频率分析
  • 歌词摘录
  • 模式匹配和相似性检测

许可证

麻省理工学院

目录标签

目录标签

PythonClaude语音音频音乐编码本地部署元数据提取音乐分析乐谱渲染MEI

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

8

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP