notes-mcp
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., "@notes-mcpappend a quick thought to today's daily note"
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.
notes-mcp
A remote MCP server that captures notes into a Git-backed Markdown vault (Obsidian-friendly). Deploy your own instance to Cloudflare Workers in one click.
What & why
notes-mcp lets any MCP client — Claude, Claude Desktop, Cursor, and others — append and create Markdown notes directly in a GitHub repository. It's designed for an Obsidian vault synced via git (obsidian-git): capture a thought from a chat with Claude, and it shows up in your vault the next time Obsidian pulls.
Each deployment is single-tenant — you run your own instance, pointed at your own notes repo, protected by your own auth token. Nothing is hardcoded; everything is configuration.
Features
Five focused tools: append to a note, create/overwrite a note, append to today's daily note, read a note, list a directory.
Single-file edge deploy — one Cloudflare Worker, no servers to manage.
Runs on Cloudflare's free tier.
Works with any Git-backed Markdown vault, not just Obsidian.
Token-guarded — every request to
/mcprequires a bearer token you control.
How it works
MCP client → Worker (/mcp) → GitHub Contents API → your notes repo → Obsidian Git pulls itYour MCP client calls a tool (e.g. append_note). The Worker authenticates the request, then reads/writes the target file through the GitHub Contents API, which creates a commit. The note appears on your other devices the next time Obsidian Git pulls — tune its auto-pull / pull-on-startup settings for how fresh you want that to be.
Prerequisites
A Cloudflare account (free tier is enough).
A GitHub repository to hold your notes (can be the same repo as your Obsidian vault).
A fine-grained GitHub Personal Access Token scoped to that repo.
Create the PAT
Click Fine-grained tokens → Generate new token.
Set Resource owner to yourself (or the org that owns your notes repo).
Under Repository access, choose Only select repositories and pick your notes repo.
Under Repository permissions, set Contents to Read and write. Leave everything else as No access.
Generate the token and copy it — you'll only see it once.
Deploy
A. One-click deploy
Click the Deploy to Cloudflare button above.
Cloudflare will fork/clone this repo and prompt you for the two secrets below (
GITHUB_PAT,MCP_AUTH_TOKEN) during setup.After deploying, open your Worker in the Cloudflare dashboard and set the
vars(GITHUB_OWNER,GITHUB_REPO, etc.) under Settings → Variables.
B. CLI
git clone https://github.com/Vontk/notes-mcp.git
cd notes-mcp
npm install
# Edit the "vars" block in wrangler.jsonc for your repo/timezone/etc.
npx wrangler secret put GITHUB_PAT
npx wrangler secret put MCP_AUTH_TOKEN # e.g. generate with: openssl rand -hex 32
npm run deployConfiguration
Name | Kind | Required | Description | Example |
| var | yes | GitHub username or org that owns the notes repo. |
|
| var | yes | Name of the notes repo. |
|
| var | no | Branch to commit to. Empty string uses the repo's default branch. |
|
| var | no | File used by |
|
| var | no | IANA timezone used to compute daily note dates. Defaults to |
|
| secret | yes | Fine-grained PAT with Contents: Read and write on the notes repo only. | (set via |
| secret | yes | Shared secret required on every request to | (set via |
Connect to Claude
Claude.ai (custom connector):
Click + Add custom connector.
URL:
https://<your-worker>.<your-subdomain>.workers.dev/mcpPass your token either as an
Authorization: Bearer <MCP_AUTH_TOKEN>header, or by appending?token=<MCP_AUTH_TOKEN>to the URL.
Claude Desktop / other clients (via mcp-remote):
{
"mcpServers": {
"notes-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"https://<your-worker>.<your-subdomain>.workers.dev/mcp?token=<MCP_AUTH_TOKEN>"
]
}
}
}Tools
Tool | Params | What it does | Example |
|
| Appends a line to a note, creating it if needed. | Append "buy milk" to |
|
| Creates a note, or overwrites it if it already exists. | Write a new |
|
| Appends a line to today's daily note ( | Append "stand-up notes" to |
|
| Returns the contents of a note. | Read |
|
| Lists files and folders in a directory (repo root if omitted). | List |
Security
Each deployment is single-tenant: one Worker, one notes repo, one token.
Keep
MCP_AUTH_TOKENsecret — anyone with it can read and write to your notes repo through this Worker.Scope
GITHUB_PATto exactly one repository with Contents: Read and write only.Never commit secrets.
.dev.varsand.wranglerare gitignored; use.dev.vars.exampleas a template.To rotate a credential, generate a new value and run
wrangler secret put <NAME>again — it overwrites the existing secret immediately.
Local dev
npm startTest it with the MCP Inspector:
npx @modelcontextprotocol/inspectorPoint it at http://localhost:8787/mcp with your MCP_AUTH_TOKEN from .dev.vars.
Testing / CI
npm run typecheck
npm run lint
npm testci.yml runs all three on every pull request and push. deploy.yml deploys to Cloudflare on every push to main, once those checks pass — it needs two repo secrets under Settings → Secrets and variables → Actions:
CLOUDFLARE_API_TOKENCLOUDFLARE_ACCOUNT_ID
Contributing
Issues and pull requests are welcome. Please run npm run lint, npm run typecheck, and npm test before submitting.
License
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.
Related MCP Connectors
Markdown-based note-taking with a hosted MCP server. Your notes serve you and your AI.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- 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/Vontk/notes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server