Note App MCP 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., "@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: MCP Notes 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 installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- 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/hothienlac/mcp_demo'
If you have feedback or need assistance with the MCP directory API, please join our Discord server