Skip to main content
Glama
fastmcp-notes

fastmcp-notes

by ketcx

fastmcp-notes

A FastMCP v3 feature showcase: a note-taking knowledge base exposed as an MCP server.

Features demonstrated

  • Tools -- CRUD operations on notes with tag categorization

  • Resources -- note listing (static URI) and note detail (URI template)

  • Prompts -- parameterized templates for note analysis and brainstorming

  • Context -- structured logging (ctx.info), progress reporting (ctx.report_progress), and cross-resource reads (ctx.read_resource)

  • Lifespan -- server startup/shutdown lifecycle with shared state

  • Error handling -- ToolError for domain-specific errors

Related MCP server: Notes MCP Server

Setup

git clone <repo-url>
cd fastmcp-notes
uv sync

Usage

Run the server (stdio, for Claude Desktop)

fastmcp run server.py

Run the server (HTTP, for the client demo)

fastmcp run server.py -t streamable-http -p 8000

Run the client demo

# In another terminal, with the server running on port 8000:
python client.py

Claude Desktop configuration

Add to ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "notes": {
      "command": "uv",
      "args": [
        "run", "--directory", "/absolute/path/to/fastmcp-notes",
        "fastmcp", "run", "server.py"
      ]
    }
  }
}

Screenshots

Creating a note via Claude Desktop

Creating a note

Prompts and resources available from the + menu

Prompts and resources

Reading a note by title

Reading a note

Project structure

server.py    # MCP server -- tools, resources, prompts, lifespan, error handling
client.py    # Async client demo

License

MIT

Available Tools

4 tools
create_noteC

Create a new note.

Inputs: title (required), content (required), tags. Returns: object

delete_noteB

Delete a note by ID.

Inputs: note_id (required). Returns: result

read_noteB

Read a note by ID. Demonstrates ctx.read_resource().

Inputs: note_id (required). Returns: result

search_notesA

Search notes by keyword in title or content.

Inputs: query (required). Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.5/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a unique and clearly defined purpose: creating, searching, reading, or deleting a note. There is no overlap or ambiguity between the operations.

    Naming Consistency5/5

    All tools follow the same verb_noun naming pattern (create_note, search_notes, read_note, delete_note), making the API predictable and easy to navigate.

    Tool Count5/5

    Four tools is an appropriate size for a simple notes server, covering the core operations without unnecessary bloat or fragmentation.

    Completeness4/5

    The server covers create, read, search, and delete, but there is no update operation for notes. This is a minor gap that agents can work around by deleting and recreating, but it is still missing from a typical notes lifecycle.

    Related MCP Connectors

    Related MCP Servers