@elisym/elisym-mcp 0.1.0

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.
Files changed (2) hide show
  1. package/package.json +39 -0
  2. package/run.js +73 -0
package/package.json ADDED
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "@elisym/elisym-mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for the elisym protocol — AI agent discovery, marketplace, and messaging via Nostr",
5
+ "license": "MIT",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/elisymprotocol/elisym-mcp"
9
+ },
10
+ "homepage": "https://github.com/elisymprotocol/elisym-mcp",
11
+ "keywords": [
12
+ "mcp",
13
+ "nostr",
14
+ "ai-agents",
15
+ "solana",
16
+ "nip-90",
17
+ "model-context-protocol"
18
+ ],
19
+ "bin": {
20
+ "elisym-mcp": "run.js"
21
+ },
22
+ "files": [
23
+ "run.js"
24
+ ],
25
+ "os": [
26
+ "darwin",
27
+ "linux"
28
+ ],
29
+ "cpu": [
30
+ "x64",
31
+ "arm64"
32
+ ],
33
+ "optionalDependencies": {
34
+ "@elisym/elisym-mcp-darwin-arm64": "0.1.0",
35
+ "@elisym/elisym-mcp-darwin-x64": "0.1.0",
36
+ "@elisym/elisym-mcp-linux-x64": "0.1.0",
37
+ "@elisym/elisym-mcp-linux-arm64": "0.1.0"
38
+ }
39
+ }
package/run.js ADDED
@@ -0,0 +1,73 @@
1
+ #!/usr/bin/env node
2
+
3
+ const { execFileSync } = require("child_process");
4
+ const path = require("path");
5
+ const fs = require("fs");
6
+
7
+ const BINARY = "elisym-mcp";
8
+
9
+ const PLATFORM_PACKAGES = {
10
+ "darwin-arm64": `@elisym/elisym-mcp-darwin-arm64`,
11
+ "darwin-x64": `@elisym/elisym-mcp-darwin-x64`,
12
+ "linux-x64": `@elisym/elisym-mcp-linux-x64`,
13
+ "linux-arm64": `@elisym/elisym-mcp-linux-arm64`,
14
+ };
15
+
16
+ function getBinaryPath() {
17
+ const key = `${process.platform}-${process.arch}`;
18
+ const pkg = PLATFORM_PACKAGES[key];
19
+
20
+ if (!pkg) {
21
+ console.error(
22
+ `Unsupported platform: ${process.platform}-${process.arch}\n` +
23
+ `Supported: ${Object.keys(PLATFORM_PACKAGES).join(", ")}`
24
+ );
25
+ process.exit(1);
26
+ }
27
+
28
+ // Try to find the platform-specific package
29
+ try {
30
+ const pkgDir = path.dirname(require.resolve(`${pkg}/package.json`));
31
+ const bin = path.join(pkgDir, BINARY);
32
+ if (fs.existsSync(bin)) {
33
+ return bin;
34
+ }
35
+ } catch {
36
+ // Package not installed — fall through
37
+ }
38
+
39
+ // Fallback: check if the binary is in PATH
40
+ const whichCmd = process.platform === "win32" ? "where" : "which";
41
+ try {
42
+ const result = execFileSync(whichCmd, [BINARY], {
43
+ encoding: "utf-8",
44
+ stdio: ["pipe", "pipe", "pipe"],
45
+ }).trim();
46
+ if (result) return result;
47
+ } catch {
48
+ // Not in PATH
49
+ }
50
+
51
+ console.error(
52
+ `Could not find ${BINARY} binary.\n\n` +
53
+ `Install options:\n` +
54
+ ` cargo install elisym-mcp\n` +
55
+ ` brew install elisymprotocol/tap/elisym-mcp\n` +
56
+ ` docker run -i --rm elisymprotocol/elisym-mcp\n`
57
+ );
58
+ process.exit(1);
59
+ }
60
+
61
+ const bin = getBinaryPath();
62
+
63
+ try {
64
+ execFileSync(bin, process.argv.slice(2), {
65
+ stdio: "inherit",
66
+ env: process.env,
67
+ });
68
+ } catch (e) {
69
+ if (e.status !== null) {
70
+ process.exit(e.status);
71
+ }
72
+ throw e;
73
+ }