Token导航 LogoToken导航TokenDH.com
Learnhouse MCP logo
AI代理stdio官方级别未说明来源级核验

Learnhouse MCP

MCP Server

learnhouse-mcp-server@latest

LearnHouse MCP Server是一个为AI代理提供标准化接口的服务,用于编程管理学习管理系统(LMS)实例,支持课程、章节和活动的创建与管理。

工具数

21

提示词数

0

GitHub Stars

0

资源数

0
教育技术TypeScriptClaudeClaudeVS Code

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

ArtemisAI

提供方

ArtemisAI

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx -y learnhouse-mcp-server@latest

详细介绍

LearnHouse MCP服务器

LearnHouse LMS的模型上下文协议(MCP)服务器

此MCP服务器为AI代理(如GitHub Copilot、Claude和其他AI助手)提供了以编程方式管理LearnHouse学习管理系统实例的能力。

📋 目录

______________________________________________________________________

概述

什么是MCP?

模型上下文协议(MCP) 是由Anthropic开发的开放标准,使AI助手能够通过标准化的界面与外部系统进行交互。MCP允许AI模型动态发现和使用工具,而不是硬编码集成。

这个服务器做什么?

LearnHouse MCP服务器公开 21工具 允许AI代理:

  • 管理课程:创建、阅读、更新、删除课程
  • 组织章节:将课程内容分为章节
  • 创建活动:添加学习材料(文档、视频、PDF)
  • 设置内容:使用TipTap文档或视频URL填充活动
  • 跟踪进度:通过课程监控用户进度
  • 搜索:跨课程和内容搜索

为什么使用MCP而不是直接的API调用?

  1. 标准化接口:AI模型可以自动发现工具
  2. 类型安全:Zod模式验证所有参数
  3. 已处理身份验证:一次性登录,持久会话
  4. 错误处理:一致的错误响应
  5. 多代理就绪:任何与MCP兼容的代理都可以使用这些工具

______________________________________________________________________

建筑

┌─────────────────────────────────────────────────────────────────┐
│                        VS Code / AI Agent                        │
│                   (GitHub Copilot, Claude, etc.)                 │
└───────────────────────────┬─────────────────────────────────────┘
                            │ stdio (JSON-RPC)
                            ▼
┌─────────────────────────────────────────────────────────────────┐
│                    LearnHouse MCP Server                         │
│  ┌─────────────────────────────────────────────────────────┐    │
│  │                     FastMCP Framework                     │    │
│  │  ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────────┐│    │
│  │  │ Course  │ │ Chapter │ │Activity │ │ Progress/Search ││    │
│  │  │  Tools  │ │  Tools  │ │  Tools  │ │     Tools       ││    │
│  │  └────┬────┘ └────┬────┘ └────┬────┘ └────────┬────────┘│    │
│  └───────┼───────────┼───────────┼───────────────┼─────────┘    │
│          │           │           │               │               │
│  ┌───────┴───────────┴───────────┴───────────────┴─────────┐    │
│  │                  LearnHouseClient (API Wrapper)          │    │
│  │  • Authentication (login, token management)              │    │
│  │  • HTTP Methods (GET, POST, PUT, DELETE)                 │    │
│  │  • Error Handling                                        │    │
│  └─────────────────────────────┬───────────────────────────┘    │
└────────────────────────────────┼────────────────────────────────┘
                                 │ HTTPS
                                 ▼
┌─────────────────────────────────────────────────────────────────┐
│                    LearnHouse API (FastAPI)                      │
│                   http://localhost:3000                          │
└─────────────────────────────────────────────────────────────────┘

关键组件

组件文件描述
MCP 服务器src/index.ts使用Zod模式的工具定义
API客户端src/client.tsLearnHouseClient包装类
类型定义src/types.tsTypeScript接口和枚举
配置.vscode/mcp.jsonVS代码MCP服务器配置

______________________________________________________________________

安装和设置

选项A:使用NPM(推荐)

您可以直接运行服务器,而无需安装仓库,使用 npx.

