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.3.tar.gz (13.4 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.3-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: nodus_mcp_server-0.1.3.tar.gz
  • Upload date:
  • Size: 13.4 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.3.tar.gz
Algorithm Hash digest
SHA256 63d8d7723d73b79dfb9a838e36a9af6c8e1ca675b4b4a6d7c736c40278dec594
MD5 b4bdc8c4b1c1605ef4aba5699874ca02
BLAKE2b-256 e8e2a124e973d4652f2582984b444a567a18b59fdf0d8c6ef7ff6dc9a24a29e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nodus_mcp_server-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6f9cc0f43bd083a3ab35f7330d4ed803fa3dfcb4b3a62a2eb617f1bdb2ad0571
MD5 aae1f1e8654c8ba278cc0998a21506f1
BLAKE2b-256 9bf0a9b63ab649e4813a31a8a365c5d5ae9c0eb5214ba4fddfc2418f49627246

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