使用说明
Ed Stem MCP服务器
用于Ed讨论平台集成的模型上下文协议(MCP)服务器。
特性
此MCP服务器为Claude Code提供了与Ed Stem交互的工具:
- 获取用户信息:查看您注册的课程
- 列出线程:使用过滤器浏览课程讨论(未解决、未答复等)
- 获取线程:阅读包含所有评论的完整帖子
- 帖子线程:创建新的讨论线程
- 编辑线程:更新现有线程
- 搜索线索:按关键字查找线索
- 列出用户:查看课程注册
安装
- 克隆存储库:
git clone <repository-url>
cd edstem-mcp
- 创建虚拟环境并安装依赖关系:
python3 -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
-
获取Ed API代币:
- 首选https://edstem.org/us/settings/api-tokens
- 创建新令牌
- 复制令牌值
-
创建
.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(必填):课程IDlimit(可选):要返回的最大线程数(默认值: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访问的库。