MCP-MemoManager
An advanced personal knowledge repository application facilitating the capture and organization of unstructured data via Model Context Protocol (MCP) interactions, underpinned by DynamoDB persistence. It incorporates a dedicated MCP backend for intelligent data handling and a complementary web interface for direct user manipulation.
Author

9Ninety
Quick Info
Actions
Tags
🧠 MCP MemoManager: Intelligent Knowledge Structuring
🌟 Introduction
MCP MemoManager Server is a sophisticated note-taking utility built upon the Model Context Protocol (MCP) framework. Its primary function is empowering users to codify and retrieve intricate memoranda and actionable items through collaboration with generative AI agents. It is intentionally decoupled from project structures, allowing for the private recording of thoughts, sudden inspirations, and deep insights without integration into formal project artifacts.
This deployment features a bifurcated server structure: a Node.js instance leveraging the Model Context Protocol (MCP) for AI-orchestrated data management, and a browser-accessible web endpoint for manual curation and review.
Prerequisite: Operation mandates the availability of AWS DynamoDB. Users must possess an active AWS account. Given DynamoDB's generous free tier allowances, this system is generally cost-prohibitive for routine personal utilization.
🎯 Key Capabilities
- 🌐 Dual-Endpoint Architecture: Dedicated MCP server for AI workflow integration and a Web server for interactive user access.
- 🤖 AI-Augmented Capture: Facilitates the recording of cognitive outputs, discoveries, and to-do lists through conversational AI exchanges.
- 📚 Full CRUD Operations: Comprehensive mechanisms for creating, enumerating, fetching, amending, and obliterating knowledge records via either AI commands or the UI.
- 💾 Robust Persistence Layer: Leverages AWS DynamoDB for secure and performant data storage.
- 🔑 Credential Flexibility: Supports credential injection via connection strings or standard environment variables for AWS access.
- 🛡️ Isolation: Stores personal reflections distinctly, ensuring no contamination of formal project assets or repositories.
🤖 Supported Model Endpoints
Compatibility extends to any model supporting the required function-calling specification, provided the client implements the MCP specification correctly. Confirmed interoperability exists with the following major architectures:
- The Claude 3.5 Ecosystem
- Gemini 1.5 and 2.0 Generations
- GPT-4 Family
- Mistral Large
- Grok-2
- DeepSeek Chat
🛠️ Deployment Instructions
Preferred Method (Direct Execution)
Execute straight via npx or bunx; consult the usage examples below for syntax.
Traditional Method
- Confirm Node.js runtime environment is established.
- Download the repository source and install requisite packages:
npm install - Configure the connecting client (e.g., Claude Desktop) as detailed subsequently.
⚙️ Configuration of Access Credentials
Connection String Format
plaintext
dynamodb://
Example Instance:
dynamodb://AKIAXXXXXXXX:SKXXXXXXXX@us-east-1/mcp-notes
Environment Variable Method
- Establish
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYin your shell environment. - Supply the endpoint details without confidential data in the URI:
dynamodb://us-east-1/mcp-notes
🤖 Integration Guide for External Agents
Claude Desktop Integration
Inject the following configuration block into your claude_desktop_config.json:
{ "mcpServers": { "mcp-memo-manager": { "command": "npx", "args": [ "-y", "-p", "mcp-notes", "mcp-notes-server", "--dynamodb", "dynamodb://access_key:secret_key@region/table" ] } } }
Or, for deployment from a local file path:
{ "mcpServers": { "mcp-memo-manager": { "command": "node", "args": [ "file://path/to/notes-mcp-server.js", "--dynamodb", "dynamodb://access_key:secret_key@region/table" ] } } }
Cody Integration
Caveat: Cody currently exhibits restricted support for MCP server connectivity, often limited to a single endpoint and lacking full tool invocation capabilities. Users should employ the web portal for record creation/modification and rely on chat interaction for referencing existing data.
Update your VS Code settings JSON:
{ "openctx.providers": { "https://openctx.org/npm/@openctx/provider-modelcontextprotocol": { "nodeCommand": "node", "mcp.provider.uri": "file://path/to/notes-mcp-server.js", "mcp.provider.args": [ "--dynamodb", "dynamodb://access_key:secret_key@region/table" ] } } }
Alternatively, execution via npx (success not guaranteed):
{ "openctx.providers": { "https://openctx.org/npm/@openctx/provider-modelcontextprotocol": { "nodeCommand": "node", "mcp.provider.uri": "file:///usr/local/bin/npx", "mcp.provider.args": [ "-y", "-p", "mcp-notes", "mcp-notes-server", "--dynamodb", "dynamodb://access_key:secret_key@region/table" ] } } }
Cline Integration
Configure the cline_mcp_settings.json file as follows:
Access this file via the "Edit MCP Settings" button, situated adjacent to the "New Task" control near the "MCP Server" icon.
{ "mcpServers": { "mcp-memo-manager": { "command": "npx", "args": [ "-y", "-p", "mcp-notes", "mcp-notes-server", "--dynamodb", "dynamodb://access_key:secret_key@region/table" ] } } }
🚀 Launching Web Interfaces
The web component offers an intuitive graphical environment for data oversight. Initiate web interfaces to manage existing records, introduce fresh entries for AI processing, or refine content previously authored by an agent.
Execution via npx:
bash npx -p mcp-notes mcp-notes-web-server --dynamodb "dynamodb://access_key:secret_key@region/table"
Execution via bun:
bash bun src/notes-web-server.ts --dynamodb "dynamodb://access_key:secret_key@region/table"
Compilation path: Use
npm run buildfollowed by execution vianode dist/notes-mcp-server.jsornode dist/notes-web-server.js.
Access the interface at http://localhost:3100 in any standard web browser.
🛠️ Exposed MCP Procedures
listNotes
- Input Schema:
{ tags?: string[] } - Output Schema: A comprehensive array of all persisted memoranda, optionally filtered based on provided tag arrays.
getNote
- Input Schema:
{ id: string } - Output Schema: The singular record object corresponding to the specified identifier, or a standardized error indication if no match is detected.
writeNote
- Input Schema:
{ id: string, title: string, summary: string, tags: string[], content: string } - Output Schema: A procedural success confirmation signal.
deleteNote
- Input Schema:
{ id: string } - Output Schema: A message confirming the successful eradication of the item 🚮.
📝 Internal Data Schema
The structure utilized for persistence in the data store adheres to the following specification:
id: A universally unique identifier. It should be contextually meaningful, appended with a random numeric sequence (e.g., "strategy-review-4591").title: The designated title for the knowledge entry.summary: A concise abstract describing the record's core content.tags: A set of metadata labels (e.g., ["client-review", "q3-planning"]).content: The primary, detailed textual body of the knowledge item.
📸 Visual Representation
Claude Desktop View
✅ Fully Operational
Cody Interaction Status
✅ Resource Referencing Achieved
❎ Direct Tool Invocations Remain Unsupported
Cline Experience
✅ Seamless Tool Call Integration
❓ Resource discovery appears inconsistent; community assistance sought.
