一个自定义的MCP(模型上下文协议)文件服务器连接器,提供多个Claude代码会话——、、、一个共享的沙盒笔记工作区,每个角色对应不同的工具......
概览
一个自定义的MCP(模型上下文协议)文件服务器连接器,提供多个Claude代码会话——、、、一个共享的沙盒笔记工作区,每个角色通过其承载令牌对应不同的工具集。为计算机科学期中考试第一部分项目开发。 - REPORT.md — 书面摘要:设计、威胁列表、两次演示实际显示的内容。- DEMO_SCRIPT.MD — 5分钟实时演示计划,包含网络故障备份。- Docs/Design-Notes.MD — 每项设计决策及其原因。- Docs/Security-Notes.MD — 被攻击的内容和被攻击的因素。- 文档/文字记录/run1/, run2/ — 两次演示运行的真实会话文字记录。 这个 README 是用 Windows 上全新克隆的版本运行的。 Workspace/ 被 git 忽略,因为它是生成状态,所以演示结果会分别提交在 docs/demo-output/ 下——请查看该文件夹的 README,了解三个视图(转录、日志、最终文件)之间的关系。
概述(AI 翻译)
一个自定义的MCP(模型上下文协议)文件服务器连接器,提供多个Claude Code会话——构建者、写作者、审计者——一个共享的沙盒笔记工作区,每个角色通过其承载令牌对应不同的工具集。为计算机科学期中考试第一部分项目打造。
- [
REPORT.md——书面摘要:设计、威胁列表,以及两次演示实际展示的内容。 DEMO_SCRIPT.md— 5分钟现场演示计划,包含网络故障后备用方案。docs/design-notes.md——每一个设计决策及其原因。docs/security-notes.md——哪些被攻击,哪些能抵抗。docs/transcripts/run1/、run2/——两次演示运行的真实会话记录。
这个 README 是用 Windows 上全新克隆的版本运行的。
服从地图
| 交付物 | 它所在的位置 |
|---|---|
| 仓库 + README | 这个仓库,这个文件 |
| 多步任务的记录 | docs/transcripts/run2/(和run1/)——每次运行三次会话,构建者→写者→审计员 |
| PLAN_LOG / 检查点证据 | docs/demo-output/run2/PLAN_LOG.md、CHECKPOINTS.md(加上PROJECT_STATE.md、DECISIONS.md、AGENT_GUIDE.md);run1/作对比 |
本页由 AI 翻译,技术细节请以原文为准。
README
以下为原文 README 节选,完整内容请查看原文。
notes-hub
A custom MCP (Model Context Protocol) file-server connector that gives several Claude Code sessions — builder, writer, auditor — one shared, sandboxed note-taking workspace, each role scoped to a different set of tools by its own bearer token. Built for a CS Midterms Pt. 1 project.
REPORT.md— the written summary: design, threat list, what the two demo runs actually showed.DEMO_SCRIPT.md— 5-minute live demo plan with a network-failure fallback.docs/design-notes.md— every design decision and why.docs/security-notes.md— what was attacked and what held.docs/transcripts/run1/,run2/— real session transcripts from both demo runs.
This README gets the whole thing running from a fresh clone on Windows.
Submission map
| Deliverable | Where it is |
|---|---|
| Repository + README | this repo, this file |
| Transcript of a multi-step task | docs/transcripts/run2/ (and run1/) — three sessions per run, builder → writer → auditor |
| PLAN_LOG / CHECKPOINTS evidence | docs/demo-output/run2/PLAN_LOG.md, CHECKPOINTS.md (plus PROJECT_STATE.md, DECISIONS.md, AGENT_GUIDE.md); run1/ for comparison |
| Tool-call logs (efficiency evidence) | docs/demo-output/logs/tool_calls_run1.jsonl, tool_calls_run2.jsonl |
| Report: stack, tool design, security tradeoffs | REPORT.md |
| Report appendix: claim-by-claim verification, full limitations, bug and threat detail | docs/report-appendix.md |
| Screenshots: role tool lists, hardening, token-length check, tests, health checks | docs/screenshots/ (embedded in REPORT.md and the appendix) |
| 5-minute live demo plan | DEMO_SCRIPT.md |
| Design decisions, with reasoning | docs/design-notes.md |
| Attack attempts and results | docs/security-notes.md |
| Day-to-day usage after the course | docs/USING_NOTES_HUB.md |
workspace/ is git-ignored because it’s generated state, so the demo results are committed separately under docs/demo-output/ — see that folder’s own README for how the three views (transcripts, logs, final files) relate.
Quick verify in 10 minutes
For a marker or anyone who just wants to confirm this works. Needs only Python and git — no ngrok account, no pm2, no Claude Code, and none of my credentials. Every command below was run from a fresh clone of this repo before being written here.
# 1. Clone, create the venv, install (~2 min)
git clone https://github.com/nikowru/mcp.git notes-hub
cd notes-hub
py -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
# 2. Run the test suite - no .env needed, the tests supply their own tokens
.venv\Scripts\python.exe -m pytest
# expect: 77 passed (on macOS/Linux: 74 passed, 3 skipped - see below)
# 3. Make a throwaway .env with three random tokens
copy .env.example .env
.venv\Scripts\python.exe -c "import secrets; print(secrets.token_urlsafe(32))"
# run that three times; paste one value into each of NOTES_TOKEN_BUILDER,
安装
npx -y @modelcontextprotocol/inspector --cli http://127.0.0.1:8000/mcp --transport http 