toolhome 0.5.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/LICENSE +21 -0
- package/README.md +295 -0
- package/README.zh.md +281 -0
- package/dist/server/app.d.ts +16 -0
- package/dist/server/app.d.ts.map +1 -0
- package/dist/server/app.js +166 -0
- package/dist/server/app.js.map +1 -0
- package/dist/server/cli/main.d.ts +3 -0
- package/dist/server/cli/main.d.ts.map +1 -0
- package/dist/server/cli/main.js +587 -0
- package/dist/server/cli/main.js.map +1 -0
- package/dist/server/cli-plane/allow-list.d.ts +18 -0
- package/dist/server/cli-plane/allow-list.d.ts.map +1 -0
- package/dist/server/cli-plane/allow-list.js +28 -0
- package/dist/server/cli-plane/allow-list.js.map +1 -0
- package/dist/server/cli-plane/cli-service.d.ts +41 -0
- package/dist/server/cli-plane/cli-service.d.ts.map +1 -0
- package/dist/server/cli-plane/cli-service.js +282 -0
- package/dist/server/cli-plane/cli-service.js.map +1 -0
- package/dist/server/cli-plane/frames.d.ts +26 -0
- package/dist/server/cli-plane/frames.d.ts.map +1 -0
- package/dist/server/cli-plane/frames.js +12 -0
- package/dist/server/cli-plane/frames.js.map +1 -0
- package/dist/server/cli-plane/models.d.ts +174 -0
- package/dist/server/cli-plane/models.d.ts.map +1 -0
- package/dist/server/cli-plane/models.js +169 -0
- package/dist/server/cli-plane/models.js.map +1 -0
- package/dist/server/cli-plane/routes.d.ts +32 -0
- package/dist/server/cli-plane/routes.d.ts.map +1 -0
- package/dist/server/cli-plane/routes.js +94 -0
- package/dist/server/cli-plane/routes.js.map +1 -0
- package/dist/server/cli-plane/runner.d.ts +41 -0
- package/dist/server/cli-plane/runner.d.ts.map +1 -0
- package/dist/server/cli-plane/runner.js +163 -0
- package/dist/server/cli-plane/runner.js.map +1 -0
- package/dist/server/cli-plane/status.d.ts +12 -0
- package/dist/server/cli-plane/status.d.ts.map +1 -0
- package/dist/server/cli-plane/status.js +24 -0
- package/dist/server/cli-plane/status.js.map +1 -0
- package/dist/server/config/harness-import.d.ts +44 -0
- package/dist/server/config/harness-import.d.ts.map +1 -0
- package/dist/server/config/harness-import.js +166 -0
- package/dist/server/config/harness-import.js.map +1 -0
- package/dist/server/config.d.ts +20 -0
- package/dist/server/config.d.ts.map +1 -0
- package/dist/server/config.js +80 -0
- package/dist/server/config.js.map +1 -0
- package/dist/server/control/client.d.ts +24 -0
- package/dist/server/control/client.d.ts.map +1 -0
- package/dist/server/control/client.js +115 -0
- package/dist/server/control/client.js.map +1 -0
- package/dist/server/control/control-api.d.ts +39 -0
- package/dist/server/control/control-api.d.ts.map +1 -0
- package/dist/server/control/control-api.js +291 -0
- package/dist/server/control/control-api.js.map +1 -0
- package/dist/server/control/control-service.d.ts +713 -0
- package/dist/server/control/control-service.d.ts.map +1 -0
- package/dist/server/control/control-service.js +693 -0
- package/dist/server/control/control-service.js.map +1 -0
- package/dist/server/control/openapi.d.ts +2 -0
- package/dist/server/control/openapi.d.ts.map +1 -0
- package/dist/server/control/openapi.js +370 -0
- package/dist/server/control/openapi.js.map +1 -0
- package/dist/server/data-plane/data-plane.d.ts +20 -0
- package/dist/server/data-plane/data-plane.d.ts.map +1 -0
- package/dist/server/data-plane/data-plane.js +335 -0
- package/dist/server/data-plane/data-plane.js.map +1 -0
- package/dist/server/data-plane/gateway-server.d.ts +13 -0
- package/dist/server/data-plane/gateway-server.d.ts.map +1 -0
- package/dist/server/data-plane/gateway-server.js +796 -0
- package/dist/server/data-plane/gateway-server.js.map +1 -0
- package/dist/server/data-plane/legacy-session.d.ts +18 -0
- package/dist/server/data-plane/legacy-session.d.ts.map +1 -0
- package/dist/server/data-plane/legacy-session.js +137 -0
- package/dist/server/data-plane/legacy-session.js.map +1 -0
- package/dist/server/data-plane/projection.d.ts +18 -0
- package/dist/server/data-plane/projection.d.ts.map +1 -0
- package/dist/server/data-plane/projection.js +44 -0
- package/dist/server/data-plane/projection.js.map +1 -0
- package/dist/server/data-plane/registry.d.ts +31 -0
- package/dist/server/data-plane/registry.d.ts.map +1 -0
- package/dist/server/data-plane/registry.js +129 -0
- package/dist/server/data-plane/registry.js.map +1 -0
- package/dist/server/data-plane/task-extension.d.ts +7 -0
- package/dist/server/data-plane/task-extension.d.ts.map +1 -0
- package/dist/server/data-plane/task-extension.js +33 -0
- package/dist/server/data-plane/task-extension.js.map +1 -0
- package/dist/server/data-plane/virtualization.d.ts +35 -0
- package/dist/server/data-plane/virtualization.d.ts.map +1 -0
- package/dist/server/data-plane/virtualization.js +228 -0
- package/dist/server/data-plane/virtualization.js.map +1 -0
- package/dist/server/domain/errors.d.ts +9 -0
- package/dist/server/domain/errors.d.ts.map +1 -0
- package/dist/server/domain/errors.js +19 -0
- package/dist/server/domain/errors.js.map +1 -0
- package/dist/server/domain/models.d.ts +720 -0
- package/dist/server/domain/models.d.ts.map +1 -0
- package/dist/server/domain/models.js +327 -0
- package/dist/server/domain/models.js.map +1 -0
- package/dist/server/main.d.ts +2 -0
- package/dist/server/main.d.ts.map +1 -0
- package/dist/server/main.js +37 -0
- package/dist/server/main.js.map +1 -0
- package/dist/server/manage/management-mcp.d.ts +27 -0
- package/dist/server/manage/management-mcp.d.ts.map +1 -0
- package/dist/server/manage/management-mcp.js +431 -0
- package/dist/server/manage/management-mcp.js.map +1 -0
- package/dist/server/market/catalog.d.ts +111 -0
- package/dist/server/market/catalog.d.ts.map +1 -0
- package/dist/server/market/catalog.js +784 -0
- package/dist/server/market/catalog.js.map +1 -0
- package/dist/server/market/installers.d.ts +64 -0
- package/dist/server/market/installers.d.ts.map +1 -0
- package/dist/server/market/installers.js +181 -0
- package/dist/server/market/installers.js.map +1 -0
- package/dist/server/market/market-service.d.ts +146 -0
- package/dist/server/market/market-service.d.ts.map +1 -0
- package/dist/server/market/market-service.js +930 -0
- package/dist/server/market/market-service.js.map +1 -0
- package/dist/server/observability/call-recorder.d.ts +22 -0
- package/dist/server/observability/call-recorder.d.ts.map +1 -0
- package/dist/server/observability/call-recorder.js +99 -0
- package/dist/server/observability/call-recorder.js.map +1 -0
- package/dist/server/observability/logger.d.ts +16 -0
- package/dist/server/observability/logger.d.ts.map +1 -0
- package/dist/server/observability/logger.js +25 -0
- package/dist/server/observability/logger.js.map +1 -0
- package/dist/server/security/api-keys.d.ts +15 -0
- package/dist/server/security/api-keys.d.ts.map +1 -0
- package/dist/server/security/api-keys.js +35 -0
- package/dist/server/security/api-keys.js.map +1 -0
- package/dist/server/security/auth-service.d.ts +26 -0
- package/dist/server/security/auth-service.d.ts.map +1 -0
- package/dist/server/security/auth-service.js +76 -0
- package/dist/server/security/auth-service.js.map +1 -0
- package/dist/server/security/control-session.d.ts +9 -0
- package/dist/server/security/control-session.d.ts.map +1 -0
- package/dist/server/security/control-session.js +51 -0
- package/dist/server/security/control-session.js.map +1 -0
- package/dist/server/security/credential-materializer.d.ts +20 -0
- package/dist/server/security/credential-materializer.d.ts.map +1 -0
- package/dist/server/security/credential-materializer.js +82 -0
- package/dist/server/security/credential-materializer.js.map +1 -0
- package/dist/server/security/cursor-codec.d.ts +13 -0
- package/dist/server/security/cursor-codec.d.ts.map +1 -0
- package/dist/server/security/cursor-codec.js +43 -0
- package/dist/server/security/cursor-codec.js.map +1 -0
- package/dist/server/security/oauth-routes.d.ts +21 -0
- package/dist/server/security/oauth-routes.d.ts.map +1 -0
- package/dist/server/security/oauth-routes.js +100 -0
- package/dist/server/security/oauth-routes.js.map +1 -0
- package/dist/server/security/oauth-server.d.ts +16 -0
- package/dist/server/security/oauth-server.d.ts.map +1 -0
- package/dist/server/security/oauth-server.js +544 -0
- package/dist/server/security/oauth-server.js.map +1 -0
- package/dist/server/security/secret-box.d.ts +7 -0
- package/dist/server/security/secret-box.d.ts.map +1 -0
- package/dist/server/security/secret-box.js +27 -0
- package/dist/server/security/secret-box.js.map +1 -0
- package/dist/server/security/secure-action.d.ts +21 -0
- package/dist/server/security/secure-action.d.ts.map +1 -0
- package/dist/server/security/secure-action.js +69 -0
- package/dist/server/security/secure-action.js.map +1 -0
- package/dist/server/storage/sqlite-store.d.ts +70 -0
- package/dist/server/storage/sqlite-store.d.ts.map +1 -0
- package/dist/server/storage/sqlite-store.js +1522 -0
- package/dist/server/storage/sqlite-store.js.map +1 -0
- package/dist/server/storage/store.d.ts +82 -0
- package/dist/server/storage/store.d.ts.map +1 -0
- package/dist/server/storage/store.js +2 -0
- package/dist/server/storage/store.js.map +1 -0
- package/dist/server/upstream/adapter.d.ts +52 -0
- package/dist/server/upstream/adapter.d.ts.map +1 -0
- package/dist/server/upstream/adapter.js +807 -0
- package/dist/server/upstream/adapter.js.map +1 -0
- package/dist/server/upstream/credential-resolver.d.ts +14 -0
- package/dist/server/upstream/credential-resolver.d.ts.map +1 -0
- package/dist/server/upstream/credential-resolver.js +56 -0
- package/dist/server/upstream/credential-resolver.js.map +1 -0
- package/dist/server/upstream/extension-transport.d.ts +17 -0
- package/dist/server/upstream/extension-transport.d.ts.map +1 -0
- package/dist/server/upstream/extension-transport.js +207 -0
- package/dist/server/upstream/extension-transport.js.map +1 -0
- package/dist/server/upstream/manager.d.ts +23 -0
- package/dist/server/upstream/manager.d.ts.map +1 -0
- package/dist/server/upstream/manager.js +324 -0
- package/dist/server/upstream/manager.js.map +1 -0
- package/dist/server/upstream/oauth-provider.d.ts +38 -0
- package/dist/server/upstream/oauth-provider.d.ts.map +1 -0
- package/dist/server/upstream/oauth-provider.js +225 -0
- package/dist/server/upstream/oauth-provider.js.map +1 -0
- package/dist/server/upstream/oauth-refresh.d.ts +65 -0
- package/dist/server/upstream/oauth-refresh.d.ts.map +1 -0
- package/dist/server/upstream/oauth-refresh.js +240 -0
- package/dist/server/upstream/oauth-refresh.js.map +1 -0
- package/dist/server/upstream/oauth-routes.d.ts +17 -0
- package/dist/server/upstream/oauth-routes.d.ts.map +1 -0
- package/dist/server/upstream/oauth-routes.js +87 -0
- package/dist/server/upstream/oauth-routes.js.map +1 -0
- package/dist/server/upstream/oauth-service.d.ts +143 -0
- package/dist/server/upstream/oauth-service.d.ts.map +1 -0
- package/dist/server/upstream/oauth-service.js +217 -0
- package/dist/server/upstream/oauth-service.js.map +1 -0
- package/dist/server/upstream/stable-json.d.ts +3 -0
- package/dist/server/upstream/stable-json.d.ts.map +1 -0
- package/dist/server/upstream/stable-json.js +17 -0
- package/dist/server/upstream/stable-json.js.map +1 -0
- package/package.json +69 -0
- package/skills/toolhome/SKILL.md +238 -0
- package/skills/toolhome/references/cli-reference.md +242 -0
- package/skills/toolhome/references/deployment.md +113 -0
- package/skills/toolhome/references/market-guide.md +128 -0
- package/skills/toolhome/references/oauth-guide.md +96 -0
- package/skills/toolhome/references/troubleshooting.md +133 -0
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
# Troubleshooting
|
|
2
|
+
|
|
3
|
+
## Server Status Shows "Unknown"
|
|
4
|
+
|
|
5
|
+
**Cause**: The `/api/v1/servers` endpoint wasn't returning runtime state (fixed in recent versions).
|
|
6
|
+
|
|
7
|
+
**Fix**: Update to the latest image. Verify:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
toolhome server list --output json | jq '.[0].runtime.status'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
If `runtime` is missing, the server is running an old version. Pull the latest image.
|
|
14
|
+
|
|
15
|
+
## OAuth "Invalid client"
|
|
16
|
+
|
|
17
|
+
**Cause**: The upstream rejected the URL-based client metadata.
|
|
18
|
+
|
|
19
|
+
**Fix**: Switch to DCR for that server:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
echo '{"settings":{"urlClientId":false}}' | toolhome server update <id> -
|
|
23
|
+
toolhome credential authorize <name> --force
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
See `oauth-guide.md` for per-provider compatibility.
|
|
27
|
+
|
|
28
|
+
## OAuth "Incompatible auth server: does not support dynamic client registration"
|
|
29
|
+
|
|
30
|
+
**Cause**: The upstream has no `registration_endpoint` and DCR was forced.
|
|
31
|
+
|
|
32
|
+
**Fix**: Switch to URL-based (the default):
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
echo '{"settings":{"urlClientId":true}}' | toolhome server update <id> -
|
|
36
|
+
toolhome credential authorize <name> --force
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## OAuth "invalid_redirect_uri"
|
|
40
|
+
|
|
41
|
+
**Cause**: The upstream only approves specific redirect URIs (e.g., Vercel only allows `http://localhost:<port>/callback`).
|
|
42
|
+
|
|
43
|
+
**Fix**: This provider is incompatible with a remote gateway. Use a PAT (Personal Access Token) as a bearer credential, or keep the MCP configured locally in the harness.
|
|
44
|
+
|
|
45
|
+
## npm Install Corruption (home-stdio)
|
|
46
|
+
|
|
47
|
+
**Symptom**: Home-hosted stdio server shows "unreachable" with module resolution errors (e.g., `Cannot find module '.../dist/index.js'`).
|
|
48
|
+
|
|
49
|
+
**Cause**: npm cache corruption on the server. The tarball was partially extracted.
|
|
50
|
+
|
|
51
|
+
**Fix**: Inspect the failed entry and reinstall that entry. The npm directory is shared with other MCP servers and CLIs; do not clear the entire directory:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
toolhome market uninstall <id>
|
|
55
|
+
toolhome market install <id> --set KEY=value
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Fetch Server Won't Start (package name squatting)
|
|
59
|
+
|
|
60
|
+
**Symptom**: Installing `fetch` from Market produces a server that never reaches "ready", or the installed package description mentions "security research canary".
|
|
61
|
+
|
|
62
|
+
**Cause**: The npm name `mcp-server-fetch` is **squatted** — the official Fetch server is Python (PyPI `mcp-server-fetch`). The npm package is a canary that runs code in a `postinstall` script.
|
|
63
|
+
|
|
64
|
+
**Fix**: Ensure the catalog entry uses `kind: "uvx"` (installs via `uv tool install`, runs the installed binary). Remove any npm-installed copy:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
docker exec toolhome rm -rf /data/market/node_modules/mcp-server-fetch /data/market/node_modules/.bin/mcp-server-fetch
|
|
68
|
+
toolhome server delete <fetch-server-id>
|
|
69
|
+
toolhome market install fetch
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Fetch Server "Unreachable" with `ImportError: McpError`
|
|
73
|
+
|
|
74
|
+
**Symptom**: The uvx-installed fetch server shows unreachable with `ImportError: cannot import name 'McpError' from 'mcp.shared.exceptions'`.
|
|
75
|
+
|
|
76
|
+
**Cause**: `mcp-server-fetch` (2026.7.10) still imports the pre-2.0 `McpError` name; uv resolves the latest `mcp==2.0` which renamed it to `MCPError`. This is an upstream compatibility break.
|
|
77
|
+
|
|
78
|
+
**Fix**: Reinstall with the pinned dependency (the catalog already ships `uvWith: ['mcp<2']`):
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
toolhome market uninstall fetch
|
|
82
|
+
toolhome market install fetch
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
If upgrading an existing broken install without the pin, fix the tool env directly:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
docker exec toolhome sh -c 'uv tool install mcp-server-fetch --with "mcp<2"'
|
|
89
|
+
toolhome server restart fetch
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Cloudflare Proxy SSE Delay (~25s per request)
|
|
93
|
+
|
|
94
|
+
**Symptom**: Every MCP request (initialize, tools/list, tools/call) takes ~25s through Cloudflare, but works fine direct.
|
|
95
|
+
|
|
96
|
+
**Cause**: Cloudflare buffers SSE POST responses.
|
|
97
|
+
|
|
98
|
+
**Fix**: Set the DNS record for the ToolHome subdomain to "DNS only" (grey cloud), bypassing Cloudflare's proxy. The origin server has a valid TLS certificate (Let's Encrypt via the reverse proxy).
|
|
99
|
+
|
|
100
|
+
## Credential Shows "Expired"
|
|
101
|
+
|
|
102
|
+
**Cause**: OAuth access tokens expire (typically 1 hour). ToolHome refreshes lazily.
|
|
103
|
+
|
|
104
|
+
**Fix**: The web console auto-refreshes expired OAuth credentials on page load. Manually:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
toolhome credential test <id>
|
|
108
|
+
toolhome server refresh <server-id>
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Upstream "unreachable" Intermittently
|
|
112
|
+
|
|
113
|
+
**Cause**: Network flakiness between the ToolHome server and the upstream (common for overseas providers from China-based servers).
|
|
114
|
+
|
|
115
|
+
**Fix**: ToolHome auto-reconnects. Check `toolhome doctor` periodically. For persistent issues, consider relocating the ToolHome server closer to the upstreams, or using a proxy.
|
|
116
|
+
|
|
117
|
+
## Delete Access Key Returns 404
|
|
118
|
+
|
|
119
|
+
**Cause**: The key was already revoked. The list endpoint only shows active keys (fixed in recent versions).
|
|
120
|
+
|
|
121
|
+
**Fix**: This is expected behavior. Revoked keys are gone from the list. No action needed.
|
|
122
|
+
|
|
123
|
+
## Docker Build Fails (OOM)
|
|
124
|
+
|
|
125
|
+
**Cause**: The server has limited RAM (<2GB). In-container `npm ci` + `vite build` + `tsc` thrashes memory.
|
|
126
|
+
|
|
127
|
+
**Fix**: Use the prebuilt GHCR image (`ghcr.io/crayonlu/toolhome:latest`) instead of building locally. The CI pipeline builds on GitHub runners (ample RAM) and pushes the image.
|
|
128
|
+
|
|
129
|
+
## CLI "command.opts is not a function"
|
|
130
|
+
|
|
131
|
+
**Cause**: Commander action handler parameter ordering bug (fixed in recent versions).
|
|
132
|
+
|
|
133
|
+
**Fix**: Update to the latest version: `npm install -g toolhome@latest`.
|