仓颉专用记忆库

ystyle/cangjie-mem
0 Stars 14 次浏览 东方星痕 更新于 2026-08-23

cangjie-mem 是一个专用于仓颉编程语言的、支持多级别(语言/项目/公共库)知识智能管理与检索的 MCP 服务器。它解决了通用 AI 工具在识别和运用新语言语法时的知识缺失与上下文遗忘问题。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "cangjie-mem": {
      "headers": {
        "X-MCP-Token": "your-secret-token"
      },
      "transport": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

该服务需要配置环境变量:CANGJIE_DB_PATH

Streamable HTTP 传输配置

{
  "mcpServers": {
    "cangjie-mem": {
      "headers": {
        "X-MCP-Token": "your-secret-token"
      },
      "transport": "http",
      "url": "http://localhost:8080/mcp"
    }
  }
}

服务介绍

cangjie-mem

仓颉语言分级记忆库 MCP 服务器


Go Version

cangjie-mem 是一个专用于仓颉编程语言的、支持多级别(语言/项目/公共库)知识智能管理与检索的 MCP 服务器。它解决了通用 AI 工具在识别和运用新语言语法时的知识缺失与上下文遗忘问题。

🎯 核心特性

分级记忆模型

  • 语言级(language):权威规范,包括语法、关键字、核心语义等
  • 公共库级(library):可复用方案,包括工具函数、设计模式、最佳实践等
  • 项目级(project):具体上下文,包括项目结构、配置、业务逻辑等

智能检索

  • 自动层级判断:根据查询内容和项目上下文智能选择最佳记忆层级
  • 置信度评分:基于匹配度、来源可信度、访问热度计算相关性
  • 全文搜索:基于 SQLite FTS5 的高效全文检索
  • 上下文感知:结合项目路径进行精准匹配

📦 与 cangjie-docs-mcp 的区别

特性 cangjie-docs-mcp cangjie-mem
定位 官方文档搜索 实践经验记忆库
内容 公开的、标准的、权威的 个人的、实践的、演进的
类比 教科书/参考手册 笔记本/经验库
更新 随官方文档更新 持续积累和演进

两者互补,协同使用! 🎯

🚀 快速开始

cangjie-mem 支持两种启动模式,根据使用场景选择:


模式 1:stdio 模式(本地使用)

适用场景:个人开发,本地使用

1. 下载预编译二进制

访问 GitHub Releases 下载对应平台的二进制文件。

Linux

# 下载(以 Linux AMD64 为例)
wget https://github.com/ystyle/cangjie-mem/releases/download/v1.3.0/cangjie-mem-linux-amd64.tar.gz

# 解压
tar xzf cangjie-mem-linux-amd64.tar.gz

# 运行(测试)
./cangjie-mem-linux-amd64 -version

Windows

# 下载(使用 PowerShell)
Invoke-WebRequest -Uri "https://github.com/ystyle/cangjie-mem/releases/download/v1.3.0/cangjie-mem-windows-amd64.tar.gz" -OutFile "cangjie-mem-windows-amd64.tar.gz"

# 解压(需要 tar 工具,Windows 10+ 内置)
tar xzf cangjie-mem-windows-amd64.tar.gz

# 运行(测试)
.\cangjie-mem-windows-amd64.exe -version

macOS

# 下载(Apple Silicon M1/M2/M3)
curl -LO https://github.com/ystyle/cangjie-mem/releases/download/v1.3.0/cangjie-mem-darwin-arm64.tar.gz

# 或 Intel Mac
# curl -LO https://github.com/ystyle/cangjie-mem/releases/download/v1.3.0/cangjie-mem-darwin-amd64.tar.gz

# 解压
tar xzf cangjie-mem-darwin-arm64.tar.gz

# 运行(测试)
./cangjie-mem-darwin-arm64 -version

2. 配置 Claude Code

在 Claude Code 的配置文件中添加:

Claude CLI

# 编辑配置文件
vi ~/.claude.json

Claude Desktop(GUI 应用):

  • Linux: ~/.config/Claude/claude_desktop_config.json
  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%/Claude/claude_desktop_config.json

stdio 模式配置示例

{
  "mcpServers": {
    "cangjie-mem": {
      "command": "/path/to/cangjie-mem-linux-amd64",
      "env": {
        "CANGJIE_DB_PATH": "/path/to/.cangjie-mem/memory.db"
      }
    }
  }
}

提示:将 /path/to/cangjie-mem-linux-amd64 替换为实际的二进制文件路径

配置完成后,重启 Claude Code 即可开始使用!


模式 2:HTTP 模式(远程/服务器部署)

适用场景:团队协作、多设备共享、远程访问

方式 1:Docker Compose(推荐)

# 创建 docker-compose.yml
cat > docker-compose.yml <<'EOF'
version: '3.8'

services:
  cangjie-mem:
    image: ghcr.io/ystyle/cangjie-mem:v1.3.0
    container_name: cangjie-mem
    restart: unless-stopped
    ports:
      - "8080:8080"
    environment:
      - CANGJIE_HTTP=true
      # - CANGJIE_TOKEN=your-secret-token  # 可选:启用认证
    volumes:
      - cangjie-data:/home/cangjie/.cangjie-mem

volumes:
  cangjie-data:
EOF

# 启动服务
docker-compose up -d

# 查看日志
docker-compose logs -f

# 停止服务
docker-compose down

方式 2:Docker Run

docker run -d \
  --name cangjie-mem \
  -p 8080:8080 \
  -v cangjie-data:/home/cangjie/.cangjie-mem \
  -e CANGJIE_HTTP=true \
  ghcr.io/ystyle/cangjie-mem:v1.3.0

⚠️ 安全提示

  • 无 Token:任何人都能访问,仅适合本地开发
  • 有 Token:需要认证才能访问,适合内网使用
  • 生产环境:建议启用 Token 并使用 HTTPS

Docker 环境变量

环境变量 说明 默认值 必需
CANGJIE_HTTP 启用 HTTP 模式 false ✅ Docker 部署必需
CANGJIE_ADDR HTTP 监听地址 :8080
CANGJIE_ENDPOINT HTTP 端点路径 /mcp
CANGJIE_TOKEN HTTP 认证 Token
CANGJIE_STATELESS 无状态模式 false
CANGJIE_DB_PATH 数据库文件路径 ~/.cangjie-mem/memory.db

使用环境变量的示例

# Docker Compose(在 docker-compose.yml 中设置)
environment:
  - CANGJIE_HTTP=true
  - CANGJIE_ADDR=:8080
  - CANGJIE_TOKEN=your-secret-token

# Docker Run(通过 -e 参数)
docker run -d \
  --name cangjie-mem \
  -p 8080:8080 \
  -e CANGJIE_HTTP=true \
  -e CANGJIE_TOKEN=your-secret-token \
  ghcr.io/ystyle/cangjie-mem:v1.3.3

3. 配置 Claude Code

在 Claude Code 的配置文件中添加:

{
  "mcpServers": {
    "cangjie-mem": {
      "transport": "http",
      "url": "http://localhost:8080/mcp",
      "headers": {
        "X-MCP-Token": "your-secret-token"
      }
    }
  }
}

提示:如果启用了 Token 认证,需要在 headers 中添加 X-MCP-Token


两种模式对比

特性 stdio 模式 HTTP 模式
使用场景 个人本地开发 团队协作、远程访问
启动方式 Claude Code 自动启动 Docker/手动启动服务
配置难度 简单 需要配置服务器
网络访问 本地 可远程访问
数据共享 本地独占 多设备共享

💻 开发者指南

从源码编译

项目使用 Task 作为构建工具:

安装 Task(可选):

# Linux/macOS
brew install go-task/tap/go-task

# 或使用安装脚本
sh -c "$(curl --location https://taskfile.dev/install.sh)" -- -d -b /usr/local/bin

# Windows
scoop install task
# 或
choco install go-task

编译项目

# 克隆仓库
git clone https://github.com/ystyle/cangjie-mem.git
cd cangjie-mem

# 使用 Task 编译
task build

# 或使用 Go 命令
go build -o cangjie-mem ./cmd/server

# 运行
task run
# 或
./cangjie-mem

可用命令

task build        # 构建当前平台
task test         # 运行测试
task clean        # 清理构建文件
task deps         # 下载依赖
task run          # 运行服务器(stdio 模式)
task run-http     # 运行服务器(HTTP 模式)

运行测试

# 使用 Task(推荐)
task test

# 或使用 Go 命令(需要 sqlite_fts5 编译标签)
go test ./... -tags="sqlite_fts5"

# 运行特定包的测试
go test ./pkg/db -tags="sqlite_fts5"
go test ./internal/store -tags="sqlite_fts5"

# 查看详细测试输出
go test ./... -tags="sqlite_fts5" -v

⚠️ 注意:项目使用 SQLite FTS5 全文搜索功能,测试时需要添加 -tags="sqlite_fts5" 编译标签。

Docker 本地构建

# 构建镜像
docker build -t cangjie-mem:latest .

# 运行容器
docker run -d --name cangjie-mem -p 8080:8080 \
  -e CANGJIE_HTTP=true \
  cangjie-mem:latest

🛠️ MCP 工具

工具 1:存储记忆

cangjie_mem_store - 存储仓颉语言的实践经验记忆

支持三级记忆模型

  • language:语言级(语法、关键字、核心语义)
  • project:项目级(项目配置、业务逻辑、约定)
  • library:公共库级(设计模式、工具函数、第三方库用法)

参数

  • level(必需):记忆层级(language/project/library)
  • title(必需):记忆标题
  • content(必需):记忆内容
  • library_name(可选):库名(用于 library 层级,如:tang、http-client)
  • project_path_pattern(可选):项目路径模式(project 层级必需)
  • summary(可选):简短摘要
  • source(可选):来源(manual 或 auto_captured)

示例

请帮我记录:仓颉语言中接口定义使用 'interface' 关键字,类似于 Java 的接口
存储:Tang 框架使用 RouterGroup 配置路由分组

工具 2:回忆记忆(核心)

cangjie_mem_recall - 基于关键词智能检索仓颉语言记忆

搜索模式:使用空格分隔的 AND 匹配

  • 多个关键词必须同时出现才会匹配
  • 关键词越多,结果越精准

参数

  • query(必需):查询内容(空格分隔的关键词)
  • level(可选):记忆层级(通常让 AI 自动判断)
  • project_context(可选):项目路径
  • max_results(可选):最大返回数量(默认 10)
  • min_confidence(可选):最小置信度(默认 0.5)

示例

我项目中之前是怎么处理泛型约束的?
仓颉语言中如何定义接口?
怎么用仓颉处理 JSON 数据?
tang 路由 中间件  # 搜索同时包含 "tang"、"路由"、"中间件" 的记忆

工具 3:列出记忆

cangjie_mem_list - 浏览记忆,支持按层级、库名、项目路径筛选

使用场景

  • 浏览特定库的所有知识点(如:tang 库的所有记忆)
  • 浏览特定项目的所有记忆
  • 浏览特定层级的所有记忆
  • 快速浏览记忆标题(使用简洁模式)

参数

  • level(可选):记忆层级(language/project/library)
  • library_name(可选):库名筛选(如:tang)
  • project_path_pattern(可选):项目路径模式筛选
  • brief(可选):简洁模式(默认 false)
    • false:返回完整内容,适合查看具体知识点
    • true:仅返回标题和摘要,适合快速浏览
  • limit(可选):返回数量(默认 20)
  • offset(可选):分页偏移(默认 0)
  • order_by(可选):排序字段(created_at/access_count/updated_at)

示例

列出所有 tang 库相关的记忆(包括完整内容)
快速浏览 tang 库的所有记忆标题(简洁模式)
列出所有项目级的记忆
列出最近访问最多的 10 条记忆

工具 4:列出分类

cangjie_mem_list_categories - 列出所有库和项目分类(仅返回名称和统计)

使用场景

  • 查看都记录了哪些第三方库及其知识点数量
  • 查看都有哪些项目及其记忆数量
  • 快速浏览知识库的整体结构

参数

  • language_tag(可选):语言标签(默认 cangjie)

返回格式

{
  "libraries": [
    {"name": "tang", "count": 12},
    {"name": "http-client", "count": 5}
  ],
  "projects": [
    {"name": "/home/user/tang-web/*", "count": 15}
  ]
}

工具 5:删除记忆

cangjie_mem_delete - 删除指定 ID 的记忆

使用场景

  • 删除错误的记忆
  • 配合 cangjie_mem_list 实现"更新"效果(先删除旧记忆,再插入新记忆)
  • 提炼项目记忆为库级记忆后,删除原始项目记忆

参数

  • id(必需):记忆 ID

示例

删除 ID 为 123 的记忆

🎨 使用示例

场景 1:记录项目约定

请存储记忆:我们的项目使用 three-tier 架构,
所有 API 接口都放在 /api 目录下,使用仓颉的 struct 定义数据模型

场景 2:查询项目配置

我项目的日志配置文件在哪里?

AI 会自动识别这是项目级问题,并返回相关的项目记忆。

场景 3:学习语言语法

仓颉语言中如何定义泛型函数?

AI 会自动识别这是语言级问题,优先返回语言级记忆。

🛠️ 技术架构

技术栈

  • 语言:Go 1.21+
  • 协议:Model Context Protocol (MCP)
  • 存储:SQLite (支持 FTS5 全文搜索)
  • 传输:stdio (本地模式)

项目结构

cangjie-mem/
├── cmd/
│   └── server/          # 主入口
├── pkg/
│   ├── db/              # 数据库层
│   ├── mcp/             # MCP 服务器
│   └── types/           # 类型定义
├── internal/
│   ├── config/          # 配置管理
│   └── store/           # 智能检索逻辑
├── DESIGN.md            # 详细设计文档
└── README.md            # 本文件

🚧 开发计划

Phase 1:MVP ✅

  • 基础数据模型
  • SQLite 存储
  • 两个核心工具(store/recall)
  • 智能层级判断
  • 置信度评分

Phase 2:功能增强 🚧

  • HTTP/SSE 远程模式(Streamable HTTP)
  • HTTP Token 认证
  • Docker 部署支持
  • 访问统计和热度排序

Phase 3:AI 智能化 🤖

  • 自动摘要生成(接入 LLM)
  • 向量语义搜索(接入嵌入模型)
  • 自动知识提取(接入 LLM)
  • 知识图谱关联(接入 LLM)

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 许可证

MIT License - 详见 LICENSE 文件

🙏 致谢


Made with ❤️ by ystyle

相关 MCP 服务