Skip to main content

MCP server powered by the Nodus orchestration runtime

Project description

nodus-mcp-server

An MCP (Model Context Protocol) server that exposes the Nodus orchestration runtime as tools for Claude Desktop and other MCP-compatible hosts.

What it does

Six tools over a single server process:

Tool Description
nodus.remember Store a fact in persistent SQLite memory with optional tags
nodus.recall Search memory by free-text query and/or tags
nodus.forget Delete a memory entry by ID
nodus.run_goal Run a Nodus goal (sandboxed, structured step results)
nodus.run_workflow Run a Nodus workflow (checkpoint/resume capable)
nodus.exec Execute arbitrary .nd code (10 s timeout, no file I/O)

Requirements

  • Python ≥ 3.10
  • nodus-lang >= 4.0.4
  • nodus-mcp >= 0.1.0

Install

pip install nodus-lang nodus-mcp nodus-mcp-server

Claude Desktop setup

Add to your claude_desktop_config.json:

{
  "mcpServers": {
    "nodus": {
      "command": "nodus-mcp-server",
      "args": ["--stdio"]
    }
  }
}

Restart Claude Desktop. The six nodus.* tools will appear in the tool list.

Memory persists at ~/.nodus-mcp-server/data/memory.db and survives upgrades.

HTTP mode

For remote or multi-client use:

nodus-mcp-server --http --port 8080
nodus-mcp-server --http --port 8080 --bearer-token <secret>

Built-in goals and workflows

Goals

summarizeparams: {text: string}

Counts characters and classifies text size (short / medium / long).

{
  "name": "summarize",
  "params": {"text": "Your text here"}
}

Returns:

{
  "steps": {
    "measure": 14,
    "classify": {"chars": 14, "size": "short", "empty": false}
  }
}

pipelineparams: {items: list, label: string}

Validates an item list and produces a labelled report.

{
  "name": "pipeline",
  "params": {"items": [1, 2, 3], "label": "batch-1"}
}

Returns:

{
  "steps": {
    "validate": 3,
    "report": {"label": "batch-1", "item_count": 3, "has_items": true, "status": "complete"}
  }
}

Workflows

researchparams: {topic: string}

Two-step planning + execution workflow with checkpoints at each step.

{
  "name": "research",
  "params": {"topic": "LLM context windows"}
}

Returns:

{
  "steps": {
    "plan": {"query": "LLM context windows", "strategy": "step-by-step"},
    "execute": {"topic": "LLM context windows", "query": "LLM context windows", "strategy": "step-by-step", "status": "complete"}
  }
}

Adding your own goals and workflows

Drop a .nd file into goals/ or workflows/. The file should only define the goal or workflow — do not call run_goal() or run_workflow() at the bottom (the server calls it for you).

// goals/my_goal.nd  — input variable injected via params
goal my_goal {
    step process {
        let result = len(input_text)
        return {"length": result, "has_content": result > 0i}
    }
}

Then call it:

{"name": "my_goal", "params": {"input_text": "hello"}}

Sandbox

.nd scripts run with:

  • No file system access (allowed_paths=[])
  • No network access
  • Goal timeout: 30 s
  • Workflow timeout: 60 s
  • nodus.exec timeout: 10 s

Architecture

server.py          — NodusRuntime, tool registration, MCP transport
runner.py          — goal/workflow execution via ModuleLoader + VM
memory_store.py    — SQLite-backed thread-safe memory store
goals/             — .nd goal definitions
workflows/         — .nd workflow definitions
~/.nodus-mcp-server/data/memory.db  — SQLite DB (persists across upgrades)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nodus_mcp_server-0.1.2.tar.gz (13.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nodus_mcp_server-0.1.2-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

Details for the file nodus_mcp_server-0.1.2.tar.gz.

File metadata

  • Download URL: nodus_mcp_server-0.1.2.tar.gz
  • Upload date:
  • Size: 13.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for nodus_mcp_server-0.1.2.tar.gz
Algorithm Hash digest
SHA256 8e79342ff4349303b54ee6dcffdeda1a975eed87ea926fb94e51aec0b21ad610
MD5 79d4a4f5a7c01c9e24d069f77ffb883f
BLAKE2b-256 638d2db2989bd644286ec79610674b87272094b1e6c09600bb230bb6019e4fd1

See more details on using hashes here.

File details

Details for the file nodus_mcp_server-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for nodus_mcp_server-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b654bfcef919321b5280a45249915f26cb9109e37150edf23e9ec7f240c9891f
MD5 5b1c5933b2bd7d937d9c6f261f2c02d7
BLAKE2b-256 47689c53f8f43562f11ffff257a7c861c83105223c20ff3745af778f80a761c3

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page