原型 · 预览版:收录官方注册中心里的全部服务器,每 30 分钟同步一次。评价和账户功能将在后续阶段推出。
PopNx MCP为使用 AI 的人准备的 MCP 服务器 · 用大白话讲清楚

AnchorDB

作者:jolovicdev版本 1.0.6i★ –i在你的电脑上运行
注册名称io.github.jolovicdev/anchordb

安装

概览

作者提供的说明(英文原文)

Persistent code memory for AI agents: notes pinned to files and symbols that survive refactors.

PopNx MCP 的三大支柱

这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。

它能帮你做什么

我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。

  • 连接方式: 在你的电脑上运行
  • 传输方式: stdio
  • 分类: 文档、表格与办公

安装

选择你使用的 AI 应用,然后复制设置。

安装之前

  • 基础检查:1 项中通过 1 项
  • 在你的电脑上运行,拥有你的用户账户的权限(文件、网络、应用)。
  • 注册中心没有列出需要填写的密钥。

你需要

你用的是哪个应用?

在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。

打开 Claude Desktop → Settings → Developer → Edit Config,把下面的内容粘贴到 claude_desktop_config.json

{
  "mcpServers": {
    "anchordb": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jolovicdev/anchor-db:1.0.6"
      ]
    }
  }
}

在终端中运行这条命令

claude mcp add anchordb -- docker run -i --rm ghcr.io/jolovicdev/anchor-db:1.0.6

在 Cursor 中打开

或者自己复制设置

粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json

{
  "mcpServers": {
    "anchordb": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jolovicdev/anchor-db:1.0.6"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

在 VS Code 中打开

或者自己复制设置

粘贴到项目中的 .vscode/mcp.json

{
  "servers": {
    "anchordb": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "ghcr.io/jolovicdev/anchor-db:1.0.6"
      ]
    }
  }
}

浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。

这个服务器在你的电脑上运行,而 ChatGPT 只能连接互联网上的服务器。请选择其他应用。

你的选择通过 Cookie 保存在这台设备上,无需账户。

这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。

它能做什么

它在你的电脑上运行;安装后,工具列表会显示在你的 AI 应用中。

基础检查i

我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月6日

  • ✓ 通过

    作者与仓库一致

    注册名称已通过 GitHub 账户 jolovicdev 验证,该账户拥有此仓库

  • … 尚未检查

    仍在维护

    我们还没有从 GitHub 读取这个仓库

  • … 尚未检查

    有许可证

    我们还没有从 GitHub 读取这个仓库

  • – 不适用

    端点有响应

    它在你的电脑上运行,没有互联网端点

  • – 不适用

    使用 OAuth 登录

    在你的电脑上运行,改用本地设置

  • … 尚未检查

    工具描述中没有隐藏指令

    它在你的电脑上运行;我们只能读取互联网端点的工具列表

与“文档、表格与办公”中的其他服务器比较i

  • 星标数多于此分类中其他 2172 个服务器的 0%
  • 发布到注册中心的时间比此分类中其他 2172 个服务器的 26% 更新
  • 基础检查结果等于或优于此分类中其他 2172 个服务器的 100%

与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。

常见问题

AnchorDB 安全吗?

它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。

它需要哪些密钥或代码?

注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。

它在我的电脑上运行还是在云端?

它在你的电脑上运行。你的 AI 应用会在需要时启动它,数据不会经过作者的服务器(除非它自己调用在线服务)。

它还在维护吗?

GitHub 仓库最后更新于–,最新版本(1.0.6)于3个月前进入注册中心。

哪些应用可以使用它?

支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。你的电脑上还需要有 Docker。

有什么可以替代它?

同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel

替代选择

同一分类中其他作者的服务器,按星标数排序。

如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i

Agent-Native Calendar

作者:BuilderIO

Agent-Native Google Calendar - manage events, sync, and public booking

在云端运行★ 7,620MIT2个月前更新
安装

Excel MCP Server

作者:haris-musa

Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.

在你的电脑上运行★ 4,276MIT6天前更新
安装

MCP Server for Excel

作者:sbroenne

Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.

在你的电脑上运行★ 847MIT3天前更新
安装

作者的 README

打开 README

按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。

AnchorDB

Code memory for AI coding agents. AnchorDB is an MCP server that stores notes attached to specific code — a file, a line range, a symbol — and keeps them attached as that code moves. The context an agent builds up in one session is still there in the next one.

Point Claude Code, Cursor, or any Model Context Protocol host at it, and an agent can read *why* a workaround exists before editing it, and leave notes for whoever comes next. Everything stays local: one SQLite file, your git repositories, no network calls, no account.

curl -fsSL https://raw.githubusercontent.com/jolovicdev/anchor-db/master/install.sh | sh

claude mcp add anchordb -- anchordb-mcp --db ~/.anchordb/anchor.db

