NCP MCP
One MCP gateway instead of dozens of servers: the agent finds a tool on demand and keeps no schemas in context
- 102 ★ on the repository
- Last commit
Broad access
Why this level
- `code` mode runs TypeScript composed by the agent and reaches every connected server through the gateway
- The gateway stores server configs with their keys and runs scheduled tasks
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add mcp/ncpDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- `code` mode runs TypeScript composed by the agent and reaches every connected server through the gateway
- The gateway stores server configs with their keys and runs scheduled tasks
This is third-party code. Review the repository files before installing.
What it does
NCP (Natural Context Provider) puts your MCP servers behind one entry point. The agent sees a small set of gateway tools: `find` locates a tool, skill or Photon from a task description, `run` executes a tool, and `code` runs TypeScript that chains calls to several servers into one scenario. Schemas of the other tools load on demand, so the context is not filled with descriptions of 50 tools up front. The gateway handles routing, server health checks and response caching, can run tasks on a schedule and exposes skills such as PDF and document work. Setup can be kept per project and existing MCP servers are imported with `ncp config import`. Photons describe your own MCP servers in TypeScript without publishing to npm.
Who it is for. People with more than a dozen MCP servers connected, where the agent spends context on choosing a tool.
Good fit when
- The agent mixes up `read_file` and similar tools from different servers
- Schemas of 50 tools eat the context before work starts
- A scenario across several servers is simpler to write as one TypeScript fragment in `code` mode
- A project needs its own MCP set that is picked up automatically
- A recurring task must run on a schedule
Not a fit when
- Two or three servers are connected: the gateway adds a layer with no noticeable saving
- Direct control of every call without an intermediary is required
- The Elastic-2.0 license does not fit your use: read the LICENSE file
Example request
Find a tool for creating a GitHub issue and create an issue describing the failing test, using code modeMCP
- Transport
- stdio
- Authentication
- not required
Limitations
Node.js 22 or newer is required, 24 recommended. The Elastic-2.0 license is not a free software license, so read its terms before commercial use. Available extensions depend on the client: MCP Apps, Skills and Tasks work only where the host supports them, otherwise the base set remains. `code` mode is on by default and runs TypeScript generated by the agent, so connected servers are reachable from that code. Part of the documentation is marked as drafts.
How to disable. Remove the `ncp` entry from the client config, restore direct entries for your servers and remove the package with `npm uninstall -g @portel/ncp`.
FAQ
What does the agent see instead of all tools?
A small gateway set: `find`, `run` and `code` when enabled. The other tools are found with `find` and loaded on demand.
How do I move servers I already configured?
With `ncp config import`, which asks you to paste the JSON config, after which the servers appear behind the gateway.
Which clients does it work with?
Claude Desktop (.dxt install), Claude Code, VS Code, Cursor, Windsurf, Cline and Continue.
How does `code` mode differ from `run`?
`run` executes one tool per call, `code` executes TypeScript with several calls in a row.
What license applies?
Elastic-2.0. It is not a free software license, so read the LICENSE file before commercial use.
Discussion
No questions or reviews yet.
Related
MCP serversA universal MCP CLI client from Apify: persistent sessions, OAuth, JSON output for scripts and shell access to any MCP server for agents
An MCP server that installs other MCP servers from npm and PyPI at the agent's request and writes them into the config
An MCP builder agent that picks servers from the official registry and composes them into your own agentic MCP server.
The mcpl CLI searches tools across several MCP servers and calls them from the terminal, with OAuth sign-in done by a human
A zero-dependency Python CLI: one catalog of MCP servers and skills for every agent, with only a compact index in context
A CLI for any MCP server: list and call tools, resources and prompts, run mock and proxy modes, guard access and manage agent configs
README in short
The overloaded context problem with a before and after example, install and client guides, a trial run with `ncp find`, advanced features: project config, scheduling, remote MCPs, then how it works inside.