nodel-mcp

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.

Category
访问服务器

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 systemd as 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:

  1. Extract nodel-ai-v<version>.tar.gz and enter its directory.

  2. Install production dependencies:

    npm ci --omit=dev
    
  3. Copy the example environment and keep write tools disabled by default:

    cp .env.example .env
    
  4. Start the service:

    node dist/index.js
    
  5. 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-entropy NODEL_MCP_TOKEN and set a strict MCP_ALLOWED_ORIGINS allowlist.
  • 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:

  1. read/propose or dryRun
  2. Operator review and confirmation
  3. nodel.approve_write as a fallback when MCP elicitation is unavailable
  4. Apply tool with approvalId
  5. 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.sh
  • scripts/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

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

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 模型以安全和受控的方式获取实时的网络信息。

官方
精选