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.6.tar.gz (14.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.6-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nodus_mcp_server-0.1.6.tar.gz
  • Upload date:
  • Size: 14.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.6.tar.gz
Algorithm Hash digest
SHA256 22615c05160f7e443db97e5df211681756e5b60b423f85c2b78f984bf1b1ea46
MD5 50f2605661abd11be846bfab661da178
BLAKE2b-256 c8558ea971ac20f6df5ad9cbd98114ad15ccf1f7045f5807fdc04426fce161eb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nodus_mcp_server-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 bfc3e5841c5e3a5737d577f12e27ce403e4d2fc94ce5f5da8178727ae80216d7
MD5 eb41670cd2cc2c2a2135b106348e75d1
BLAKE2b-256 8de1d1cceee77a808d224fdb986aa6a4b15c2631723cd0ed03f4ae66046c37d2

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