Skip to main content
Glama
alioshr
by alioshr

メモリバンクMCPサーバー

鍛冶屋のバッジ npmバージョンnpmダウンロード

Cline Memory Bankにヒントを得た、リモート メモリ バンク管理用の Model Context Protocol (MCP) サーバー実装。

概要

メモリ バンク MCP サーバーは、従来のファイルベースのメモリ バンクを、次のような機能を備えた集中型サービスに変換します。

  • MCPプロトコルを介してメモリバンクファイルへのリモートアクセスを提供します

  • マルチプロジェクトのメモリバンク管理を可能にする

  • 一貫したファイル構造と検証を維持

  • プロジェクトメモリバンク間の適切な分離を確保

Related MCP server: AgentMemory Offline

特徴

  • 複数プロジェクトのサポート

    • プロジェクト固有のディレクトリ

    • ファイル構造の強制

    • パストラバーサル防止

    • プロジェクト一覧機能

    • プロジェクトごとのファイルリスト

  • リモートアクセシビリティ

    • 完全なMCPプロトコル実装

    • 型安全な操作

    • 適切なエラー処理

    • プロジェクトの分離によるセキュリティ

  • コアオペレーション

    • メモリバンクファイルの読み取り/書き込み/更新

    • 利用可能なプロジェクトの一覧

    • プロジェクト内のファイルを一覧表示する

    • プロジェクトの存在検証

    • 安全な読み取り専用操作

インストール

Smithery経由で Claude Desktop 用の Memory Bank Server を自動的にインストールするには:

npx -y @smithery/cli install @alioshr/memory-bank-mcp --client claude

これにより、MCPサーバーの設定が自動的に行われます。または、以下の「設定」セクションの説明に従って、手動でサーバーを設定することもできます。

クイックスタート

  1. 設定でMCPサーバーを構成します(以下の構成セクションを参照)

  2. AIアシスタントのメモリバンクツールを使い始めましょう

構成

メモリバンクMCPサーバーは、Cline MCP設定ファイルで設定する必要があります。場所は設定によって異なります。

  • Cline 拡張機能の場合: ~/Library/Application Support/Cursor/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Roo Code VS Code 拡張機能の場合: ~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/mcp_settings.json

  • Claude デスクトップ アプリの場合: ~/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 dev

Dockerで実行する

  1. Docker イメージをビルドします。

    docker build -t memory-bank-mcp:local .
  2. テスト用に 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"
  3. MCP 構成を追加します (Roo Code の例)。

    "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"
      ]
    }

貢献

貢献を歓迎します!以下の手順に従ってください。

  1. リポジトリをフォークする

  2. 機能ブランチを作成する ( git checkout -b feature/amazing-feature )

  3. 変更をコミットします( git commit -m 'Add amazing feature' )

  4. ブランチにプッシュする ( git push origin feature/amazing-feature )

  5. プルリクエストを開く

開発ガイドライン

  • すべての新しいコードにTypeScriptを使用する

  • コードベース全体で型の安全性を維持する

  • 新機能のテストを追加する

  • 必要に応じてドキュメントを更新する

  • 既存のコードスタイルとパターンに従う

テスト

  • 新しい機能のユニットテストを書く

  • 複数プロジェクトのシナリオテストを含める

  • エラーケースを徹底的にテストする

  • 型制約を検証する

  • ファイルシステム操作を適切にモックする

ライセンス

このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細についてはLICENSEファイルを参照してください。

謝辞

このプロジェクトは、Cline Memory Bankで最初に文書化されたメモリ バンクの概念を実装し、リモート機能とマルチ プロジェクト サポートを追加して拡張します。

Available Tools

5 tools
list_project_filesA

List all files within a specific project

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNameYesThe name of the project

TDQS

A3.8/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
fileNameYesThe name of the file
projectNameYesThe name of the project

TDQS

B3.2/5.0
Behavior1/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content of the file
fileNameYesThe name of the file
projectNameYesThe name of the project

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYesThe content of the file
fileNameYesThe name of the file
projectNameYesThe name of the project

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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.

  1. 5 tool updatesv0.2.1
    • First observedlist_project_files
    • First observedlist_projects
    • First observedmemory_bank_read
    • First observedmemory_bank_update
    • First observedmemory_bank_write

TDQS

B3.4/5.0

Scored across 5 tools

Disambiguation5/5

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.

Naming Consistency3/5

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.

Tool Count5/5

Five tools is well-scoped for a memory bank server, covering the essential operations without unnecessary bloat. The count feels right for the domain.

Completeness3/5

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

ActivityInactive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers