Moodle连接MCP
一个模型上下文协议(MCP)服务器,允许Claude Desktop与Moodle交互。直接通过Claude访问您的课程、日历事件、作业、截止日期和课程材料。
特性
- 课程管理:查看您注册的所有课程
- 日历集成:检查即将举行的活动和截止日期
- 任务跟踪:查看所有作业及其截止日期
- 课程内容:获取课程材料和资源
- 智能过滤:在特定时间范围内获取即将到来的项目
先决条件
- Node.js 18或更高版本
- 启用了web服务的Moodle帐户
- Claude桌面应用程序
安装说明
1.获取Moodle Web服务令牌
您需要从Moodle网站获取web服务令牌:
选项A:使用Moodle的令牌生成页面
- 登录您的Moodle网站
- 转到您的用户首选项:
Dashboard→Preferences→User account→Security keys - 查找“Web服务访问令牌”或类似令牌
- 创建新令牌或复制现有令牌
选项B:直接URL方法
- 导航到:
https://your-moodle-site.com/admin/settings.php?section=webservicetokens - 为您的用户帐户创建新令牌
- 复制生成的令牌
选项C:询问管理员
如果您无法访问令牌生成页面:
- 联系您的Moodle网站管理员
- 请求web服务令牌以访问外部应用程序
- 他们可能需要先为您的帐户启用web服务
重要:确保您的令牌安全-它提供了对您Moodle帐户的完全访问权限!
2.安装MCP服务器
克隆并设置项目:
# Clone the repository
git clone https://github.com/yourusername/moodle-connect-mcp.git
cd moodle-connect-mcp
# Install dependencies
npm install
# Build the project
npm run build3.配置环境变量
创建一个 .env 项目根目录中的文件:
cp .env.example .env编辑 .env 并添加您的Moodle凭据:
MOODLE_URL=https://your-moodle-site.com
MOODLE_TOKEN=your_web_service_token_here4.配置克劳德桌面
将MCP服务器添加到您的Claude Desktop配置中:
在macOS上
编辑: ~/Library/Application Support/Claude/claude_desktop_config.json
在Windows上
编辑: %APPDATA%\Claude\claude_desktop_config.json
在Linux上
编辑: ~/.config/Claude/claude_desktop_config.json
添加以下配置:
{
"mcpServers": {
"moodle": {
"command": "node",
"args": ["/absolute/path/to/moodle-connect-mcp/dist/index.js"],
"env": {
"MOODLE_URL": "https://your-moodle-site.com",
"MOODLE_TOKEN": "your_web_service_token_here"
}
}
}
}替换 /absolute/path/to/moodle-connect-mcp 安装的实际路径。
5.重新启动克劳德桌面
重新启动Claude Desktop以加载新的MCP服务器。
使用示例
配置后,您可以向Claude询问以下问题:
- “我接下来的任务是什么?”
- “显示我的所有课程”
- “这周我有什么活动?”
- “接下来7天要交什么?”
- “显示课程ID 123的内容”
- “我需要尽快进行哪些测试?”
- “我的下一个截止日期是什么时候?”
可用工具
服务器为Claude提供以下工具:
get_courses
获取您注册的所有课程,包括课程名称、摘要和日期。
get_calendar_events
获取日历事件,可选择按课程ID筛选。
get_upcoming_events
获取指定天数内即将发生的日历事件(默认值:30天)。
get_assignments
获取特定课程或所有课程的作业。
get_upcoming_assignments
获取指定天数内到期的作业(默认值:30天)。
get_course_content
获取特定课程的详细内容和材料。
get_site_info
获取有关Moodle网站和用户帐户的信息。
故障排除
“错误:必须设置MOODLE_URL和MOODLE_TOKEN”
确保你的 .env 文件存在并包含有效值,或者您已在Claude Desktop配置中设置了环境变量。
“Moodle API错误:令牌无效”
您的令牌可能已过期或不正确。从您的Moodle站点生成新令牌。
“调用\[函数\]失败:网络错误”
- 检查你的
MOODLE_URL正确且可访问 - 确保您的Moodle网站启用了web服务
- 验证您没有在防火墙后面阻止连接
MCP服务器未显示在Claude桌面中
- 验证中的路径
claude_desktop_config.json绝对正确 - 确保你已经跑过了
npm run build编译TypeScript - 检查Claude Desktop日志是否有错误
- 配置更改后重新启动Claude Desktop
Moodle上未启用Web服务
如果您收到有关web服务不可用的错误:
- 联系您的Moodle管理员
- 他们需要在Moodle站点管理中启用“Web服务”
- 必须启用“REST协议”
- 您的用户帐户需要权限才能使用web服务
发展
# Install dependencies
npm install
# Build the project
npm run build
# Watch for changes during development
npm run watch安全说明
- 永远不要承诺你的
.env文件 -它包含敏感凭据 - 确保您的Moodle令牌安全且私密
- 该令牌提供对您Moodle帐户的完全访问权限
- 如果您怀疑令牌已被泄露,请重新生成令牌
许可证
麻省理工学院
贡献
欢迎投稿!请随时提交拉取请求。
支持
如果您遇到问题:
- 检查上面的故障排除部分
- 验证您的Moodle web服务是否配置正确
- 在GitHub上打开一个问题,详细说明您的问题
