@swarmclawai/swarmclaw 1.5.47 → 1.5.48

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
@@ -396,6 +396,12 @@ Operational docs: https://swarmclaw.ai/docs/observability
396
396
 
397
397
  ## Releases
398
398
 
399
+ ### v1.5.48 Highlights
400
+
401
+ - **SwarmDock MCP preset now points at the hosted endpoint**: *MCP Servers → Quick Setup → SwarmDock* is pre-filled with `streamable-http` transport pointed at `https://swarmdock-api.onrender.com/mcp` and a ready-to-edit `Authorization: Bearer <key>` header template. Users no longer need to run `npx swarmdock-mcp` locally — the SwarmDock team hosts the MCP server in-process on the existing API service. First-time setup (browser keygen + agent registration) lives at [swarmdock.ai/mcp/connect](https://www.swarmdock.ai/mcp/connect).
402
+ - **McpPreset gains `url` and `headersTemplate`**: `applyPreset` now prefills the URL input and the Headers textarea in addition to command/args/env, so remote presets can ship complete configs.
403
+ - **Skills doc refresh**: the `swarmclaw` skill's MCP Servers section points to the hosted flow instead of the prior stdio instructions.
404
+
399
405
  ### v1.5.47 Highlights
400
406
 
401
407
  - **MCP injection for GitHub Copilot CLI and OpenAI Codex CLI agents**: agents using the `copilot-cli` or `codex-cli` providers now run with their assigned MCP servers attached at runtime. Copilot CLI receives the servers via `--additional-mcp-config @<tempfile>`; Codex CLI gets per-session `[mcp_servers.*]` TOML sections appended to a scoped `config.toml`. Stdio transports (command, args, env, cwd) and SSE / streamable-http transports (url, headers) are both supported. Skills assigned to the agent continue to be injected via the system prompt.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@swarmclawai/swarmclaw",
3
- "version": "1.5.47",
3
+ "version": "1.5.48",
4
4
  "description": "Build and run autonomous AI agents with OpenClaw, Hermes, multiple model providers, orchestration, delegation, memory, skills, schedules, and chat connectors.",
5
5
  "main": "electron-dist/main.js",
6
6
  "license": "MIT",
@@ -125,6 +125,14 @@ Agents can communicate through external platforms:
125
125
  - Messages sent via `platform` tool with `communicate.send_message`
126
126
  - Inbound messages from connectors trigger agent sessions automatically
127
127
 
128
+ ### MCP Servers
129
+
130
+ Agents can also use tools served by external Model Context Protocol servers:
131
+
132
+ - Register MCP servers under **MCP Servers** in the UI (stdio / sse / streamable-http transports supported).
133
+ - Quick-setup presets include **SwarmVault** (local-first knowledge vault) and **SwarmDock** (agent marketplace — browse tasks, bid, submit work, earn USDC). The SwarmDock preset is pre-filled for the hosted endpoint at `https://swarmdock-api.onrender.com/mcp` and just needs the Bearer header (generate a key and register an agent at `swarmdock.ai/mcp/connect`). See `docs/mcp-servers.md` for the full workflow.
134
+ - Once attached to an agent, MCP tools appear alongside the built-in tools at execution time.
135
+
128
136
  ## Workspace Conventions
129
137
 
130
138
  - The workspace root is the agent's working directory
@@ -21,6 +21,9 @@ interface McpPreset {
21
21
  needsCwd?: boolean
22
22
  cwdHint?: string
23
23
  defaultName: string
24
+ envTemplate?: Record<string, string>
25
+ url?: string
26
+ headersTemplate?: Record<string, string>
24
27
  }
25
28
 
26
29
  const MCP_PRESETS: McpPreset[] = [
@@ -36,6 +39,18 @@ const MCP_PRESETS: McpPreset[] = [
36
39
  cwdHint: 'Absolute path to a SwarmVault workspace (the directory containing swarmvault.config.json). Run `npx @swarmvaultai/cli init` there first if you haven\'t.',
37
40
  defaultName: 'SwarmVault',
38
41
  },
42
+ {
43
+ id: 'swarmdock',
44
+ label: 'SwarmDock',
45
+ description: 'Agent marketplace — browse tasks, bid, submit work, publish MCP services, earn USDC. Connects to the hosted MCP endpoint; generate a key and register an agent at swarmdock.ai/mcp/connect, then paste it into the Bearer header below.',
46
+ helpUrl: 'https://www.swarmdock.ai/mcp/connect',
47
+ transport: 'streamable-http',
48
+ url: 'https://swarmdock-api.onrender.com/mcp',
49
+ defaultName: 'SwarmDock',
50
+ headersTemplate: {
51
+ Authorization: 'Bearer <your-base64-ed25519-secret>',
52
+ },
53
+ },
39
54
  ]
40
55
 
41
56
  function McpServerForm({ editing, onClose, loadMcpServers }: {
@@ -159,7 +174,14 @@ function McpServerForm({ editing, onClose, loadMcpServers }: {
159
174
  setTransport(preset.transport)
160
175
  if (preset.command !== undefined) setCommand(preset.command)
161
176
  if (preset.args !== undefined) setArgs(preset.args.join(', '))
177
+ if (preset.url !== undefined) setUrl(preset.url)
162
178
  if (!name.trim()) setName(preset.defaultName)
179
+ if (preset.envTemplate && !envText.trim()) {
180
+ setEnvText(Object.entries(preset.envTemplate).map(([k, v]) => `${k}=${v}`).join('\n'))
181
+ }
182
+ if (preset.headersTemplate && !headersText.trim()) {
183
+ setHeadersText(Object.entries(preset.headersTemplate).map(([k, v]) => `${k}: ${v}`).join('\n'))
184
+ }
163
185
  }
164
186
 
165
187
  const activePreset = activePresetId ? MCP_PRESETS.find((p) => p.id === activePresetId) ?? null : null