规则代理服务器

MemoryBank MCP服务器为Cursor客户端代理MemoryBank规则端点,通过stdio传递规则文档。

  • by Fatelon
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Fatelon/memorybank-mcp

使用说明

记忆库mcp

用于Cursor客户端的MemoryBank MCP服务器。它代理MemoryBank规则端点(GET /api/external/rules)通过MCP stdio memorybank_get_rules 工具,并以纯文本形式返回完整的规则文档。

需求

  • Node.js 18+
  • MEMORYBANK_BASE_URL 和 MEMORYBANK_API_KEY 启动前必须设置环境变量。 MEMORYBANK_PROJECT_ID 是可选的,但当API密钥的作用域为项目时,建议使用。

环境变量

在开发过程中,您可以将机密存储在本地 .env 文件并运行提供的npm脚本(npm run dev, npm run debug)他们已经通过了 --env-file=.env 到 tsx.用于生产运行(node dist/index.js 或已发布的二进制文件)导出shell中的变量。

名称 必填 描述
MEMORYBANK_BASE_URL 是 内存库后端来源,例如。 https://example.com。服务器将调用 ${BASE_URL}/api/external/rules.
MEMORYBANK_API_KEY yes 用于授权标头的工作区API密钥。
MEMORYBANK_PROJECT_ID no 作为传递的项目/工作区标识符 projectId 查询参数。当API键的作用域为项目时提供它。
MEMORYBANK_TIMEOUT_MS no 覆盖请求超时(以毫秒为单位)(默认值 15000).
MEMORYBANK_CACHE_TTL_MS no 提取规则的缓存生存期(默认值 600000,设置为 0 禁用缓存)。
MEMORYBANK_USER_AGENT no 自定义用户代理标头(默认为 memorybank-mcp/<package version>).
DEBUG_MEMORYBANK_MCP 否 设置为 true 在JSON解析失败时记录原始后端响应(仅对调试有用)。

脚本

  • npm run build –将TypeScript编译为 dist/.
  • npm start –运行编译后的stdio服务器(node dist/index.js).
  • npm run dev –通过以下方式在监视模式下启动stdio服务器 tsx,从加载变量 .env.
  • npm run watch –在监视模式下运行TypeScript编译器(tsc -w)保持 dist/ 无需启动服务器即可更新。
  • npm run debug –启动调试客户端以调用 memorybank_get_rules 工具通过stdio。

MCP服务器指示代理调用 memorybank_get_rules 在会话开始时恰好一次。该工具缓存Markdown响应 MEMORYBANK_CACHE_TTL_MS 毫秒,并接受可选 { "force": true } 绕过缓存的参数。

资源

  • memorybank://context/active_context –将缓存的MemoryBank规则集公开为Markdown(与 memorybank_get_rules 工具输出)。
  • memorybank://rules –别名资源,返回相同的Markdown文档。

开发工作流程

npm install
npm run build
node dist/index.js

对于没有Cursor的基于CLI的测试,请确保 dist/ 当前正在运行:

npm run debug

光标配置

将服务器添加到 ~/.cursor/mcp.json (或工作空间 mcp.json)下面 mcpServers 钥匙。

选项1:mcp.json中的环境变量

使用 npx:

{
  "mcpServers": {
    "memorybank-mcp": {
      "command": "npx",
      "args": ["--yes", "@morsa/memorybank-mcp"],
      "env": {
        "MEMORYBANK_BASE_URL": "https://example.com",
        "MEMORYBANK_API_KEY": "mbk_...",
        "MEMORYBANK_PROJECT_ID": "proj_123"
      }
    }
  }
}

使用本地构建的二进制文件:

{
  "mcpServers": {
    "memorybank-mcp-local": {
      "command": "node",
      "args": ["/path/to/memorybank-mcp/dist/index.js"],
      "env": {
        "MEMORYBANK_BASE_URL": "https://example.com",
        "MEMORYBANK_API_KEY": "mbk_...",
        "MEMORYBANK_PROJECT_ID": "proj_123"
      }
    }
  }
}

选项2:使用.env文件

创建一个 .env 项目根目录或Cursor运行目录中的文件:

MEMORYBANK_BASE_URL=https://example.com
MEMORYBANK_API_KEY=mbk_...
MEMORYBANK_PROJECT_ID=proj_123

然后配置mcp.json,不使用 env 变量:

{
  "mcpServers": {
    "memorybank-mcp": {
      "command": "npx",
      "args": ["--yes", "@morsa/memorybank-mcp"]
    }
  }
}