@noelclaw/mcp 1.0.0 → 1.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.
package/README.md CHANGED
@@ -5,7 +5,7 @@
5
5
  Noelclaw as an MCP skill — persistent memory, multi-agent coordination, scenario simulation, DeFi execution, and Sentinel-gated playbooks. Works with Claude, Cursor, Hermes, Windsurf, and any MCP-compatible client.
6
6
 
7
7
  ```bash
8
- npx @noelclaw/mcp@latest
8
+ npx @noelclaw/mcp
9
9
  ```
10
10
 
11
11
  ---
@@ -14,12 +14,12 @@ npx @noelclaw/mcp@latest
14
14
 
15
15
  ### Claude Code
16
16
  ```bash
17
- claude mcp add noelclaw -- npx @noelclaw/mcp@latest
17
+ claude mcp add noelclaw -- npx @noelclaw/mcp
18
18
  ```
19
19
 
20
20
  Set your API key:
21
21
  ```bash
22
- claude mcp add noelclaw -e NOELCLAW_API_KEY=noel_... -- npx @noelclaw/mcp@latest
22
+ claude mcp add noelclaw -e NOELCLAW_API_KEY=noel_... -- npx @noelclaw/mcp
23
23
  ```
24
24
 
25
25
  ### Claude Desktop
