nucleus-mcp 1.13.2 → 1.13.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/run.js +30 -0
- package/package.json +14 -15
- package/README.md +0 -44
- package/index.js +0 -80
package/bin/run.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
const { spawnSync } = require('child_process');
|
|
4
|
+
const sys = require('sys');
|
|
5
|
+
|
|
6
|
+
const args = process.argv.slice(2);
|
|
7
|
+
|
|
8
|
+
function runCommand(command, args) {
|
|
9
|
+
const result = spawnSync(command, args, { stdio: 'inherit', shell: true });
|
|
10
|
+
if (result.error) {
|
|
11
|
+
return false;
|
|
12
|
+
}
|
|
13
|
+
return result.status === 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// 1. Try running directly
|
|
17
|
+
const success = runCommand('nucleus-mcp', args);
|
|
18
|
+
|
|
19
|
+
if (!success) {
|
|
20
|
+
console.log('Nucleus-MCP not found. Attempting to install via pip...');
|
|
21
|
+
const installSuccess = runCommand('pip', ['install', 'nucleus-mcp']);
|
|
22
|
+
|
|
23
|
+
if (installSuccess) {
|
|
24
|
+
console.log('Successfully installed nucleus-mcp. Running command...');
|
|
25
|
+
runCommand('nucleus-mcp', args);
|
|
26
|
+
} else {
|
|
27
|
+
console.error('Failed to install nucleus-mcp. Please ensure python3 and pip are installed.');
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
}
|
package/package.json
CHANGED
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nucleus-mcp",
|
|
3
|
-
"version": "1.13.
|
|
4
|
-
"mcpName": "io.github.eidetic-works/nucleus",
|
|
3
|
+
"version": "1.13.5",
|
|
5
4
|
"description": "Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents",
|
|
6
|
-
"main": "index.js",
|
|
7
5
|
"bin": {
|
|
8
|
-
"nucleus-mcp": "./
|
|
9
|
-
"nucleus-init": "./
|
|
6
|
+
"nucleus-mcp": "./bin/run.js",
|
|
7
|
+
"nucleus-init": "./bin/run.js"
|
|
10
8
|
},
|
|
11
9
|
"scripts": {
|
|
12
10
|
"test": "echo \"Error: no test specified\" && exit 1"
|
|
13
11
|
},
|
|
14
|
-
"
|
|
15
|
-
"mcp",
|
|
16
|
-
"ai",
|
|
17
|
-
"agents",
|
|
18
|
-
"memory",
|
|
19
|
-
"nucleus"
|
|
20
|
-
],
|
|
21
|
-
"author": "Nucleus Team",
|
|
12
|
+
"author": "Nucleus Team <hello@nucleusos.dev>",
|
|
22
13
|
"license": "MIT",
|
|
23
|
-
"
|
|
24
|
-
|
|
14
|
+
"engines": {
|
|
15
|
+
"node": ">=14.0.0"
|
|
16
|
+
},
|
|
17
|
+
"keywords": ["mcp", "ai", "agents", "memory", "nucleus"],
|
|
18
|
+
"homepage": "https://github.com/eidetic-works/nucleus-mcp",
|
|
19
|
+
"repository": {
|
|
20
|
+
"type": "git",
|
|
21
|
+
"url": "https://github.com/eidetic-works/nucleus-mcp"
|
|
22
|
+
}
|
|
23
|
+
}
|
package/README.md
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# nucleus-mcp
|
|
2
|
-
|
|
3
|
-
Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.
|
|
4
|
-
|
|
5
|
-
114 MCP tools. Three reliability frontiers: GROUND (verify), ALIGN (correct), COMPOUND (learn).
|
|
6
|
-
|
|
7
|
-
## Install
|
|
8
|
-
|
|
9
|
-
### Native (one command per IDE)
|
|
10
|
-
|
|
11
|
-
| IDE | Command |
|
|
12
|
-
|-----|---------|
|
|
13
|
-
| **Claude Code** | `claude mcp add nucleus -- uvx nucleus-mcp` |
|
|
14
|
-
| **Cursor** | [Add to Cursor](cursor://anysphere.cursor-deeplink/mcp/install?name=nucleus&config=eyJuYW1lIjoibnVjbGV1cyIsInR5cGUiOiJjb21tYW5kIiwiY29tbWFuZCI6Im5weCIsImFyZ3MiOlsiLXkiLCJudWNsZXVzLW1jcCJdfQ==) |
|
|
15
|
-
| **Any IDE** | `pip install nucleus-mcp && nucleus init` |
|
|
16
|
-
|
|
17
|
-
### Manual Config
|
|
18
|
-
|
|
19
|
-
Pick your runtime:
|
|
20
|
-
|
|
21
|
-
**uvx** (zero install):
|
|
22
|
-
```json
|
|
23
|
-
{ "mcpServers": { "nucleus": { "command": "uvx", "args": ["nucleus-mcp"], "env": { "NUCLEUS_BRAIN_PATH": ".brain" } } } }
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
**npx** (zero install):
|
|
27
|
-
```json
|
|
28
|
-
{ "mcpServers": { "nucleus": { "command": "npx", "args": ["-y", "nucleus-mcp"], "env": { "NUCLEUS_BRAIN_PATH": ".brain" } } } }
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
**pip** (`pip install nucleus-mcp` first):
|
|
32
|
-
```json
|
|
33
|
-
{ "mcpServers": { "nucleus": { "command": "nucleus-mcp", "env": { "NUCLEUS_BRAIN_PATH": ".brain" } } } }
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
## Links
|
|
37
|
-
|
|
38
|
-
- [Full docs](https://github.com/eidetic-works/nucleus-mcp)
|
|
39
|
-
- [PyPI](https://pypi.org/project/nucleus-mcp/)
|
|
40
|
-
- [Discord](https://discord.gg/RJuBNNJ5MT)
|
|
41
|
-
|
|
42
|
-
## License
|
|
43
|
-
|
|
44
|
-
MIT
|
package/index.js
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
const { spawn, execSync } = require('child_process');
|
|
4
|
-
const path = require('path');
|
|
5
|
-
const fs = require('fs');
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Nucleus-MCP NPX Wrapper
|
|
9
|
-
* This script ensures the Python package is installed and then executes it.
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
function checkPython() {
|
|
13
|
-
try {
|
|
14
|
-
execSync('python3 --version', { stdio: 'ignore' });
|
|
15
|
-
return true;
|
|
16
|
-
} catch (e) {
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function isInstalled() {
|
|
22
|
-
try {
|
|
23
|
-
execSync('python3 -m mcp_server_nucleus --help', { stdio: 'ignore' });
|
|
24
|
-
return true;
|
|
25
|
-
} catch (e) {
|
|
26
|
-
return false;
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
function install() {
|
|
31
|
-
console.error('[Nucleus] Installing Python dependencies (nucleus-mcp)...');
|
|
32
|
-
try {
|
|
33
|
-
execSync('python3 -m pip install nucleus-mcp', { stdio: 'inherit' });
|
|
34
|
-
return true;
|
|
35
|
-
} catch (e) {
|
|
36
|
-
console.error('[Nucleus] ERROR: Failed to install nucleus-mcp via pip.');
|
|
37
|
-
console.error(e.message);
|
|
38
|
-
return false;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
async function run() {
|
|
43
|
-
if (!checkPython()) {
|
|
44
|
-
console.error('[Nucleus] ERROR: python3 is not installed or not in PATH.');
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
if (!isInstalled()) {
|
|
49
|
-
if (!install()) {
|
|
50
|
-
process.exit(1);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
// Determine which command was called
|
|
55
|
-
const binName = path.basename(process.argv[1]);
|
|
56
|
-
const args = process.argv.slice(2);
|
|
57
|
-
|
|
58
|
-
let pythonArgs = [];
|
|
59
|
-
if (binName === 'nucleus-init') {
|
|
60
|
-
pythonArgs = ['-m', 'mcp_server_nucleus.cli', ...args];
|
|
61
|
-
} else {
|
|
62
|
-
pythonArgs = ['-m', 'mcp_server_nucleus', ...args];
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
const child = spawn('python3', pythonArgs, {
|
|
66
|
-
stdio: 'inherit',
|
|
67
|
-
shell: false
|
|
68
|
-
});
|
|
69
|
-
|
|
70
|
-
child.on('exit', (code) => {
|
|
71
|
-
process.exit(code);
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
child.on('error', (err) => {
|
|
75
|
-
console.error('[Nucleus] Error spawning python process:', err);
|
|
76
|
-
process.exit(1);
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
run();
|