MCPNotes
by: 9Ninety
A simple note-taking MCP server for recording and managing notes with AI models.
πOverview
Purpose: MCP Notes Server aims to facilitate the recording and management of complex notes and tasks, leveraging AI models while maintaining simplicity and privacy.
Overview: MCP Notes Server is a note-taking application built on the Model Context Protocol (MCP). It includes a dual-server architecture, consisting of a Node.js server for AI-driven note management and a web server that offers a user-friendly interface for manual note interactions. The application uses AWS DynamoDB for secure note storage, with a focus on flexible personal note management without public project dependencies.
Key Features:
-
Dual Server Architecture: Comprises an MCP server for AI-driven note management and a web server for user interaction, enhancing usability.
-
AI-Powered Note Taking: Facilitates the recording of thoughts and tasks through AI interactions, promoting efficiency in note management.
-
Comprehensive Note Management: Offers a full suite of note operations (create, list, retrieve, update, delete) via both AI and web interfaces, ensuring versatile user access.
-
Reliable Storage: Utilizes AWS DynamoDB for secure and efficient note storage, providing reliability and scalability.
-
Flexible Authentication: Supports connection via AWS credentials or environment variables, simplifying configuration for users.
-
Project-Independent: Allows personal note storage independent of project files, enhancing user privacy and flexibility in note-taking.
π MCP Notes
β¨ Overview
MCP Notes Server is a simple note-taking application built on the MCP protocol. It enables users to record and view complex notes and tasks while utilizing AI models for personal thoughts, inspirations, and insights. It does not rely on project files, allowing users to record any content privately.
This project includes two servers: a Node.js server using the Model Context Protocol (MCP) for AI-driven note management and a web server that provides a user-friendly interface for manual note interaction.
Note: This project requires AWS DynamoDB for note storage. An AWS account is needed, but DynamoDB has a generous free tier for personal use.
π― Core Features
- π₯οΈ Dual Server Architecture: MCP server for AI-driven note management and Web server for user interface
- π€ AI-Powered Note Taking: Record thoughts, insights, and tasks via AI interactions
- ποΈ Comprehensive Note Management: Create, list, retrieve, update, and delete notes via AI or web interface
- π Reliable Storage: Secure note storage with AWS DynamoDB
- π Flexible Authentication: Support for AWS credentials via connection strings or environment variables
- π Project-Independent: Store personal notes without affecting project files or structure
π€ Model Support
Compatible with any model supporting function calls as long as the client supports MCP. Tested models include:
- Claude 3.5 Series
- Gemini 1.5 and 2.0 Series
- GPT-4 Series
- Mistral Large
- Grok-2
- DeepSeek Chat
π οΈ Installation
Recommended:
Run directly with npx
or bunx
.
Alternative:
- Ensure Node.js is installed.
- Clone the repository and install dependencies:
npm install
- Configure tools like Claude Desktop as described.
βοΈ Credential Configuration
Connection String
dynamodb://<access_key>:<secret_key>@<region>/<table>
Example:
dynamodb://AKIAXXXXXXXX:SKXXXXXXXX@us-east-1/mcp-notes
Environment Variables
- Export
AWS_ACCESS_KEY_ID
andAWS_SECRET_ACCESS_KEY
. - Use connection URI without credentials:
dynamodb://us-east-1/mcp-notes
π€ Integration with Tools
Claude Desktop
Add to claude_desktop_config.json
:
{
"mcpServers": {
"mcp-notes": {
"command": "npx",
"args": [
"-y",
"-p",
"mcp-notes",
"mcp-notes-server",
"--dynamodb",
"dynamodb://access_key:secret_key@region/table"
]
}
}
}
Alternatively, run from local file:
{
"mcpServers": {
"mcp-notes": {
"command": "node",
"args": [
"file://path/to/notes-mcp-server.js",
"--dynamodb",
"dynamodb://access_key:secret_key@region/table"
]
}
}
}
Cody
Currently limited MCP server support:
- Only one server connection.
- Cannot make tool calls.
- Use web interface to create/manage notes, then reference them in AI chat.
Add to VS Code settings:
{
"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, use with npx
(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
Add to cline_mcp_settings.json
:
{
"mcpServers": {
"mcp-notes": {
"command": "npx",
"args": [
"-y",
"-p",
"mcp-notes",
"mcp-notes-server",
"--dynamodb",
"dynamodb://access_key:secret_key@region/table"
]
}
}
}
π Running Web Servers
Launch the web interface to manage notes:
npx -p mcp-notes mcp-notes-web-server --dynamodb "dynamodb://access_key:secret_key@region/table"
or
bun src/notes-web-server.ts --dynamodb "dynamodb://access_key:secret_key@region/table"
Alternatively, compile and run:
npm run build
node dist/notes-mcp-server.js
node dist/notes-web-server.js
Open your browser at http://localhost:3100
to view and manage notes.
π§ Available MCP Tools
listNotes
- Input:
{ tags?: string[] }
- Output: Array of notes, optionally filtered by tags.
getNote
- Input:
{ id: string }
- Output: Note object matching the ID or "not found" message.
writeNote
- Input:
{ id: string, title: string, summary: string, tags: string[], content: string }
- Output: Success confirmation.
deleteNote
- Input:
{ id: string }
- Output: Deletion confirmation message.
π Data Structure
Notes are structured as:
id
: Unique identifier (e.g., "meeting-notes-1362")title
: Note titlesummary
: Short summarytags
: Array of tags (e.g., ["meeting", "project-x"])content
: Main note content