xEdit MCP server
2026년 11월 10일 커밋내장된 MCP server를 통해 AI 클라이언트가 노트를 검색, 정리 및 편집할 수 있는 오픈 소스 Markdown 에디터입니다.
다른 이름 rotbit/xedit
- 스타
- 186
- Tools
- —
- 다운로드, 30일
- —
- 최신 버전
- —
- 마지막 커밋
- 2026년 11월 10일
- 라이선스
- MIT
xEdit MCP란?
xEdit은(는) MCP server입니다. 내장된 MCP server를 통해 AI 클라이언트가 노트를 검색, 정리 및 편집할 수 있는 오픈 소스 Markdown 에디터입니다.
프로젝트 README에서 생성된 요약
xEdit MCP server 정보
xedit는 작가와 연구자가 AI 인터페이스를 통해 Markdown 노트를 관리하고 편집할 수 있도록 지원합니다. 이 도구는 Notion이나 Obsidian을 대체할 수 있는 가벼운 대안으로, 브라우저 또는 Mac 애플리케이션에서 작동하는 라이브 프리뷰 에디터를 제공합니다. 사용자는 File System Access API를 사용하여 로컬 폴더에 파일을 저장하거나, 브라우저 스토리지에 보관하거나, 계정 로그인을 통해 클라우드 동기화를 사용할 수 있습니다.
개발자와 작가는 내장된 MCP server를 사용하여 Claude Desktop 또는 Cursor와 같은 AI 클라이언트를 자신의 노트에 연결할 수 있습니다. OAuth 2.1을 통해 권한을 승인하면, 이러한 클라이언트는 문서와 이미지를 목록화, 검색, 생성 및 편집할 수 있습니다. 로컬 폴더 모드는 데이터를 디스크에 엄격하게 보관하는 반면, 클라우드 동기화는 버전 기록, 이미지 호스팅 및 MCP server 사용 기능을 제공합니다. 이 server는 복잡한 데이터베이스 기능이나 커뮤니티 플러그인 생태계 없이 단순하고 깔끔한 Markdown 워크플로우가 필요한 사용자를 위해 설계되었습니다.
활용 사례
- 1AI 기반 노트 관리AI 클라이언트에게 Markdown 문서를 직접 찾거나, 정리하거나, 수정하도록 요청합니다.
- 2서식 있는 콘텐츠 발행수식이나 코드와 같은 복잡한 서식을 유지하면서 WeChat Official Accounts 또는 Zhihu용 기사를 준비합니다.
- 3자동 작업 추적날짜 기반 명령을 사용하여 할 일을 중앙 집중식 일일 보기로 자동 집계합니다.
프로젝트의 README를 바탕으로 작성되었습니다. 모든 활용 사례는 해당 내용의 인용문과 대조하여 확인합니다.
자동 검사
2026년 11월 13일에 실행됨전체 보고서 →아직 인증되지 않았습니다. 서버는 80점 이상의 점수, 심각한 결함 없음, 그리고 검사에 충분한 데이터를 갖추어야 합니다. 검사 방식 · 점수를 높이기 위해 수정할 항목
- 소스 저장소 연결 및 접근 가능rotbit/xedit is public and reachablegithub.com/rotbit/xedit ↗통과
- 패키지가 이 저장소를 소스로 명시검사되지 않음
- 빌드 출처(Sigstore 증명)검사되지 않음
- 오픈 소스 라이선스 (OSI)MITspdx.org/licenses/MIT.html ↗통과
- 최근 1년 내 커밋 또는 릴리스Last commit or release 2026-11-10github.com/rotbit/xedit ↗통과
- OpenSSF Scorecard검사되지 않음
- 패키지 이름이 인기 패키지와 유사하지 않음검사되지 않음
- 패키지 및 해당 종속성에 중요한 보안 권고 없음검사되지 않음
- 모델에 대한 숨겨진 지침 없음0 tool descriptions and the README read; no override phrases, credential paths or hidden characters통과
- 파괴적인 도구에 라벨 표시됨검사되지 않음
- 원격 엔드포인트가 MCP 핸드셰이크에 응답검사되지 않음
README
GitHub에서 보기xEdit
A free, open-source Markdown editor and lightweight alternative to Notion and Obsidian for writing and personal notes — local files, a comfortable editor, and AI access over MCP.
Try it online · 中文介绍 · Deployment guide · MCP setup · Feishu import
xEdit is a live-preview Markdown editor that runs in the browser (plus a Mac app). Notes are plain Markdown, linked with [[wiki links]], organized with slash commands and drag-and-drop folders, and to-dos written anywhere roll up into a Today view. Keep notes in the browser, in a local folder of .md files, or sign in for cloud sync — and let AI clients like Claude read and write your notes through the built-in MCP server.
No account required: open xedit.me and start writing.
Who it's for
- People who write articles, reports and reading notes in Markdown and want live preview without building a whole note system
- Anyone who wants free cloud sync and an instant web app — or no account at all, with files in their own folder
- People who want Claude and other MCP clients to search, organize and edit their notes
- Writers who publish to WeChat Official Accounts or Zhihu and want formatting that survives the paste
If you need databases, board views or real-time team editing, Notion is the better tool. If you rely on a backlinks panel, graph view or community plugins, stick with Obsidian. See the comparison below.
Where your notes live
| Mode | When | Where the data is | Synced to the cloud? |
|---|---|---|---|
| Browser storage | Default when not signed in | This browser on this device; clearing site data deletes it | Uploaded to your account automatically once you sign in |
| Local Markdown folder | Not signed in, Chrome / Edge (File System Access API) | A folder on your disk, one .md file per note |
No — never uploaded, even after you sign in; back it up your own way |
| Cloud sync | Signed in | The server is the source of truth; each device keeps an offline mirror | Yes — the same notes on the web, the Mac app and every device |
Version history, image uploads, share links and MCP access work on cloud notes only.
What's free
xedit.me has no paid plan today, and you can self-host the whole thing under the MIT license.
- Without an account: every editing feature, browser or local-folder storage, export to Markdown / HTML / PDF / PNG / Word, and copy to WeChat / Zhihu
- With a free account: cloud sync of notes, folders, version history and images; share links with reader comments; MCP access. No device limit
- Limits: images up to 10 MB and videos up to 100 MB each; a per-account media storage quota (uploads stop when it's full, existing files stay); the latest 100 versions are kept per note
- MCP: connecting is free. Your AI client's own subscription or API usage is between you and that provider
- AI review (beta): enabled per account with a daily cap. The model runs on the site's keys, so users don't bring their own; self-hosters configure providers in
/admin
Features
Writing
- Two editing modes: Obsidian-style Live Preview (headings, bold, code and images render in place; the line under the cursor shows its source) or a side-by-side split view — switch any time
- Slash commands for headings, callouts, tables, to-dos, code blocks, images and video; search in Chinese, pinyin or English
- Obsidian-style callouts (
> [!tip]), YAML frontmatter, footnotes, heading folding,$inline$/$$block$$math (MathJax) and syntax-highlighted code
Organizing
[[Wiki links]]: autocomplete by title,[[title|alias]], and renaming a note updates every link to it (there's no backlinks panel or graph view yet)- To-dos and Today:
- [ ]with@tomorrow,@10/20, a date range or@dailyrolls up into a Today view; checking an item there edits the source line - Nested folders with drag-and-drop, global search (⌘O), context menus and a recoverable trash
- Feishu Wiki import: import a whole wiki as documents, with its tree mapped to folders and images re-hosted → Guide
Sync and sharing
- Cloud sync and offline: keep writing offline — changes land in a local mirror and sync once you're back online
- Version history: automatic snapshots plus manual saves, line-by-line diffs and one-click rollback (the current draft is backed up first)
- Share links: readers need no account and can comment on selected text, images or video; you reply on the shared page
- Export: Markdown / standalone HTML / print-ready PDF / full-length PNG / Word (keeps headings, lists, tables and images; imports into Feishu)
- Image hosting: paste or drop images and video to upload them to Alibaba Cloud OSS, managed in a media library
- Mac app: same account and data, persistent login, native menus and shortcuts, offline shell (macOS 12+, Apple Silicon; the installer isn't code-signed yet)
AI
- MCP server: built-in, with self-hosted OAuth 2.1 (dynamic client registration + PKCE), so Claude Desktop, Cursor and other clients can list, search, create and edit your documents and images once authorized; revoke access any time in Settings → Setup guide
- AI review (beta): reads the whole piece and flags awkward sentences, wordiness, word choice, logic gaps and WeChat Official Account compliance risks, with each suggestion pinned to its sentence; accept or ignore in one click
Use case: WeChat Official Accounts and Zhihu
The WeChat editor strips <style>, class and pseudo-elements, which is why most formatting falls apart on paste. xEdit inlines every theme rule onto each tag at copy time, so you can ⌘V straight into WeChat or Zhihu and keep headings, blockquotes, code blocks, tables and math intact.
- 13 layout themes (gallery), 6 code color schemes with an optional Mac-style window frame, and custom CSS layered on top
- WeChat mode inlines all CSS and preserves code indentation with
/<br>; Zhihu mode converts math to images and leaves code highlighting to Zhihu - Links to footnotes: external links become "text[n]" with a reference list, since WeChat articles don't allow them
- Math is rendered to SVG before copying, so it survives WeChat's lack of MathML support
xEdit vs Obsidian and Notion
xEdit is a lightweight writing and notes tool, not a full replacement for either. This reflects what ships today:
| xEdit | Obsidian | Notion | |
|---|---|---|---|
| Price / source | Free, MIT open source | Free for personal use, closed source; Sync is paid | Free plan, paid tiers; closed source |
| Format | Plain Markdown | Local Markdown files | Cloud blocks; Markdown import/export |
| Local files | Local folder in Chrome / Edge (not cloud-synced) | Native local vault | Cloud-first |
| Cloud sync | Free with an account | Paid Sync or bring your own | Built in |
| Runs in the browser | Yes, plus a Mac app | No (desktop / mobile apps) | Yes, plus apps |
[[Wiki links]] |
Yes, with rename updates | Yes | Page links and @ mentions |
| Backlinks panel / graph view | Not yet | Yes | Backlinks yes, no graph |
| Databases | No (plain Markdown tables only) | Via Bases / plugins | Core feature |
| Plugins | None; Obsidian plugins don't work | Large ecosystem | Integrations |
| Real-time collaboration | No (share links with comments) | No | Yes |
| AI | Built-in MCP server | Community plugins | Notion AI and integrations |
| Mobile app | Not yet | iOS / Android | iOS / Android |
xEdit can open an existing Obsidian vault folder and edit its .md files, but Obsidian plugins, settings and canvases don't carry over. Obsidian and Notion details reflect their public feature sets as of October 2026.
Quick start
Prerequisites: Node.js 20+ and PostgreSQL 14+.
# 1. Clone and install
git clone https://github.com/rotbit/xedit.git
cd xedit
npm install
# 2. Set up the database (macOS example; on other platforms just install PostgreSQL)
brew install postgresql@17 && brew services start postgresql@17
createdb xedit
# 3. Configure environment variables
cp .env.example .env
# At minimum set DATABASE_URL; generate AUTH_SECRET with the line below
openssl rand -base64 32
# 4. Create tables
npx prisma migrate dev
# 5. Start
npm run dev
Open http://localhost:3000. It runs without GitHub/Google OAuth or OSS configured — write locally without signing in. Configure a third-party provider for cloud sync and OSS for media uploads.
Environment variables
See .env.example for the full list. Quick reference:
| Variable | Required | Description |
|---|---|---|
DATABASE_URL |
✅ | PostgreSQL connection string, e.g. postgresql://user:pass@localhost:5432/xedit |
AUTH_SECRET |
✅ | Signing key for sessions and MCP tokens; generate with openssl rand -base64 32 |
AUTH_URL |
Recommended behind a reverse proxy, e.g. https://example.com |
|
NEXT_PUBLIC_SITE_URL |
Public URL used for canonical / OG / sitemap, without a trailing slash | |
AUTH_GITHUB_ID / AUTH_GITHUB_SECRET |
Enables GitHub login when set | |
AUTH_GOOGLE_ID / AUTH_GOOGLE_SECRET |
Enables Google login when set | |
AUTH_WECHAT_ENABLED |
Explicit switch for WeChat login; set to 1 or true to enable |
|
AUTH_WECHAT_ID / AUTH_WECHAT_SECRET |
AppID / AppSecret of a "Website App" on WeChat Open Platform; requires a business-verified Open Platform account | |
OSS_REGION / OSS_ACCESS_KEY_ID / OSS_ACCESS_KEY_SECRET / OSS_BUCKET |
Alibaba Cloud OSS image hosting; use a RAM sub-account scoped to that bucket only | |
OSS_CDN_DOMAIN |
Bound CDN / custom domain | |
AI_ENCRYPTION_KEY |
Master key for encrypting AI provider keys; derived from AUTH_SECRET if empty |
|
REPLICATE_API_TOKEN |
Replicate token for AI-generated covers; enables the "AI Generate" tab. Billed to the site's account and limited to accounts in ADMIN_EMAILS |
|
REPLICATE_MODEL |
Image model, defaults to black-forest-labs/flux-schnell; pin a version as owner/name:version. No need to check the model's inputs yourself: unsupported aspect ratios and optional fields are corrected from the upstream error and retried. The prompt is a fixed template that asks for the Chinese title to be drawn into the image, so pick a model that renders Chinese text well — the default flux-schnell doesn't and produces garbled characters |
|
REPLICATE_ASPECT_RATIO |
Cover aspect ratio; empty = auto: tries 21:9 first, and falls back to the widest landscape ratio the model supports |
|
COVER_GENERATE_TIMEOUT_SEC / COVER_GENERATE_DAILY_LIMIT |
Per-generation timeout (default 90 s) and generations per account per day (default 20) | |
ADMIN_EMAILS |
Comma-separated super-admin email allowlist; enables the /admin dashboard when set |
|
DEFAULT_STORAGE_QUOTA_MB |
Per-account media storage quota in MB, default 10240 (10 GB); adjustable per account in the admin dashboard |
Key security: all secrets stay on the server. Image uploads are proxied through
/api/upload, so the OSS AccessKey never reaches the browser; AI provider keys entered in the admin dashboard are encrypted with AES-256-GCM before being stored, and plaintext never hits the database.
Deployment
The repo ships a Dockerfile (Next.js standalone output; prisma migrate deploy runs automatically when the container starts).
See the deployment guide for the full walkthrough: Docker / Docker Compose, one-click Dokploy, domains and HTTPS, production OAuth setup, and upgrades and rollbacks.
Tech stack
Next.js 16 (App Router) · React 19 · TypeScript · Tailwind CSS v4 · CodeMirror 6 · markdown-it · highlight.js · MathJax (SVG) · DOMPurify · Auth.js v5 · Prisma + PostgreSQL · ali-oss · Zustand · MCP SDK
How copying to WeChat works
Markdown → markdown-it render → DOMPurify sanitize
→ links to footnotes → code block newlines/spaces to <br>/
→ CSS inlining (browser CSSOM parsing + querySelectorAll matching, cascaded by specificity)
→ strip class/id/data-* → selection copy (text/html)
All theme decorations use real elements (such as span.prefix/.content/.suffix inside headings) and data URI background images rather than pseudo-elements, so nothing is lost when pasting into WeChat.
Project structure
src/
├── app/ # Pages and API routes
│ ├── api/ # documents / categories / assets / settings / stats
│ │ # upload / ai / auth / oauth / mcp
│ ├── edit/ # Editor page (/edit local draft, /edit/[id] cloud document)
│ ├── oauth/ # Consent page for MCP clients
│ └── page.tsx # Landing page + workspace
├── components/ # Shared cross-feature components and dialogs
├── features/
│ ├── editor/ # Editor toolbar, export, copy menu
│ ├── landing/ # Landing page (server-rendered, interactive mockup, SEO)
│ ├── stats/ # Writing stats and the ink sprite
│ └── workspace/ # Document list, category tree, drag and drop, trash
├── lib/
│ ├── markdown/ # markdown-it config and plugins (math, structured headings, etc.)
│ ├── themes/ # Themes (base + 13 presets) and code theme registry
│ ├── copy/ # Style inliner, WeChat/Zhihu copy pipelines, clipboard
│ ├── oauth/ # Self-hosted OAuth 2.1 server (AS + RS)
│ ├── ai/ # Provider catalog, key encryption, server-side calls
│ └── export.ts # MD / HTML / PDF / PNG export
├── store/ # Zustand global state (with local persistence)
└── auth.ts # Auth.js config
prisma/ # Data model and migrations
public/code-themes/ # highlight.js code theme CSS
Contributing
Issues and PRs are welcome. Please make sure npm run lint and npm run build pass before opening a PR.
To add a theme, add an entry to src/lib/themes/presets.ts following the existing format. Don't use pseudo-elements for decorations — WeChat drops them.
License
MIT © rotbit
xEdit MCP 질문
AI 클라이언트가 제 xEdit 노트를 조작할 수 있나요?
네, 권한을 승인하면 Claude Desktop, Cursor 및 기타 MCP 클라이언트가 문서와 이미지를 목록화, 검색, 생성 및 편집할 수 있습니다.