返回 MCP 目录
public公开dns本地运行

Audius

Atris MCP是一个为Audius音乐平台提供LLM访问接口的协议服务器,支持音乐发现、内容管理、社交互动和数据分析等功能。

article

README

🚀 Atr 服务器说明文档

Atr 是一个基于 MCP(Model Context Protocol)协议构建的服务器项目,能为音乐、社交和区块链相关功能提供有力支持。本项目通过集成 Audius SDK,为开发者提供了一套完整的工具集。

✨ 主要特性

  • MCP 兼容性:严格遵循 Model Context Protocol 标准。
  • Audius 集成:充分利用 Audius 的区块链音乐协议。
  • 模块化设计:各个功能模块相互独立,可扩展性强。
  • 高可用性:支持分布式部署,保障服务稳定运行。

🚀 快速开始

📦 安装指南

安装依赖

npm install @audius/audius-sdk @modelcontextprotocol/mcp-server

初始化配置

创建 config.ts 文件:

export const config = {
  port: 3000,
  audiusNodeUrl: 'https://nodes.audius.org',
  ethProviderUrl: 'https://eth-mainnet.g.alchemy.com/v2/your-api-key'
}

启动服务器

npm run dev

📚 详细文档

配置说明

config.ts 文件包含以下配置项:

  • port:服务监听端口,默认 3000。
  • audiusNodeUrl:Audius 网络节点 URL。
  • ethProviderUrl:以太坊 RPC 提供商地址。

💻 使用示例

基础用法

核心工具类

AtrSdkClient

封装 Audius SDK 的常用操作,提供简洁的接口:

class AtrSdkClient {
  private audiusSdk: AudiusSDK

  constructor(config: Config) {
    this.audiusSdk = new AudiusSDK({
      nodeUrl: config.audiusNodeUrl,
      ethProvider: config.ethProviderUrl
    })
  }

  async getTrack(trackId: string): Promise<Track> {
    return await this.audiusSdk.getTrack(trackId)
  }
}
McpServer

实现 MCP 协议的服务器端逻辑:

class McpServer {
  private port: number

  constructor(private config: Config) {
    this.port = config.port
  }

  async start(): Promise<void> {
    const server = new Server()
    // 注册所有工具和资源
    registerMcpTools(server, this.config)
    await server.listen(this.port)
    console.log(`Server running on port ${this.port}`)
  }
}

高级用法

示例工作流程

音乐发现
  1. 获取音乐作品信息:
const trackId = '123'
const track = await atrSdkClient.getTrack(trackId)
  1. 流式播放音频:
const audioStream = await getAudioStream(trackId)
audioStream.pipeTo(audioElement)
内容创建
  1. 上载音乐作品:
await uploadMusic({
  title: 'New Track',
  artist: 'Your Name',
  duration: 240,
  audioFile: file
})
  1. 发布动态:
await postActivity('Check out my new track!', {
  type: 'music',
  trackId: '123'
})
社交互动
  1. 关注用户:
await followUser('new_artist')
  1. 获取用户信息:
const user = await getUserInfo('new_artist')
数字版权管理
  1. 创建 NFT:
await createNft({
  name: 'Unique Track',
  description: 'Limited edition music NFT',
  trackId: '123'
})
  1. 转让 NFT:
await transferNft('123', 'buyer_address')

🔧 技术细节

功能模块

核心功能

  • 音乐播放
    • 流式传输音频,确保音乐播放流畅。
    • 支持音乐作品信息查询,方便用户获取音乐详情。
  • 用户社交
    • 提供用户关注与粉丝管理功能,增强社交互动。
    • 支持社交互动数据统计,为运营提供数据支持。
  • 区块链集成
    • 实现数字版权管理,保障音乐作品版权。
    • 支持加密货币交易处理,拓展支付渠道。

扩展模块

  • 内容审核
    • 自动化内容检测,提高审核效率。
    • 可拦截违规内容,维护平台健康环境。
  • 数据分析
    • 追踪用户行为,深入了解用户需求。
    • 构建智能推荐系统,提升用户体验。
  • 支付网关
    • 支持多种支付方式,满足不同用户需求。
    • 提供财务对账处理,保障财务数据准确。

开发结构

目录结构

atrium/
├── src/
│   ├── config.ts              # 项目配置文件
│   ├── server.ts              # 服务器主程序
│   ├── tools/                 # 工具模块集合
│   │   ├── atr-sdk-client.ts    # Atr SDK 客户端实现
│   │   └── mcp-server.ts       # MCP 协议服务器实现
│   └── resources/             # 资源管理模块
│       ├── music-resource.ts  # 音乐资源管理
│       └── user-resource.ts   # 用户资源管理

核心接口

  • Track

    interface Track {
      id: string
      title: string
      artist: string
      duration: number
      audioUrl?: string | null
    }
    
  • User

    interface User {
      id: string
      username: string
      followersCount: number
      followingCount: number
    }
    

测试指南

环境准备

  • 安装 Node.js 和 npm。
  • 配置以太坊钱包和 API 密钥。
  • 启动本地测试网络或使用公共节点。

使用 MCP Inspector 进行调试

  1. 启动 Inspector:
npm install -g @modelcontextprotocol/mcp-inspector
mcp-inspect --host localhost:3000
  1. 操作步骤:
const inspect = require('@modelcontextprotocol/mcp-inspector')

inspect('localhost:3000', {
  // 添加检查逻辑
})

📄 许可证

本项目遵循 MIT 许可证,具体条款参见 LICENSE 文件。

help

运行方式说明

cloud

托管运行

托管运行通常表示这个 MCP Server 由服务方环境承载,用户一般按页面提供的连接方式或授权流程接入,不需要在本地长期启动一个 MCP 进程

  1. 打开服务方连接页
  2. 完成授权或复制端点
  3. 在 MCP 客户端中连接
terminal

本地运行 / 其它方式

本地运行通常需要用户在自己的电脑或服务器上安装依赖,把 server_config 复制到 MCP 客户端,并按 env_schema 补齐环境变量、密钥或其它配置

  1. 复制 server_config
  2. 安装所需依赖
  3. 补齐环境变量后重启客户端