MCP Personal Notes Server
Provides tools for managing personal notes persisted in a PostgreSQL database, including creating, listing, retrieving, searching, and deleting notes.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Personal Notes Serversearch my notes for anything about MCP"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π MCP Personal Notes Server
A beginner-friendly Model Context Protocol (MCP) server that lets AI applications manage personal notes through structured tools.
π Live Demo
Server: https://mcp-personal-notes-server.onrender.com/
MCP Endpoint: https://mcp-personal-notes-server.onrender.com/mcp
The root URL intentionally returns a small JSON status response. The
/mcp endpoint is the actual MCP protocol endpoint and is meant to be
used by an MCP client or MCP Inspector.
Related MCP server: Beeper MCP Note Server
πΈ Project Screenshots
π Live Server
The deployed server returns a health/status response from the root URL.

π MCP Inspector β Connected
The deployed Streamable HTTP MCP endpoint is connected successfully through MCP Inspector.

π§° Available MCP Tools
The server exposes five note-management tools: save_note, list_notes, get_note, search_notes, and delete_note.

π Save Note
A note can be created directly through the save_note MCP tool.

ποΈ PostgreSQL Database
Notes created through the MCP server are persisted in PostgreSQL.

βοΈ Render Deployment
The production logs show PostgreSQL initialization, the MCP server starting, and the deployed service becoming available.

