Context7
Up-to-date docs for AI agents
作者提供的说明(英文原文)
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
适用于网页版、桌面版和手机版 Claude:
https://mcp.sentinelx.app/mcp/mcp在终端中运行这条命令
claude mcp add --transport http sentinelx https://mcp.sentinelx.app/mcp/mcp粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"sentinelx": {
"url": "https://mcp.sentinelx.app/mcp/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"sentinelx": {
"type": "http",
"url": "https://mcp.sentinelx.app/mcp/mcp"
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
ChatGPT 只能连接互联网上的服务器:
https://mcp.sentinelx.app/mcp/mcp菜单名称可能因套餐和版本不同而略有差异。
你的选择通过 Cookie 保存在这台设备上,无需账户。
这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月7日
注册名称已通过域名 sentinelx.app 验证(注册中心会核实域名所有权)
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
注册中心没有列出必需的密钥,不过有些服务器会在首次使用时要求你登录。
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.6.0)于3个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Context7, Codebase Memory, Exa
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Up-to-date docs for AI agents
Codebase knowledge graph for AI agents — 162 languages, sub-ms queries, 99% fewer tokens.
Connect AI agents to Exa for web search, content fetching, and multi-step research.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
Operate your Linux, macOS, and Windows servers from Claude.ai or ChatGPT — safely. SentinelX gives your LLM an allowlisted, auditable shell: it can only run commands you've explicitly permitted, filesystem access is gated by a per-path allowlist, and every action is recorded. No inbound ports — just a single outbound WebSocket.
The security model is the point. Handing an LLM unrestricted shell on a server you care about is the thing SentinelX is designed to avoid: the allowlist is the real trust boundary, so the agent can't run — or invent — anything you didn't allow. This is the agent you install on the host; structured file edits and service management come with it.
SentinelX in ChatGPT — it reads the allowlist, runs only what's permitted ( df -h , /proc/meminfo ), and reports back.
Most people start with the one-liner — it auto-detects Linux or macOS:
curl -fsSL https://get.sentinelx.app | bash
Windows (PowerShell — needs Python 3.12+ and git on PATH):
*Service install* — runs as LocalSystem at boot; needs an elevated PowerShell:
iwr -useb https://get.sentinelx.app/install.ps1 -OutFile "$env:TEMP\sx.ps1"
powershell -ExecutionPolicy Bypass -File "$env:TEMP\sx.ps1"
*Per-user install* — no admin; runs as you at logon (locked-down machines):
iwr -useb https://get.sentinelx.app/install.ps1 -OutFile "$env:TEMP\sx.ps1"
powershell -ExecutionPolicy Bypass -File "$env:TEMP\sx.ps1" -User
The installer clones this repo into a virtualenv, registers the agent as a service (systemd / launchd / Windows service), and walks you through enrollment. On networks that block PyPI, add -Bundle for an offline install from the wheel bundle on the latest release; the agent uses the OS trust store (truststore) so a TLS-inspecting proxy's CA is accepted. Full options — per-user vs service, offline bundle, all flags, uninstall — live in sentinelx-cloud-installer.
SentinelX is also listed in the ChatGPT app directory — ChatGPT users can connect it in one click, no custom MCP URL required.
This repo is also the agent's source — read on if you want to audit or contribute.
Common errors and their fixes, each under the exact message you'll see, are on sentinelx.app/troubleshooting: sign-in failing behind antivirus MCP scanning, hosts that keep reconnecting, -32603 errors during a hub update, ChatGPT safety blocks, Manus setup and agents that stay offline. If none of them matches, open an issue here.
Internet
│ ┌────────────────┐ │ ┌─────────────────┐ │ Claude.ai or │ MCP over HTTPS │ WebSocket │ Your host │ │ ChatGPT │ ◄───────────────────► │ ◄──────────────► │ │ │ │ (OAuth via Google) │ │ ┌───────────┐ │ └────────────────┘ │ │ │ agent │ │ ┌───────────────────────┐ │ │ (this) │ │ │ mcp.sentinelx.app │ │ └─────┬─────┘ │ │ (SentinelX hub — │ │ │ │ │ closed source) │ │ shell, edit, │ └───────────────────────┘ │ service mgmt │ └─────────────────┘
The agent is the box on the right. It opens one outbound WebSocket to the hub at install time (after enrollment) and stays connected. No inbound ports, no port-forwarding, no reverse tunnel.
| Component | Where | What it does |
|---|---|---|
sentinelx-cloud-core (this repo) | /opt/sentinelx-cloud-core on your host | Receives MCP tool calls from the hub, executes them locally, returns output |
| Hub | mcp.sentinelx.app (operated by Pensa) | Auth, multi-host routing, MCP transport |
| Config | /etc/sentinelx/config.yaml | Allowlist: which commands, services, and paths the agent will accept |
| Identity | /etc/sentinelx/identity.json | The agent's enrollment JWT, used to authenticate the WebSocket handshake |
Supported platforms: any modern Linux distribution with systemd (tested on Ubuntu 22.04 / 24.04 and Debian 12), macOS with launchd (Intel and Apple Silicon), and Windows — as a service (WinSW, admin) or as a no-admin per-user Scheduled Task (-User); see *Install on Windows* below. The one-line installer auto-detects Linux and macOS; Windows uses a PowerShell installer. The agent also runs unmodified inside WSL2.
The agent exposes its host's operations as MCP tools to your LLM via the hub:
| Tool | What it does |
|---|---|
sentinel_exec | Run an allowlisted shell command |
sentinel_script_run | Run a one-off bash or python3 script |
sentinel_edit | Structured file edit (replace, regex, replace-block, write, append, prepend) |
sentinel_edit_upload_* | Three-step upload for large file edits |
sentinel_move | Move/rename a file or directory |
sentinel_copy | Copy a file or directory |
sentinel_delete | Delete a file or directory |
sentinel_chmod | Change file permissions |
sentinel_chown | Change file owner/group |
sentinel_service | systemctl start/stop/restart/reload/status |
sentinel_restart | Shortcut for sentinel_service with action=restart |
sentinel_upload_file | Single-shot file upload to the host |
sentinel_upload_* | Three-step chunked upload for large files |
sentinel_read | Read a file's contents, with optional line-range slicing |
sentinel_list | Structured directory listing (name, type, size, mtime) |
sentinel_search | Recursive content search with regex and glob filters |
sentinel_local_api | Allowlisted actions on host-local structured endpoints: a unix socket (HTTP or JSON-RPC) or a declared binary over stdio (JSON-RPC, MCP servers included). Only when the host declares local_apis |
sentinel_capabilities | Host policy/capabilities; optional bounded summary projection |
sentinel_help | Rich orientation/help; optional topic/path/single-playbook projections |
sentinel_state | Internal agent state, for debugging |
sentinel_ping | Cheap connectivity check |
The agent-side help and capabilities operations also support optional narrow-response selectors. A Hub/MCP profile may expose these fields through whatever model-facing tool shape it uses; the selectors are backend-operation semantics and do not depend on full vs compact tool names.
help({"topic":"index"}) — small topic + paged playbook index.help({"topic":"security"}) — one broad help section.help({"path":"security_model.permission_errors"}) — one exact leaf from the existing help tree.help({"playbook":"update_sentinelx_code"}) — one playbook only; optional path, offset, and limit can select/page a subfield such as steps.capabilities({"detail":"summary"}) — host/operation/limit metadata and policy counts without command/service/location/playbook bodies.Progressive help/playbook responses normalize explicit full-profile sentinel_* references to op: canonical operation hints so the same guidance can be routed through compact or full presentation without teaching a playbook two sets of MCP tool names.
For compatibility, empty help({}) and capabilities({}) requests retain the legacy full responses. A Hub that wants compact-first behavior should map its compact help/capabilities branches to the narrow selectors rather than changing the agent's legacy empty-payload semantics.
sentinel_read, sentinel_list, and sentinel_search are read-only filesystem primitives. sentinel_edit and the mutating primitives (sentinel_move, sentinel_copy, sentinel_delete, sentinel_chmod, sentinel_chown) write. All of them give the LLM structured access to the filesystem without shelling out to cat/ls/mv/rm through exec, and all of them are gated by the same path allowlist (file_ops in the config, see below), not the command allowlist. Each path in that allowlist declares an access level: r (read-only ops) or rw (read-only ops plus the writing ops). Destructive operations that overwrite or remove an existing target make a timestamped backup first.
The hub additionally exposes a handful of hub-side integrations (Cloudflare DNS, Resend email, Telegram) as MCP tools your LLM can use alongside the agent's tools — those live on the hub, not in this repo. See the integrations table on sentinelx.app.
/etc/sentinelx/config.yaml)A starter config is generated at install time. Editable. Reloaded when the service restarts. Schema:
# Commands the agent can execute via the `exec` op (exec_mode: allowlist, the
allowed_commands:
service / restart.services: nginx: actions: [status, start, stop, restart, reload] docker: actions: [status, restart]
sentinelx-cloud-core: actions: [status, restart, is-active, is-enabled]
#
#
description / when / steps / requires / notescapabilities and then calls the regular#
config.example.yaml for the full reference.playbooks:
health: description: "Show system health summary" commands:
add_allowed_command: description: "How to add a new command to this host's allowlist" when: "User asks to allow a new command on this host" steps:
只显示了开头部分;其余内容请在仓库中阅读