mcpField
G
Gen AI Lyrics Search Agent

Gen AI Lyrics Search Agent

本地服务
github.com/tehmenghaiAI 与智能体179 周前更新

关于 Gen AI Lyrics Search Agent

Gen AI Lyrics Search Agent 是面向移动应用的歌词搜索 Agent,可从网络多个来源查找歌词并以特定格式返回。它通过 MCP 提供标准化工具集成,并包含 FastAPI REST API。

主要功能

  1. 01跨网络来源搜索歌词
  2. 02生成式 AI 对话界面
  3. 03FastAPI REST API
  4. 04身份验证与速率限制
  5. 05性能监控与分析

适用场景

  1. 01为移动应用检索歌曲歌词
  2. 02通过对话方式查找歌词
  3. 03监控歌词搜索服务性能

MCP 相关

该服务采用 MCP 实现标准化工具集成,使 MCP 客户端能够使用歌词搜索功能。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"tehmenghai": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"build"
]
}
}
}
启动命令docker run -i --rm build

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
ocibuild

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

生成式 AI 歌词搜索 Agent

一个生成式 AI Agent,可在整个网络中搜索歌曲歌词,并以特定格式返回结果,供移动应用使用。基于模型上下文协议(MCP)构建,实现标准化的工具集成。

功能

  • 🔍 基于网络的歌词搜索,覆盖多个来源
  • 🤖 由生成式 AI 驱动的对话界面
  • 🔌 符合 MCP 规范的工具集成
  • 🚀 基于 FastAPI 的 REST API
  • 🔒 身份验证和速率限制
  • 📊 性能监控和分析

前提条件

  • Python 3.10 或更高版本
  • 用于依赖项管理的 Poetry
  • Docker(可选)

设置

  1. 克隆代码仓库:
git clone <repository-url>
cd lyrics-search-agent
  1. 使用 Poetry 安装依赖项:
poetry install
  1. 设置环境变量:
cp .env.example .env
# Edit .env with your configuration
  1. 运行应用:
poetry run uvicorn app.main:app --reload

或者使用 Docker:

docker build -t lyrics-search-agent .
docker run -p 8000:8000 lyrics-search-agent

API 文档

应用运行后,请访问:

主要端点
  • GET /:服务信息
  • POST /search:搜索歌词
  • GET /tools:列出可用工具

开发

项目结构
app/
├── __init__.py
├── main.py
├── mcp/
│   ├── __init__.py
│   └── protocol.py
└── tools/
    └── web_search.py
添加新工具
  1. 在 app/tools/ 中创建新的工具类
  2. 实现 BaseTool 接口
  3. 在 app/main.py 中注册该工具

测试

使用 pytest 运行测试:

poetry run pytest

贡献

  1. Fork 代码仓库
  2. 创建功能分支
  3. 提交更改
  4. 推送到分支
  5. 创建 Pull Request

许可证

本项目采用 MIT 许可证授权,详情请参阅 LICENSE 文件。

致谢

  • 感谢 OpenAI/Anthropic 提供大模型能力
  • 感谢 FastAPI 提供 Web 框架
  • 感谢 LangChain 提供大模型编排能力

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。