使用说明
Practera MCP服务器
一个MCP(模型上下文协议)服务器,为AI代理提供对Practera的GraphQL API和本地项目简要数据的直接访问。连接Cursor、Claude Desktop或任何MCP客户端,以编写学习程序、管理评估、作为学习者提交工作、进行审查,并在Practera monorepo中运行测试套件。
为什么选择Practera MCP?
使用此MCP服务器,代理可以:
- 分析和重组不同受众或年级的现有项目
- 生成评估蓝图并自动创建问题
- 机构间导入/导出程序或LMS数据格式
- 提交评估并管理审查工作流程
- 按技能搜索5400+个体验式学习项目简报库
- 直接从Cursor跨所有Practera存储库运行测试套件
快速启动(光标--本地开发)
- 将此仓库与其他Practera仓库一起克隆。
- 安装依赖项:
npm install - 添加
.cursor/mcp.json到任何Practera仓库(请参阅 光标配置). - 重新加载光标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审阅者工作流管理工具 - []媒体资产生成
许可证
麻省理工学院