AI代理连接服务

Practera MCP Server是一个为AI代理提供直接访问Practera的GraphQL API和本地项目简介数据的服务,支持学习程序编写、评估管理、作业提交、评审和测试套件运行。

  • by intersective
  • TypeScript
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 intersective/practera-mcp-server

使用说明

Practera MCP服务器

一个MCP(模型上下文协议)服务器,为AI代理提供对Practera的GraphQL API和本地项目简要数据的直接访问。连接Cursor、Claude Desktop或任何MCP客户端,以编写学习程序、管理评估、作为学习者提交工作、进行审查,并在Practera monorepo中运行测试套件。

为什么选择Practera MCP?

使用此MCP服务器,代理可以:

  • 分析和重组不同受众或年级的现有项目
  • 生成评估蓝图并自动创建问题
  • 机构间导入/导出程序或LMS数据格式
  • 提交评估并管理审查工作流程
  • 按技能搜索5400+个体验式学习项目简报库
  • 直接从Cursor跨所有Practera存储库运行测试套件

快速启动(光标--本地开发)

  1. 将此仓库与其他Practera仓库一起克隆。
  2. 安装依赖项: npm install
  3. 添加 .cursor/mcp.json 到任何Practera仓库(请参阅 光标配置).
  4. 重新加载光标MCP面板 practera 服务器将会出现。

不需要单独的服务器进程。游标通过stdio自动生成MCP服务器。

运输

stdio(光标本地--推荐)

游标将服务器作为子进程生成。没有单独 npm run dev 需要。

# For manual testing / debugging
npm run dev:stdio

SSE(远程/共享)

具有服务器发送事件的HTTP服务器——当多个客户端共享一个实例时使用。

npm run dev        # → http://localhost:3000/sse

将MCP客户端连接到 http://localhost:3000/sse.

光标配置

创建 .cursor/mcp.json 在您的仓库中(或添加到 ~/.cursor/mcp.json 对于所有工作区):

{
  "mcpServers": {
    "practera": {
      "command": "node",
      "args": [
        "/absolute/path/to/practera-mcp-server/dist/stdio.js"
      ],
      "env": {
        "PRACTERA_REGION": "local",
        "AUTH_EMAIL": "your@email.com",
        "GRAPHQL_URL": "http://localhost:8000",
        "WORKSPACE_ROOT": "/absolute/path/to/practera-workspace"
      }
    }
  }
}

跑 npm run build 在 practera-mcp-server 在任何源代码更改后进行重建 dist/stdio.js.

对于生产区域,省略 AUTH_EMAIL/GRAPHQL_URL 并通过 apikey 在每次工具调用中。

认证

API密钥(生产)

通过 apikey 在每次工具调用中。密钥将作为 apikey GraphQL API的HTTP标头。

devLogin(仅限本地/舞台)

省略 apikey 并设置 AUTH_EMAIL (或通行证 email 每次工具调用)。服务器调用 devLogin GraphQL变异以自动获得JWT。仅适用于 region=local 或 region=stage.

可用工具

通用/只读

工具 说明
mcp_practera_get_project 完整的项目树:里程碑、活动、任务
mcp_practera_get_assessment 评估细节,包括问题和答案选择
mcp_practera_search_project_briefs 按技能关键字搜索本地简要目录

作者(需要管理员/协调员角色)

工具 GraphQL操作 说明
create_experience createExperience 在机构内创建新程序
create_milestone createMilestone 为体验添加里程碑
create_activity createActivity 将活动添加到里程碑
create_assessment createAssessment 对活动进行评估
add_question createAssessmentQuestion 在评估中添加问题
add_task_to_activity addTaskToActivity 将任务(资源/链接)添加到活动中
enroll_user enrollUser 为用户注册体验
import_experience importExperienceData 从JSON导出批量导入体验内容
export_experience exportExperience 将体验结构导出为JSON

学生(学习者)

