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
访问服务器

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

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选