Skip to main content
Glama
abhi4pr

MCP Notes Server

by abhi4pr

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_note

Add a new note/todo

list_notes

List notes (filter: all / open / done)

search_notes

Search notes by keyword

complete_note

Mark a note done by id

delete_note

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 waits

It 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.js

Then in a Claude Code session, try: "Add a note to buy milk", then "list my open notes".

Available Tools

5 tools
add_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe note or task text to save

TDQS

A3.8/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe id of the note to mark as done

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThe id of the note to delete

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
filterNoWhich notes to show: all, open (not done), or doneall

TDQS

A3.9/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesKeyword or phrase to search for

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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.

  1. 5 tool updatesv1.0.0
    • First observedadd_note
    • First observedcomplete_note
    • First observeddelete_note
    • First observedlist_notes
    • First observedsearch_notes

TDQS

A3.9/5.0
Disambiguation5/5

Each tool has a clear, distinct purpose (add, list, search, complete, delete) with no overlapping functionality. An agent can easily distinguish them.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern (e.g., add_note, delete_note) with no deviations, making the naming predictable.

Tool Count5/5

5 tools is well-suited for a notes server, covering essential operations without being overly sparse or bloated.

Completeness3/5

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

ActivityMaintained
ResponsivenessNo issues

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

Related MCP Servers

Latest Blog Posts

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