About Notes Fastmcp
Notes Fastmcp is an MCP server in the Productivity category.
Install
git clone https://github.com/bhaveshdaswani93/notes-fastmcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Notes Fastmcp
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
5 checks have not been run yet.
README
FastMCP Todo MCP Server with Scalekit Authentication
A production-ready Python-based Model Context Protocol (MCP) server using FastMCP with Scalekit OAuth 2.1 authentication. It exposes in-memory CRUD tooling for managing todo items.
Features
- Scalekit OAuth 2.1: Secure authentication with scope-based authorization
- In-Memory Todo Store: Create, read, update, and delete todos without external storage
- FastMCP Backend: Modern, fast Python MCP server
- Simple Tool Registration: Easily extend with additional tools
- .env Support: Environment-based configuration
Quick Start
Register your MCP server on Scalekit
- Login to your Scalekit Dashboard -> MCP Servers -> Add MCP Server
- Server URL =
http://localhost:3002/should have a trailing slash - Create/Associate two scopes with your MCP server:
todo:readwith descriptionRead todostodo:writewith descriptionCreate or modify todos
- Hit Save
MCP server runtime
-
Create Virtual Environment (Python 3.11+ required):
python3.11 -m venv venv source venv/bin/activate -
Install Dependencies:
pip install -r requirements.txt -
Configure Environment:
cp env.example .env # Edit .env with your Scalekit credentials and server settingsPORT: (optional) The port the server will listen on. Defaults to 3002.SCALEKIT_ENVIRONMENT_URL: Your Scalekit environment URL (required).SCALEKIT_RESOURCE_ID: Your Scalekit MCP server resource ID (required).MCP_BASE_URL: The MCP server URL as registered in the Scalekit dashboard (required; e.g.,http://localhost:3002/). This MUST have a trailing slash.
Note: After editing
.env, restart the server for changes to take effect. -
Run the Server:
python server.pyThe server will start on
http://localhost:3002/(or the port you set in.env).
Connect to your todo MCP server
You can use any MCP-compatible client to interact with your todo MCP server. For testing, you can use mcp-inspector
- Start mcp-inspector:
npx @modelcontextprotocol/inspector@latest - In the UI, set the MCP URL to
http://localhost:3002/(or your configured URL) and connect. You can now use the available tools.
Available Tools
create_todo
- Description: Create a new todo item
- Scopes Required:
todo:write - Parameters:
title(string) - Todo titledescription(optional string) - Todo description
list_todos
- Description: List todos, optionally filtering by completion state
- Scopes Required:
todo:read - Parameters:
completed(optional boolean) - When provided, return only todos with this completion status
get_todo
- Description: Retrieve a single todo by ID
- Scopes Required:
todo:read - Parameters:
todo_id(string) - Identifier returned bycreate_todo
update_todo
- Description: Update fields on an existing todo
- Scopes Required:
todo:write - Parameters:
todo_id(string) - Identifier returned bycreate_todotitle(optional string) - New titledescription(optional string) - New descriptioncompleted(optional boolean) - Updated completion state
delete_todo
- Description: Delete a todo by ID
- Scopes Required:
todo:write - Parameters:
todo_id(string) - Identifier returned bycreate_todo
Authentication
The server implements Scalekit OAuth 2.1 authentication:
- Bearer Token Validation: All MCP requests require valid Bearer tokens
- Public Endpoints: OAuth discovery endpoint are publicly accessible
- OAuth 2.1 Compliance: Returns proper error responses
API Endpoints
| Endpoint | Method | Description | Auth Required |
|---|---|---|---|
/.well-known/oauth-protected-resource |
GET | OAuth 2.1 metadata discovery | No |
/mcp |
POST | MCP protocol communication | Yes |
Environment Variables
| Variable | Description | Default | Required |
|---|---|---|---|
SCALEKIT_ENVIRONMENT_URL |
Scalekit environment URL | - | Yes |
SCALEKIT_RESOURCE_ID |
Scalekit MCP server resource ID | - | Yes |
MCP_BASE_URL |
The MCP server URL as registered in the Scalekit dashboard (e.g., http://localhost:3002/). This MUST have a trailing slash. |
- | Yes |
PORT |
Server port | 3002 |
No |
Development
Adding New Tools
-
Define and register the tool in
server.py:@mcp.tool def your_tool(param: str) -> str: """Describe your tool here.""" return "result" -
Document the tool in this README under "Available Tools".
License
This project is licensed under the MIT License.
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.