No account, no API key, and nothing to run in the background. git is the only requirement; prebuilt binaries cover Linux, macOS, and Windows, and there is a container image and a Go install path too.

Three ways in, over the same data:

anchordb-mcpMCP server for coding agents. Talks to SQLite directly; no daemon needed.
anchorctlCommand-line client for shells, scripts, and CI.
anchordHTTP API and web viewer for reading code and notes in a browser.

Why

Chat history is a bad place to keep what you learn about a codebase. It scrolls away, it is not attached to anything, and the next session starts blank.

A comment in the source is better, but you cannot leave one everywhere, and much of what matters does not belong in the file: a reproduction for a bug you did not fix, why the obvious refactor is wrong, what broke the last time someone touched this retry loop, where you stopped.

AnchorDB keeps those notes beside the code instead of inside it, and follows the code when it moves. A note pinned to a function is still on that function after you rename it, reorder the file, or move it to another package.

Use cases

  • Coding agents that should read context before editing a file or symbol
  • Agent handoffs, where one run leaves precise notes for the next
  • Long debugging sessions, keeping repros and findings attached to the code
  • Review notes on risky paths — billing, auth, migrations, retry logic
  • Any codebase where the reason for a decision outlives the person who made it

How It Works

AnchorDB stores anchors.

Each anchor contains:

  • repo metadata
  • a note body and kind
  • a file path
  • a line and column range
  • selected text plus surrounding context
  • an optional symbol path

When files change, AnchorDB re-resolves anchors using the saved span, text context, and symbol information. Tree-sitter improves symbol extraction and relocation, but the system still works without it.

Resolution tries strategies from most to least certain and stops at the first that holds up:

  1. Exact span — the recorded lines still hold the recorded text.
  2. Git line mapping — each anchor records the commit its line numbers were taken against, so git diff says exactly where those lines went. This is deterministic where text matching can only guess, and it is the difference between finding the right copy of a duplicated block and finding the first one. The mapping is always verified against the stored text before it is applied, so it degrades safely rather than mis-anchoring.
  3. Symbol match — the same symbol path, scored on how much of its body survived.
  4. Text and context match — the recorded text found elsewhere in the file, ranked by surrounding context.

An anchor that none of these can place is marked stale and keeps its last known position. Because the diff is available, a stale anchor can say whether its code was *rewritten in place* or *deleted outright*. Resolution is per-path and failures are isolated, so one unresolvable file never stops the rest of a repo from syncing.

Anchors written before this existed have no recorded base commit; they simply skip the git step and fall back to text matching.

Triage

Stale anchors are a queue, not a dead end. AnchorDB ranks the places each one might now belong -- with a confidence score and a code preview -- and lets you accept one:

anchorctl anchor stale --repo-id repo_123

anchorctl anchor candidates --id anchor_123 anchorctl anchor relocate --id anchor_123 --candidate 0

Relocating re-reads the span from the file, re-derives the symbol at the new position, and re-bases the anchor onto the current commit, so the next automatic pass can follow it through git again. To re-pin somewhere the suggestions missed, give an explicit range instead:

anchorctl anchor relocate --id anchor_123 --start-line 42 --end-line 58

The same loop is available to agents over MCP (anchor_stale, anchor_candidates, anchor_relocate), so a run that refactors code can re-pin the notes it left behind. In the web viewer it appears as a review panel on each stale anchor.

History

Every move, stale, and update is recorded with its reason and confidence, and that history is readable everywhere:

anchorctl anchor events --id anchor_123

It answers "why is this note here?" — for example created, then moved · git line mapping, then stale · the anchored lines were deleted or restructured. Resolution passes that change nothing record nothing, so the history stays signal.

Paths are always interpreted as repo-relative and confined to the repository: requests that try to escape the root, follow a symlink out of it, or read .git are rejected. Git refs that would be parsed as command-line options are refused for the same reason.

Built-in symbol extractors:

  • Go
  • Python
  • JavaScript
  • TypeScript

Install

git is the only runtime requirement. Every release ships prebuilt binaries for Linux, macOS, and Windows, so a Go toolchain is only needed if you build from source.

Only anchordb-mcp is needed to use AnchorDB from a coding agent. anchorctl and anchord add the command-line client and the web viewer.

Download a binary

Linux and macOS:

curl -fsSL https://raw.githubusercontent.com/jolovicdev/anchor-db/master/install.sh | sh

That fetches the archive for your platform, verifies it against the release checksums, and installs into ~/.local/bin. Set ANCHORDB_INSTALL_DIR to put it somewhere else, or ANCHORDB_VERSION to pin a version.

To do it by hand instead, take the archive for your platform from the releases page, unpack it, and move the binaries onto your PATH. checksums.txt in each release covers every archive.

With Go

Requires Go 1.25 or newer.

go install github.com/jolovicdev/anchor-db/cmd/anchordb-mcp@latest

go install github.com/jolovicdev/anchor-db/cmd/anchorctl@latest go install github.com/jolovicdev/anchor-db/cmd/anchord@latest

From a local checkout:

go install ./cmd/anchordb-mcp ./cmd/anchorctl ./cmd/anchord

If the installed command is not found afterwards, the Go bin directory is not on your PATH:

go env GOBIN          # if empty, binaries are in $(go env GOPATH)/bin

export PATH="$PATH:$(go env GOPATH)/bin"

With Docker
docker run --rm -i \

-v ~/.anchordb:/data \ -v /path/to/repo:/path/to/repo \ ghcr.io/jolovicdev/anchor-db:latest

Anchors record absolute repository paths, so mount each repository at the same path it has on the host — otherwise the paths stored in the database will not match anything the container can see. The container is only worth the trouble in CI or a sandbox; a binary on the host is simpler everywhere else.

Verify
anchordb-mcp --version
Where to keep the database

One database holds many repositories. A stable per-user location works well:

mkdir -p ~/.anchordb

Use ~/.anchordb/anchor.db in the commands below. Keep it out of your repositories — it is local state, not source, and does not belong in git.

Install with a coding agent

If you would rather have an agent do this, point it at this repository and say "install this". The steps below are written to be followed directly.

1. Check prerequisites. go version (needs 1.25+) and git --version. If Go is missing, stop and ask before installing a toolchain.

2. Install the MCP server.

go install github.com/jolovicdev/anchor-db/cmd/anchordb-mcp@latest

3. Find the binary. go env GOBIN, or $(go env GOPATH)/bin if that is empty. Use the absolute path in step 5 rather than editing shell profiles.

4. Choose a database path. mkdir -p ~/.anchordb and use ~/.anchordb/anchor.db. Do not put it inside the user's repository.

5. Register the server. For Claude Code:

claude mcp add anchordb -- /absolute/path/to/anchordb-mcp --db /absolute/path/to/anchor.db

For any host using mcpServers JSON, merge — do not overwrite — the entry shown under Claude Code Setup. Absolute paths only; most hosts do not expand ~.

6. Verify. anchordb-mcp --version should print a version. Restart the host and confirm anchor_context appears in the tool list. If it does not, the config was not picked up: check you edited the config for the host that is running, and that it fully restarted.

7. Register the repository with the repo_add tool, or:

anchorctl repo add --name <name> --path /path/to/repo

Report the returned repo ID to the user; most commands take it.

Using it well

Read before editing. Call anchor_context with the repo ID and file path before modifying a file. Anchors record what the code does not say — why a workaround exists, which invariant a function holds, what broke last time. Skipping that is how the same bug gets reintroduced.

Write what is durable and non-obvious. Good anchors: a constraint the types do not enforce, why an appealing simplification is wrong, a reproduction for a bug you did not fix, handoff state when stopping mid-task. Set author to identify yourself, for example agent://claude.

Skip what the code already says. A note restating a function signature is noise, and noise buries the anchors that matter.

Re-pin what you break. After a refactor, call anchor_stale for the repo. Use anchor_candidates to see suggested new locations and anchor_relocate to accept one, or give an explicit line range if you know better. Leaving stale anchors behind makes the next run worse than the last.

Do not commit the database, and do not delete anchors you did not create without asking.

Quick Start

Start the server:

anchord --db ~/.anchordb/anchor.db

Register a repo:

anchorctl repo add --name demo --path /path/to/repo

Create an anchor:

anchorctl anchor create \

--repo-id repo_123 \ --ref WORKTREE \ --path internal/service/run.go \ --start-line 42 \ --start-col 1 \ --end-line 49 \ --end-col 2 \ --kind warning \ --title "Retry must stay idempotent" \ --body "This path duplicated writes during incident 2026-02-14." \ --author human://alice

Open the viewer:

http://127.0.0.1:7740/

Start the MCP server:

anchordb-mcp --db ~/.anchordb/anchor.db

CLI

anchorctl talks to the running HTTP server.

It reads the base URL from ANCHOR_DB_URL. Default:

http://127.0.0.1:7740
Repo Commands

Add a repo:

anchorctl repo add --name demo --path /path/to/repo

List repos:

anchorctl repo list

Get one repo:

anchorctl repo get --id repo_123

Sync one repo:

anchorctl repo sync --id repo_123

Remove one repo:

anchorctl repo remove --id repo_123
Anchor Commands

List anchors:

anchorctl anchor list --repo-id repo_123 --path internal/api/server.go --limit 20 --offset 0

Get one anchor:

anchorctl anchor get --id anchor_123

Create an anchor:

anchorctl anchor create \

--repo-id repo_123 \ --ref WORKTREE \ --path internal

只显示了开头部分;其余内容请在仓库中阅读

问 PopNx