npx -y learnhouse-mcp-server@latest

MCP配置(mcp_config.json):

{
  "mcpServers": {
    "learnhouse-remote": {
      "command": "npx",
      "args": ["-y", "learnhouse-mcp-server@latest"],
      "env": {
        "LEARNHOUSE_URL": "https://your-learnhouse-instance.com",
        "LEARNHOUSE_EMAIL": "admin@example.com",
        "LEARNHOUSE_PASSWORD": "your_password",
        "LEARNHOUSE_ORG_ID": "1"
      }
    }
  }
}

选项B:地方发展(来源)

如果要修改服务器代码或进行贡献,请使用此选项。

先决条件

  • Node.js 18+
  • pnpm (或npm/yarn)
  • LearnHouse实例 具有管理员凭据
  • VS Code 使用GitHub Copilot(用于集成)

安装依赖项

cd .mcp
pnpm install

建造(用于生产)

pnpm build

以开发模式运行

pnpm dev

测试服务器

# Inspect available tools
pnpm inspect

# Run API tests
pnpm test

______________________________________________________________________

配置

环境变量

变量描述默认值
LEARNHOUSE_URLLearnHouse API的基本URLhttp://localhost:3000
LEARNHOUSE_EMAIL用于身份验证的管理员电子邮件必填
LEARNHOUSE_PASSWORD管理员密码必填
LEARNHOUSE_ORG_ID组织ID1

VS代码配置

MCP服务器配置在 .vscode/mcp.json:

{
  "servers": {
    "learnhouse": {
      "command": "npx",
      "args": ["tsx", "${workspaceFolder}/.mcp/src/index.ts"],
      "env": {
        "LEARNHOUSE_URL": "http://localhost:3000",
        "LEARNHOUSE_EMAIL": "admin@example.com",
        "LEARNHOUSE_PASSWORD": "YourPassword",
        "LEARNHOUSE_ORG_ID": "1"
      }
    }
  }
}

______________________________________________________________________

可用工具

课程管理(5个工具)

工具说明参数
list_courses列出组织中的所有课程page?, limit?
get_course获取详细的课程信息course_uuid
create_course创建新课程name, description, public?
update_course更新现有课程course_uuid, name?, description?, published?
delete_course删除课程course_uuid

章节管理(4个工具)

工具说明参数
list_chapters列出课程中的所有章节course_id
get_chapter获取章节详细信息chapter_id
create_chapter创建新章节course_id, name, description?, org_id?
update_chapter更新章节chapter_id, name?, description?

活动管理(6个工具)

工具说明参数
list_activities在一章中列出所有活动chapter_id
get_activity获取活动详细信息activity_uuid
create_activity创建新活动chapter_id, name, activity_type?, activity_sub_type?, published?
update_activity更新活动activity_uuid, name?, published?
publish_activity发布活动activity_uuid
set_document_content设置TipTap文档内容activity_uuid, content (JSON字符串)

内容工具(1个工具)

工具说明参数
set_video_content设置活动的视频URLactivity_uuid, video_url

用户和组织(2个工具)

工具说明参数
get_current_user获取经过身份验证的用户信息
get_organization获取组织详细信息org_id?

进度跟踪(2个工具)

工具说明参数
get_course_progress获取用户的课程进度course_uuid
mark_activity_complete将活动标记为已完成activity_uuid

搜索(1个工具)

工具说明参数
search搜索课程和内容query, org_slug?

______________________________________________________________________

数据模型

活动类型

enum ActivityType {
  TYPE_DYNAMIC = "TYPE_DYNAMIC", // Rich text document (TipTap)
  TYPE_VIDEO = "TYPE_VIDEO", // Video content
  TYPE_DOCUMENT = "TYPE_DOCUMENT", // PDF or document
  TYPE_ASSIGNMENT = "TYPE_ASSIGNMENT", // Assignment
  TYPE_CUSTOM = "TYPE_CUSTOM", // Custom type
}

