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.1.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.1-py3-none-any.whl (13.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nodus_mcp_server-0.1.1.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.1.tar.gz
Algorithm Hash digest
SHA256 3fcdd0413e3fa64277528bdee07498ea6e4362cee5f409661955bfb2a9fe6439
MD5 eeb99f5cc2231432ee7777c895553c79
BLAKE2b-256 3154b946c43e5062c6acec925c03fa54ae7e676e9cfb6b918f655f1eb64f2734

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nodus_mcp_server-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f3b87537e3256d9ce32b1e66249627cd8dad81077a1e1bebb1d1191ce081e34
MD5 d1f12b280498a24f51f2aaaa2b476247
BLAKE2b-256 1f4bc2348d7393ad6de09532b30acbf6d8923200d358cd4a2f33f442508ddfb3

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