apick-mcp 2.5.0 → 3.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/CHANGELOG.md +68 -56
- package/README.md +404 -383
- package/TOOLS.md +2015 -1841
- package/package.json +89 -89
- package/src/index.js +92 -92
package/package.json
CHANGED
|
@@ -1,89 +1,89 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "apick-mcp",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "APICK MCP —
|
|
5
|
-
"type": "module",
|
|
6
|
-
"license": "MIT",
|
|
7
|
-
"author": "APICK",
|
|
8
|
-
"homepage": "https://apick.app/dev_guide/mcp",
|
|
9
|
-
"repository": {
|
|
10
|
-
"type": "git",
|
|
11
|
-
"url": "git+https://github.com/lead788/apick-mcp.git"
|
|
12
|
-
},
|
|
13
|
-
"bugs": {
|
|
14
|
-
"url": "https://github.com/lead788/apick-mcp/issues"
|
|
15
|
-
},
|
|
16
|
-
"mcpName": "app.apick/all",
|
|
17
|
-
"bin": {
|
|
18
|
-
"apick-mcp": "src/index.js"
|
|
19
|
-
},
|
|
20
|
-
"exports": {
|
|
21
|
-
".": "./src/bridge.js"
|
|
22
|
-
},
|
|
23
|
-
"files": [
|
|
24
|
-
"src",
|
|
25
|
-
"README.md",
|
|
26
|
-
"TOOLS.md",
|
|
27
|
-
"CHANGELOG.md",
|
|
28
|
-
"LICENSE"
|
|
29
|
-
],
|
|
30
|
-
"engines": {
|
|
31
|
-
"node": ">=18"
|
|
32
|
-
},
|
|
33
|
-
"scripts": {
|
|
34
|
-
"test": "node --test"
|
|
35
|
-
},
|
|
36
|
-
"keywords": [
|
|
37
|
-
"mcp",
|
|
38
|
-
"modelcontextprotocol",
|
|
39
|
-
"model-context-protocol",
|
|
40
|
-
"mcp-server",
|
|
41
|
-
"mcp-tools",
|
|
42
|
-
"claude",
|
|
43
|
-
"claude-code",
|
|
44
|
-
"claude-desktop",
|
|
45
|
-
"cursor",
|
|
46
|
-
"cline",
|
|
47
|
-
"windsurf",
|
|
48
|
-
"ai-agent",
|
|
49
|
-
"llm",
|
|
50
|
-
"apick",
|
|
51
|
-
"korea",
|
|
52
|
-
"korean",
|
|
53
|
-
"korea-api",
|
|
54
|
-
"business-registry",
|
|
55
|
-
"business-registration-number",
|
|
56
|
-
"identity-verification",
|
|
57
|
-
"kyc",
|
|
58
|
-
"kyb",
|
|
59
|
-
"id-card-verification",
|
|
60
|
-
"pii-masking",
|
|
61
|
-
"ocr",
|
|
62
|
-
"korean-ocr",
|
|
63
|
-
"parcel-tracking",
|
|
64
|
-
"delivery-tracking",
|
|
65
|
-
"shipment-tracking",
|
|
66
|
-
"bank-account-verification",
|
|
67
|
-
"account-holder-lookup",
|
|
68
|
-
"real-estate-price",
|
|
69
|
-
"address-search",
|
|
70
|
-
"holiday-api",
|
|
71
|
-
"whois",
|
|
72
|
-
"dns-lookup",
|
|
73
|
-
"ip-geolocation",
|
|
74
|
-
"web-scraping",
|
|
75
|
-
"screenshot-api",
|
|
76
|
-
"google-search",
|
|
77
|
-
"pdf-conversion",
|
|
78
|
-
"docx",
|
|
79
|
-
"excel",
|
|
80
|
-
"watermark",
|
|
81
|
-
"speech-to-text",
|
|
82
|
-
"face-detection",
|
|
83
|
-
"face-blur",
|
|
84
|
-
"nsfw-detection",
|
|
85
|
-
"image-similarity",
|
|
86
|
-
"image-generation",
|
|
87
|
-
"image-editing"
|
|
88
|
-
]
|
|
89
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "apick-mcp",
|
|
3
|
+
"version": "3.2.0",
|
|
4
|
+
"description": "APICK MCP — 97 Korean data, AI, image & video tools for AI agents. 사업자조회·신분증·OCR·배송조회·이미지 생성·편집·영상 생성·파일변환·검색·LLM.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"author": "APICK",
|
|
8
|
+
"homepage": "https://apick.app/dev_guide/mcp",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/lead788/apick-mcp.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/lead788/apick-mcp/issues"
|
|
15
|
+
},
|
|
16
|
+
"mcpName": "app.apick/all",
|
|
17
|
+
"bin": {
|
|
18
|
+
"apick-mcp": "src/index.js"
|
|
19
|
+
},
|
|
20
|
+
"exports": {
|
|
21
|
+
".": "./src/bridge.js"
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"src",
|
|
25
|
+
"README.md",
|
|
26
|
+
"TOOLS.md",
|
|
27
|
+
"CHANGELOG.md",
|
|
28
|
+
"LICENSE"
|
|
29
|
+
],
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18"
|
|
32
|
+
},
|
|
33
|
+
"scripts": {
|
|
34
|
+
"test": "node --test"
|
|
35
|
+
},
|
|
36
|
+
"keywords": [
|
|
37
|
+
"mcp",
|
|
38
|
+
"modelcontextprotocol",
|
|
39
|
+
"model-context-protocol",
|
|
40
|
+
"mcp-server",
|
|
41
|
+
"mcp-tools",
|
|
42
|
+
"claude",
|
|
43
|
+
"claude-code",
|
|
44
|
+
"claude-desktop",
|
|
45
|
+
"cursor",
|
|
46
|
+
"cline",
|
|
47
|
+
"windsurf",
|
|
48
|
+
"ai-agent",
|
|
49
|
+
"llm",
|
|
50
|
+
"apick",
|
|
51
|
+
"korea",
|
|
52
|
+
"korean",
|
|
53
|
+
"korea-api",
|
|
54
|
+
"business-registry",
|
|
55
|
+
"business-registration-number",
|
|
56
|
+
"identity-verification",
|
|
57
|
+
"kyc",
|
|
58
|
+
"kyb",
|
|
59
|
+
"id-card-verification",
|
|
60
|
+
"pii-masking",
|
|
61
|
+
"ocr",
|
|
62
|
+
"korean-ocr",
|
|
63
|
+
"parcel-tracking",
|
|
64
|
+
"delivery-tracking",
|
|
65
|
+
"shipment-tracking",
|
|
66
|
+
"bank-account-verification",
|
|
67
|
+
"account-holder-lookup",
|
|
68
|
+
"real-estate-price",
|
|
69
|
+
"address-search",
|
|
70
|
+
"holiday-api",
|
|
71
|
+
"whois",
|
|
72
|
+
"dns-lookup",
|
|
73
|
+
"ip-geolocation",
|
|
74
|
+
"web-scraping",
|
|
75
|
+
"screenshot-api",
|
|
76
|
+
"google-search",
|
|
77
|
+
"pdf-conversion",
|
|
78
|
+
"docx",
|
|
79
|
+
"excel",
|
|
80
|
+
"watermark",
|
|
81
|
+
"speech-to-text",
|
|
82
|
+
"face-detection",
|
|
83
|
+
"face-blur",
|
|
84
|
+
"nsfw-detection",
|
|
85
|
+
"image-similarity",
|
|
86
|
+
"image-generation",
|
|
87
|
+
"image-editing"
|
|
88
|
+
]
|
|
89
|
+
}
|
package/src/index.js
CHANGED
|
@@ -1,92 +1,92 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
// apick-mcp - run the APICK MCP server over stdio.
|
|
3
|
-
//
|
|
4
|
-
// Usage:
|
|
5
|
-
// apick-mcp [--server <name>]
|
|
6
|
-
//
|
|
7
|
-
// Environment:
|
|
8
|
-
// APICK_API_KEY APICK license key. Optional: tools/list works without one,
|
|
9
|
-
// tools/call needs it.
|
|
10
|
-
// APICK_MCP_SERVER Which server to expose (default: all).
|
|
11
|
-
// APICK_MCP_URL Base URL override (default: https://apick.app/mcp).
|
|
12
|
-
|
|
13
|
-
import { readFileSync } from 'node:fs';
|
|
14
|
-
import { fileURLToPath } from 'node:url';
|
|
15
|
-
import { createBridge, DEFAULT_ENDPOINT, SERVERS } from './bridge.js';
|
|
16
|
-
|
|
17
|
-
const HELP = `apick-mcp - APICK MCP server over stdio
|
|
18
|
-
|
|
19
|
-
apick-mcp [--server <name>]
|
|
20
|
-
|
|
21
|
-
Options
|
|
22
|
-
--server, -s <name> ${SERVERS.join(', ')} (default: all)
|
|
23
|
-
--version, -v print version
|
|
24
|
-
--help, -h print this message
|
|
25
|
-
|
|
26
|
-
Environment
|
|
27
|
-
APICK_API_KEY APICK license key (get one at https://apick.app)
|
|
28
|
-
APICK_MCP_SERVER same as --server
|
|
29
|
-
APICK_MCP_URL base URL override (default: ${DEFAULT_ENDPOINT})
|
|
30
|
-
|
|
31
|
-
Clients that support remote MCP can skip this bridge and connect straight to
|
|
32
|
-
${DEFAULT_ENDPOINT}/all with an Authorization: Bearer header.
|
|
33
|
-
Docs: https://apick.app/dev_guide/mcp
|
|
34
|
-
`;
|
|
35
|
-
|
|
36
|
-
function parseArgs(argv) {
|
|
37
|
-
const args = { server: process.env.APICK_MCP_SERVER || 'all' };
|
|
38
|
-
for (let i = 0; i < argv.length; i++) {
|
|
39
|
-
const arg = argv[i];
|
|
40
|
-
if (arg === '--help' || arg === '-h') args.help = true;
|
|
41
|
-
else if (arg === '--version' || arg === '-v') args.version = true;
|
|
42
|
-
else if (arg === '--server' || arg === '-s') args.server = argv[++i];
|
|
43
|
-
else if (arg.startsWith('--server=')) args.server = arg.slice('--server='.length);
|
|
44
|
-
else args.unknown = arg;
|
|
45
|
-
}
|
|
46
|
-
return args;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
async function main() {
|
|
50
|
-
const args = parseArgs(process.argv.slice(2));
|
|
51
|
-
|
|
52
|
-
if (args.help) {
|
|
53
|
-
process.stdout.write(HELP);
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (args.version) {
|
|
57
|
-
const pkgPath = fileURLToPath(new URL('../package.json', import.meta.url));
|
|
58
|
-
process.stdout.write(JSON.parse(readFileSync(pkgPath, 'utf8')).version + '\n');
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
if (args.unknown) {
|
|
62
|
-
process.stderr.write('apick-mcp: unknown argument ' + args.unknown + '\n\n' + HELP);
|
|
63
|
-
process.exitCode = 2;
|
|
64
|
-
return;
|
|
65
|
-
}
|
|
66
|
-
if (!SERVERS.includes(args.server)) {
|
|
67
|
-
process.stderr.write(
|
|
68
|
-
'apick-mcp: unknown server "' + args.server + '". Available: ' + SERVERS.join(', ') + '\n'
|
|
69
|
-
);
|
|
70
|
-
process.exitCode = 2;
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
const bridge = createBridge({
|
|
75
|
-
server: args.server,
|
|
76
|
-
apiKey: process.env.APICK_API_KEY,
|
|
77
|
-
endpoint: process.env.APICK_MCP_URL
|
|
78
|
-
});
|
|
79
|
-
|
|
80
|
-
if (!process.env.APICK_API_KEY) {
|
|
81
|
-
process.stderr.write(
|
|
82
|
-
'apick-mcp: no APICK_API_KEY set - tool discovery works, tool calls will ask you to sign in at https://apick.app\n'
|
|
83
|
-
);
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
await bridge.attach(process.stdin);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
main().catch((err) => {
|
|
90
|
-
process.stderr.write('apick-mcp: ' + err.message + '\n');
|
|
91
|
-
process.exitCode = 1;
|
|
92
|
-
});
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
// apick-mcp - run the APICK MCP server over stdio.
|
|
3
|
+
//
|
|
4
|
+
// Usage:
|
|
5
|
+
// apick-mcp [--server <name>]
|
|
6
|
+
//
|
|
7
|
+
// Environment:
|
|
8
|
+
// APICK_API_KEY APICK license key. Optional: tools/list works without one,
|
|
9
|
+
// tools/call needs it.
|
|
10
|
+
// APICK_MCP_SERVER Which server to expose (default: all).
|
|
11
|
+
// APICK_MCP_URL Base URL override (default: https://apick.app/mcp).
|
|
12
|
+
|
|
13
|
+
import { readFileSync } from 'node:fs';
|
|
14
|
+
import { fileURLToPath } from 'node:url';
|
|
15
|
+
import { createBridge, DEFAULT_ENDPOINT, SERVERS } from './bridge.js';
|
|
16
|
+
|
|
17
|
+
const HELP = `apick-mcp - APICK MCP server over stdio
|
|
18
|
+
|
|
19
|
+
apick-mcp [--server <name>]
|
|
20
|
+
|
|
21
|
+
Options
|
|
22
|
+
--server, -s <name> ${SERVERS.join(', ')} (default: all)
|
|
23
|
+
--version, -v print version
|
|
24
|
+
--help, -h print this message
|
|
25
|
+
|
|
26
|
+
Environment
|
|
27
|
+
APICK_API_KEY APICK license key (get one at https://apick.app)
|
|
28
|
+
APICK_MCP_SERVER same as --server
|
|
29
|
+
APICK_MCP_URL base URL override (default: ${DEFAULT_ENDPOINT})
|
|
30
|
+
|
|
31
|
+
Clients that support remote MCP can skip this bridge and connect straight to
|
|
32
|
+
${DEFAULT_ENDPOINT}/all with an Authorization: Bearer header.
|
|
33
|
+
Docs: https://apick.app/dev_guide/mcp
|
|
34
|
+
`;
|
|
35
|
+
|
|
36
|
+
function parseArgs(argv) {
|
|
37
|
+
const args = { server: process.env.APICK_MCP_SERVER || 'all' };
|
|
38
|
+
for (let i = 0; i < argv.length; i++) {
|
|
39
|
+
const arg = argv[i];
|
|
40
|
+
if (arg === '--help' || arg === '-h') args.help = true;
|
|
41
|
+
else if (arg === '--version' || arg === '-v') args.version = true;
|
|
42
|
+
else if (arg === '--server' || arg === '-s') args.server = argv[++i];
|
|
43
|
+
else if (arg.startsWith('--server=')) args.server = arg.slice('--server='.length);
|
|
44
|
+
else args.unknown = arg;
|
|
45
|
+
}
|
|
46
|
+
return args;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
async function main() {
|
|
50
|
+
const args = parseArgs(process.argv.slice(2));
|
|
51
|
+
|
|
52
|
+
if (args.help) {
|
|
53
|
+
process.stdout.write(HELP);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (args.version) {
|
|
57
|
+
const pkgPath = fileURLToPath(new URL('../package.json', import.meta.url));
|
|
58
|
+
process.stdout.write(JSON.parse(readFileSync(pkgPath, 'utf8')).version + '\n');
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
if (args.unknown) {
|
|
62
|
+
process.stderr.write('apick-mcp: unknown argument ' + args.unknown + '\n\n' + HELP);
|
|
63
|
+
process.exitCode = 2;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (!SERVERS.includes(args.server)) {
|
|
67
|
+
process.stderr.write(
|
|
68
|
+
'apick-mcp: unknown server "' + args.server + '". Available: ' + SERVERS.join(', ') + '\n'
|
|
69
|
+
);
|
|
70
|
+
process.exitCode = 2;
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const bridge = createBridge({
|
|
75
|
+
server: args.server,
|
|
76
|
+
apiKey: process.env.APICK_API_KEY,
|
|
77
|
+
endpoint: process.env.APICK_MCP_URL
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
if (!process.env.APICK_API_KEY) {
|
|
81
|
+
process.stderr.write(
|
|
82
|
+
'apick-mcp: no APICK_API_KEY set - tool discovery works, tool calls will ask you to sign in at https://apick.app\n'
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
await bridge.attach(process.stdin);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
main().catch((err) => {
|
|
90
|
+
process.stderr.write('apick-mcp: ' + err.message + '\n');
|
|
91
|
+
process.exitCode = 1;
|
|
92
|
+
});
|