enum ActivitySubType {
  SUBTYPE_DYNAMIC_PAGE = "SUBTYPE_DYNAMIC_PAGE", // TipTap editor page
  SUBTYPE_VIDEO_YOUTUBE = "SUBTYPE_VIDEO_YOUTUBE", // YouTube embed
  SUBTYPE_VIDEO_HOSTED = "SUBTYPE_VIDEO_HOSTED", // Self-hosted video
  SUBTYPE_DOCUMENT_PDF = "SUBTYPE_DOCUMENT_PDF", // PDF viewer
  SUBTYPE_DOCUMENT_DOC = "SUBTYPE_DOCUMENT_DOC", // Document
}

TipTap文档结构

LearnHouse使用 TipTap 的 作为其富文本编辑器。内容以JSON格式存储:

{
  "type": "doc",
  "content": [
    {
      "type": "heading",
      "attrs": { "level": 1 },
      "content": [{ "type": "text", "text": "Welcome" }]
    },
    {
      "type": "paragraph",
      "content": [{ "type": "text", "text": "This is a paragraph." }]
    },
    {
      "type": "bulletList",
      "content": [
        {
          "type": "listItem",
          "content": [
            {
              "type": "paragraph",
              "content": [{ "type": "text", "text": "Item 1" }]
            }
          ]
        }
      ]
    }
  ]
}

课程结构

Organization (org_id: 1)
└── Course (course_uuid)
    ├── name: string
    ├── description: string
    ├── public: boolean
    ├── published: boolean
    └── chapters[]
        └── Chapter (chapter_id, chapter_uuid)
            ├── name: string
            ├── description: string
            └── activities[]
                └── Activity (activity_uuid)
                    ├── name: string
                    ├── activity_type: ActivityType
                    ├── activity_sub_type: ActivitySubType
                    ├── content: TipTapDocument | VideoContent
                    └── published: boolean

______________________________________________________________________

用法示例

示例1:创建完整课程

User: Create a course called "Python Fundamentals" with two chapters

AI Agent (using MCP tools):
1. create_course(name: "Python Fundamentals", description: "Learn Python basics")
   → Returns course_uuid: "course_abc123"

2. create_chapter(course_id: 15, name: "Getting Started")
   → Returns chapter_id: 70

3. create_chapter(course_id: 15, name: "Variables & Data Types")
   → Returns chapter_id: 71

4. create_activity(chapter_id: 70, name: "Introduction to Python", activity_type: "TYPE_DYNAMIC")
   → Returns activity_uuid: "activity_xyz789"

5. set_document_content(activity_uuid: "activity_xyz789", content: {...tiptap json...})
   → Content saved

6. publish_activity(activity_uuid: "activity_xyz789")
   → Activity published

示例2:添加YouTube视频

User: Add a YouTube tutorial to chapter 70

AI Agent (using MCP tools):
1. create_activity(
     chapter_id: 70,
     name: "Python Tutorial Video",
     activity_type: "TYPE_VIDEO",
     activity_sub_type: "SUBTYPE_VIDEO_YOUTUBE"
   )
   → Returns activity_uuid: "activity_video123"

2. set_video_content(
     activity_uuid: "activity_video123",
     video_url: "https://www.youtube.com/watch?v=example"
   )
   → Video URL set

3. publish_activity(activity_uuid: "activity_video123")
   → Published

示例3:搜索和更新

User: Find all courses about MCP and update their descriptions

AI Agent (using MCP tools):
1. search(query: "MCP")
   → Returns: [{course_uuid: "course_mcp1", name: "MCP Introduction"}]

2. update_course(
     course_uuid: "course_mcp1",
     description: "Updated description for MCP course"
   )
   → Course updated

______________________________________________________________________

VS代码集成

运作原理

  1. VS代码加载 mcp.json 启动时
  2. 启动MCP服务器 作为子流程
  3. 工具可用 转到GitHub Copilot
  4. AI代理发现工具 通过MCP协议
  5. 工具执行 并返回结果

验证服务器

