loading…
Search for a command to run...
loading…
A governance and control layer for MCP tools that manages tool requests as intents through policy-based approval, queuing, or blocking. It enables secure human
A governance and control layer for MCP tools that manages tool requests as intents through policy-based approval, queuing, or blocking. It enables secure human oversight and audit trails for consequential agent actions across platforms like Claude Desktop and Cursor.
Package page Config generator Default pack Raw MCP comparison
Official public MCP package for NORNR, the control layer before consequential MCP tool execution.
This repo is intentionally thin.
It exists to make NORNR easy to discover, install and evaluate from MCP-native surfaces such as:
The governance logic lives in the official NORNR Python SDK:
nornr-agentpayThe shortest correct reading is:
NORNR is not only the decision layer before execution. It is also the emergency stop layer when a local lane becomes unsafe.
Use it when a desktop or local agent:
The right mental model is not "best effort warnings." It is controlled release, controlled pause and controlled recovery.
NORNR is not another MCP tool.
It is the control layer above consequential MCP tools.
That means:
This repo is not:
It is a public install surface for the official NORNR MCP control server.
Raw MCP tool execution exposes capability. It does not answer the harder questions:
NORNR adds the missing layer before the downstream tool, provider or vendor step clears.
python -m pip install -r requirements.txt
export NORNR_API_KEY="replace-with-your-key"
export NORNR_BASE_URL="https://nornr.com"
export NORNR_AGENT_ID="desktop-agent"
python nornr_mcp_control.py claude-config
python nornr_mcp_control.py serve
{
"mcpServers": {
"nornr": {
"command": "python3",
"args": [
"/absolute/path/to/nornr_mcp_control.py",
"serve"
],
"env": {
"NORNR_API_KEY": "replace-with-your-key",
"NORNR_BASE_URL": "https://nornr.com",
"NORNR_AGENT_ID": "desktop-agent"
}
}
}
}
{
"mcpServers": {
"nornr": {
"command": "python3",
"args": [
"/absolute/path/to/nornr_mcp_control.py",
"serve"
],
"env": {
"NORNR_API_KEY": "replace-with-your-key",
"NORNR_BASE_URL": "https://nornr.com",
"NORNR_AGENT_ID": "cursor-agent"
}
}
}
}
Use the generator commands if you want the exact JSON from the SDK:
python nornr_mcp_control.py claude-config
python nornr_mcp_control.py cursor-config
python nornr_mcp_control.py manifest
Add this to .cursorrules if Cursor is allowed to use local tools through NORNR:
Use NORNR as the control layer before consequential tool execution.
Do not proceed with a paid, vendor-side or policy-sensitive action until NORNR returns approved or a named operator explicitly approves the queued intent.
Treat queued, blocked, anomalous or review-required posture as a stop state for autonomous execution.
Prompt injection can change what the model wants to do. It should not change what the lane is allowed to do.
That is why NORNR sits above execution:
The right promise is not "the model becomes safe." It is that the control layer still holds when the model becomes unreliable.
The fastest visual explanation is the same four-step still sequence every time:
Start from mcp-local-tools-guarded.
That is the default first posture when a local MCP client can reach:
The goal is not to govern every local action on day one. The goal is to install one defended local lane first.
Do not start with config first if the team already ships an agent repo.
Run a NORNR Governance Audit against the repo first, name the exposed paths, and then install the MCP control server where consequential local execution actually needs review.
Queued does not mean proceed carefully. It means stop the autonomous path and route it into review.
Do not let the MCP client proceed with a consequential tool action until NORNR returns approved or a named operator explicitly approves the queued intent.
Treat queued, blocked, anomalous or prompt-risk posture as review states, not autonomous green lights.
nornr_mcp_control.py — thin stdio MCP server wrapperrequirements.txt — pinned NORNR SDK dependencySECURITY.md — dependency provenance and key-scope guidanceconfigs/ — copy-paste client snippets.cursorrules.example — Cursor operating rule exampleThis repo stays intentionally small.
The actual control-plane logic is delegated to the official NORNR Python SDK:
nornr-agentpay==0.1.0agentpayIf your team requires dependency review, inspect the pinned SDK release before enabling this server in production workflows.
MIT-0. See LICENSE.
Добавь это в claude_desktop_config.json и перезапусти Claude Desktop.
{
"mcpServers": {
"nornr-mcp-control": {
"command": "npx",
"args": []
}
}
}Web content fetching and conversion for efficient LLM usage.
Retrieval from AWS Knowledge Base using Bedrock Agent Runtime.
Provides auto-configuration for setting up an MCP server in Spring Boot applications.
A very streamlined mcp client that supports calling and monitoring stdio/sse/streamableHttp, and can also view request responses through the /logs page. It also