Ed Stem MCP 服务器

Ed Stem MCP 服务器是一个用于Ed Discussion平台集成的模型上下文协议服务器,提供用户信息获取、课程讨论管理、线程搜索等功能。

  • by 1jehuang
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 1jehuang/edstem-mcp

使用说明

Ed Stem MCP服务器

用于Ed讨论平台集成的模型上下文协议(MCP)服务器。

特性

此MCP服务器为Claude Code提供了与Ed Stem交互的工具:

  • 获取用户信息:查看您注册的课程
  • 列出线程:使用过滤器浏览课程讨论(未解决、未答复等)
  • 获取线程:阅读包含所有评论的完整帖子
  • 帖子线程:创建新的讨论线程
  • 编辑线程:更新现有线程
  • 搜索线索:按关键字查找线索
  • 列出用户:查看课程注册

安装

  1. 克隆存储库:
git clone <repository-url>
cd edstem-mcp
  1. 创建虚拟环境并安装依赖关系:
python3 -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate
pip install -r requirements.txt
  1. 获取Ed API代币:

    • 首选https://edstem.org/us/settings/api-tokens
    • 创建新令牌
    • 复制令牌值
  2. 创建 .env 文件:

cp .env.example .env
# Edit .env and add your token

配置

添加到您的Claude Code MCP设置文件中:

Linux/Mac: ~/.claude_code/mcp_settings.json

{
  "mcpServers": {
    "edstem": {
      "command": "/home/jeremy/edstem-mcp/venv/bin/python",
      "args": ["/home/jeremy/edstem-mcp/server.py"],
      "env": {
        "ED_API_TOKEN": "your_token_here"
      }
    }
  }
}

替换 /home/jeremy 使用您的实际主目录路径,并添加您的实际令牌。

用法示例

配置后,您可以在Claude Code中使用自然语言:

  • “列出我的CSE 421课程中的最新主题”
  • “显示课程12345中未回答的问题”
  • “创建一个关于作业截止日期的帖子”
  • “搜索有关动态编程的线程”
  • “获取线程#6789的详细信息”

可用工具

get_user_info

获取有关已验证用户和已注册课程的信息。

list_threads

列出带有可选筛选的课程中的线程。

  • 参数:
    • course_id (必填):课程ID
    • limit (可选):要返回的最大线程数(默认值:30)
    • offset (可选):分页偏移量(默认值:0)
    • sort (可选):排序顺序-“新”、“顶部”、“趋势”(默认:“新”)
    • filter (可选):筛选线程-“未解析”、“未应答”、“我的”、“跟在后面”

get_thread

获取详细的帖子信息,包括所有评论。

  • 参数: thread_id

post_thread

创建一个新线程。

  • 参数: course_id, title, content, category, subcategory, is_private, is_anonymous

edit_thread

编辑现有线程。

  • 参数: thread_id, title, content, category

search_threads

按关键字搜索线程。

  • 参数: course_id, query, limit

list_users

列出已注册课程的用户。

  • 参数: course_id

资源

服务器公开:

  • edstem://user -当前用户信息和课程

改进和功能

增强搜索(v1.1)

  • 内容搜索:搜索现在可以同时查看帖子标题和内容(而不仅仅是标题)
  • 更好的结果:更准确地匹配以查找相关讨论

线程过滤

  • 未解决的:仅显示没有接受答案的线程
  • 未回答:显示尚未响应的线程
  • 我的:仅显示您创建的线程
  • 跟随:显示您正在关注的帖子

错误处理

  • 特定错误类型:身份验证错误、API错误和验证错误分别处理
  • 详细信息:清除错误消息有助于诊断问题
  • 优雅降级:错误不会使服务器崩溃

调试和记录

  • 日志文件:所有操作都记录到 /tmp/edstem-mcp.log
  • 结构化日志记录:时间戳、日志级别和详细消息
  • 刀具跟踪:每次工具调用都会记录其参数
  • 误差溯源:调试的完整异常跟踪

标准化输出

所有工具现在都返回一致的数据结构:

  • list_threads:退货 {threads: [...], count: N, limit: M, offset: O}
  • list_users:退货 {users: [...], count: N}
  • search_threads:退货 {threads: [...], count: N, query: "..."}

安全说明

  • 将API令牌视为密码 -任何拥有它的人都可以访问你的Ed帐户
  • 永不承诺 .env 或令牌到版本控制
  • Ed API处于测试版,可能会在不另行通知的情况下更改

许可证

麻省理工学院

鸣谢

使用非官方 埃达皮 用于Ed Stem API访问的库。