mdreview

io.github.ranawaqas-ai由 GitHub 帳號 ranawaqas-ai 發布v0.7.0更新於 Oct 28, 2026

Human-in-the-loop document review: an agent pushes a draft, a person comments, the agent revises.

已驗證Streamable HTTP可網頁執行效率與工作流檔案與儲存

概覽

AI 產生的概覽

讓代理提交 Markdown 草稿供人工審閱、收集審閱者的行內註解,並據此修訂文件直到註解被處理。

可以做什麼
  • 以 Markdown 草稿和標題建立審閱,取得可交給他人開啟的審閱連結
  • 查詢審閱狀態,讀取審閱者對選取文字或段落留下的註解
  • 更新文件來源內容,讓審閱頁面即時重新載入並把已處理的註解劃掉
  • 列出並管理多個並行審閱,每個審閱以 id 相互隔離
適用情境
適合代理撰寫 Markdown 文件、規格、說明或論文後,需要人工先註解再由代理修訂的情況。也適合希望把回饋收集在瀏覽器頁面、而非貼回對話中的審閱流程。
執行需求
可使用 app.mdreview.space 的遠端端點,以電子郵件一次性連結的 OAuth 登入;也可在 localhost 自行架設 Docker 實例,無需帳號。託管方式下 Claude Code 外掛或安裝腳本還需在帳戶頁產生權杖,安裝腳本需要 claude CLI 與 python3。自行架設需要 Docker 與資料磁碟區。
安裝前請注意
託管服務會保存帳戶電子郵件、審閱內容與註解;自行架設的實例資料留在本機。自行架設的服務沒有身分驗證,且儀表板會列出所有審閱,對外開放時應置於具驗證的反向代理之後。代理會寫入並覆寫審閱來源內容,審閱連結也會分享給其他人。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 mdreview,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.ranawaqas-ai%2Fmdreview/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "mdreview": {
      "type": "http",
      "url": "https://app.mdreview.space/mcp"
    }
  }
}

README

mdreview-service

A containerized markdown review microservice. An agent POSTs markdown, gets back a review URL for a human, and polls feedback over HTTP. One service handles many reviews, isolated by id. No per-process spawning, no shared filesystem with the agent.

Landing page: mdreview.space (served from GitHub Pages via .github/workflows/pages.yml; source in web/site/).

Docs: mdreview.space/docs: onboarding, how-to, and troubleshooting, rendered through the service's own markdown renderer (source in web/site/docs/).

Getting started: hosted or self-hosted

Two ways to use mdreview; pick one.

1. Hosted (online). A managed instance runs at mdreview.space (app at app.mdreview.space). Sign in with any email address (you get a one-time link; there is no invite list). Three ways to connect your agent.

claude.ai custom connector (no token). In claude.ai open Settings, Connectors, Add custom connector and enter:

text
https://app.mdreview.space/mcp

Claude opens the mdreview sign-in; enter your email, follow the one-time link and approve the connection on the consent page. It works in claude.ai on the web, Desktop and mobile. Revoke it any time on the Account page.

Claude Code plugin. Inside Claude Code run:

text
/plugin marketplace add ranawaqas-ai/mdreview-service/plugin install mdreview@mdreview

It prompts for a token (mint one on the Account page after signing in) and keeps it in your keychain. Plugin updates arrive through /plugin update; the wrapper does not update itself inside a plugin.

Installer. On the machine running your agent (needs the claude CLI + python3), with a token from the Account page:

sh
curl -fsSL https://mdreview.space/install.sh | MDREVIEW_TOKEN=mdr_xxx sh

That fetches the stdlib-only MCP wrapper into ~/.mdreview and registers it with Claude Code at user scope; quit and reopen Claude Code and you are connected. Omit MDREVIEW_TOKEN=… to be prompted for it instead. (To wire it up by hand, or for a non-Claude-Code MCP client, see MCP server.)

2. Self-hosted (local). Clone and run it yourself (no account, no auth, on localhost). See Run, then point your agent's MCP MDREVIEW_BASE at http://localhost:8137. This is the path if you want everything on your own machine.