π‘ What is this project?
The MCP Personal Notes Server is a simple project for learning how the Model Context Protocol works.
Instead of building a traditional notes REST API, this project exposes note-management capabilities as MCP tools.
An MCP-compatible AI client can use tools such as:
save_notelist_notesget_notesearch_notesdelete_note
The project demonstrates the complete flow:
AI / MCP Client
β
β MCP
βΌ
MCP Personal Notes Server
β
β SQL
βΌ
PostgreSQL⨠Features
π Create personal notes
π List saved notes
π Search notes by title, content, or category
π Retrieve a note by ID
ποΈ Delete notes
ποΈ PostgreSQL persistence
π Deployed MCP endpoint
π Environment-variable based database configuration
π§ͺ Testable with MCP Inspector
π¦ Beginner-friendly Node.js implementation
π οΈ Tech Stack
Technology Purpose
JavaScript Application language Node.js Runtime Express.js HTTP server MCP SDK Model Context Protocol implementation PostgreSQL Persistent database Neon Hosted PostgreSQL Render Application deployment MCP Inspector MCP testing
π§° MCP Tools
1. save_note
Creates a new note.
Input:
{
"title": "Learn MCP",
"content": "Understand how MCP tools work.",
"category": "Learning"
}2. list_notes
Returns all saved notes.
Input:
{}3. get_note
Retrieves one note using its UUID.
Input:
{
"id": "NOTE_UUID"
}4. search_notes
Searches note title, content, and category.
Input:
{
"query": "MCP"
}5. delete_note
Deletes a note using its UUID.
Input:
{
"id": "NOTE_UUID"
}ποΈ Architecture
βββββββββββββββββββββββ
β AI / MCP Client β
ββββββββββββ¬βββββββββββ
β
β MCP / HTTP
βΌ
βββββββββββββββββββββββββββββββ
β MCP Personal Notes Server β
β β
β save_note β
β list_notes β
β get_note β
β search_notes β
β delete_note β
ββββββββββββββββ¬βββββββββββββββ
β
β SQL
βΌ
βββββββββββββββββββββββββββββββ
β PostgreSQL β
β β
β notes β
βββββββββββββββββββββββββββββββDeployment Architecture
GitHub
β
β Deploy from repository
βΌ
Render
β
β DATABASE_URL
βΌ
Neon PostgreSQLπ Project Structure
mcp-personal-notes-server/
β
βββ src/
β βββ server.js
β βββ database.js
β βββ database-init.js
β βββ storage.js
β β
β βββ tools/
β βββ notes.js
β
βββ .env
βββ .gitignore
βββ package.json
βββ package-lock.json
βββ README.mdImportant files
src/server.js
Creates the Express application, MCP server, HTTP transport, health
endpoint, and /mcp endpoint.
src/database.js
Creates the PostgreSQL connection pool.
src/database-init.js
Creates the notes table when the server starts.
src/storage.js
Contains database operations for creating, reading, searching, and deleting notes.
src/tools/notes.js
Registers the five MCP tools.
βοΈ Run Locally
1. Clone the repository
git clone https://github.com/SRCarlo/mcp-personal-notes-server.git
cd mcp-personal-notes-server2. Install dependencies
npm install3. Create .env
Create a .env file in the project root:
PORT=3000
DATABASE_URL=YOUR_POSTGRESQL_CONNECTION_STRINGNever commit .env to GitHub.
4. Start development server
npm run devExpected output:
PostgreSQL connected successfully.
Database initialized successfully.
MCP Personal Notes Server running on port 3000
MCP endpoint: http://localhost:3000/mcp5. Check health
Open:
http://localhost:3000/healthExpected:
{
"status": "healthy"
}π§ͺ Test with MCP Inspector
Start MCP Inspector:
npx @modelcontextprotocol/inspectorFor local testing use:
http://localhost:3000/mcpFor the deployed server use:
https://mcp-personal-notes-server.onrender.com/mcpSelect:
Streamable HTTPAfter connecting, open the Tools tab.
You should see:
save_note
list_notes
get_note
search_notes
delete_noteβοΈ Deployment
This project is deployed using:
Render for the Node.js MCP server
Neon for PostgreSQL
Render configuration
Build Command
npm installStart Command
npm startEnvironment variables
NODE_ENV=production
DATABASE_URL=YOUR_NEON_CONNECTION_STRINGThe application uses Render's PORT environment variable automatically:
const PORT = process.env.PORT || 3000;π Security
This project follows a few basic security practices:
Database credentials are stored in environment variables.
.envis excluded from Git.SQL queries use PostgreSQL parameterized queries.
The application does not expose the database connection string.
Production configuration is supplied through Render environment variables.
Never publish your real DATABASE_URL in source code or GitHub.
π§ What I Learned
This project was built to understand:
What MCP is
How MCP servers expose tools
How an AI client can discover and call tools
Streamable HTTP transport
Node.js server development
PostgreSQL integration
Environment variables
MCP Inspector testing
Git and GitHub workflow
Cloud deployment
Connecting a deployed MCP server to an MCP client
πΊοΈ Future Improvements
Possible next versions:
Add
update_noteAdd
get_recent_notesAdd tags
Add pagination
Add authentication
Add note ownership/user accounts
Add full-text PostgreSQL search
Add automated tests
Add CI/CD with GitHub Actions
Connect to an AI client for natural-language note management
π― Example AI Workflow
Once connected to an MCP-compatible AI client, the goal is to support natural-language requests such as:
Save a note titled "Learn Spring Boot" with the content "Study Spring Security and REST APIs" under the category "Learning".
The AI can discover the available MCP tools and call:
save_note()The resulting note is stored in PostgreSQL.
Another request could be:
Find my notes about MCP.
The AI can use:
search_notes()This is the main idea behind the project:
Natural Language
β
AI
β
MCP Tool
β
Your Server
β
PostgreSQLπ Project Status
Status: π’ Deployed and working
MCP Transport: Streamable HTTP
Database: PostgreSQL
Deployment: Render + Neon
Testing: MCP Inspector
π¨βπ» Author
Shubham Raut β SRCarlo
Full Stack Java Developer | AI β’ Gen AI β’ IoT β’ Cloud
I build full-stack applications, AI-powered projects, and developer-focused tools while continuously exploring new technologies.
π GitHub: @SRCarlo | π Portfolio: Shubham Raut | πΌ LinkedIn: Shubham Raut
π License
This project is available under the MIT License.
β Support
If you found this project useful for learning MCP, AI tools, or backend development, consider giving the repository a β.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseBqualityDmaintenanceAn MCP server for managing and persisting notes, offering CRUD operations, note summarization, and resource-based access via a note:// URI scheme.47MIT
- Flicense-qualityDmaintenanceA simple MCP server for creating and managing notes with support for summarization functionality.1
- Flicense-qualityCmaintenanceA minimal MCP server for persistent note-taking, enabling create, update, delete, and search of notes with tags, plus resource-based retrieval of all notes or by title.
- Flicense-qualityDmaintenanceA simple notes MCP server that enables creating, listing, and summarizing text notes via resources, tools, and prompts.
Related MCP Connectors
MCP server for managing Prisma Postgres.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
A basic MCP server to operate on the Postman API.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/SRCarlo/mcp-personal-notes-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server