ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Locus

โดย EDKarlssonรุ่น 0.6.2i★ –iรันบนเครื่อง
ชื่อใน registryio.github.EDKarlsson/locus

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

Hierarchical markdown memory palace for AI agents — structured palace navigation via MCP tools.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: ค้นข้อมูลและความจำของ AI

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ต้องเตรียมก่อน

  • PyPIติดตั้ง uv ของ Python (มีคำสั่ง uvx) ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "locus": {
      "command": "uvx",
      "args": [
        "locus-mcp"
      ]
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add locus -- uvx locus-mcp

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "locus": {
      "command": "uvx",
      "args": [
        "locus-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "locus": {
      "type": "stdio",
      "command": "uvx",
      "args": [
        "locus-mcp"
      ]
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 6 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub EDKarlsson ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด ค้นข้อมูลและความจำของ AIi

  • ดาวมากกว่า 0% ของอีก 7247 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 4% ของอีก 7247 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 7247 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Locus ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

registry ไม่ได้ระบุว่าต้องใช้กุญแจ แต่บางตัวจะขอให้ล็อกอินตอนใช้ครั้งแรก

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.6.2) เข้า registry 8 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Python (uv) ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี Context7, Codebase Memory, Exa

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

Context7

โดย upstash

ส่งคู่มือการใช้ไลบรารีและเฟรมเวิร์กรุ่นล่าสุดให้ AI อ่านก่อนตอบ ช่วยให้โค้ดที่ AI เขียนไม่ใช้คำสั่งเก่าที่เลิกใช้แล้ว

บนเครื่องหรือคลาวด์★ 64,224MITอัปเดต วันนี้
ติดตั้ง

Codebase Memory

โดย DeusData

Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.

รันบนเครื่อง★ 48,148MITอัปเดต 20 วันที่ผ่านมา
ติดตั้ง

Exa

โดย exa-labs

Connect AI agents to Exa for web search, content fetching, and multi-step research.

รันบนคลาวด์★ 5,213MITอัปเดต เดือนที่แล้ว
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Locus

Hierarchical markdown-based memory system for autonomous AI agents. Each directory is a room (locus) in the palace, containing specific knowledge navigated on demand. Named for the atomic unit of the Method of Loci.

Core idea: Keep context windows small. Load only the room you need, not the whole palace.


How it works

palace/

INDEX.md ← always read first (~50 lines max) global/ toolchain/ toolchain.md ← canonical facts about tools projects/ my-project/ my-project.md ← room overview + key files technical-gotchas.md ← specialty: issues & resolutions sessions/ 2026-03-02.md ← append-only session log

An agent reads INDEX.md, navigates to the relevant room, and reads only that room. Session logs accumulate until consolidation merges them into canonical files.

See the wiki for full documentation.


Quick start

# Install

pip install locus-mcp

or: uvx locus-mcp --palace ~/.locus (no install needed)

Create a palace from the packaged example

locus init ~/.locus

Edit ~/.locus/INDEX.md to describe your palace

Run the MCP server

locus-mcp --palace ~/.locus

or: LOCUS_PALACE=~/.locus locus-mcp


Installation

MCP server (recommended for MCP-capable clients)
pip install locus-mcp

Or run without installing using uvx:

uvx locus-mcp --palace ~/.locus
Agent skills

The skill files are the one part of Locus written for a specific runtime. The palace convention, the MCP server, and the recall / lint / index CLIs are runtime-neutral and work from anything that can read a file or speak MCP. The skills in skills/claude/ are written and maintained for Claude Code, and that is the only set shipped here. They are plain markdown with YAML frontmatter, so another runtime is welcome to adapt them. Per-runtime copies used to live in skills/codex/ and skills/gemini/; they were removed because keeping three variants honest cost more than it returned.

Install them from a clone:

git clone https://github.com/Nano-Nimbus/locus.git

cd locus make install-skills # copies skills/claude/* to ~/.claude/skills/ make install-skills-dry # print what would be copied, write nothing

CLAUDE_SKILLS_DIR overrides the destination.

SkillCommandDescription
locus/locusRecall, navigate the palace, write rooms and session logs, regenerate indexes
locus-consolidate/locus-consolidateMerge session logs into canonical files
locus-audit/locus-auditAudit palace health
locus-feedback/locus-feedbackRecord explicit feedback on a palace recall
locus-release/locus-releasePost-release verification workflow (contributors)
locus-security/locus-securityTrust tags, nonce discipline, and the locus-security CLI
locus-palace-init/locus-palace-initBootstrap a palace from existing memory files
Agent SDK (Python)
pip install locus-mcp

locus --palace ~/.locus --task "What toolchain conventions are set?"


MCP Server

The locus-mcp command exposes five tools over the Model Context Protocol.

Use stdio for all local integrations (Claude Desktop, Claude Code, Codex, Gemini — default, no extra flags needed). SSE transport is available for network deployments (--transport sse) and requires FASTMCP_HOST=0.0.0.0 to be set explicitly — the server binds to loopback by default.

ToolDescription
memory_listReturns INDEX.md (no args) or lists a room's files
memory_readReads any file in the palace
memory_writeAtomically writes a file (guarded — cannot write to _metrics/, sessions/, .sig/, .security/)
memory_searchRanked full-text search over the shared FTS5 index (see Recall); ripgrep only without FTS5
memory_batchReads up to 20 palace files in a single call — use for multi-room loads

Add --security to enable Ed25519 signature verification on reads and automatic signing on writes. See Security below.

Claude Desktop (claude_desktop_config.json)
{

"mcpServers": { "locus": { "command": "locus-mcp", "args": ["--palace", "/path/to/palace"] } } }

Or using uvx (no install required):

{

"mcpServers": { "locus": { "command": "uvx", "args": ["locus-mcp", "--palace", "/path/to/palace"] } } }

Cursor / Zed
{

"mcp": { "servers": { "locus": { "command": "locus-mcp", "args": ["--palace", "/path/to/palace"] } } } }

Environment variable

All clients support LOCUS_PALACE as an alternative to --palace:

export LOCUS_PALACE=~/.locus

locus-mcp

See MCP Server Configuration for the full client setup guide and spec/mcp-server.md for architecture details.


Recall

locus recall answers "what do I already know about this?" in one call, fast enough to run on every prompt from a hook. It keeps a SQLite FTS5 index (standard library only, no PyYAML) over any number of markdown roots: a palace, an OKF bundle, a Claude Code memory directory, or all of them at once.

locus recall --root ~/memory --root ./docs "why does the flux kustomization stall"
Recalled memory:
  1. Flux healthcheck stall (human-reviewed, 2026-08-22) /home/me/memory/project_flux-healthcheck-stall.md Flux Kustomization with wait:true stalls on health checks for a bad revision ...
  2. [STALE] Old Flux bootstrap procedure (unverified, 2025-11-02) /home/me/docs/runbooks/flux-bootstrap.md Bootstrap Flux with a personal access token ...
FlagDefaultMeaning
--root DIR.locus.toml, then LOCUS_PALACEDirectory to index; repeatable
-k N3Number of hits
--budget BYTES4096Hard cap on text output
--include journaloffInclude type: Journal files
--type TYPEallOnly this frontmatter type; repeatable
--jsonoffPrint a JSON list instead of text
--refreshoffRebuild the index from scratch

Frontmatter drives the result: title (or name, or the first heading), description, tags, type (or metadata.type), modified (else generated.at, else file mtime), status, stale_after, and verified. Ranking is bm25 with title and description weighted above the body; exact ties go to human-reviewed files, then to the newest modified. A hit is flagged STALE when its stale_after has passed or its status is deprecated. Trust tiers follow OKF: unverified, machine-confirmed (only non-human verified entries), human-reviewed (any verified entry whose by starts with human:).

Roots can live in a .locus.toml in the project or any parent directory:

[recall]

roots = ["docs", "~/memory/shared"]

The index is stored at ${XDG_CACHE_HOME:-~/.cache}/locus/ .sqlite, never inside a root, and is refreshed incrementally (mtime, then content hash) on every call. With no hits the text output is empty and the exit status is still 0, so a prompt hook can call it unconditionally:

#!/bin/sh

Claude Code UserPromptSubmit hook: whatever this prints is injected as context.

prompt=$(jq -r .prompt) exec locus recall -k 3 --budget 4096 "$prompt"

The MCP server's memory_search uses the same index, so MCP results are ranked the same way. Full rules in spec/recall.md.


Lint and index

locus lint checks markdown roots for Open Knowledge Format v0.2 conformance and the Locus palace conventions. locus index generates the index files those conventions define. Both read the same frontmatter recall indexes, and neither imports the Agent SDK, so a CI job that only checks conformance does not install it.

locus lint  --root docs --check          # CI gate: exit 1 on any error

locus lint --root docs --fix # add inferable fields, rewrite nothing locus index --root docs --check # exit 1 when a generated index drifted

docs/runbooks/valve-chatter.md: error [okf.type-missing] frontmatter has no non-empty type (fix: add type: Runbook) docs/log.md: error [okf.log-order] entries run oldest first: 2026-05-09 follows 2026-05-01 docs/reference/platform.md: warning [locus.size-limit] 214 lines exceeds the 200-line soft limit for a specialty file 2 error(s), 1 warning(s), 1 fixable

lint
FlagDefaultMeaning
--root DIR.locus.toml, then LOCUS_PALACEDirectory to check; repeatable
--checkoffExit non-zero on any error. For CI
--strictoffTreat warnings as errors under --check
--fixoffAdd inferable fields. Never rewrites an existing key
--type-map DIR=TYPEnoneInfer this OKF type under DIR; repeatable
--archive-glob GLOBnonePaths that should carry status: deprecated; repeatable
--jsonoffPrint a JSON report instead of text

Rules split in two. okf.* checks what the specification requires: a parseable frontmatter block with a non-empty type on every non-reserved document, an index.md with no frontmatter beyond a bundle-root okf_version, a log.md that is date-headed and newest first, and ISO 8601 timestamps. Unknown keys and unknown type values are never reported: the spec requires consumers to tolerate both. locus.* checks the palace conventions: the size limits from spec/size-limits.md and the room main-file rule from spec/room-conventions.md.

Errors fail --check; warnings are advisory. A palace legitimately carries no frontmatter at all, so on a palace root the missing type rules are warnings rather than a CI failure on a layout the palace spec itself describes.

--fix adds three fields and only three: type from --type-map or [lint.types], generated.at from the file's first git commit, and status: deprecated for archive paths. It never rewrites or deletes a key, it never invents a generated block (nothing in a file says who produced it), and running it twice produces identical bytes.

index
FlagDefaultMeaning
--root DIR.locus.toml, then LOCUS_PALACEDirectory to index; repeatable
--checkoffWrite nothing; exit non-zero on drift. For CI
--kindautoForce okf, palace, or memory classification
--jsonoffPrint a JSON report instead of text

What gets generated depends on the root: an OKF bundle gets an index.md per directory in section 8 form (* [Title](path) - description, with okf_version: "0.2" frontmatter at the bundle root only), a palace gets the 50-line routing table INDEX.md, and a Claude Code memory directory gets a MEMORY.md of one - [Title](file.md) - description line per topic file. Output is deterministic, so --check is a byte comparison, and only index files are ever written.

Configure both from one .locus.toml:

[lint]

roots = ["docs"] archive_globs = ["archive/*"]

[lint.types] "." = "Reference" runbooks = "Runbook"

Full rules in [`spec/lint-and-index

ตัดมาแค่ช่วงต้น อ่านต่อใน repo

ถาม PopNx