Note App MCP Server
Click on "Deploy 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., "@Note App MCP ServerCreate a note called 'Grocery list' with items: milk, eggs, bread."
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.
Note App — FastAPI + MCP Demo
A simple JWT-authenticated note-taking API built with FastAPI, backed by SQLite via SQLAlchemy, and exposed as MCP tools for agents using fastapi-mcp.
Requirements
Python 3.13+
Node.js (only needed to run the MCP Inspector via
npx)
Related MCP server: Notes MCP Server
Setup
python -m venv venv
source venv/bin/activate
pip install -r requirements.txtCreate a .env file in the project root (see src/environment.py for the full list of settings):
USERNAME=admin
PASSWORD=changeme
JWT_SECRET=some-long-random-secret
JWT_EXPIRATION_MINUTES=60 # optional, defaults to 60Running the server
python server.pyThis starts uvicorn on http://0.0.0.0:8000, serving src.app:app.
Swagger UI: http://localhost:8000/docs
The root URL
/redirects to/docs
Authentication
Get an access token:
curl -X POST http://localhost:8000/auth/login \
-H "Content-Type: application/json" \
-d '{"username": "admin", "password": "changeme"}'Use the returned access_token as a Bearer token on all /notes endpoints:
curl http://localhost:8000/notes/ \
-H "Authorization: Bearer <access_token>"Notes API
Method | Path | Description |
GET |
| List notes |
GET |
| Get a note |
POST |
| Create a note |
PUT |
| Update a note |
DELETE |
| Delete a note |
Using the MCP server
The app mounts an MCP server at /mcp, exposing every endpoint tagged Note as an MCP tool. Requests require the same Bearer token as the REST API, forwarded via the authorization header.
Inspecting it with MCP Inspector
Start the server:
python server.pyIn a separate terminal, launch the inspector:
npx @modelcontextprotocol/inspectorIn the inspector UI, set:
Transport: Streamable HTTP
URL:
http://127.0.0.1:8000/mcpHeader:
Authorization: Bearer <access_token>(obtained from/auth/login)
Click Connect, go to the Tools tab, and click List Tools to see
list_notes,get_note,create_note,update_note,delete_note.Select a tool, fill in parameters, and click Run Tool to test it.
Connecting from an MCP client (e.g. Claude Desktop)
Since the server requires auth headers, use mcp-remote as a bridge:
{
"mcpServers": {
"note-app": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8000/mcp",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "Bearer <access_token>"
}
}
}
}Project structure
server.py # entrypoint (uvicorn runner)
src/
app.py # FastAPI app + MCP mount
environment.py # settings loaded from .env
modules/
auth/ # login route, JWT issuing/verification
note/ # notes CRUD (model, schema, service, route)
sqlalchemy/ # base model + engine/session setupDev tooling
Config files are included for:
ruff check . # linting (ruff.toml)
mypy . # type checking (mypy.ini)This server cannot be deployed
Maintenance
Related MCP Connectors
Google Keep-style notes app with an MCP server for AI agents to read/write notes.
An MCP server that used to create notes
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA 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.-
- FlicenseNot gradedqualityCmaintenanceA learning-oriented MCP server for managing notes, providing tools to create, list, get, update, delete, and search notes, along with resources and prompt templates.4 npm-
- FlicenseNot gradedqualityCmaintenanceMCP server for a full-stack note-taking application, exposing CRUD tools for notes with SSE transport for AI agent integration.1-
- AlicenseNot gradedqualityBmaintenanceA personal note store exposed as an MCP server. Enables any MCP-speaking assistant to create, search, list, and categorize notes, with per-client bearer tokens for author attribution.259 npmMIT