mdreview
Human-in-the-loop document review: an agent pushes a draft, a person comments, the agent revises.
Connector by ranawaqas-ai · GitHub account verified by the MCP Registry
Install
Works with Claude Code, VS Code, Cursor, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install connector/ranawaqas-ai-mdreview
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Remote endpoint
https://app.mdreview.space/mcpRemote (HTTP)
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 12 read · 6 write · 2 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- Nothing to install (hosted)
- Runs as
- Hosted (remote endpoint)
Tools by what they do 21
Read from the source code; the running server may list different tools.
Read 12 · Look things up without changing anything.
get_commentget_feedbackget_git_urlget_historyget_reviewget_sourceget_statuslist_assetslist_commentslist_reviewsping_workingserver_info
Write 6 · Create, change, send or run things.
attach_assetcreate_commentcreate_reviewreply_to_commentresolve_commentupdate_source
Delete 2 · Delete, drop, revoke or wipe things.
delete_commentdelete_review
Not yet classified 1 · We could not tell from the name and description.
hand_back
Network hosts it talks to 8
api.github.com· found in codeapp.mdreview.space· found in remote endpoint, install command, codeclaude.ai· found in codeclaude.com· found in codegithub.com· found in codemdreview.space· found in coderaw.githubusercontent.com· found in codestaging.mdreview.space· found in code
Files it touches
/usr/local/agent/dispatch.sh- Your home directory (~)
- Any path the agent passes to its tools
Tools (21)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
attach_assetAttach an image to a review so the viewer serves and renders it. Pass the file bytes as `content_b64` (base64) and `name` as the exact src the draft uses (for example "/assets/x.png" or "fig/y.svg"). Attach once; it survives every update_source revision. On the local stdio server you can pass `path` instead, a local file path the wrapper reads and encodes for you, which keeps large files out of the conversation. A remote server cannot read your files, so it needs `content_b64`. Returns the stored name and the served url.
create_commentAuthor a NEW comment on a document, anchored to a quoted phrase — use this to leave review feedback at a specific spot (you act as a reviewer). Pass `quoted_text` = the exact phrase from the source to anchor to (the viewer highlights it wherever it occurs) and `text` = your comment. Omit `quoted_text` for a document-level (unanchored) note. Attributed to `role` (default `agent`). After this, the reviewer (or you) can reply/resolve it like any thread.
create_reviewCreate a review from markdown; returns the id and the review and feedback urls. The viewer renders GFM, Mermaid diagrams (```mermaid fenced blocks), LaTeX math ($...$ inline, $$...$$ display), GFM footnotes, syntax-highlighted fenced code (label the language) and images (attach them with attach_asset). A flow, decision tree, state machine or architecture reads best as a ```mermaid diagram, since a plain code fence renders as monospace text. Optional project, session and source_path record where the draft came from, for the dashboard. kind="latex" (default "markdown") makes a research-paper rev…
delete_commentPermanently deletes a comment and its whole thread. This cannot be undone. Use it to remove a comment created by mistake; resolve_comment marks a real comment addressed and keeps it in the Resolved panel.
delete_reviewDelete a review and its data.
get_commentFetch one comment thread in full — every reply plus the status_history (the open -> resolved -> reopened transitions).
get_feedbackGet a review's human feedback: structured notes (now including a projection of the comments) plus the rendered markdown block. For the full threads use list_comments.
get_git_urlReturns a git clone URL for a review's history: one commit per past round plus a live tip commit, so git log, git diff and git blame work with standard tools. Only available when the server has git-tracked history enabled; otherwise the call returns 404. Read-only: no push, no branching.
get_historyList a review's past rounds; with `round`, fetch one past draft plus the feedback it received.
get_reviewGet one review's metadata.
get_sourceGet a review's current source — the draft you edit (markdown, or raw LaTeX for a kind=latex review). Read it before applying feedback when you didn't keep the draft in memory (e.g. a resumed session). By default the result is the raw document verbatim, exactly as before. Pass with_revision=true to instead get a JSON envelope {"source": ..., "revision": N}: the revision is the optimistic-concurrency token for update_source's expected_revision, issued atomically with this read (same response), so use THIS — never a separate get_status poll — as the token source when you plan a guarded save.
get_statusCheap poll: a review's source_updated, feedback_updated, and comments_updated timestamps. Watch comments_updated for new/changed comment threads. Also carries revision and can_edit (#288) — but for a guarded update_source take the revision from get_source(with_revision=true), the read that gave you the text, never from this poll. source_updated_by (#289) names who authored the current draft: "reviewer" means the human edited the document since your last write, so re-read the source before saving; "agent" (the default) means the last write was yours.
hand_backHand the turn back to the reviewer. Sets turn=reviewer on the review, so the viewer's banner reads 'Agent updated the draft, your turn' (state=done, the default) or 'Agent needs you' (state=blocked, used when you replied with a question instead of finishing); `message` is shown in that banner. Use it after update_source and the replies or resolves on the comments you addressed, or when blocked; for blocked, pair it with a comment reply that asks the question. Reopening a comment is a reviewer action in the viewer, not an agent action. Not available on a kind=latex review, which has no turn bat…
list_assetsList a review's attached assets (name, stored name, served url, bytes, ctype).
list_commentsList comments on a document, filtered by `status`: open (default), resolved, reopened or all. Reply to a comment to discuss it; resolve it once it is addressed.
Show 6 more tools
list_reviewsList every review with its status (awaiting/feedback/resolved), note counts, and revision.
ping_workingClaim or renew your lease on a review while you hold the turn. Find work by polling list_reviews / get_status for reviews you own with turn=='agent'; on one, call ping_working right away and then periodically while you work, so the viewer shows 'Agent is working…' instead of a stale 'Agent may have stopped' hint. `owner` is YOUR opaque session id; a review already leased by a DIFFERENT owner returns an error (HTTP 409) — back off and skip it (another agent holds it). Does NOT change whose turn it is. Not available on a kind=latex review: there is no turn baton in latex mode.
reply_to_commentAdd a reply to a comment WITHOUT resolving it. Use this when a comment is a question or needs discussion, or to respond before you decide — resolve only once the issue is actually addressed.
resolve_commentMark a comment resolved once you've actually addressed it. `justification` is OPTIONAL — provide a short note (appended to the thread, attributed to you, the agent) to explain what you did, or omit to resolve silently; a clear note is recommended because the reviewer can REOPEN the thread, so it reduces back-and-forth. On resolve the comment leaves the active document and moves to the Resolved panel. You never reopen — after a reviewer reopens, you'll see the comment again via list_comments (status reopened/open) and can reply or resolve again.
server_infoReports this running MCP server's name, version, protocol_version, tools_hash, tool_count and tool_names. It describes only the running process and makes no call to the service. A human or CI compares tools_hash to `python3 mcp_server.py --print-version` on disk; if they differ, the running process is stale and the MCP client should be reconnected to load the new code. An MCP-only agent has no on-disk value to compare with, so it cannot make that check itself.
update_sourcePush a revised draft (applied edits). Snapshots a history round and live-reloads the human's page. A markdown review is rendered as in create_review (Mermaid, math, highlighted code). For a kind=latex review the draft is raw LaTeX (a single .tex document) and the server recompiles it to PDF on each push. The human can edit the document too, so save with a guard: read via get_source(with_revision=true) and pass that revision as expected_revision. A stale revision fails with HTTP 409 and writes nothing. On a 409, re-read the source, re-apply your change onto the new text and save with the fresh …
Signals
- Stars
- 2
- Forks
- 0
- Open issues
- 12
- Last commit
- Sep 29, 2026 (29 days ago)
- Last release
- Sep 29, 2026 (29 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.ranawaqas-ai/mdreview- Version
- 0.7.0
- Auth
- Auth not stated
- License
- Apache-2.0
- Repository
- github.com/ranawaqas-ai/mdreview-service
- Website
- mdreview.space
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
Cite this page
mdreview MCP server. Agent Mart. https://agentmart.dev/connectors/ranawaqas-ai-mdreview (last updated 2026-10-24)