nodel-mcp
MCP sidecar that exposes a local Nodel runtime via the Model Context Protocol, read-only by default with optional write/lifecycle/delete operations and approval workflows.
README
Nodel AI MCP Sidecar
Model Context Protocol sidecar for a local Nodel runtime. This release is an
independent unsupported preview (v0.1.x), is not affiliated with Museum Victoria,
and does not imply upstream endorsement.
The source and release repository is mcartmel/nodel-mcp.
For compatibility, the v0.1 runtime, package, service, state paths, and release
artifacts remain named nodel-ai.
Clone the repository for development:
git clone https://github.com/mcartmel/nodel-mcp.git
Released archives and checksums are published on the GitHub Releases page.
Preview and Support Posture
- Supported shape: Linux + Node.js 22, with
systemdas the supported service manager. - Support status: unsupported public preview, no SLA, and no commitment to review issues or pull requests.
- Security posture: single-operator deployment patterns only (not multi-user, multi-tenant).
- Compatibility stance: pre-1.0 MCP/HTTP interface; patch releases should avoid intentional breaking changes, while minor releases may break with notes.
- Nodel baseline: 2.2.1.542 is the validated baseline compatibility target; other versions are best effort until listed in the compatibility matrix.
Read-Only Quick Start (Intended Release Path)
The v0.1 release path is a versioned GitHub Release archive. Extract it and run the precompiled application without a build:
-
Extract
nodel-ai-v<version>.tar.gzand enter its directory. -
Install production dependencies:
npm ci --omit=dev -
Copy the example environment and keep write tools disabled by default:
cp .env.example .env -
Start the service:
node dist/index.js -
Confirm liveness:
curl -s http://127.0.0.1:8765/healthz
For non-loopback access, use the tested Caddy renderer documented in
docs/operations.md. Caddy is never bundled or
auto-installed; keep the out-of-band token in a 0600 .env.
Host warning: this host currently exposes plaintext/basic-auth 8080 and
unauthenticated 8085. The host is not secure until those listeners are
firewalled or rebound; the renderer only warns.
The service is read-only by default. No write, lifecycle, or delete operations are
enabled until you explicitly enable them in .env.
Release downloads also include SHA256SUMS, SBOM.cdx.json,
dependency-licenses.json, and ARTIFACT-MANIFEST.json. These files are both
inside the archive and attached as separate draft-release assets; checksums cover
all of them except SHA256SUMS itself.
Required and Optional Environment
| Variable | Default | Purpose |
|---|---|---|
NODEL_BASE_URL |
http://127.0.0.1:8085 |
Local Nodel REST base URL |
MCP_BIND_ADDRESS |
127.0.0.1 |
Listener bind address |
MCP_PORT |
8765 |
Listener port |
NODEL_MCP_TOKEN |
unset | Inbound bearer token for /mcp and /readyz |
MCP_ALLOWED_ORIGINS |
unset | Exact allowed browser Origins for HTTP requests |
NODEL_ALLOWED_RUNTIME_ORIGINS |
unset | Exact allowed runtime origins for explicit runtimeUrl operations. The NODEL_BASE_URL origin is always allowed. |
NODEL_STATE_DIR |
.state |
Persistent approval/audit/backup state |
NODEL_ENABLE_WRITES |
false |
Enable maintenance writes/actions |
NODEL_ENABLE_NODE_LIFECYCLE |
false |
Enable create_node/restart_node when writes are enabled |
NODEL_ENABLE_DELETES |
false |
Enable delete_node with lifecycle + writes |
NODEL_REQUIRE_WRITE_APPROVAL |
true |
Require workflow approval ids for writes |
Set additional request/retention limits as needed:
MCP_REQUEST_BODY_LIMIT_BYTES(default: 1048576)NODEL_AUDIT_MAX_BYTES(default: 10485760)NODEL_AUDIT_RETENTION_FILES(default: 5)NODEL_BACKUP_RETENTION_DAYS(default: 30)NODEL_BACKUP_RETENTION_PER_NODE_KIND(default: 50)
Minimal Installation Modes
Read-only
NODEL_ENABLE_WRITES=false
NODEL_ENABLE_NODE_LIFECYCLE=false
NODEL_ENABLE_DELETES=false
NODEL_REQUIRE_WRITE_APPROVAL=true
Maintenance write mode
NODEL_ENABLE_WRITES=true
NODEL_ENABLE_NODE_LIFECYCLE=true
NODEL_REQUIRE_WRITE_APPROVAL=true
Delete mode
# Writes + lifecycle + deletes + approval must all be enabled for delete mode
NODEL_ENABLE_WRITES=true
NODEL_ENABLE_NODE_LIFECYCLE=true
NODEL_ENABLE_DELETES=true
NODEL_REQUIRE_WRITE_APPROVAL=true
Writes remain experimental and require operator workflow discipline.
Trusted Network Access Model
- Loopback use (
127.0.0.1) is the direct mode. For any non-loopback bind, configure a high-entropyNODEL_MCP_TOKENand set a strictMCP_ALLOWED_ORIGINSallowlist. - The sidecar rejects arbitrary caller-supplied hostnames and only contacts configured/local-discovered endpoints.
- Use a reverse proxy for transport hardening where needed; this component does not provide TLS termination.
If NODEL_MCP_TOKEN is present, send this header on MCP requests:
Authorization: Bearer <NODEL_MCP_TOKEN>
MCP endpoint behavior
GET /healthz: unauthenticated liveness with minimal fields (ok,version).GET /readyz: protected Nodel readiness probe.POST /mcp: MCP Streamable HTTP endpoint behind token/origin policies.
When a token is configured, unauthenticated /mcp and /readyz requests must
return 401; /healthz is the unauthenticated 200 preflight.
Approval and Write Flow
This project treats write approval as a human workflow control, not a security boundary. Operational flow is:
read/proposeordryRun- Operator review and confirmation
nodel.approve_writeas a fallback when MCP elicitation is unavailable- Apply tool with
approvalId - Read-back / readiness verification based on tool capability
nodel.request_write_approval is the MCP-native path when supported by the
client and falls back to manual confirmation guidance when unsupported.
Operations and Service Deployment
A release may be run directly (node dist/index.js) or under systemd.
Recommended service layout
The system installer supports configurable paths:
- App directory: configurable (example
/opt/nodel-ai) - Env file: configurable (example
/etc/nodel-ai.env) - State directory: configurable (example
/var/lib/nodel-ai)
The user and system installers render units with configurable paths and service
account. User defaults use the extracted directory, .env, and .state; system
defaults use /opt/nodel-ai, /etc/nodel-ai.env, and /var/lib/nodel-ai.
scripts/install-systemd-user.shscripts/install-systemd-system.sh
For service guidance and recovery steps (backups, log interpretation, upgrade,
rollback, health/readiness, and turning writes back off), see
docs/operations.md.
Tools
The README no longer maintains a manual tool list. Use the generated reference to avoid drift:
The list is generated from canonical tool definitions and includes capability, stability, and gate information.
MCP Client Configuration
Point MCP clients at http://127.0.0.1:8765/mcp for local testing.
Minimal JSON config example
{
"mcp": {
"nodel": {
"type": "remote",
"url": "http://127.0.0.1:8765/mcp"
}
}
}
Add bearer auth in the MCP client only when NODEL_MCP_TOKEN is configured.
Codex clients should use bearer_token_env_var = "NODEL_MCP_TOKEN", never a
literal token in client configuration.
Documentation
docs/architecture.md: trust boundaries and contract modeldocs/security-model.md: security assumptions and failure modeldocs/operations.md: operational runbooksdocs/operations.md#trusted-reverse-proxy-tls-example-caddy: tested Caddy renderer and rollout workflowdocs/migration-v0.1.md: migration from an earlier local build tov0.1.xdocs/releasing.md: maintainer release procedureSUPPORT.md,SECURITY.md,CHANGELOG.md,THIRD_PARTY_NOTICES.md
Compatibility and Compatibility Notes
Before 1.0.0, patch releases should avoid intentional breaking changes.
Before enabling writes, complete the migration checklist in
docs/migration-v0.1.md.
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。