@@ -30,7 +30,7 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or
30
30
  "mcpServers": {
31
31
  "noelclaw": {
32
32
  "command": "npx",
33
- "args": ["@noelclaw/mcp@latest"],
33
+ "args": ["@noelclaw/mcp"],
34
34
  "env": {
35
35
  "NOELCLAW_API_KEY": "noel_..."
36
36
  }
@@ -45,7 +45,7 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json` (Mac) or
45
45
  "mcpServers": {
46
46
  "noelclaw": {
47
47
  "command": "npx",
48
- "args": ["@noelclaw/mcp@latest"],
48
+ "args": ["@noelclaw/mcp"],
49
49
  "env": {
50
50
  "NOELCLAW_API_KEY": "noel_..."
51
51
  }
@@ -60,7 +60,7 @@ mcp_servers:
60
60
  noelclaw:
61
61
  command: npx
62
62
  args:
63
- - "@noelclaw/mcp@latest"
63
+ - "@noelclaw/mcp"
64
64
  env:
65
65
  NOELCLAW_API_KEY: "noel_..."
66
66
  ```
@@ -175,13 +175,6 @@ Set `NOELCLAW_API_KEY` in your MCP config. That's it.
175
175
  |-----|-------------|
176
176
  | `NOELCLAW_API_KEY` | Your API key (`noel_...`) — get one at `POST https://api.noelclaw.com/auth/key` |
177
177
 
178
- ### MiroShark (optional)
179
-
180
- | Var | Description |
181
- |-----|-------------|
182
- | `MIROSHARK_URL` | URL of your deployed MiroShark instance |
183
- | `MIROSHARK_ADMIN_TOKEN` | Admin token set on your MiroShark deployment |
184
-
185
178
  ### BYOK (optional)
186
179
 
187
180
  | Var | Used for |
@@ -234,7 +227,6 @@ get_noel_ledger
234
227
  |-------|-----|
235
228
  | Tools not appearing | Restart your MCP client after adding the config |
236
229
  | `401 Unauthorized` | Check `NOELCLAW_API_KEY` is set — get one at `POST https://api.noelclaw.com/auth/key` |
237
- | `miroshark_simulate` error | Set `MIROSHARK_URL` and `MIROSHARK_ADMIN_TOKEN` |
238
230
  | Server starts but no response | Expected — server waits for MCP stdin, not HTTP |
239
231
 
240
232
  ---
@@ -242,5 +234,5 @@ get_noel_ledger
242
234
  ## Links
243
235
 
244
236
  - npm: [npmjs.com/package/@noelclaw/mcp](https://npmjs.com/package/@noelclaw/mcp)
245
- - GitHub: [github.com/noelclaw/research](https://github.com/noelclaw/mcp)
237
+ - GitHub: [github.com/noelclaw/mcp](https://github.com/noelclaw/mcp)
246
238
  - Platform: [noelclaw.com](https://noelclaw.com)
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MIROSHARK_TOOLS = void 0;
4
4
  exports.handleMirosharkTool = handleMirosharkTool;
5
+ const convex_js_1 = require("../convex.js");
5
6
  exports.MIROSHARK_TOOLS = [
6
7
  {
7
8
  name: "miroshark_simulate",
@@ -41,50 +42,17 @@ exports.MIROSHARK_TOOLS = [
41
42
  },
42
43
  },
43
44
  ];
44
- function getConfig() {
45
- const url = process.env.MIROSHARK_URL?.replace(/\/$/, "");
46
- const token = process.env.MIROSHARK_ADMIN_TOKEN;
47
- return { url, token };
48
- }
49
- async function mirofetch(path, method, body) {
50
- const { url, token } = getConfig();
51
- if (!url)
52
- throw new Error("MIROSHARK_URL not set");
53
- if (!token)
54
- throw new Error("MIROSHARK_ADMIN_TOKEN not set");
55
- const res = await fetch(`${url}${path}`, {
56
- method,
57
- headers: {
58
- "Content-Type": "application/json",
59
- "Authorization": `Bearer ${token}`,
60
- },
61
- ...(body ? { body: JSON.stringify(body) } : {}),
62
- signal: AbortSignal.timeout(30000),
63
- });
64
- if (!res.ok) {
65
- const err = await res.text();
66
- throw new Error(`MiroShark ${res.status}: ${err.slice(0, 200)}`);
67
- }
68
- return res.json();
69
- }
70
45
  async function handleMirosharkTool(name, args) {
71
46
  const a = (args ?? {});
72
47
  if (name === "miroshark_simulate") {
73
48
  if (!a.scenario?.trim()) {
74
49
  return { content: [{ type: "text", text: "scenario is required" }], isError: true };
75
50
  }
76
- const { url, token } = getConfig();
77
- if (!url || !token) {
78
- return {
79
- content: [{ type: "text", text: "MiroShark not configured — set MIROSHARK_URL and MIROSHARK_ADMIN_TOKEN" }],
80
- isError: true,
81
- };
82
- }
83
51
  try {
84
- // Step 1: ask (parse scenario into simulation params)
85
- const asked = await mirofetch("/api/simulation/ask", "POST", { question: a.scenario });
52
+ // Step 1: parse scenario into simulation params
53
+ const asked = await (0, convex_js_1.callConvex)("/miroshark/api/simulation/ask", "POST", { question: a.scenario });
86
54
  // Step 2: create simulation
87
- const created = await mirofetch("/api/simulation/create", "POST", {
55
+ const created = await (0, convex_js_1.callConvex)("/miroshark/api/simulation/create", "POST", {
88
56
  ...asked,
89
57
  num_agents: Math.min(a.agents ?? 10, 50),
90
58
  num_steps: a.steps ?? 5,
@@ -92,15 +60,14 @@ async function handleMirosharkTool(name, args) {
92
60
  const simId = created.simulation_id ?? created.id;
93
61
  if (!simId)
94
62
  throw new Error("No simulation ID in create response");
95
- // Step 3: prepare
96
- await mirofetch(`/api/simulation/${simId}/prepare`, "POST", {});
97
- // Step 4: start
98
- await mirofetch(`/api/simulation/${simId}/start`, "POST", {});
63
+ // Step 3: prepare + start
64
+ await (0, convex_js_1.callConvex)(`/miroshark/api/simulation/${simId}/prepare`, "POST", {});
65
+ await (0, convex_js_1.callConvex)(`/miroshark/api/simulation/${simId}/start`, "POST", {});
99
66
  return {
100
67
  content: [{
101
68
  type: "text",
102
69
  text: [
103
- `🦈 **MiroShark simulation started**`,
70
+ `**MiroShark simulation started**`,
104
71
  `Scenario: ${a.scenario}`,
105
72
  `Simulation ID: \`${simId}\``,
106
73
  `Agents: ${a.agents ?? 10} · Steps: ${a.steps ?? 5}`,
@@ -119,10 +86,10 @@ async function handleMirosharkTool(name, args) {
119
86
  return { content: [{ type: "text", text: "simulation_id is required" }], isError: true };
120
87
  }
121
88
  try {
122
- const data = await mirofetch(`/api/simulation/${a.simulation_id}/status`, "GET");
89
+ const data = await (0, convex_js_1.callConvex)(`/miroshark/api/simulation/${a.simulation_id}/status`, "GET");
123
90
  const status = data.status ?? "unknown";
124
91
  const lines = [
125
- `🦈 **MiroShark Simulation \`${a.simulation_id}\`**`,
92
+ `**MiroShark Simulation \`${a.simulation_id}\`**`,
126
93
  `Status: **${status}**`,
127
94
  ];
128
95
  if (data.progress != null)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noelclaw/mcp",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "Noelclaw as an MCP skill — persistent memory, multi-agent coordination, scenario simulation, DeFi execution, and Sentinel-gated playbooks.",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -27,11 +27,11 @@
27
27
  ],
28
28
  "repository": {
29
29
  "type": "git",
30
- "url": "git+https://github.com/noelclaw/noelmcp.git"
30
+ "url": "git+https://github.com/noelclaw/mcp.git"
31
31
  },
32
- "homepage": "https://github.com/noelclaw/noelmcp#readme",
32
+ "homepage": "https://github.com/noelclaw/mcp#readme",
33
33
  "bugs": {
34
- "url": "https://github.com/noelclaw/noelmcp/issues"
34
+ "url": "https://github.com/noelclaw/mcp/issues"
35
35
  },
36
36
  "license": "MIT",
37
37
  "files": [