nock
Click on "Deploy 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., "@nock resolve: create a new file called test.txt"
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.
Nock

Nock sits between a coding agent (ChatGPT / Codex, Cursor, Claude Desktop, …) and your local tools.
The cloud model does the thinking. A tiny on-device model (Needle) tries to pick the right tool. Destructive actions wait for a confirm token. If Needle is unsure or the request is off-topic, Nock refuses without sending your tool list to the cloud.
The host only sees four tools: nock.resolve, nock.call, nock.search, nock.status.
Install
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"Optional — so nock.resolve can pick tools instead of always refusing:
pip install -e ".[needle]"That extra pulls JAX. First resolve also downloads the ~14 MB Needle engine.
Related MCP server: agentic-governance-gateway
Point Codex / ChatGPT desktop at it
They share ~/.codex/config.toml. Easiest:
codex mcp add nock -- /ABS/PATH/nock/.venv/bin/nock serve --warmupUse the absolute path to the venv nock binary. Restart the app, then /mcp should list nock.
Your tools live here, not in Codex
~/.config/nock/config.toml:
[discover]
include_host_configs = false
[servers.fs]
command = "npx"
args = ["-y", "@modelcontextprotocol/server-filesystem", "/ABS/PATH/to/a/folder"]
default_risk = "safe"
[servers.fs.tools.write_file]
risk = "destructive"Keep Codex’s MCP list to Nock only. Nock starts the filesystem (and anything else you add).
How the host should use it
nock.resolvewith the user text.fast→nock.callthe returned envelope.shortlist→ pick one of the listed tools, thennock.call.escalate→ answer without tools. Do not callnock.search.If
nock.callreturnstype: nock.confirm, call again withconfirm=trueandconfirm_token.
Reads should not confirm. Writes should.
Commands
nock serve # stdio MCP server (what the host launches)
nock status # dry config check (does not talk to a running serve)
nock doctor # binaries, Needle, duplicate servers
nock hosts # copy-paste snippets for Codex, Claude, Cursor, Continue
nock index # warm Needle’s tool indexTests
pytestMIT. Needle is a separate project from Cactus Compute.
Available Tools
4 toolsnock.callCall a namespaced upstream MCP toolBDestructive
Proxy tools/call to an upstream server. Destructive tools return a confirm card unless confirm=true and confirm_token matches.
Inputs: name (required), server (required), confirm, arguments, +1 more.
nock.resolveResolve a user utterance to a local toolARead-only
Map natural language to one leaf tool call against the local MCP catalog. One hop only. On mode=fast, pass the envelope to nock.call. On mode=shortlist, pick from shortlist. On mode=escalate, do not ask for more tools and do not invent catalog names.
Inputs: text (required), k. Returns: object
nock.searchSearch the local tool catalogARead-only
Return up to k MCP Tool objects matching query via the local Nock ranker. Does not execute anything. Disabled by default.
Inputs: query (required), k. Returns: object
nock.statusNock sidecar healthARead-only
Mux health, catalog size, last index time, Needle load state. No secrets.
Inputs: no named parameters. Returns: object
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 4 tools
Each tool has a clearly distinct role: resolve handles natural-language routing, call executes concrete tool envelopes, search retrieves catalog metadata without executing, and status reports health. No two tools appear to do the same thing.
All tools share the consistent nock.* prefix and use short, lowercase action-oriented names. The pattern is uniform and predictable across the set.
Four tools is well-scoped for a gateway/catalog server: discovery, resolution, execution, and status. Each tool earns its place with no redundancy.
The tool surface covers the full proxy lifecycle: search the catalog, resolve natural language to a call, execute via upstream, and check server health. No obvious missing operation for the stated purpose.
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
The Remote MCP server acts as a standardized bridge between LLM applications (like Claude, ChatGPT, and Cursor) and external services, enabling AI agents to access external tools and resources. Its primary capability is providing a centralized search tool to discover other MCP servers and their respective tools. Unlike local implementations, it runs remotely with OAuth authentication and permission controls for security.
MCP gateway with runtime security policy, tool-call-level control, and audit of agent actions.
Shared control plane for AI coding agents — tasks, memory, decisions, file locks. 12 tools.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceAn MCP server that provides AI coding agents with AST-accurate, context-budget-aware codebase querying, safety gates, and team policy integration via structured tools and a local plugin layer.112 npm4MIT
- AlicenseNot gradedqualityDmaintenanceAn MCP server that provides a governance layer for coding agents, enforcing policies, validation, and human-in-the-loop for tool calls without requiring an API key.MIT
- AlicenseAqualityBmaintenanceMCP server that enables a coordinator AI agent to spawn, control, and supervise local coding agents with interactive gating for high-risk operations.1010 npmMIT
- AlicenseNot gradedqualityCmaintenanceA local-first MCP gateway that reduces context overhead in coding-agent sessions by exposing only relevant tools and enforcing task-appropriate engineering gates, with privacy-first defaults and no network calls until explicitly enabled.Apache 2.0