thetoolforthat 1.0.0 → 1.2.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 +72 -6
- package/cli.js +153 -0
- package/package.json +6 -4
- package/server.js +0 -0
package/README.md
CHANGED
|
@@ -6,25 +6,91 @@ Tools, resources, and people worth knowing. A curated collection for builders an
|
|
|
6
6
|
|
|
7
7
|
## MCP Server
|
|
8
8
|
|
|
9
|
-
This repo includes an MCP server so AI coding agents can search and recommend tools.
|
|
9
|
+
This repo includes an MCP server so AI coding agents can search and recommend tools. Updates sync automatically from this repo.
|
|
10
10
|
|
|
11
|
-
###
|
|
11
|
+
### Quick Start
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Select your client and run the command:
|
|
14
|
+
|
|
15
|
+
<details open>
|
|
16
|
+
<summary><strong>Claude Code</strong></summary>
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx thetoolforthat init --client claude
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Restart Claude Code and try:
|
|
23
|
+
- Search for animation libraries
|
|
24
|
+
- Recommend tools for building a SaaS dashboard
|
|
25
|
+
- List all design agencies
|
|
26
|
+
|
|
27
|
+
</details>
|
|
28
|
+
|
|
29
|
+
<details>
|
|
30
|
+
<summary><strong>Cursor</strong></summary>
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
npx thetoolforthat init --client cursor
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Open Cursor Settings and enable the MCP server for thetoolforthat.
|
|
37
|
+
|
|
38
|
+
</details>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary><strong>VS Code</strong></summary>
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
npx thetoolforthat init --client vscode
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Open `.vscode/mcp.json` and click Start next to thetoolforthat.
|
|
48
|
+
|
|
49
|
+
</details>
|
|
50
|
+
|
|
51
|
+
<details>
|
|
52
|
+
<summary><strong>Codex</strong></summary>
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
npx thetoolforthat init --client codex
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Then add to `~/.codex/config.toml`:
|
|
59
|
+
|
|
60
|
+
```toml
|
|
61
|
+
[mcp_servers.thetoolforthat]
|
|
62
|
+
command = "npx"
|
|
63
|
+
args = ["thetoolforthat", "mcp"]
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
</details>
|
|
67
|
+
|
|
68
|
+
<details>
|
|
69
|
+
<summary><strong>OpenCode</strong></summary>
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
npx thetoolforthat init --client opencode
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Restart OpenCode and you're ready.
|
|
76
|
+
|
|
77
|
+
</details>
|
|
78
|
+
|
|
79
|
+
### Manual Configuration
|
|
80
|
+
|
|
81
|
+
Add to your MCP config:
|
|
14
82
|
|
|
15
83
|
```json
|
|
16
84
|
{
|
|
17
85
|
"mcpServers": {
|
|
18
86
|
"thetoolforthat": {
|
|
19
87
|
"command": "npx",
|
|
20
|
-
"args": ["thetoolforthat"]
|
|
88
|
+
"args": ["thetoolforthat", "mcp"]
|
|
21
89
|
}
|
|
22
90
|
}
|
|
23
91
|
}
|
|
24
92
|
```
|
|
25
93
|
|
|
26
|
-
That's it. The server fetches the latest tools from this repo (cached 5 minutes).
|
|
27
|
-
|
|
28
94
|
### Available Tools
|
|
29
95
|
|
|
30
96
|
| Tool | Description |
|
package/cli.js
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { program } from "commander";
|
|
4
|
+
import { execSync } from "child_process";
|
|
5
|
+
|
|
6
|
+
const MCP_CONFIG = JSON.stringify({
|
|
7
|
+
command: "npx",
|
|
8
|
+
args: ["thetoolforthat", "mcp"],
|
|
9
|
+
});
|
|
10
|
+
|
|
11
|
+
function runCommand(cmd) {
|
|
12
|
+
try {
|
|
13
|
+
execSync(cmd, { stdio: "inherit" });
|
|
14
|
+
return true;
|
|
15
|
+
} catch (error) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function initClaude() {
|
|
21
|
+
console.log("Adding thetoolforthat to Claude Code...\n");
|
|
22
|
+
|
|
23
|
+
// Use claude mcp add-json with user scope
|
|
24
|
+
const success = runCommand(
|
|
25
|
+
`claude mcp add-json --scope user thetoolforthat '${MCP_CONFIG}'`
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
if (success) {
|
|
29
|
+
console.log("\n✓ Added thetoolforthat MCP server");
|
|
30
|
+
console.log("\nRestart Claude Code and try:");
|
|
31
|
+
console.log(" - Search for animation libraries");
|
|
32
|
+
console.log(" - Recommend tools for building a SaaS dashboard");
|
|
33
|
+
console.log(" - List all design agencies");
|
|
34
|
+
} else {
|
|
35
|
+
console.error("\nFailed to add MCP server. Try manually:");
|
|
36
|
+
console.log(`\nclaude mcp add-json --scope user thetoolforthat '${MCP_CONFIG}'`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function initCursor() {
|
|
41
|
+
console.log("Adding thetoolforthat to Cursor...\n");
|
|
42
|
+
|
|
43
|
+
const config = {
|
|
44
|
+
mcpServers: {
|
|
45
|
+
thetoolforthat: {
|
|
46
|
+
command: "npx",
|
|
47
|
+
args: ["thetoolforthat", "mcp"],
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
console.log("Add this to .cursor/mcp.json in your project:\n");
|
|
53
|
+
console.log(JSON.stringify(config, null, 2));
|
|
54
|
+
console.log("\nThen open Cursor Settings and enable the MCP server.");
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
function initVscode() {
|
|
58
|
+
console.log("Adding thetoolforthat to VS Code...\n");
|
|
59
|
+
|
|
60
|
+
const config = {
|
|
61
|
+
servers: {
|
|
62
|
+
thetoolforthat: {
|
|
63
|
+
command: "npx",
|
|
64
|
+
args: ["thetoolforthat", "mcp"],
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
console.log("Add this to .vscode/mcp.json in your project:\n");
|
|
70
|
+
console.log(JSON.stringify(config, null, 2));
|
|
71
|
+
console.log("\nThen click Start next to thetoolforthat in the MCP panel.");
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
function initCodex() {
|
|
75
|
+
console.log("Adding thetoolforthat to Codex...\n");
|
|
76
|
+
console.log("Add this to ~/.codex/config.toml:\n");
|
|
77
|
+
console.log(`[mcp_servers.thetoolforthat]`);
|
|
78
|
+
console.log(`command = "npx"`);
|
|
79
|
+
console.log(`args = ["thetoolforthat", "mcp"]`);
|
|
80
|
+
console.log("\nThen restart Codex.");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function initOpencode() {
|
|
84
|
+
console.log("Adding thetoolforthat to OpenCode...\n");
|
|
85
|
+
|
|
86
|
+
const config = {
|
|
87
|
+
mcpServers: {
|
|
88
|
+
thetoolforthat: {
|
|
89
|
+
command: "npx",
|
|
90
|
+
args: ["thetoolforthat", "mcp"],
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
console.log("Add this to ~/.opencode/mcp.json:\n");
|
|
96
|
+
console.log(JSON.stringify(config, null, 2));
|
|
97
|
+
console.log("\nThen restart OpenCode.");
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
program
|
|
101
|
+
.name("thetoolforthat")
|
|
102
|
+
.description("Curated tools, resources, and agencies for builders")
|
|
103
|
+
.version("1.2.0");
|
|
104
|
+
|
|
105
|
+
program
|
|
106
|
+
.command("init")
|
|
107
|
+
.description("Configure the MCP server for your AI coding client")
|
|
108
|
+
.option("-c, --client <client>", "Client to configure (claude, cursor, vscode, codex, opencode)")
|
|
109
|
+
.action((options) => {
|
|
110
|
+
const client = options.client?.toLowerCase();
|
|
111
|
+
|
|
112
|
+
if (!client) {
|
|
113
|
+
console.log("Available clients: claude, cursor, vscode, codex, opencode\n");
|
|
114
|
+
console.log("Usage: npx thetoolforthat init --client <client>");
|
|
115
|
+
console.log("Example: npx thetoolforthat init --client claude");
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
switch (client) {
|
|
120
|
+
case "claude":
|
|
121
|
+
initClaude();
|
|
122
|
+
break;
|
|
123
|
+
case "cursor":
|
|
124
|
+
initCursor();
|
|
125
|
+
break;
|
|
126
|
+
case "vscode":
|
|
127
|
+
initVscode();
|
|
128
|
+
break;
|
|
129
|
+
case "codex":
|
|
130
|
+
initCodex();
|
|
131
|
+
break;
|
|
132
|
+
case "opencode":
|
|
133
|
+
initOpencode();
|
|
134
|
+
break;
|
|
135
|
+
default:
|
|
136
|
+
console.error(`Unknown client: ${client}`);
|
|
137
|
+
console.log("Available clients: claude, cursor, vscode, codex, opencode");
|
|
138
|
+
process.exit(1);
|
|
139
|
+
}
|
|
140
|
+
});
|
|
141
|
+
|
|
142
|
+
program
|
|
143
|
+
.command("mcp")
|
|
144
|
+
.description("Start the MCP server")
|
|
145
|
+
.action(async () => {
|
|
146
|
+
await import("./server.js");
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
program.action(() => {
|
|
150
|
+
program.help();
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
program.parse();
|
package/package.json
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "thetoolforthat",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "MCP server for searching curated developer tools, design resources, and agencies",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"main": "
|
|
6
|
+
"main": "cli.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"thetoolforthat": "./
|
|
8
|
+
"thetoolforthat": "./cli.js"
|
|
9
9
|
},
|
|
10
10
|
"files": [
|
|
11
|
+
"cli.js",
|
|
11
12
|
"server.js"
|
|
12
13
|
],
|
|
13
14
|
"scripts": {
|
|
14
|
-
"start": "node
|
|
15
|
+
"start": "node cli.js mcp"
|
|
15
16
|
},
|
|
16
17
|
"keywords": [
|
|
17
18
|
"mcp",
|
|
@@ -32,6 +33,7 @@
|
|
|
32
33
|
"homepage": "https://github.com/pipeabellos/thetoolforthat#readme",
|
|
33
34
|
"dependencies": {
|
|
34
35
|
"@modelcontextprotocol/sdk": "^1.25.2",
|
|
36
|
+
"commander": "^14.0.2",
|
|
35
37
|
"zod": "^4.3.5"
|
|
36
38
|
}
|
|
37
39
|
}
|
package/server.js
CHANGED
|
File without changes
|