我搭建了一个MCP服务器,可以让Claude读取我的研究数据。
简而言之——Shiori 是一款开源的 AI 学习应用(基于 React 和 Gemini)。我添加了一个模型上下文协议服务器,这样你就可以向 Claude Code 询问诸如“这周有哪些作业要交?”之类的问题,并从你的实际数据中获得真实的答案。
问题
我用Claude Code辅助学习,但它根本不知道我到底在学什么。每次都得把笔记、截止日期和成绩粘贴到聊天窗口里。
我希望克劳德事先了解我的研究背景。
诗织做什么
Shiori 是一款功能齐全的学习伴侣:作业、成绩、GPA 预测器、AI 记忆卡生成、间隔重复、AI 测验生成器、习惯追踪器、专注模式(番茄工作法)、排行榜,以及一个可以从 PDF/文本转储中提取所有作业的课程大纲导入器。
它完全在浏览器中运行——核心功能无需服务器。数据存储在本地存储中。您可以在shiori-v1.vercel.app上试用(点击“试用演示”,无需注册账号)。
MCP服务器
有趣的是:我添加了一个/mcp服务器,它提供了 6 个工具:
get_study_summary → overview of assignments, grades, streaks
get_assignments → list with due dates, status, priority
get_grades → GPA, course grades, trend
get_notes → your markdown notes
add_assignment → create assignment from Claude
get_flashcard_decks → deck names + mastery %
工作原理
您可以通过 Shiori(设置 → 导出数据)导出数据,该文件会被写入shiori-data.json。MCP 服务器读取该文件并将其提供给 Claude。
// mcp/index.js (simplified)
server.tool('get_assignments', async () => {
const data = JSON.parse(fs.readFileSync(DATA_PATH))
const upcoming = data.assignments
.filter(a => !a.completed)
.sort((a, b) => a.dueDate - b.dueDate)
.slice(0, 20)
return { content: [{ type: 'text', text: JSON.stringify(upcoming, null, 2) }] }
})
克劳德代码设置
添加.claude/mcp.json:
{
"mcpServers": {
"shiori": {
"command": "node",
"args": ["/path/to/Shiori-v1/mcp/index.js"],
"env": { "SHIORI_DATA_PATH": "/path/to/shiori-data.json" }
}
}
}
然后,在克劳德代码中:what's due this week?→ 克劳德打电话get_assignments来给你一个真实的答案。
克劳德桌面设置
同样的想法,添加到claude_desktop_config.json:
{
"mcpServers": {
"shiori": {
"command": "node",
"args": ["/absolute/path/to/mcp/index.js"]
}
}
}
为什么这很重要
MCP 模式对于个人工具来说非常强大。你的研究数据无需通过任何 API 传输——它保留在本地。Claude 直接读取文件。这才是真正意义上的“自带上下文”模型。
我计划添加更多工具:create_study_plan,,generate_quiz_from_notes。get_habit_streaks
试试看
- 在线演示:shiori-v1.vercel.app(无需账号)
- GitHub : github.com/kaorii-ako/Shiori-v1
- MCP 文档:
mcp/README.md在仓库中
感谢您的点赞——这是一个个人项目,GitHub 上的开源项目曝光度至关重要。欢迎提交 PR——目前已有针对该项目的初始 issue,并附有具体的文件和行号。
X记录空间