Memory Bank MCP Server
메모리 뱅크 MCP 서버
Cline Memory Bank 에서 영감을 받아 원격 메모리 뱅크 관리를 위한 MCP(Model Context Protocol) 서버 구현입니다.
개요
메모리 뱅크 MCP 서버는 기존 파일 기반 메모리 뱅크를 다음과 같은 기능을 제공하는 중앙 집중식 서비스로 변환합니다.
MCP 프로토콜을 통해 메모리 뱅크 파일에 대한 원격 액세스를 제공합니다.
다중 프로젝트 메모리 뱅크 관리를 활성화합니다.
일관된 파일 구조와 검증을 유지합니다.
프로젝트 메모리 뱅크 간의 적절한 격리를 보장합니다.
Related MCP server: AgentMemory Offline
특징
다중 프로젝트 지원
프로젝트별 디렉토리
파일 구조 적용
경로 탐색 방지
프로젝트 목록 기능
프로젝트별 파일 목록
원격 접근성
전체 MCP 프로토콜 구현
유형 안전 작업
적절한 오류 처리
프로젝트 격리를 통한 보안
핵심 운영
메모리 뱅크 파일 읽기/쓰기/업데이트
사용 가능한 프로젝트 나열
프로젝트 내 파일 나열
프로젝트 존재 검증
안전한 읽기 전용 작업
설치
Smithery를 통해 Claude Desktop용 Memory Bank Server를 자동으로 설치하려면:
지엑스피1
이렇게 하면 MCP 서버 구성이 자동으로 설정됩니다. 또는 아래 구성 섹션에 설명된 대로 서버를 수동으로 구성할 수 있습니다.
빠른 시작
설정에서 MCP 서버를 구성하세요(아래 구성 섹션 참조)
AI 어시스턴트에서 메모리 뱅크 도구를 사용해보세요
구성
메모리 뱅크 MCP 서버는 Cline MCP 설정 파일에서 구성해야 합니다. 위치는 설정에 따라 다릅니다.
Cline 확장의 경우:
~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.jsonRoo Code VS Code 확장:
~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.jsonClaude 데스크톱 앱의 경우:
~/Library/Application Support/Claude/claude_desktop_config.json
MCP 설정에 다음 구성을 추가하세요.
{
"allpepper-memory-bank": {
"command": "npx",
"args": ["-y", "@allpepper/memory-bank-mcp"],
"env": {
"MEMORY_BANK_ROOT": "<path-to-bank>"
},
"disabled": false,
"autoApprove": [
"memory_bank_read",
"memory_bank_write",
"memory_bank_update",
"list_projects",
"list_project_files"
]
}
}구성 세부 정보
MEMORY_BANK_ROOT: 프로젝트 메모리 뱅크가 저장될 디렉토리(예:/path/to/memory-bank)disabled: 서버를 활성화하려면false로 설정합니다.autoApprove: 명시적인 사용자 승인이 필요하지 않은 작업 목록:memory_bank_read: 메모리 뱅크 파일을 읽습니다.memory_bank_write: 새로운 메모리 뱅크 파일을 생성합니다.memory_bank_update: 기존 메모리 뱅크 파일을 업데이트합니다.list_projects: 사용 가능한 프로젝트 목록list_project_files: 프로젝트 내의 파일 목록
커서용
커서의 경우 설정 -> 기능 -> MCP 서버 추가 -> 다음을 추가합니다.
env MEMORY_BANK_ROOT=<path-to-bank> npx -y @allpepper/memory-bank-mcp@latest사용자 정의 IA 지침
이 섹션에는 Cline, Claude, Cursor 또는 다른 MCP 클라이언트용 AI 사용자 지정 지침에 붙여넣어야 하는 지침이 포함되어 있습니다. 이 규칙들을 복사하여 붙여넣으세요. 자세한 내용은 이 규칙들이 포함된 custom-instructions.md 파일을 참조하세요.
개발
기본 개발 명령:
# Install dependencies
npm install
# Build the project
npm run build
# Run tests
npm run test
# Run tests in watch mode
npm run test:watch
# Run the server directly with ts-node for quick testing
npm run devDocker로 실행
Docker 이미지를 빌드합니다.
docker build -t memory-bank-mcp:local .테스트를 위해 Docker 컨테이너를 실행합니다.
docker run -i --rm \ -e MEMORY_BANK_ROOT="/mnt/memory_bank" \ -v /path/to/memory-bank:/mnt/memory_bank \ --entrypoint /bin/sh \ memory-bank-mcp:local \ -c "ls -la /mnt/memory_bank"MCP 구성 추가(Roo 코드의 예):
"allpepper-memory-bank": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "MEMORY_BANK_ROOT", "-v", "/path/to/memory-bank:/mnt/memory_bank", "memory-bank-mcp:local" ], "env": { "MEMORY_BANK_ROOT": "/mnt/memory_bank" }, "disabled": false, "alwaysAllow": [ "list_projects", "list_project_files", "memory_bank_read", "memory_bank_update", "memory_bank_write" ] }
기여하다
여러분의 참여를 환영합니다! 다음 단계를 따라주세요.
저장소를 포크하세요
기능 브랜치를 생성합니다(
git checkout -b feature/amazing-feature)변경 사항을 커밋하세요(
git commit -m 'Add amazing feature')브랜치에 푸시(
git push origin feature/amazing-feature)풀 리퀘스트 열기
개발 지침
모든 새 코드에 TypeScript를 사용하세요
코드베이스 전체에서 유형 안전성 유지
새로운 기능에 대한 테스트 추가
필요에 따라 문서를 업데이트하세요
기존 코드 스타일과 패턴을 따르세요
테스트
새로운 기능에 대한 단위 테스트를 작성하세요
다중 프로젝트 시나리오 테스트 포함
오류 사례를 철저히 테스트하세요
유형 제약 조건 검증
파일 시스템 작업을 적절하게 모의합니다.
특허
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여되었습니다. 자세한 내용은 라이선스 파일을 참조하세요.
감사의 말
이 프로젝트는 Cline Memory Bank 에 원래 문서화된 메모리 뱅크 개념을 구현하고, 원격 기능과 다중 프로젝트 지원을 확장합니다.
Available Tools
5 toolslist_project_filesA
List all files within a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| projectName | Yes | The name of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It conveys the core read-only behavior, but it does not mention the shape of the returned file list, recursion, error behavior for unknown projects, or any side effects. It is minimal but not contradictory.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single front-loaded sentence with no filler or repetition. Every word adds meaning relative to the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a simple 1-parameter, read-only list operation with no output schema. The description accurately conveys the essential function and scope. It omits details like file-entry shape and recursive behavior, but these are minor gaps for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already describes the parameter as 'The name of the project.' The description adds essentially no new meaning about how 'projectName' is used or validated, so it stays at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action clearly ('list all files'), the resource ('files'), and the scope ('within a specific project'). It is distinguishable from siblings: 'list_projects' enumerates projects, while 'memory_bank_*' operate on the memory bank.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance about when to choose this tool over siblings such as 'list_projects' or 'memory_bank_read'. The context implies it is used to inspect files inside a known project, but the caveats and alternatives are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_projectsB
List all projects in the memory bank
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It implies a read-only operation through the word 'list', but doesn't disclose whether results are paginated, sorted, or complete; nor does it mention any potential side effects or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the action and resource. Every word is informative, and it is appropriately sized for a parameterless list operation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple parameterless list operation, this description covers the core usage. However, the complete lack of detail about the return format or any read behavior means an agent must rely on the server response to learn the output structure, and given the absence of annotations and output schema, slightly more context could be useful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the description doesn't need to explain parameters. The schema confirms this, meeting the baseline for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description includes a specific verb ('list'), resource ('projects'), and scope ('in the memory bank'), making the purpose clear. It doesn't explicitly distinguish itself from siblings like list_project_files, but the target resource is different enough that an agent can infer the distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool over alternatives. It only says 'List all projects in the memory bank' and gives no context about use cases, ordering, or relationship to memory_bank_read or list_project_files.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_bank_readB
Read a memory bank file for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| fileName | Yes | The name of the file | |
| projectName | Yes | The name of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only repeats the action 'Read' without revealing any side effects, error handling, prerequisites, or return format. It offers no additional behavioral context beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the purpose without any waste. It is front-loaded and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two parameters and no output schema, the description is minimal. It does not mention what the return value looks like, any potential errors (e.g., missing file or project), or any prerequisites. This leaves the agent without critical context needed to fully anticipate the tool's behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with both parameters clearly named in the schema. The tool description adds no extra meaning about the parameters beyond the schema's basic descriptions. Baseline 3 is appropriate since the schema already covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Read') and a resource ('memory bank file') scoped to a project. It unambiguously distinguishes from siblings like list_projects, list_project_files, memory_bank_write, and memory_bank_update, which have different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for reading file content, but it does not explicitly state when to use this tool versus alternatives or provide any exclusions. There is no guidance on when not to use it or when a sibling would be more appropriate, leaving usage to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_bank_updateC
Update an existing memory bank file for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content of the file | |
| fileName | Yes | The name of the file | |
| projectName | Yes | The name of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Update', which indicates a mutation, but does not state whether the update fully replaces the file content, what happens if the file does not exist (error vs. create), or any side effects. No permissions, reversibility, or error handling are mentioned. The description is too terse to give the agent confidence about the operation's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no filler or redundancy. It conveys the core purpose efficiently and is appropriately front-loaded with the verb and object. Nothing extraneous is present, and the length is appropriate for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that the tool is a mutation with no safety annotations and simple parameters, the description should clarify the prerequisite (file must exist) and the difference from memory_bank_write. It does not mention that the file must exist or that the operation might fail if it does not. While the schema covers parameters, the description leaves out important context about when and how to use this tool safely, making it incomplete for an agent to invoke correctly in all cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage of all parameters with straightforward descriptions ('The content of the file', 'The name of the file', 'The name of the project'). The description adds no additional meaning or context about parameter usage, formatting, or dependencies. Since the schema does the heavy lifting, the baseline score of 3 is appropriate; the description adds no real enhancement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Update') and the resource ('existing memory bank file for a specific project'). It distinguishes itself from siblings through the word 'existing', implying it modifies files that already exist rather than creating new ones. However, it does not explicitly name the alternative tool (memory_bank_write) or explain the difference explicitly, so it is clear but not fully differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It implies that the file must already exist (via the word 'existing'), but it does not say 'use this for updates only, use memory_bank_write for new files'. An agent is left to infer the usage context from the sibling tool names. This is minimal guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_bank_writeC
Create a new memory bank file for a specific project
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | The content of the file | |
| fileName | Yes | The name of the file | |
| projectName | Yes | The name of the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'create', with no mention of whether an existing file would be overwritten, permissions needed, or error scenarios. It does not say what happens if the project doesn't exist or if there are constraints. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no fluff. It is front-loaded with the primary action and resource. It earns a high conciseness score, though it could have been slightly more informative without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter write tool with no output schema, the description is minimal but somewhat sufficient given the schema covers all params. However, it lacks details about failure modes, idempotency, or how it relates to sibling tools. An agent might need more context to handle edge cases correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with each parameter having a basic description ('The content of the file', etc.). However, the tool description adds no additional meaning beyond what the schema already states. Baseline is 3 because the schema does the heavy lifting; the description does not enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('a new memory bank file'), and specifies it's for a specific project. It distinguishes from siblings like memory_bank_update by using 'new', though it doesn't explicitly name alternatives. This is clear but lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention that it's for creating new files only, nor does it reference update/read tools. An agent must infer usage from the name and description alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
v0.2.1- First observed
list_project_files - First observed
list_projects - First observed
memory_bank_read - First observed
memory_bank_update - First observed
memory_bank_write
TDQS
Scored across 5 tools
Each tool targets a distinct resource and action: listing projects, listing files within a project, reading a file, creating a file, and updating a file. There is no overlap or ambiguity between tools.
Names mix two conventions: 'list_projects' and 'list_project_files' use verb-first snake_case, while 'memory_bank_read', 'memory_bank_write', and 'memory_bank_update' use object-first with a modifier. The pattern is inconsistent but still readable.
Five tools is well-scoped for a memory bank server, covering the essential operations without unnecessary bloat. The count feels right for the domain.
The server covers list, read, create, and update of memory bank files, but it is missing a delete operation. This is a notable gap in CRUD coverage, though agents can work around it by archiving or overwriting files.
Maintenance
Related MCP Connectors
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
A MCP server built for developers enabling Git based project management with project and personal…
Project management shared by people and AI agents, with persistent project state through MCP.
Cloud-hosted MCP server for durable AI memory
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceMCP server for MongoDB-powered memory bank management with multi-project isolation, version control, and real-time statistics.10 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides local, project-aware memory for coding agents via MCP tools, lifecycle hooks, and a REST service, with no outbound network access.6,231 npmApache 2.0
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to maintain and query project memory independently of the underlying model, with versioned, auditable storage and multi-stage retrieval through a single MCP gateway.MIT
- AlicenseCqualityBmaintenanceProvides a deterministic MCP server that orchestrates projects across web, backend, games, AI, payments, fiscal, and infrastructure domains, with safe file writing, audit logging, and framework-aware context routing.88MIT
Appeared in Searches
- MCP server for remembering key project decisions, tracking framework and settings
- Information about memory banks
- A tool for managing or utilizing cache
- A memory-efficient MCP server with vectorized memory bank synchronization
- File system requirements: mounted directory, persistent state, and full R/W access