工具 GraphQL操作 说明
list_experiences experiences 列出当前用户的所有体验
get_milestones project.milestones 获取项目的里程碑和活动
get_tasks tasks(activityId:) 获取活动任务
submit_assessment submitAssessment 提交评估
get_feedback submission(id:) 获取提交详细信息,包括审核反馈

审稿人

工具 GraphQL操作 说明
list_pending_reviews reviews(status: "pending") 列出等待审查的评估
submit_review submitReview 提交完整的评论

测试

工具 说明
run_tests 在任何Practera仓库中运行测试套件——shell输出到npm/cargo/docker

run_tests 参数

参数 必填 说明
repo 是 哪个回购: core-graphql-api, login-api, app-v2, practera, practera-mcp-server, practera-devops-center
suite 是 哪个套房(见下表)
pattern 否 测试文件/名称筛选器(作为传递 --testPathPattern 对于Jest目标)
workspaceRoot 否 工作区根目录的绝对路径。回落到 WORKSPACE_ROOT 有人。

可用测试套件

Repo 套件 命令
core-graphql-api unit npm test (杰斯特,有报道)
core-graphql-api integration npm run test:integration
core-graphql-api parity npm run test:parity
login-api unit npx vitest run tests/unit
login-api integration npx vitest run tests/integration
login-api full npm run test:coverage
app-v2 unit npm test -- --watch=false
practera phpunit docker exec practera-core ./vendor/bin/phpunit
practera-mcp-server typecheck npm run typecheck
practera-devops-center cargo cargo test

MCP资源

资源URI 描述
practera://project/current 当前项目数据(GraphQL)
practera://assessments/{assessmentId} ID评估
practera://briefs/{briefId} 本地目录中的项目简介

MCP提示

提示 目的
project-analysis 分析项目结构和学习设计质量
assessment-analysis 评估评估结构和问题质量
skill-brief-selection 从目录中查找与技能相匹配的内裤
complex-brief-finder 根据技能、复杂性和时间框架匹配简报

环境变量

变量 描述
PORT HTTP端口(默认3000 dev/80生产)
NODE_ENV 环境(development, production)
GRAPHQL_URL 覆盖本地GraphQL端点
PRACTERA_REGION 默认区域: local, stage, usa, aus, euk
AUTH_EMAIL devLogin的默认电子邮件(本地/阶段)
WORKSPACE_ROOT 工作区根目录的绝对路径--由使用 run_tests

GraphQL区域

区域 端点
local http://localhost:8000 (或 GRAPHQL_URL)
stage https://core-graphql-api.p2-stage.practera.com/
usa https://core-graphql-api.usa.practera.com/
aus https://core-graphql-api.aus.practera.com/
euk https://core-graphql-api.euk.practera.com/

构建和部署

# Build
npm run build       # compiles TS + copies src/data → dist/

# Run SSE server (compiled)
npm start

# Run stdio (compiled — use in production Cursor config)
npm run start:stdio

AWS应用程序运行程序

这 apprunner.yaml 配置在端口80上运行SSE服务器的App Runner服务。

AWS Lambda(已过时)

serverless.yml 存在,但Lambda处理程序导出当前未连接。使用App Runner进行生产部署。

路线图

  • [x] GraphQL读取权限(项目、评估)
  • [x] 作者CRUD工具(创建体验、里程碑、活动、评估、问题、任务、注册)
  • [x] 导入/导出JSON体验
  • [x] 学生工具(列表、提交、反馈)
  • [x] 审阅工具(列表待定,提交审阅)
  • [x] 项目简报搜索(5400+份简报,基于技能)
  • [x] 用于Cursor集成的stdio传输
  • [x] 用于跨仓库测试执行的run_tests工具
  • []度量API(从生成LLM可读报告 calculateMetrics)
  • []OAuth 2.1(目前已搭建,未激活)
  • []通过MCP资源的线程身份验证上下文
  • [ ] assign_reviewer, handle_review 审阅者工作流管理工具
  • []媒体资产生成

许可证

麻省理工学院