Audius MCP服务器(代码模式)
一个代码模式MCP服务器,允许LLM完全访问Audius音乐平台和开放音频协议。它使用两个元工具,而不是100多个单独的工具-- 搜索 和 执行 -将整个Audius API压缩为大约1000个上下文令牌。
使用Effect-TS构建。运行QuickJS WASM沙盒以确保代码执行安全。
运作原理
LLM ──► search("trending tracks") → discovers GET /tracks/trending
──► execute("audius.request(...)") → runs code in sandbox, returns resultsLLM编写的JavaScript在经过身份验证的隔离沙箱中运行 audius.request() 客户。提示中没有API键,没有工具爆炸,没有往返开销。
工具
| 工具 | 它做什么 |
|---|---|
| 搜索 | 通过标记、路径、方法或关键字发现API端点 |
| 执行 | 在QuickJS沙箱中针对Audius API运行JavaScript |
| 玩 | 在Audius桌面应用程序或浏览器中打开曲目 |
| 子图 | 通过The Graph查询链协议数据(质押、治理、节点) |
快速开始
# Install
git clone https://github.com/glassBead-tc/audius-mcp-atris.git
cd audius-mcp-atris
pnpm install
# Configure
echo 'AUDIUS_API_KEY=your_key_here' > .env
# Build & run
pnpm dev获取API密钥
奥迪API密钥(必需)
- 首选 audius.c/settings 登录(或创建帐户)
- 滚动到 开发者应用 并创建新应用程序
- 复制 API密钥 --这是你的
.env作为AUDIUS_API_KEY - 可选择复制 API秘密 如果您计划进行写入操作(上传、收藏夹)
或者,在以下网址获取凭据 api.audius.co/计划.
图形API键(可选,用于子图形工具)
子图工具查询链协议数据(质押、治理、节点)。它需要一个Graph API键:
- 首选 thegraph.com/studio 并登录
- 创建API密钥(视频教程)
- 将其添加到您的
.env作为GRAPH_API_KEY
如果没有此键,子图工具将返回身份验证错误。没有它,所有其他工具都能正常工作。
联系克劳德
克劳德代码
添加到您的项目 .mcp.json:
{
"mcpServers": {
"audius-mcp": {
"type": "http",
"url": "http://localhost:3000/mcp"
}
}
}克劳德桌面
添加 claude_mcp_config.json:
{
"mcpServers": {
"audius": {
"command": "node",
"args": ["/path/to/audius-mcp-atris/dist/index.js"],
"env": {
"AUDIUS_API_KEY": "your_key_here"
}
}
}
}对话示例
“Audius现在的趋势是什么?”
// LLM calls search({ tag: "tracks" }), then:
return await audius.request('GET', '/tracks/trending', { query: { limit: 5 } })“找到deadmau5,给我看看他的热门曲目”
const users = await audius.request('GET', '/users/search', { query: { query: 'deadmau5' } })
const userId = users.data[0].id
const tracks = await audius.request('GET', '/users/' + userId + '/tracks', { query: { sort: 'plays' } })
return tracks.data.map(t => ({ title: t.title, plays: t.play_count }))“协议中押了多少$AUDIO?”
{ audiusNetworks(first: 1) { totalTokensStaked totalTokensDelegated totalSupply } }建筑
src/
├── index.ts # Entry point — Effect layers, HTTP server
├── AppConfig.ts # Env var config (AUDIUS_API_KEY, PORT)
├── mcp/
│ ├── McpSchema.ts # MCP 2025-11-25 protocol (Effect Schema)
│ ├── McpSerialization.ts # JSON-RPC ↔ Effect RPC bridge
│ ├── McpServer.ts # Request dispatch (initialize, tools/*)
│ └── McpServerTransport.ts # Streamable HTTP on /mcp
├── api/
│ ├── SpecLoader.ts # Fetch + resolve Audius swagger.yaml
│ ├── SpecIndex.ts # Searchable index over parsed spec
│ └── AudiusClient.ts # Authenticated HTTP client
├── tools/
│ ├── SearchTool.ts # search tool
│ ├── ExecuteTool.ts # execute tool
│ ├── PlayTool.ts # play tool
│ └── SubgraphTool.ts # subgraph tool
└── sandbox/
├── Sandbox.ts # QuickJS WASM sandbox
└── TypeGenerator.ts # TS declarations from spec每个组件都是一个效果服务(Context.Tag)组成via Layer沙盒使用 QuickJSDeferredPromise 支持无限链 await 电话。
环境变量
| 变量 | 必填 | 描述 |
|---|---|---|
AUDIUS_API_KEY | 是 | API密钥来自audius.co/settings |
PORT | 否 | HTTP服务器端口(默认值:3000) |
GRAPH_API_KEY | 否 | 用于子图查询的Graph API键 |
发展
pnpm build # Compile TypeScript
pnpm start # Run compiled server
pnpm dev # Build + run
pnpm test # Run tests安全
- 沙箱隔离:LLM生成的代码在QuickJS WASM中运行——无文件系统、无网络、无环境变量
- 无原始提取:只有
audius.request()可用,硬编码到api.audius.co - SSRF保护:API路径必须以开头
/并且不能包含@ - 内存盖:每次执行64MB
- 超时:默认30秒,每次通话可配置
- 新鲜的背景:执行之间没有状态泄漏
协议
- MCP版本: 2025-11-25
- 运输:可流式传输HTTP
POST /mcp - 会话:
MCP-Session-Id内存中的标头(无状态就绪)
开放音频协议
此服务器基于 开放音频协议 --去中心化的全球音乐数据库。Audius是OAP之上的一个应用层。子图工具提供对链上协议数据的直接访问。
许可证
麻省理工学院

