wick-mcp 0.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 +32 -0
- package/bin/wick +5 -0
- package/package.json +26 -0
- package/scripts/install.js +69 -0
package/README.md
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Wick
|
|
2
|
+
|
|
3
|
+
Browser-grade web access for AI agents.
|
|
4
|
+
|
|
5
|
+
<!-- mcp-name: io.github.myleshorton/wick -->
|
|
6
|
+
|
|
7
|
+
Your AI agent gets blocked on the web. Wick fixes that — giving agents the same web access their human operators have, running locally from your own IP.
|
|
8
|
+
|
|
9
|
+
## Install
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g wick-mcp
|
|
13
|
+
wick setup
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Or via Homebrew:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
brew tap myleshorton/wick && brew install wick
|
|
20
|
+
wick setup
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## What it does
|
|
24
|
+
|
|
25
|
+
- **`wick_fetch`** — Fetch any webpage with browser-grade access. Returns clean markdown.
|
|
26
|
+
- **`wick_session`** — Manage cookies and sessions.
|
|
27
|
+
- **`wick_search`** — Web search (coming soon).
|
|
28
|
+
|
|
29
|
+
## Links
|
|
30
|
+
|
|
31
|
+
- [Website](https://getwick.dev)
|
|
32
|
+
- [GitHub](https://github.com/myleshorton/wick)
|
package/bin/wick
ADDED
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wick-mcp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"mcpName": "io.github.myleshorton/wick",
|
|
5
|
+
"description": "Browser-grade web access for AI agents. Gives MCP-compatible agents (Claude Code, Cursor, etc.) the same web access their human operators have.",
|
|
6
|
+
"keywords": ["mcp", "ai-agent", "web-fetch", "browser", "claude", "cursor"],
|
|
7
|
+
"homepage": "https://getwick.dev",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "https://github.com/myleshorton/wick.git"
|
|
11
|
+
},
|
|
12
|
+
"license": "MIT",
|
|
13
|
+
"bin": {
|
|
14
|
+
"wick": "bin/wick"
|
|
15
|
+
},
|
|
16
|
+
"scripts": {
|
|
17
|
+
"postinstall": "node scripts/install.js"
|
|
18
|
+
},
|
|
19
|
+
"os": ["darwin"],
|
|
20
|
+
"cpu": ["arm64"],
|
|
21
|
+
"files": [
|
|
22
|
+
"bin/",
|
|
23
|
+
"scripts/",
|
|
24
|
+
"README.md"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
const https = require("https");
|
|
2
|
+
const fs = require("fs");
|
|
3
|
+
const path = require("path");
|
|
4
|
+
const { execFileSync } = require("child_process");
|
|
5
|
+
|
|
6
|
+
const VERSION = "0.1.0";
|
|
7
|
+
const PLATFORM = `${process.platform}-${process.arch}`;
|
|
8
|
+
|
|
9
|
+
const ASSETS = {
|
|
10
|
+
"darwin-arm64": {
|
|
11
|
+
url: `https://github.com/myleshorton/wick/releases/download/v${VERSION}/wick-${VERSION}-darwin-arm64.tar.gz`,
|
|
12
|
+
sha256: "353f2262314fe2cad5760a9c72161c61b3d4da56e1c6749fa16112599f317570",
|
|
13
|
+
},
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const asset = ASSETS[PLATFORM];
|
|
17
|
+
if (!asset) {
|
|
18
|
+
console.error(
|
|
19
|
+
`Wick does not yet have a prebuilt binary for ${PLATFORM}.\n` +
|
|
20
|
+
`Supported: ${Object.keys(ASSETS).join(", ")}\n` +
|
|
21
|
+
`See https://github.com/myleshorton/wick for build-from-source instructions.`
|
|
22
|
+
);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
const binDir = path.join(__dirname, "..", "bin");
|
|
27
|
+
const binPath = path.join(binDir, "wick");
|
|
28
|
+
const tarPath = path.join(binDir, "wick.tar.gz");
|
|
29
|
+
|
|
30
|
+
if (fs.existsSync(binPath)) {
|
|
31
|
+
process.exit(0);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
fs.mkdirSync(binDir, { recursive: true });
|
|
35
|
+
|
|
36
|
+
function download(url, dest) {
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
const file = fs.createWriteStream(dest);
|
|
39
|
+
https
|
|
40
|
+
.get(url, (res) => {
|
|
41
|
+
if (res.statusCode === 302 || res.statusCode === 301) {
|
|
42
|
+
download(res.headers.location, dest).then(resolve).catch(reject);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (res.statusCode !== 200) {
|
|
46
|
+
reject(new Error(`Download failed: HTTP ${res.statusCode}`));
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
res.pipe(file);
|
|
50
|
+
file.on("finish", () => file.close(resolve));
|
|
51
|
+
})
|
|
52
|
+
.on("error", reject);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
async function main() {
|
|
57
|
+
console.log(`Downloading wick ${VERSION} for ${PLATFORM}...`);
|
|
58
|
+
await download(asset.url, tarPath);
|
|
59
|
+
|
|
60
|
+
execFileSync("tar", ["xzf", tarPath, "-C", binDir]);
|
|
61
|
+
fs.unlinkSync(tarPath);
|
|
62
|
+
fs.chmodSync(binPath, 0o755);
|
|
63
|
+
console.log("Wick installed successfully.");
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
main().catch((err) => {
|
|
67
|
+
console.error(`Failed to install wick: ${err.message}`);
|
|
68
|
+
process.exit(1);
|
|
69
|
+
});
|