Skip to content
Conduit

mcp server

loupe

A document- and site-review tool for humans working with AI agents.

loupe-ac/loupecommunitylistedunreviewed

Set up

Runs on your computer. Pick your agent and operating system.

This project does not publish an install method we can turn into a config. Follow the README instead.

README

synced Oct 22, 2026

Loupe

Loupe is a document- and live-review tool for humans working with AI agents.

loupe.ac — the hosted instance · Documentation — install, connect an agent, operate it

An agent (or a person) submits a Markdown document; humans review it inline — selecting text, leaving comments, and either approving it or requesting changes. A Model Context Protocol (MCP) endpoint lets AI coding agents create documents and hand back a review URL, so a long-form plan or spec gets considered human feedback instead of scrolling past in a terminal. A companion live-review widget brings the same select-and-comment flow to live web pages.

Built with Symfony, Tailwind CSS and Symfony UX (Stimulus + Turbo).

Features

  • Document review — submit Markdown, review it rendered, comment on selected passages, approve or request changes, and revise across versions.
  • MCP endpoint — an agent signs in through OAuth and calls document_create / document_revise, receiving a shareable review URL.
  • Live review — an embeddable widget for leaving review comments on any web page, streamed back to the reviewer over Mercure.
  • Command-line bridge (preview, unreleased) — a Go binary (cli/) that watches your board and runs a non-interactive Claude Code worker for every card moved to next.
  • Scoped OAuth access — separate MCP, agent and site-review scopes. An agent signs in through your browser, and nobody copies a credential by hand.

Try it

One container holding the app, its worker and Postgres:

docker run --rm -p 127.0.0.1:8080:80 ghcr.io/loupe-ac/loupe:demo

Open http://localhost:8080 and log in with admin@example.com / loupe-admin. Bind to 127.0.0.1 as above — that password is published on this page.

The image is for evaluating Loupe, not running it: its APP_SECRET is a committed constant, nothing terminates TLS, and mail is discarded. See Demo for the volume and port options.

Develop on it

just up                # start nginx, php-fpm, postgres
just composer install  # runs inside the php-fpm container
just migrate-run       # set up the database
just exec bin/console app:dev:seed   # log in as dev@loupe.test / password

just up publishes no host port — it expects a reverse proxy on an external Docker network named traefik, and fails rather than degrades without one. examples/ holds a working proxy and a plain-HTTP alternative; Reverse proxy explains the choice.

Documentation

The full documentation is published at loupe.ac/docs. It is built from docs/ in this repository, so the same pages are readable here on GitHub:

Contributing

See CONTRIBUTING and Development. Please report security issues privately — see SECURITY.

License

Copyright (C) 2026 Geoffrey Bachelet.

Licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later). If you run a modified version of Loupe as a network service, the AGPL requires you to make your source available to its users.

Every page carries a "Source code" link in the footer to satisfy that. It points wherever APP_SOURCE_URL says, defaulting to this repository — correct for an unmodified instance, and wrong for a modified one. If you change the code, set APP_SOURCE_URL to the repository that holds your version.

↑↓ navigate openesc close