在VS代码中:

  1. 打开命令选项板(Ctrl+Shift+P)
  2. 运行“开发人员:显示MCP工具”
  3. 您应该看到所有21个LearnHouse工具

与Copilot一起使用

只需让Copilot执行LearnHouse操作:

“列出LearnHouse中的所有课程” “在课程5中创建一个名为“引言”的新章节” “搜索有关Python的课程”

______________________________________________________________________

api参考

基本URL

http://localhost:3000/api/v1

认证

客户使用 OAuth2密码流:

POST /auth/login
Content-Type: application/x-www-form-urlencoded

username=admin@example.com&password=YourPassword

退货:

{
  "user": { "id": 1, "email": "admin@example.com", ... },
  "tokens": {
    "access_token": "eyJ...",
    "refresh_token": "eyJ..."
  }
}

关键终点

方法端点描述
得到/courses/org_slug/{slug}/page/{p}/limit/{l}列出课程
得到/courses/{uuid}获取课程
职位/courses/创建课程
PUT/courses/{uuid}更新课程
删除/courses/{uuid}删除课程
得到/chapters/{id}获取章节
职位/chapters/创建章节
PUT/chapters/{id}更新章节
得到/activities/{uuid}获取活动
职位/activities/创建活动
PUT/activities/{uuid}更新活动
得到/search/org_slug/{slug}?query=搜索

______________________________________________________________________

测试结果

工具验证(2026年1月23日)

#工具状态注释
1list_courses✅ 通过返回12门课程
2get_course✅ 通行证已检索课程详细信息
3create_course✅ 通过创建课程id=13
4update_course✅ 通行证姓名已更新
5delete_course✅ 通过课程已删除
6list_chapters❌ API错误HTTP 500(后端问题)
7get_chapter✅ 通过检索到章节详细信息
8create_chapter✅ 通过创建章节id=62
9update_chapter✅ 通行证姓名/描述已更新
10list_activities✅ 通行证列出的活动
11get_activity✅ 通过检索到活动详细信息
12create_activity✅ Pass创建的活动(文档和视频)
13update_activity✅ 通行证姓名已更新
14publish_activity✅ Pass活动已发布
15set_document_content✅ PassTipTap内容集
16set_video_content✅ 传递YouTube URL集
17get_current_user✅ 通过admin@example.com
18get_organization✅ PassAgentOne组织详细信息
19search✅ 通过找到课程
20get_course_progress❌ API错误需要注册
21mark_activity_complete❌ API错误需要注册

结果:18/21个工具有效(成功率86%)

3个失败的工具有后端API问题,而不是MCP服务器错误。

______________________________________________________________________

故障排除

服务器无法启动

# Check Node.js version
node --version  # Should be 18+

# Reinstall dependencies
cd .mcp
rm -rf node_modules
pnpm install

身份验证失败

  1. 验证环境变量中的凭据
  2. 检查用户是否存在于LearnHouse中
  3. 确保用户具有管理员权限

工具返回“未找到”

  • 验证UUID/ID是否存在
  • 检查资源是否在正确的组织中
  • 某些端点需要用户注册(进度工具)

“找不到模块”错误

# Rebuild TypeScript
pnpm build

VS Code不显示工具

  1. 重新加载VS代码窗口
  2. 检查 .vscode/mcp.json 语法
  3. 查看输出→ “MCP”通道错误

______________________________________________________________________

依赖项

包装版本用途
fastmcp^3.29.0MCP框架
zod^3.23.8模式验证
typescript^5.x类型安全
tsx^4.xTypeScript执行

______________________________________________________________________

许可证

MIT许可证-请参阅 许可证

______________________________________________________________________

贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 对以下内容进行更改 .mcp/src/
  4. 测试用 pnpm inspect
  5. 提交拉取请求

______________________________________________________________________

相关文件

目录标签

目录标签

教育技术TypeScriptClaude学习管理系统本地部署AI代理课程管理自动化工具

支持客户端

ClaudeVS Code

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

token

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

learnhouse-mcp-server@latest

工具数量(toolCount,工具数)

21

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiotoken部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP