# io.github.wjabanjj/aifp-mcp (npm · aifp-mcp)

Persistent memory MCP server for AI coding assistants. Chinese-first and fully local.

- Trust score: 0/100 (low)
- Change this week: 0
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-26

## Components

- npm · `aifp-mcp`: 0/100 (this document), [markdown](https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp.md), [page](https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp)

## Channel facts

- Registry: `npm`
- Package: `aifp-mcp`
- Version: `1.5.8`
- Transport: `stdio`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-26.

- **Supply Chain Security**: 67/100
  - No malware found by supply-chain analysis.
  - CVE check failed: an unpatched critical CVE affects this package; the score is capped at 0.
  - Runs a script at install time (postinstall) that we could not recognise. It may be perfectly ordinary, but we do not read the published tarball, so we cannot say what it does.
  - 69 of 197 dependencies flagged as unhealthy (2 deprecated).
- **Provenance & Transparency**: 32/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - License check failed: the license (SEE LICENSE IN LICENSE) isn't a recognized OSI-approved license.
  - Actively maintained (last published 6 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 87/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (excellent).
  - Tool/resource definitions use about 3065 tokens (~90/item across 34 items; 33 tools + 1 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 37/100
  - Stability observed for 11 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 97/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 92% of tool parameters carry a description.
- **Tool Safety**: 75/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 0 of 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "merge_memories" implies "merge" and declares no destructiveHint at all, which the MCP spec reads as destructive by default.
  - An AI judge read all 34 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### How do I install the io.github.wjabanjj/aifp-mcp server?

io.github.wjabanjj/aifp-mcp runs locally as an npm package, launched with npx -y aifp-mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add wjabanjj-aifp-mcp -- npx -y aifp-mcp
```

### Cursor

```json
{
  "mcpServers": {
    "wjabanjj-aifp-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "aifp-mcp"
      ]
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "wjabanjj-aifp-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "aifp-mcp"
      ]
    }
  }
}
```

### Codex

```bash
codex mcp add wjabanjj-aifp-mcp -- npx -y aifp-mcp
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "wjabanjj-aifp-mcp": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "aifp-mcp"
      ],
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add wjabanjj-aifp-mcp --command npx --arg -y --arg aifp-mcp
```

### Hermes

```yaml
mcp_servers:
  wjabanjj-aifp-mcp:
    command: "npx"
    args: ["-y", "aifp-mcp"]
