MCP Notes Server
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 Notes Serveradd a note to buy groceries"
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 Notes Server
A small Model Context Protocol (MCP) server that gives an AI a personal notes / todo store. Built for learning.
What is MCP?
MCP is an open standard that lets an AI model call functions in your code.
You expose tools (functions with a name, description, and typed inputs);
the AI reads the descriptions and decides when to call them. Communication
here happens over stdio — the AI client launches notes-server.js and exchanges
JSON messages over stdin/stdout.
Related MCP server: MCP Personal Tools Server
Tools in this server
Tool | What it does |
| Add a new note/todo |
| List notes (filter: all / open / done) |
| Search notes by keyword |
| Mark a note done by id |
| Delete a note by id |
Notes are saved to notes.json next to the server, so they survive restarts.
Run it
npm install
npm start # prints "notes-server running on stdio" then waitsIt looks like it "hangs" — that's correct. It's waiting for an AI client to talk to it over stdin. Press Ctrl+C to stop.
Connect it to Claude Code (CLI)
claude mcp add notes -- node /home/tw/Documents/mcp/notes-server.jsThen in a Claude Code session, try: "Add a note to buy milk", then "list my open notes".
Available Tools
5 toolsadd_noteAdd a noteA
Add a new note or todo item to the store. Use this whenever the user wants to remember something, jot down a task, or create a todo.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The note or task text to save |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It only states the action without mentioning side effects, idempotency, constraints (e.g., text length limits), or what happens upon success (e.g., return value). This is insufficient for a tool with no annotation support.
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 two concise sentences that immediately convey the purpose and typical use cases. No superfluous words; every sentence adds value.
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 add tool with one parameter and no output schema, the description covers the core purpose and usage context adequately. It does not address potential error conditions or return values, but the simplicity of the tool mitigates the gap.
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 has full description coverage for the single parameter 'text'. The description adds no additional meaning beyond the schema's own description, so baseline score of 3 is appropriate.
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 (add) and the resource (note/todo item). It distinguishes from sibling tools like list_notes, search_notes, complete_note, and delete_note by specifying it's for creating new entries.
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 explicit use scenarios: 'whenever the user wants to remember something, jot down a task, or create a todo.' It does not explicitly mention when not to use this tool, but the sibling tools cover alternative operations, making it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
complete_noteComplete a noteA
Mark a note/todo as done, by its id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the note to mark as done |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states the basic action without disclosing side effects (e.g., idempotency, reversibility, or whether it modifies the note state permanently). Minimal behavioral insight.
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?
Description is very short and efficient, but could benefit from brief clarification about behavior (e.g., effect on already completed notes). No wasted words.
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 tool with one required parameter and no output schema, the description is mostly adequate. However, it could mention behavior if the note is already done or if completion is irreversible.
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% for the single 'id' parameter, and the description adds no additional meaning beyond what the schema already provides. Baseline score of 3 applies.
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?
Clearly states the action ('mark as done'), resource ('note/todo'), and method ('by its id'). Distinguishes from sibling tools like add_note or delete_note.
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 explicit guidance on when to use vs. alternatives. While the purpose is clear, the description lacks context such as prerequisites or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_noteDelete a noteA
Permanently delete a note/todo by its id.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The id of the note to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavioral traits. It mentions 'permanently' which implies irreversibility, but fails to disclose other important traits such as required permissions, side effects, or return 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, front-loaded sentence with no wasted words. It efficiently conveys the action and the required parameter.
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 one-parameter tool, the description is largely adequate. However, it lacks additional context about post-deletion state or error conditions, which could be beneficial.
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%, so baseline is 3. The description adds no additional meaning beyond the schema; it merely repeats the parameter's purpose ('by its id').
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 'Permanently delete a note/todo by its id.' This is a specific verb (delete) and resource (note/todo), and it distinguishes from siblings like add_note, list_notes, search_notes, and complete_note.
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 does not provide explicit when-to-use or when-not-to-use guidance, nor does it mention alternatives. It only states the action, leaving usage context implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_notesList notesA
List all saved notes/todos. Optionally filter to only show items that are still open (not done) or only completed ones.
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Which notes to show: all, open (not done), or done | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It discloses the filtering behavior but lacks details on return format, pagination, or any limits. It is adequate but not comprehensive.
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?
Two sentences with the verb front-loaded. Every sentence provides value with no redundancy or filler.
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 list tool with one parameter and no output schema, the description is adequate but could mention return format or ordering. It meets minimum viability but has gaps.
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 description repeats the enum values in natural language, adding no new information beyond the schema. Baseline 3 is appropriate.
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 'List all saved notes/todos' with optional filtering. The verb 'list' and resource 'notes/todos' are specific, and it distinguishes from siblings like add_note, search_notes, complete_note, delete_note.
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 mentions optional filtering for open or done items, providing clear context for when to use parameters. However, it does not explicitly contrast with search_notes or specify when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_notesSearch notesA
Search notes by a keyword. Returns any note whose text contains the query (case-insensitive).
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keyword or phrase to search for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses case-insensitive matching and that any note containing the query is returned. However, lacks details on return format, empty results, pagination, or limits. With no annotations, more could be said.
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?
Extremely concise: two sentences with no wasted words. Every part adds clarity.
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 simplicity (1 parameter, no output schema), description adequately covers purpose and matching behavior. Minor gap: not specifying what fields are returned (e.g., full note or IDs).
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% with a basic description for 'query'. The tool description adds value by specifying case-insensitive search and the behavior of matching against text, going beyond the schema.
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?
Clearly states the verb 'search' and resource 'notes', with specific behavior (case-insensitive text matching). Distinguishes from siblings like add_note, list_notes, complete_note, delete_note.
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?
Implied usage for keyword-based search, but no explicit when-not-to-use or alternatives. Lacks exclusions or context on when list_notes would be more appropriate.
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. Dates show when Glama detected each change.
5 tool updates
v1.0.0- First observed
add_note - First observed
complete_note - First observed
delete_note - First observed
list_notes - First observed
search_notes
TDQS
Each tool has a clear, distinct purpose (add, list, search, complete, delete) with no overlapping functionality. An agent can easily distinguish them.
All tools follow a consistent verb_noun pattern (e.g., add_note, delete_note) with no deviations, making the naming predictable.
5 tools is well-suited for a notes server, covering essential operations without being overly sparse or bloated.
The set covers basic CRUD operations but lacks an update tool for editing note content, which is a notable gap. Users must delete and re-add to modify text.
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 Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA simple Model Context Protocol (MCP) server that integrates with Notion's API to manage my personal todo list through Claude.209MIT
- AlicenseBqualityDmaintenanceA simple server implementing the Model Context Protocol (MCP) that exposes personal tools like note-taking for compatible MCP clients or agents.22,013MIT
- FlicenseBqualityDmaintenanceA simple server for saving, listing, and searching notes persisted to a local JSON file. It enables users to manage their personal notes using natural language via the Model Context Protocol.3-
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol (MCP) server that gives Claude a persistent personal notebook. Notes are stored on disk as JSON, so they survive restarts and are shared across every tool and resource.-
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/abhi4pr/Learning-mcp-servers'
If you have feedback or need assistance with the MCP directory API, please join our Discord server