Stdlib Python only (tiny image, no pip installs). Self-contained: the marked, Mermaid, KaTeX, highlight.js, and footnote renderers are vendored and served from /static, so the browser needs no CDN. The viewer renders Markdown the way a Jekyll/MathJax site does: LaTeX math (inline $…$ / \(…\), display $$…$$ / \[…\]; prose/currency $ left literal), Mermaid diagrams, GFM footnotes ([^id] refs → an ordered back-ref section), and syntax-highlighted fenced code (a dual-scheme theme that reads on light and dark panes).

Run

bash
make up        # serves on http://localhost:8137# or:docker build -f infra/Dockerfile -t mdreview-service .docker run -d -p 8137:8080 -v mdreview-data:/data mdreview-service

make up (compose) is the canonical local-docker path; it serves on 8137 and reuses the named mdreview-data volume, so a rebuild/recreate preserves your reviews.

Health check: curl localhost:8137/healthz -> {"ok":true}.

Feedback and source persist in the /data volume across restarts.

Migrating a legacy hand-run container

If you have an older instance started by hand (docker run on a nonstandard port such as :8139), move it onto the canonical compose flow without losing data: the mdreview-data volume is reused as-is:

bash
docker rm -f mdreview     # stop the hand-run container (the mdreview-data volume survives)make up                   # compose recreates it on 8137, mounting the same mdreview-data volume

Because the compose volume is now declared with an explicit name: mdreview-data (not a project-prefixed infra_mdreview-data), make up mounts the very volume your old container owned. Confirm with curl localhost:8137/healthz and check your reviews are still listed.

The flow

  1. Agent: POST /api/reviews {markdown, title} -> {id, review_url, feedback_url, ...}
  2. Agent hands review_url to a human.
  3. Human opens it, selects text or clicks a paragraph number, types notes (auto-saved).
  4. Agent polls GET /api/reviews/{id}/status then GET /api/reviews/{id}/feedback.
  5. Agent applies edits and PUT /api/reviews/{id}/source {markdown} -> the human's page live-reloads and addressed notes are struck through. Repeat as needed.

Config (env)

VarDefaultMeaning
PORT8080in-container listen port
MDREVIEW_DATA/datastorage dir (mount a volume)
MDREVIEW_PUBLIC_BASEemptyif set (e.g. https://review.example.com), review_url/feedback_url use it; otherwise the request Host header is used
MDREVIEW_ENABLE_LATEXoffopt-in: enable the LaTeX paper review mode (see below). Requires the mdreview-service-latex image (Tectonic); the default slim image has no LaTeX toolchain

Operator guides

The runbooks that used to live here, moved out so this page stays readable:

GuideWhat it covers
HTTP APIEvery route, request and response shape
MCP serverRunning the stdio server, smoke tests
LaTeX paper reviewEnabling it, templates, the compile loop, the image runbook
WatcherThe agent watcher, trusted-base mode, containerized runs
Design system§01-§10, the UI rules that tickets cite
Autonomous runsHow agents ship changes here

Notes

  • Multi-tenant by id, so concurrent reviews never collide. No auth (intended for trusted / local networks); put it behind a reverse proxy with auth if exposing it.
  • The dashboard (/) and GET /api/reviews list across all reviews: fine for the trusted-network posture, but a reason to keep auth in front when exposed.
  • The MCP wrapper above was designed in docs/future-mcp.md, kept as its design/decision record.
  • For agent integration details, see CLAUDE.md.
  • A non-Docker, per-file CLI version lives in ../mdreview (writes feedback to a file next to the source). This service is the networked, multi-session form.

License

Apache License 2.0.

Privacy Policy

The hosted service at app.mdreview.space stores your account email, your reviews and comments, and sign-in security records. It uses no analytics or tracking cookies, does not sell your data and does not use it to train AI models. The full policy, including retention, deletion and third-party services, is at https://mdreview.space/privacy/. Questions go to [email protected]. A self-hosted instance keeps all data on your machine.

來源:README.md,提交 2a3df6f

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

2
  1. v0.7.0最新Sep 29, 2026
  2. v0.6.0Sep 25, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分