NotiCode
You can perform file operations, run shell commands, and get system info on the host machine.
Read files (full or line range) via
fs_read.Create or overwrite files via
fs_write.Edit files by exact substring replacement via
fs_edit.List files and directories up to a given depth via
fs_list.Find files by glob and grep file contents via
fs_search.Execute arbitrary shell commands with optional cwd and timeout via
shell_exec.Get OS, CPU, memory, user, and workspace info via
sys_info.
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., "@NotiCodecreate a new file named 'test.py' that prints 'Hello'"
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.
NotiCode
The blue, MCP-native AI agent for your whole machine.
Runs as an MCP server so Claude (or any MCP client) can plug in, chat, and let it edit files and drive your machine. DM it on Telegram. Or run everything at once and control one shared agent from your MCP client and your phone.
What is this?
NotiCode is an open AI agent in the spirit of OpenCode and Claude Code, with one twist: it speaks MCP first.
It has hands. It can read/write files, run shell commands, inspect your system, drive a headless browser, take screenshots and webcam photos, control your Home Assistant smart home, schedule recurring jobs, and message you on Telegram (text and photos). Connect it to an MCP client, talk to it in your terminal, or DM the Telegram bot, all backed by the same toolset.
It is blue. Not orange. On purpose.
Related MCP server: vulcan-file-ops
The one-command setup: all
node dist/index.js all
# or: npm run allThis boots everything in a single process:
the HTTP MCP server (prints a URL you paste into any MCP client),
the Telegram bot (DM it from your phone),
the scheduler (cron jobs that notify you when done).
They all share the same tools and workspace. So you can text the bot "измени мои файлы" / "edit my files and run the tests", or type the same thing into an MCP client, and the same agent does the work on the same machine. Needs ANTHROPIC_API_KEY (for the bot) and TELEGRAM_BOT_TOKEN (to enable Telegram); the HTTP server and scheduler run even without them.
Do I need an API key?
noticode mcp/noticode serve-- no key. NotiCode is just the hands; the MCP client you connect brings the brain.noticode chat/noticode telegram/noticode all-- needsANTHROPIC_API_KEY, because here NotiCode calls the model itself.
Modes
Command | What it does | Needs key? |
| HTTP MCP + Telegram bot + scheduler, one process, shared agent. | Yes (for bot) |
| MCP server over stdio (connect Claude Desktop). | No |
| MCP server over HTTP, prints a connectable URL. | No |
| Interactive terminal agent. | Yes |
| Telegram bot only. | Yes |
Quick start
git clone https://github.com/Antropov31/noticode-mcp.git
cd noticode-mcp
npm install
npx playwright install chromium # only if you want the browser_* tools
npm run build
cp .env.example .env # fill in keys you want to useThen pick a mode, e.g. the full stack:
npm run allConnect Claude Desktop (stdio)
Add 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" }
}
}
}Connect by URL (HTTP)
npm run serve (or all) prints something like http://127.0.0.1:4319/mcp. Paste it into any MCP client that supports the HTTP (Streamable HTTP) transport.
Telegram
Create a bot with @BotFather, put the token in
TELEGRAM_BOT_TOKEN.(Recommended) Get your chat ID from @userinfobot and set
TELEGRAM_CHAT_IDto lock the bot to just you.npm run telegram(ornpm run all). Text the bot./startand/resetare supported.
Tools
Tool | What it does |
| Read, create/overwrite, exact-match edit files. |
| List dirs; glob + grep file contents. |
| Run any shell command on the host. |
| OS, CPU, memory, user, workspace. |
| Message the user on Telegram (text/photo), read incoming messages. |
| Send a task/event notification (via Telegram, or logged). |
| List Home Assistant entities; control devices and scenes. |
| Drive a headless Playwright browser. |
| Screenshot the desktop / snap a webcam photo (saved as PNG). |
| Cron jobs that run a command, an agent prompt, or a reminder. |
Image tools save a PNG and return its path; send it on with tg_send_photo. All tools are defined once in src/tools/ and shared by every mode.
Scheduler
schedule_add takes a cron expression and a job type:
shell-- run a command; you get the output when it finishes.prompt-- run an agent instruction (only inall/chatwith an API key).notify-- a plain reminder.
Results are pushed to you via Telegram when configured. Example: "every weekday at 9am, pull the repo and run tests" becomes a shell job on 0 9 * * 1-5.
Configuration
Env var | Default | Purpose |
| -- | Required for chat / telegram / all. |
|
| Root directory the agent operates in. |
|
| HTTP server bind. |
| -- | Optional bearer token for the HTTP endpoint. |
| -- | Host-header allowlist for HTTP mode (DNS-rebinding protection). Empty = allow all. |
| -- | Origin allowlist for HTTP mode (browser clients). Requests without |
|
| Max concurrent HTTP MCP sessions; new handshakes get |
|
| Idle HTTP sessions older than this are closed and evicted. |
|
| Model for chat/telegram/all. |
|
|
|
|
|
|
|
| Max chars returned per tool call. |
| -- | Bot token from @BotFather. |
| -- | Lock the bot to one chat; default notify target. |
| -- | Base URL of your Home Assistant. |
| -- | Long-lived access token for Home Assistant. |
Security
NotiCode runs arbitrary commands, edits files, drives a browser, sees your screen and camera, and can control your home. That power is the point and the risk. Scope NOTICODE_WORKSPACE tightly, flip NOTICODE_ALLOW_SHELL / NOTICODE_ALLOW_WRITE to false when you only need read access, keep the HTTP bind on 127.0.0.1 and set NOTICODE_TOKEN before tunneling, and always set TELEGRAM_CHAT_ID so a stranger who finds your bot can't drive your machine.
When you bind HTTP beyond localhost, also set NOTICODE_ALLOWED_HOSTS (Host-header allowlist against DNS rebinding) and NOTICODE_ALLOWED_ORIGINS (which browser origins may connect). NOTICODE_MAX_SESSIONS / NOTICODE_SESSION_TTL_MS bound resource usage per session.
Trust model: sandboxed files, privileged shell
fs_read/fs_write/fs_edit/fs_list/fs_searchare sandboxed toNOTICODE_WORKSPACE(including symlink/junction escape checks). Paths outside the workspace are rejected with aPath must stay inside the workspaceerror — that rejection is the sandbox working, not a bug.shell_execis deliberately privileged: it starts in the workspace but, like a normal user terminal, cancdanywhere and run anything (including absolute paths andgitcommands outside the workspace). Treat shell access as full local-user access and gate it withNOTICODE_ALLOW_SHELL=falsewhen you need a locked-down agent.
Project structure
src/
index.ts CLI entry (all | mcp | serve | chat | telegram | help)
config.ts Env-based configuration
theme.ts Blue terminal palette + banner
runner/
all.ts Unified mode: HTTP MCP + Telegram bot + scheduler
mcp/
server.ts buildMcpServer + stdio entry point
http.ts Streamable HTTP entry point (prints a URL)
agent/
core.ts Shared agent loop (model + tool-use)
agent.ts Interactive terminal chat
telegram-bot.ts Telegram bot bridge to the agent loop
scheduler/
scheduler.ts Cron scheduler runtime
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
telegram.ts tg_send / tg_send_photo / tg_read
notify.ts notify
home-assistant.ts ha_states / ha_call_service
browser.ts browser_navigate / click / type / eval / screenshot
capture.ts screen_capture / webcam_capture
scheduler.ts schedule_add / schedule_list / schedule_cancelRoadmap
HTTP / Streamable HTTP transport in addition to stdio
Telegram bot bridge
Unified
allmodeBrowser automation, screen/webcam capture, Home Assistant, scheduler
Streaming responses in chat mode
Pluggable LLM providers (OpenAI, local models)
Per-tool permission prompts
Git-aware diffs before writes
License
MIT © Antropov31
Available Tools
7 toolsfs_editC
Replace an exact substring in a file. old_string must match exactly once unless replace_all is true.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| new_string | Yes | ||
| old_string | Yes | ||
| replace_all | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description implies mutation ('replace') but lacks disclosure of behavioral traits: no mention of file existence requirements, error behavior on no match or multiple matches (when replace_all=false), side effects, or permission needs. With no annotations, it is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise: two sentences. The first sentence front-loads the purpose, the second adds a critical constraint. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters, no output schema, and no annotations, the description covers only a fraction of necessary context. Important aspects like return value, error handling, and usage context are missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, yet the description only explains old_string and replace_all constraints. Path and new_string are left undefined; the agent must guess their formats and roles. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action ('Replace an exact substring in a file') with a specific verb and resource, distinguishing it from siblings like fs_write (file overwrite) or fs_search (pattern search).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use fs_edit versus other tools. The only usage hint is the constraint on old_string matching exactly once, but no context on prerequisites, error handling, or when to choose this tool over alternatives like fs_write for bulk operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_listA
List files and directories under a path, up to a given depth.
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Directory to list (default: workspace root). | |
| depth | No | How deep to recurse (default: 2). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations supplied, so description must cover behavior. It implies a read-only, non-destructive operation but lacks details on hidden files, symlink handling, performance limits, or error cases. Adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence of 13 words, no extraneous information. Ideal conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Tool is simple with 2 optional parameters and no output schema. Description specifies main behavior but omits output format (e.g., full paths vs names, sorting), default depth, and whether hidden files are listed. Adequate for low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description does not add meaning beyond the schema (e.g., format of path, recursion depth interpretation). Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description uses specific verb 'List' and resource 'files and directories'. Clearly distinguishes from siblings like fs_read (read file content) and fs_search (search for files). Scope 'under a path, up to a given depth' adds precision.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit when-to-use or when-not-to-use guidance. However, the tool's purpose is straightforward and alternatives are not critical. No exclusions or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_readA
Read a UTF-8 text file. Returns the full content, or a line range when start_line/end_line are given.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | File path, absolute or relative to the workspace. | |
| end_line | No | 1-based last line to return. | |
| start_line | No | 1-based first line to return. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries burden. Describes reading UTF-8 text and returning full content or line range, but omits behavior on missing file, binary files, or large files.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with main purpose, no redundant information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple read tool with 3 params and no output schema. Could mention that return is a string, but current description is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline 3. Description adds context that without line params, full content is returned, clarifying parameter usage beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Read' and resource 'a UTF-8 text file', and indicates optional line range capability. Distinguishes from siblings like fs_write or fs_edit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Context for use is clear (reading file content), but no explicit when-not or alternative guidance provided beyond implicit differentiation from siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_searchA
Find files by glob pattern. If query is set, also returns matching lines inside those files (grep-style).
| Name | Required | Description | Default |
|---|---|---|---|
| glob | No | Glob pattern, e.g. **/*.ts (default: everything). | |
| query | No | Substring to search for inside matched files. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses the conditional grep behavior when query is set, but does not mention default glob behavior, output format, or error cases. No annotations present, so description carries full burden.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no redundancy. Front-loads the main verb and resource.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Explains core functionality and conditional behavior, but lacks detail on output format, search recursion, or performance. No output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions (100% coverage). Description adds conditional behavior context but minimal extra meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool finds files by glob pattern and optionally performs grep-style content search. Distinguishes from sibling tools like fs_list and fs_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies use for file search with glob and optional content matching, but does not explicitly state when to use this tool vs alternatives like fs_list or fs_read. Lacks when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fs_writeA
Create or overwrite a file with the given content. Parent directories are created automatically.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | ||
| content | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It discloses overwrite behavior and automatic directory creation, but lacks details on error handling, permissions, or idempotency. Adequate for a simple write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that is front-loaded with key information. No wasted words; efficiently conveys core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers the main aspects: creation, overwriting, and directory creation. Missing details on encoding, size limits, or destructive nature, but acceptable for a basic file write tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds meaning beyond the schema by explaining 'path' as file path and 'content' as file content. Compensates for 0% schema coverage by clarifying what the parameters represent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'create or overwrite a file with given content' and mentions automatic parent directory creation. It is specific about the action and resource, but does not explicitly differentiate from sibling tools like fs_edit.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description implies replacement behavior but does not state when not to use it or suggest siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
shell_execA
Run a shell command on the host machine and return combined stdout/stderr. Full system access.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory (default: workspace). | |
| command | Yes | The shell command to execute. | |
| timeout_ms | No | Kill the command after this many ms (default: 120000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description carries full burden. It discloses returning combined stdout/stderr and warns about full system access, but lacks details on error handling, blocking behavior, environment variables, or interactive commands. More transparency would be beneficial for a high-risk tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (two sentences) and front-loaded with the core action. Every word adds value with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's high risk and lack of output schema, the description is brief. It could include more about security implications, timeout behavior, and error handling. However, it adequately sets context for a shell execution tool among file-focused siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no additional meaning to the parameters beyond what the schema provides. No parameter-specific information is given.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Run a shell command'), identifies the resource ('host machine'), and explains the output ('combined stdout/stderr'). It also clearly distinguishes from sibling tools (all file/system operations) by highlighting the shell execution capability.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for shell commands but lacks explicit guidance on when to use vs. alternatives. The 'Full system access' warning hints at caution but does not provide explicit when-not-to-use scenarios or alternatives (though siblings are file-focused).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sys_infoA
Return host system information: OS, CPU, memory, user, and the active workspace.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description provides the return data categories but omits behavioral details like read-only nature, speed, or potential failure modes. It adequately indicates a read operation but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. Every part contributes to the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and simplicity, the description completely conveys what data is returned. No additional context is necessary.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist, and the description correctly adds no parameter info. The baseline of 4 applies as per guidelines for 0-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Return' and the resource 'host system information' with specific categories (OS, CPU, memory, user, workspace). This distinguishes it from sibling tools which handle files or shell execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for retrieving system information, contrasting with file operations (fs_*) and shell commands (shell_exec). However, it lacks explicit 'when to use' or alternatives guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
7 tool updates
v0.1.0- First observed
fs_edit - First observed
fs_list - First observed
fs_read - First observed
fs_search - First observed
fs_write - First observed
shell_exec - First observed
sys_info
TDQS
Scored across 7 tools
Each tool has a clearly distinct purpose: file operations (list, read, write, edit, search) are well-separated, while shell_exec handles arbitrary commands and sys_info provides system details. No overlap or ambiguity.
Tool names follow a clear prefix convention: 'fs_' for file operations, 'shell_' for shell, 'sys_' for system. The naming is consistent and predictable, making it easy for an agent to infer functionality.
With 7 tools, the server is well-scoped for file and system utilities. Each tool earns its place without being overwhelming or sparse.
The file operations cover list, read, write, edit, and search, but a delete operation is missing. While shell_exec can compensate, the dedicated file surface has a minor gap.
Maintenance
Related MCP Connectors
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Personal assistant MCP server with search, execute, packages, jobs, secrets, and integrations.
Remote MCP server for supportsheep: run AI interviews and manage support content for your blog.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceA comprehensive MCP (Model Context Protocol) server for file system operations, providing Claude and other AI assistants with access to local files and directories.2MIT
- AlicenseAqualityDmaintenanceMCP server that gives Claude Desktop and other desktop MCP clients filesystem powers—read, write, edit, and manage files like AI coding assistants.1727 npm9MIT
- AlicenseNot gradedqualityDmaintenanceA local MCP server that proxies file and shell tools (Read, Write, Edit, Bash, etc.) to a remote Linux host over SSH, enabling MCP clients like Claude Code to operate on remote codebases.MIT
- FlicenseNot gradedqualityDmaintenanceMCP server providing filesystem operations, shell execution, and web search capabilities.-