@toolforest/toolforest-plugin 0.3.2 → 0.3.3

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.
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAiCrD"}
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAmCrD"}
@@ -25,13 +25,15 @@ You have ${state.toolCount} Toolforest tools available, prefixed with "toolfores
25
25
  Connected toolkits:
26
26
  ${toolkitLines}
27
27
 
28
+ Tool naming: tools follow the pattern toolforest_{toolkit}_{action} (e.g. toolforest_github_list_repos, toolforest_google_sheets_get_values).
29
+
28
30
  Rules:
29
31
  - Use Toolforest tools for tasks involving the connected services above.
30
32
  - Call tools directly by name — no discovery step needed.
31
33
  - Do NOT fabricate tool names not listed above.
32
34
  - Do NOT use pretrained knowledge about Toolforest APIs.
33
35
  - If a tool returns an auth error, direct the user to www.toolforest.io to reconnect.
34
- - Your API key is at plugins.entries.toolforest.config.apiKey in openclaw.json if needed.
36
+ - If native tools are not working, use the /toolforest-mcp skill for curl-based fallback access.
35
37
  </toolforest>`;
36
38
  }
37
39
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO;+BACoB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;cAShE,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;WACE,KAAK,CAAC,SAAS;;;EAGxB,YAAY;;;;;;;;;cASA,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/prompt.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO;+BACoB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE;;;;;;;;;cAShE,CAAC;IACb,CAAC;IAED,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,WAAW,IAAI,kBAAkB,EAAE,CAAC;SACnE,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;WACE,KAAK,CAAC,SAAS;;;EAGxB,YAAY;;;;;;;;;;;cAWA,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@toolforest/toolforest-plugin",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "description": "OpenClaw plugin for Toolforest — registers all connected tools as native agent tools",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -7,9 +7,11 @@ metadata:
7
7
 
8
8
  # Toolforest MCP Fallback
9
9
 
10
+ Use this when Toolforest native tools (prefixed `toolforest_`) are not registered or not working.
11
+
10
12
  ## API Key
11
13
 
12
- First check the openclaw config:
14
+ Check the openclaw config:
13
15
  ```bash
14
16
  grep -A5 '"toolforest"' ~/.openclaw/openclaw.json
15
17
  ```
@@ -22,7 +24,14 @@ https://mcp.toolforest.io/mcp
22
24
  Authorization: Bearer <apiKey>
23
25
  ```
24
26
 
25
- ## Discover toolkits
27
+ ## Important: How Toolforest discovery works
28
+
29
+ Toolforest uses **meta-tools** exposed via the standard MCP `tools/call` method. Do NOT use `tools/list` to discover toolkit tools — that only returns the 3 meta-tools (`list_tools`, `get_tool_schema`, `execute_tool`).
30
+
31
+ Instead, use the meta-tools in this order:
32
+
33
+ ## Step 1: List connected toolkits
34
+
26
35
  ```bash
27
36
  curl -s -X POST https://mcp.toolforest.io/mcp \
28
37
  -H "Content-Type: application/json" \
@@ -30,15 +39,40 @@ curl -s -X POST https://mcp.toolforest.io/mcp \
30
39
  -d '{"jsonrpc":"2.0","id":"1","method":"tools/call","params":{"name":"list_tools","arguments":{}}}'
31
40
  ```
32
41
 
33
- ## Execute a tool
42
+ Returns an array of toolkit objects with `name` and `description` (e.g. `github`, `google_sheets`, `gmail`).
43
+
44
+ ## Step 2: List tools for a specific toolkit
45
+
46
+ ```bash
47
+ curl -s -X POST https://mcp.toolforest.io/mcp \
48
+ -H "Content-Type: application/json" \
49
+ -H "Authorization: Bearer YOUR_KEY" \
50
+ -d '{"jsonrpc":"2.0","id":"1","method":"tools/call","params":{"name":"list_tools","arguments":{"toolkit":"github"}}}'
51
+ ```
52
+
53
+ Returns tool descriptors with `name`, `summary`, `kind`, and `schema` for each tool in that toolkit.
54
+
55
+ ## Step 3: Get a tool's parameter schema (optional)
56
+
57
+ ```bash
58
+ curl -s -X POST https://mcp.toolforest.io/mcp \
59
+ -H "Content-Type: application/json" \
60
+ -H "Authorization: Bearer YOUR_KEY" \
61
+ -d '{"jsonrpc":"2.0","id":"1","method":"tools/call","params":{"name":"get_tool_schema","arguments":{"tool_name":"github-list_repos"}}}'
62
+ ```
63
+
64
+ ## Step 4: Execute a tool
65
+
34
66
  ```bash
35
67
  curl -s -X POST https://mcp.toolforest.io/mcp \
36
68
  -H "Content-Type: application/json" \
37
69
  -H "Authorization: Bearer YOUR_KEY" \
38
70
  -d '{
39
71
  "jsonrpc": "2.0", "id": "1", "method": "tools/call",
40
- "params": { "name": "execute_tool", "arguments": { "tool_name": "TOOL_NAME", "args": {} } }
72
+ "params": { "name": "execute_tool", "arguments": { "tool_name": "github-list_repos", "args": {"owner": "example"} } }
41
73
  }'
42
74
  ```
43
75
 
76
+ Tool names follow the pattern `{toolkit}-{action}` (e.g. `github-list_repos`, `google_sheets-get_values`).
77
+
44
78
  Responses may be SSE (`data: {...}`) or plain JSON — handle both.