
Eigenstyle
ai.qompass由 qompass.ai 發布v0.1.1更新於 Nov 2, 2026
MCP server for a personal voice profile: corpus, fingerprint, and draft-checking tools.
概覽
本機 MCP 伺服器,維護一份可量測的寫作風格檔案,讓助理據此檢查草稿、取用範例段落並加入樣本。
- 可以做什麼
- 依風格檔案為草稿(文字或檔案)評分,給出判定、偏差值、主要影響特徵與避用清單命中,並可核對來源文字中的數字與網址
- 依文類回傳已收錄樣本中的原文範例段落
- 讀取可讀版檔案與指紋摘要,包含區間、避用清單與使用者修正
- 從文字、檔案路徑或抓取的網址加入寫作樣本,標題、文類與署名為必填
- 列出語料清單,含中繼資料、字數與總計
- 從已收錄樣本重新計算指紋與區間,儲存前可先做試跑預覽
- 適用情境
- 適合希望助理依自己可量測的文風起草或修改文字,並檢查草稿是否偏離該文風的情況;也適合把自己的寫作語料當作起草時的範例庫。
- 執行需求
- 以 stdio 本機程序執行;README 說明需從 Rust 工作區建置並使用固定工具鏈,另提供打包的 mcpb 版本。資料存放於 EIGENSTYLE_HOME 或預設本機目錄,首次開啟時寫入初始語料。未宣告驗證或 API 金鑰。桌面 GUI 需要 Wayland 工作階段。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Eigenstyle,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
eigenstyle — your voice profile as a tool
A Rust workspace that turns a measured writing fingerprint
(built 2026-10-11 in the matt-voice skill) into a living system: an
MCP server agents can call, a terminal UI, and a GPUI desktop GUI — all
over one core library, all fed by a corpus you keep adding to.
[License: Apache 2.0]
The fingerprint is measured, not vibes: sentence-length distribution, function-word profile, punctuation rates, parentheticals, hyphenated compounds, hedge/assertive balance, first-person rate — the same features, tokenizer, rounding, and leave-one-out band calibration as the skill's Python reference. A parity test suite proves the Rust engine reproduces the Python numbers on the seed corpus (features and bands identical; checker deltas on the held-out pieces match: JAS 1.196, Cureus 1.088, synthetic 1.253).
The three front-ends
All three share one store: $EIGENSTYLE_HOME, else
~/.local/share/eigenstyle/. First open seeds it from the skill's
corpus (6 pieces, 7,674 words), fingerprint, and readable profile.
MCP tools
Protocol: MCP over stdio on rmcp 3.8 (the official Rust MCP SDK),
modern era only (protocol version 2026-07-28). Sessions open with
server/discover and every request carries its protocol version in
_meta — there is no initialize handshake. Legacy-era contact is
refused at the stdio front door with the typed -32022
unsupported-version error. Fail-closed throughout: malformed frames,
unknown tools, strict argument schemas, named size bounds everywhere.
Versions (1.0 release): the MCP server eigenstyle, the TUI, and
the GUI are 1.0.0. eigenstyle-core stays at 0.1.0 — that version
is already published on crates.io and does not move with this
release.
Adding your writing
- MCP: an agent calls
ingest_sample(or you ask for a URL fetch — the core fetches it, bounded, HTML reduced to text). - TUI:
Add writingscreen (key2) — title, genre, authorship toggle, source, then a file path (Enter loads it) or pasted text; Ctrl+S saves. - GUI:
Add writingtab — same fields as clickable boxes; the authorship button toggles sole/blended; Add sample saves.
In every flow the same rules hold: samples are append-only (exclude a sample from the fingerprint instead of deleting history), and the fingerprint never changes silently — recompute is explicit, with a dry-run preview first.
Correcting the fingerprint
The fingerprint dashboard (TUI Fingerprint screen, GUI Fingerprint
tab) lists every feature's mean/SD. Select one, type a corrected mean,
apply: the value is stored as a user correction overlaid on the
computed reference. Corrections survive recompute, are marked wherever
they show, and can be cleared wholesale to restore computed values
exactly.
Patterns adapted from same-kind tools
- HumanifyMe — the editable, human-readable fingerprint, and the
deterministic post-draft verify gate (dropped numbers / broken URLs
in
check_draft). - brandvoice-mcp — ingest → chunk → exemplar retrieval bank
(
get_exemplarsserves corpus paragraphs by genre). - book-writer-mcp / Eden — per-genre style profiles (the dashboard shows pooled per-genre stats), and the builder flow where induced rules are shown for correction before they are saved (recompute dry-run preview → apply).
- Arcitext — tone-fit via an explicit avoid list, enforced by the checker and editable in the Profile view.
Bounds (named, enforced)
Sample text ≤ 256 KiB and ≥ 10 tokens; draft ≤ 1 MiB, < 200 words = UNRELIABLE verdict (integrity/avoid checks still run); URL fetch ≤ 1 MiB, 15 s, HTTP(S) only, ≤ 3 redirects; JSON-RPC line ≤ 4 MiB; fingerprint build needs ≥ 2 included pieces (leave-one-out calibration is undefined below that) and fails closed otherwise.
Platform notes
- Toolchain pinned to Rust 1.99.0 (
rust-toolchain.toml), matching the estate. GPUI is pinned exactly:gpui-ce = =0.2.2+gpui_ce_platform = =0.1.0(features wayland, x11). - GUI rendering is verified on Wayland (primo's desktop is Hyprland; the smoke runs under a headless wlroots compositor). Under Xvfb/X11 this GPUI build presents black frames — use a Wayland session.
- GUI text entry is click-to-focus, append/backspace only (no selection/IME yet) — a stated limit, tracked in PROGRESS.md.
Layout
License
This project is licensed under the Apache License, Version 2.0.
來源:README.md,提交 db3351d
工具
0版本歷史
1- v0.1.1最新Oct 19, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分