Permissioned MCP Server
This server provides a minimal, permissioned note-taking system over MCP, supporting listing, reading, creating, and deleting notes with scope-based access control. Tools are hidden or rejected based on granted scopes.
List notes (
notes.list): Retrieve metadata for all notes (no bodies). Read-only and idempotent. Requiresnotes:readscope.Read a note (
notes.get): Get full content by UUID. Read-only and idempotent. Requiresnotes:readscope.Create a note (
notes.create): Add a note with a title (max 120 characters) and body (max 10,000 characters). Requiresnotes:writescope.Delete a note (
notes.delete): Permanently remove a note by UUID. Requiresnotes:adminscope (not exposed in schema by default). Destructive operations require a confirmation step.
Additional safety and persistence features: Unauthorized tools are omitted from discovery and rejected at execution; audit logs exclude sensitive content; notes are stored locally with atomic writes and restrictive file permissions.
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., "@Permissioned MCP Serverlist my notes"
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.
Permissioned MCP Server
A compact Model Context Protocol server that demonstrates the parts usually missing from quickstarts: explicit tool boundaries, least-privilege discovery, execution-time authorization, destructive-action confirmation, and metadata-only audit logs.
The domain is deliberately boring: a local note store. The reference is about designing a safe boundary between an AI agent and real side effects.
What it demonstrates
JavaScript on Node.js with the official MCP SDK v2
Narrow read, write, and destructive tools
Separate
notes:read,notes:write, andnotes:adminscopesUnauthorized tools omitted from
tools/listand rejected again at executionIdentifier-bound confirmation for destructive actions
Structured tool results and MCP behavior annotations
Audit events that never log arguments, content, or credentials
Atomic local persistence with restrictive file permissions
Tests for policy, handlers, persistence, and failure cases
Related MCP server: local-evidence-mcp
Run it
Requires Node.js twenty or newer.
npm install
cp .env.example .env
MCP_SCOPES=notes:read,notes:write npm startExample client configuration:
{
"mcpServers": {
"permissioned-notes": {
"command": "node",
"args": ["/absolute/path/to/permissioned-mcp-server/src/server.js"],
"env": {
"MCP_SCOPES": "notes:read,notes:write",
"MCP_DATA_FILE": "/absolute/path/to/notes.json",
"MCP_ACTOR": "local-agent"
}
}
}
}Start read-only. Grant notes:write only when mutation is necessary. Keep notes:admin out of the default configuration.
Tool boundary
Tool | Scope | Side effect |
|
| Returns metadata only |
|
| Reads one note |
|
| Creates one note |
|
| Permanently deletes one note |
See the decision record for the reasoning behind discovery filtering, double authorization, confirmation design, audit redaction, transport choice, and storage isolation.
Verify it
npm run check
npm testThe test suite never starts a model or calls a paid API.
Production notes
This is a local stdio reference, not a turnkey hosted authorization server. Before exposing an MCP server over Streamable HTTP, add OAuth-based authorization, token audience validation, HTTPS, rate limits, tenant isolation, durable audit storage, and client-specific consent.
License
MIT
Built by Lanier, an applied AI studio. More free tools at lanierdev.com/tools.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Tools
Related MCP Servers
- AlicenseCqualityCmaintenanceAn educational MCP server exposing shell command execution (PowerShell and sh) and a benign tool for learning about MCP tools, resources, and security risks like tool poisoning.32MIT
- AlicenseAqualityBmaintenanceA local-first MCP server for retrieving a small evidence set and recording reviewed conclusions, policy-gated and redacted without giving an agent general filesystem access.5MIT
- Alicense-qualityAmaintenanceA portfolio MCP server demonstrating four tools (web search, database query, file reading, directory listing) with read-only SQL, filesystem sandbox, and both stdio and HTTP transports.MIT
- AlicenseBqualityBmaintenanceA deliberately small MCP server that demonstrates security hardening against the OWASP MCP Top 10 with tools for file search, record queries, and document fetching, each defended against path traversal, SQL injection, and SSRF.4MIT
Related MCP Connectors
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
An MCP server for deep research or task groups
Hosted MCP server for personal tools: budgets, savings goals, spaced repetition, tips, countdowns.
Appeared in Searches
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/sn0bored/permissioned-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server