课程管理协议服务器

Super Singularity MCP Server是一个用于集成Claude Desktop与课程创建API、文本转语音服务和云存储的模型上下文协议服务器,提供完整的课程和卡片管理功能。

  • by Ishant-93
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Ishant-93/MCP

使用说明

超级奇点MCP服务器

一个模型上下文协议(MCP)服务器,用于集成Claude Desktop与Super Singularity的课程创建API、ElevenLabs文本到速度和Azure Blob存储。

特性

  • 完整的课程管理:创建、更新和管理课程
  • 所有卡类型:支持内容、测验、投票、表单、视频、音频和链接卡
  • 文本转语音:使用ElevenLabs TTS从文本生成音频
  • 云存储:在Azure Blob存储上上传和托管音频文件
  • 脚本保存:将原始脚本文本存储在声卡内容中
  • 生产就绪:环境配置、错误处理和超时管理

快速开始

  1. 克隆并安装:

    git clone <repository-url>
    cd mcp-servers
    uv sync
    
  2. 配置环境:

    cp .env.example .env
    # Edit .env with your API keys and configuration
    
  3. 添加到克劳德桌面: 增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

    {
      "mcpServers": {
        "super-singularity": {
          "command": "uv",
          "args": ["run", "python", "/path/to/mcp-servers/server.py"]
        }
      }
    }
    
  4. 重新启动克劳德桌面 开始创建课程!

环境配置

中所需的环境变量 .env:

# Super Singularity API
API_BASE_URL=https://your-api-domain.com
API_TOKEN=your-bearer-token-here  
COMPANY_ID=your-company-id-here

# ElevenLabs TTS
ELEVENLABS_API_KEY=your-elevenlabs-api-key-here
ELEVENLABS_VOICE_ID=21m00Tcm4TlvDq8ikWAM

# Azure Blob Storage  
AZURE_STORAGE_CONNECTION_STRING=DefaultEndpointsProtocol=https;AccountName=...
AZURE_CONTAINER_NAME=audio-files

可用工具

课程管理

  • get_course(course_id) -获取课程详细信息
  • create_course(title, ...) -创建新课程
  • get_course_cards(course_id) -获取课程中的所有卡片

卡片创建

  • create_content_card() -带有可选图像的文本内容
  • create_quiz_card() -多项选择题
  • create_poll_card() -收集学习者反馈的民意调查
  • create_form_card() -用于收集学习者反馈的表单输入
  • create_video_card() -视频内容
  • create_audio_card() -可选择保留脚本的音频内容
  • create_link_card() -外部资源链接

音频生成

  • generate_audio_from_text(text, title) -使用ElevenLabs TTS生成音频
  • 创建音频文件并上传到Azure存储
  • 返回URL和脚本保留说明

声卡工作流程

由于MCP的限制,从脚本创建声卡需要两个步骤:

  1. 生成音频:

    generate_audio_from_text("Your script text here", "Audio Title")
    
  2. 创建保留脚本的卡片:

    create_audio_card(course_id, audio_url, title, script="Your script text here")
    

script参数保留卡片内容中的原始文本以供将来参考。

发现MCP限制

问题

组合多个异步操作(ElevenLabs+Azure+API请求)的MCP工具会在Claude Desktop中导致“内部服务器错误”,无论函数名称或实现方法如何。

失败的尝试

所有这些都导致了内部服务器错误:

  • create_audio_card_from_script()
  • generate_audio_url_from_script()
  • create_audio_card_using_script()
  • test_helper_function_plus_api()

工作溶液

 每个操作都有单独的工具:

  • generate_audio_from_text() -仅处理ElevenLabs+Azure
  • create_audio_card() -仅处理API请求
  • 两步式工作流程,包含清晰的脚本保存说明

根本原因分析

该限制似乎与以下因素有关:

  • 单个MCP工具中的复杂异步操作链
  • 多步骤操作的超时阈值
  • Claude Desktop MCP客户端中的内存/资源约束
  • 组合外部服务调用的事件循环处理

社区验证

我们的发现与社区中记录的已知MCP问题一致:

  • GitHub问题#424:“MCP超时需要可配置”
  • GitHub问题#417:“MCP服务器内部服务器错误报告”
  • 关于超时错误和内部服务器错误的多个论坛讨论

学到的最佳实践

  1. 保持MCP工具的简单性和原子性 -每个工具的单一责任
  2. 避免合并多个外部服务呼叫 在一个工具中
  3. 使用辅助函数 对于复杂的操作,但可以从单独的工具调用它们
  4. 提供明确的指示 在工具响应中指导多步骤工作流
  5. 增量测试 添加新集成时

API 文档

API完整文档可在以下位置获得: documentation/external-api-documentation.md

依赖项

  • mcp -模型上下文协议Python SDK
  • httpx -API请求的异步HTTP客户端
  • elevenlabs -ElevenLabs TTS集成
  • azure-storage-blob -Azure Blob存储客户端
  • python-dotenv -环境变量管理

许可证

[在此处添加您的许可证]

贡献

[在此处添加贡献指南]