```

### Netclaw

```json
{
  "McpServers": {
    "wjabanjj-aifp-mcp": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "aifp-mcp"
      ]
    }
  }
}
```

### Vellum

```bash
assistant mcp add wjabanjj-aifp-mcp -t stdio -c npx -a -y aifp-mcp
```

### Other

```json
{
  "mcpServers": {
    "wjabanjj-aifp-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "aifp-mcp"
      ]
    }
  }
}
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-26 (score 0, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-08-22 (score 0, 0)

- [functional improvement] Stability: unverified → 0.23

### 2026-08-15 (score 0)

First indexed and scored.

## MCP tools (33)

### `save_memory` (~362 tokens)

保存一条记忆。当用户明确告知关于他自己的新信息（偏好、事实、经历、观点、项目决策等），且你觉得值得长期记住时，调用此工具。内容会自动建立全文索引和向量索引，后续搜索可命中。

Input parameters:

- `agent_id` (string): 所属 Agent ID（多 Agent 共享用）
- `confidence` (number): 置信度 0-1（默认 0.3），4 级体系: 0.3 试探/0.5 中等/0.7 强/0.9 近乎确定
- `content` (string, required): 记忆内容，用户说的关键信息
- `cross_agent_share` (boolean): 是否允许其他 Agent 访问此记忆
- `detail` (string): 详细描述或上下文
- `mem_id` (string): 更新已有记忆时传入此 ID；不传则新建
- `perception_links` (array): 关联的感知链（新记忆自动关联后不需手动传），格式：[{ target_id, relation_type, explanation?, confidence? }]
- `project` (string): 所属项目（可选），用于日志记录
- `salience` (integer): 重要性 1-5
- `session_id` (string): 会话 ID（可选），用于日志记录
- `tags` (array): 标签列表
- `title` (string): 可选的标题
- `type` (string): 记忆类型
- `valid_until` (number): 有效期限（UNIX 时间戳），超过后置信度衰减

### `search_memories` (~252 tokens)

搜索记忆库，查找与查询词相关的历史记忆。当用户提及之前讨论过的话题、项目、偏好、技术决策，或需要了解用户背景信息时，主动调用此工具。支持关键词 + 语义双路检索，适合大部分回忆场景。本地模式：FTS5 全文 + 向量语义 6 路检索。连接服务器后：额外启用 Z-score 融合排序 + 冲突证据补充（自动拉入矛盾记忆的另一端）。返回结果含 source 字段标识 "server" 或 "local"。

Input parameters:

- `agent_id` (string): Agent ID（多 Agent 过滤用）
- `include_heb` (boolean): 是否包含关联记忆
- `limit` (integer): 返回条数上限
- `query` (string, required): 搜索关键词
- `scope` (string): 检索范围: all=全部, personal=仅自己, shared=仅共享
- `types` (array): 按类型过滤
- `use_vector` (boolean): 是否使用向量语义搜索

### `get_memory` (~70 tokens)

按 ID 获取单条记忆的完整详情（内容、类型、标签、置信度等）。当已通过 search_memories 或 recall_context 拿到记忆 ID，需要查看该条记忆的完整信息时调用。

Input parameters:

- `mem_id` (string, required): 记忆ID

### `list_memories` (~100 tokens)

分页列出记忆库中的记忆，按重要性倒序。当需要浏览记忆库全貌、盘点已记住的内容、或按类型/层级筛选查看时调用。

Input parameters:

- `limit` (integer)
- `offset` (integer)
- `tier` (string): 按层级过滤: episodic/internalized/growth/core_identity
- `type` (string): 按类型过滤

### `trace_perception_chain` (~91 tokens)

追踪记忆的感知链（BFS），查看"为什么"和"导致什么"。需要连接服务器（depth=8 双向 BFS）；本地模式不可用。返回结果含 depth 和 relation 字段。

Input parameters:

- `direction` (string)
- `max_depth` (integer): 最大追踪深度
- `mem_id` (string, required): 记忆ID

### `find_perception_path` (~83 tokens)

查找两个记忆节点之间的最短因果路径（双向 BFS）。需要连接服务器进行深度搜索；本地模式不可用。

Input parameters:

- `max_depth` (integer): 最大搜索深度，默认5
- `source_id` (string, required): 起始记忆ID
- `target_id` (string, required): 目标记忆ID

### `get_perception_graph_stats` (~42 tokens)

获取因果图统计信息——节点数、边数、关系类型分布、中心节点。需要连接服务器；本地模式不可用。

### `diffuse_memories` (~94 tokens)

记忆扩散搜索——从一组记忆出发，沿关联关系向外多跳扩散，发现间接相关的知识。需要连接服务器进行加权扩散（按 relation_type 区分权重）；本地模式不可用。

Input parameters:

- `max_hops` (integer): 最大扩散跳数
- `seed_ids` (array, required): 种子记忆ID列表

### `get_memory_tree` (~43 tokens)

获取记忆的层级树结构（按 parent_id 组织的父子关系）。当需要理解记忆之间的从属/包含关系时调用。

### `get_related_memories` (~87 tokens)

获取与指定记忆关联的其他记忆（Hebbian 共现关联），即"一起出现"的记忆。当需要围绕一条记忆展开关联信息、发现间接主题时调用。本地模式可用（基于本地共现矩阵）；连接服务器后计算更完整。

Input parameters:

- `mem_id` (string, required): 记忆ID

### `get_user_profile` (~91 tokens)

获取用户画像——聚合记忆中关于用户本人的偏好、事实、习惯类信息。当需要了解用户的完整背景（喜欢什么、不喜欢什么、身份事实、习惯）时调用，比 search_memories 更全面；AI 建议/结论类记忆不会混入画像。本地可用。

Input parameters:

- `limit` (integer): 每类最多返回条数

### `get_stats` (~46 tokens)

获取记忆感知系统统计信息（记忆总数、类型分布、层级分布等）。当需要了解系统整体状态、记忆库规模时调用。

### `reimport_sources` (~114 tokens)

导入记忆来源：扫描指定目录（如 Obsidian vault 路径）或 COGNITION_SOURCES 配置的目录，把 .md/.json 等文件导入记忆库（frontmatter 自动剥离）。内容哈希去重不重复。用户新增了笔记后调用此工具同步。

Input parameters:

- `directory` (string): 要导入的目录（如 Obsidian vault 路径）。不填则扫描 COGNITION_SOURCES 配置的目录

### `recall_context` (~186 tokens)

一键回忆（比 search_memories 更全面）：当需要全面了解某个主题的来龙去脉时调用此工具。本地模式：仅 FTS5 全文 + 向量语义基础检索（不含感知链/关联/扩散）。连接服务器后：额外叠加感知链深度溯源（backward depth=8）+ Hebbian 关联 + 多跳扩散。返回结果含 source 字段。

Input parameters:

- `include_assoc` (boolean): 是否展开 Hebbian 关联
- `include_diffusion` (boolean): 是否多跳扩散
- `include_perception` (boolean): 是否展开感知链
- `limit` (integer): 直接命中记忆上限
- `query` (string, required): 回忆查询词，如"用户对 AI 的看法"

### `consolidate_memories` (~66 tokens)

手动触发记忆巩固：根据使用频率和重要性自动晋升记忆层级（episodic → internalized → growth）。系统启动时也会自动运行，通常无需手动调用；需要立即巩固时可用。

### `share_memory` (~63 tokens)

设置记忆的共享状态（允许其他 Agent 访问）。多 Agent 协作场景下，需要把某条记忆共享给其他 Agent 时调用。

Input parameters:

- `mem_id` (string, required): 记忆 ID
- `share` (boolean): 是否共享

### `merge_memories` (~89 tokens)

合并重复记忆：将多条内容重复/相似的记忆合并到一条目标记忆。当检索结果中发现明显重复的记忆时调用，减少冗余。

Input parameters:

- `source_ids` (array, required): 被合并的记忆 ID 列表
- `target_id` (string, required): 目标记忆 ID（保留此条）

### `batch_delete` (~56 tokens)

批量删除记忆（软删除，可恢复）。需要清理不再需要的多条记忆时调用，比逐条删除高效。

Input parameters:

- `ids` (array, required): 要删除的记忆 ID 列表

### `batch_update` (~77 tokens)

批量更新记忆的标签或重要性。需要统一调整多条记忆的分类或权重时调用。

Input parameters:

- `ids` (array): 要更新的记忆 ID 列表
- `salience` (integer): 新重要性 1-5
- `tags` (array): 新标签（覆盖）

### `export_memories` (~78 tokens)

导出记忆为 JSON，支持按类型/层级筛选。需要备份、迁移或分析记忆数据时调用。

Input parameters:

- `limit` (integer)
- `offset` (integer)
- `tier` (string): 按层级筛选
- `type` (string): 按类型筛选

### `export_memories_md` (~135 tokens)

把记忆导出为 Markdown 笔记（带 frontmatter），写入指定目录——配合 Obsidian 等笔记软件使用，在 Obsidian 里能看到全部记忆。当用户想把记忆同步到 Obsidian vault 时调用。本地可用。

Input parameters:

- `directory` (string, required): 目标目录（如 Obsidian vault 下的子目录）
- `limit` (integer): 最多导出条数
- `tier` (string): 按层级筛选
- `type` (string): 按类型筛选（如 preference/fact）

### `explain_query` (~82 tokens)

解释检索结果路径分解：展示每条记忆来自哪些路径（FTS/向量/实体/时间/关键词）以及分数构成。当需要理解"为什么这条记忆被检索到"、排查检索质量时调用。

Input parameters:

- `limit` (integer)
- `query` (string, required): 查询词

### `get_confidence_stats` (~63 tokens)

查看置信度分布统计：展示当前记忆库中各置信度层级（0.3/0.5/0.7/0.9）的数量分布。当需要评估记忆库整体可信度时调用。

### `scan_memory_patterns` (~76 tokens)

扫描近期记忆模式：按类型/标签聚类分析，了解当前记忆库的内容分布和趋势。当需要总结用户近期关注点、记忆主题变化时调用。

Input parameters:

- `hours` (integer): 回溯小时数
- `min_count` (integer): 最小聚类数量

### `validate_memory` (~56 tokens)

验证记忆内容质量（长度/瞬态/猜测三重门禁）。保存记忆前可调用它预检内容是否值得入记忆。

Input parameters:

- `content` (string, required): 记忆文本内容

### `get_top_experiences` (~60 tokens)

获取按衰减分数排序的 Top N 经验教训。当需要提取记忆库中最重要/最常被引用的经验时调用。

Input parameters:

- `n` (number): 返回条数，默认 15

### `deduplicate_memories` (~53 tokens)

按内容前 80 字分组去重，保留 salience 最高的。当记忆库出现重复时调用。

Input parameters:

- `project` (string): 限定项目名（可选）

### `scan_observation_patterns` (~55 tokens)

扫描最近 N 小时的观察日志，返回高频错误模式。当需要从操作日志中提取失败规律时调用。

Input parameters:

- `hours` (number): 回溯小时数，默认 2

### `rotate_observation_logs` (~37 tokens)

清理 7 天前的观察日志文件。定期维护用，一般由系统自动处理，无需手动调用。

### `session_mine` (~87 tokens)

挖掘对话会话中的决策、踩坑、编辑循环，提炼经验。当需要从一段对话历史中提取可复用经验时调用。

Input parameters:

- `messages` (array, required): 对话消息数组 [{role, content}]
- `project` (string): 项目路径（可选）
- `session_id` (string, required): 会话 ID

### `derive_memories` (~84 tokens)

从对话中识别并保存长期记忆。本地运行（需配置 COGNITION_LLM_API_KEY 或 ANTHROPIC_API_KEY）。

Input parameters:

- `messages` (array, required): 对话消息数组 [{role, content}]
- `project` (string): 项目路径（可选）
- `session_id` (string): 会话 ID（可选）

### `flush_recognizer` (~44 tokens)

手动触发 Recognizer 立即处理待识别队列。通常由后台调度器自动运行，但需要立即落库时可用此工具。

### `observe_turn` (~112 tokens)

记录对话内容到记忆识别队列。当本轮对话中用户透露了可能值得记住的偏好、事实、决策时，可调用此工具让系统自动判断是否值得入记忆。轻量快速（<5ms），仅入队不阻塞。

Input parameters:

- `project` (string): 项目路径（可选）
- `session_id` (string): 会话 ID（可选）
- `user_message` (string, required): 用户的最后一条消息

## Diagnostics

Captured diagnostic sections: Provenance, Install scripts, Vulnerabilities, Dependencies. The full working is on the page: https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp#diagnostics

## Score history

- 2026-08-26: 0
- 2026-08-25: 0
- 2026-08-24: 0
- 2026-08-23: 0
- 2026-08-22: 0
- 2026-08-21: 0
- 2026-08-20: 0
- 2026-08-19: 0
- 2026-08-18: 0
- 2026-08-17: 0
- 2026-08-16: 0
- 2026-08-15: 0

## Common questions

### What is the io.github.wjabanjj/aifp-mcp server?

io.github.wjabanjj/aifp-mcp is listed in the public MCP registry as io.github.wjabanjj/aifp-mcp. Persistent memory MCP server for AI coding assistants. Chinese-first and fully local. This page covers its npm package (aifp-mcp).

### What tools does the io.github.wjabanjj/aifp-mcp server expose?

io.github.wjabanjj/aifp-mcp exposes 33 tools: save_memory, search_memories, get_memory, list_memories, trace_perception_chain, and 28 more. Their descriptions and schemas cost roughly 3,034 tokens of context every time the server is loaded.

### Is the io.github.wjabanjj/aifp-mcp server still maintained?

io.github.wjabanjj/aifp-mcp is still listed as active in the MCP registry. We last reached this channel on 26 August 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- npm package: https://www.npmjs.com/package/aifp-mcp
- Socket report: https://socket.dev/npm/package/aifp-mcp
- Repository: https://github.com/wjabanjj/aifp-mcp
- Changelog RSS feed: https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp.json
- HTML version of this page: https://verifymcp.io/servers/wjabanjj-aifp-mcp/aifp-mcp
