NotiCode

NotiCode

Runs as an MCP server providing file system operations, shell execution, and system information tools, allowing Claude or any MCP client to edit files and control the machine.

Category
Visit Server

README

<div align="center">

NotiCode

The blue, MCP-native coding agent.

Runs as an MCP server so Claude (or any MCP client) can plug in, chat, and let it edit files and drive your whole machine.

</div>


What is this?

NotiCode is an open AI coding agent in the spirit of OpenCode and Claude Code, with one twist: it speaks MCP first.

Launch it and it boots a Model Context Protocol server. Point Claude Desktop, Cursor, or any MCP-compatible client at it, and your assistant suddenly gains hands: it can read and write files, run shell commands, and inspect your system. Prefer a standalone experience? Run the built-in terminal chat agent and talk to NotiCode directly.

It is blue. Not orange. On purpose.

Do I need an API key?

Only for chat mode. Here's the split:

  • noticode mcp / noticode serveno key needed. NotiCode is just the hands. The MCP client you connect (Claude, Cursor, ...) is the brain and brings its own model. NotiCode never calls an LLM itself in these modes.
  • noticode chat — needs ANTHROPIC_API_KEY, because here NotiCode is the brain and calls Anthropic directly.

So if your goal is "start it, get a URL, paste it into an AI chat, let it control my PC" — use serve. No key.

Features

  • MCP server out of the box — one command exposes a full toolset over stdio or HTTP.
  • Connect by URLnoticode serve prints a server URL you paste straight into an MCP client.
  • Real machine access — read/write/edit files, glob search, run any shell command, query system info.
  • Three ways to run it:
    • noticode mcp — serve tools to Claude and friends over stdio.
    • noticode serve — serve tools over HTTP and print a connectable URL.
    • noticode chat — an interactive agent loop in your terminal, powered by Claude.
  • Workspace-scoped — operations are rooted at a workspace you choose.
  • Safety switches — disable writes or shell execution with one env var, or gate the HTTP endpoint with a token.
  • Tiny + hackable — TypeScript, a clean tool registry, no framework lock-in.

Quick start

git clone https://github.com/Antropov31/noticode-mcp.git
cd noticode-mcp
npm install
npm run build

Copy the env template (only needed if you want to tweak defaults or use chat):

cp .env.example .env

Mode 1 — MCP server over stdio (connect Claude Desktop)

node dist/index.js mcp
# or: npm run mcp

Register it with your MCP client. For Claude Desktop, add this to claude_desktop_config.json:

{
  "mcpServers": {
    "noticode": {
      "command": "node",
      "args": ["/absolute/path/to/noticode-mcp/dist/index.js", "mcp"],
      "env": {
        "NOTICODE_WORKSPACE": "/absolute/path/to/your/project"
      }
    }
  }
}

Restart Claude, and NotiCode's tools show up. No API key required.

Mode 2 — MCP server over HTTP (connect by URL)

This is the "start it, get a URL, paste into a chat" flow. No API key needed.

node dist/index.js serve
# or: npm run serve

You'll see something like:

  ▸█ NotiCode
  the blue coding agent · MCP-native

  MCP server URL  http://127.0.0.1:4319/mcp
  workspace: /home/you/project
  auth: none · bound to 127.0.0.1
  Paste this URL into your MCP client (HTTP transport) and it gets hands on this machine.

Paste that URL into any MCP client that supports the HTTP (Streamable HTTP) transport (e.g. Cursor, Cline, or Claude via a custom connector). The assistant connects and can now act on your machine through NotiCode.

Knobs (env or .env):

  • NOTICODE_HOST — host to bind (default 127.0.0.1, localhost only).
  • NOTICODE_PORT — port (default 4319).
  • NOTICODE_TOKEN — set it to require Authorization: Bearer <token> on every request.

Want a client on another machine to reach it? Keep the bind on localhost and put a tunnel in front (e.g. cloudflared or ngrok), and set NOTICODE_TOKEN so it isn't wide open. Exposing raw shell access on a public URL with no token is asking for trouble.

Mode 3 — Terminal chat agent

node dist/index.js chat
# or: npm run chat

This mode talks to the model itself, so it needs ANTHROPIC_API_KEY in your .env. It plans, calls its own tools, and reports back.

  ▸█ NotiCode
  the blue coding agent · MCP-native

you › create a python script that prints the fibonacci sequence and run it
noti › Done. Wrote fib.py and ran it — output: 0 1 1 2 3 5 8 13 21 34

Tools

Tool What it does
fs_read Read a text file, optionally a line range.
fs_write Create or overwrite a file (makes parent dirs).
fs_edit Exact-match string replacement inside a file.
fs_list List files and directories under a path.
fs_search Glob for files, optionally grep their contents.
shell_exec Run any shell command on the host.
sys_info OS, CPU, memory, user, workspace.

All tools are defined once in src/tools/ and shared by the stdio server, the HTTP server, and the chat agent. Adding a tool is a few lines.

Configuration

Env var Default Purpose
ANTHROPIC_API_KEY Required for chat mode only.
NOTICODE_WORKSPACE cwd Root directory the agent operates in.
NOTICODE_HOST 127.0.0.1 Host the HTTP server (serve) binds to.
NOTICODE_PORT 4319 Port for the HTTP server (serve).
NOTICODE_TOKEN Optional bearer token to protect the HTTP endpoint.
NOTICODE_MODEL claude-sonnet-4-20250514 Model used in chat mode.
NOTICODE_ALLOW_SHELL true Set false to block shell execution.
NOTICODE_ALLOW_WRITE true Set false to make the agent read-only.
NOTICODE_MAX_OUTPUT 30000 Max chars returned per tool call.

Security

NotiCode can run arbitrary commands and modify files. That is the whole point, and also the whole risk. Run it against projects you trust, scope NOTICODE_WORKSPACE tightly, and flip NOTICODE_ALLOW_SHELL=false / NOTICODE_ALLOW_WRITE=false when you only need read access. When using serve, keep the bind on 127.0.0.1 and set NOTICODE_TOKEN before exposing it through any tunnel.

Project structure

src/
  index.ts            CLI entry (mcp | serve | chat | help)
  config.ts           Env-based configuration
  theme.ts            Blue terminal palette + banner
  mcp/
    server.ts         buildMcpServer + stdio entry point
    http.ts           Streamable HTTP entry point (prints a URL)
  agent/
    agent.ts          Interactive chat loop with Anthropic tool-use
  tools/
    index.ts          Tool registry
    types.ts          Shared tool + context types
    filesystem.ts     fs_read / fs_write / fs_edit / fs_list / fs_search
    shell.ts          shell_exec
    system.ts         sys_info

Roadmap

  • [x] HTTP / Streamable HTTP transport in addition to stdio
  • [ ] Streaming responses in chat mode
  • [ ] Pluggable LLM providers (OpenAI, local models)
  • [ ] Per-tool permission prompts
  • [ ] Git-aware diffs before writes

License

MIT © Antropov31

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured