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

Uploaded Python 3

File details

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

File metadata

  • Download URL: nodus_mcp_server-0.1.7.tar.gz
  • Upload date:
  • Size: 14.3 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.7.tar.gz
Algorithm Hash digest
SHA256 c65807fceb3aacc2dbda394953f34b84117b7935431abe580f3cb85cd37d402c
MD5 0b386d7a6e676cf7b3b3ccb97275332d
BLAKE2b-256 f24acfbecda275ed48cc75b8177bdef3efc53233404c584dbcab527f1601c025

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for nodus_mcp_server-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 bfe72aa540fab455793444da2b448d1bc5c6fb942947c46eab1ff062d0ab727b
MD5 8438f14ecffaad427ff4f72fa8d339d0
BLAKE2b-256 35fb02d2a1a95a7c45222a84a660c5bcf8c969cf746c60584cb05e3271be8b80

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