@apify/mcpc 0.2.6 → 0.3.0-beta.1

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/CONTRIBUTING.md +50 -147
  3. package/NOTICE +27 -0
  4. package/README.md +191 -235
  5. package/_config.yml +30 -0
  6. package/client-logo.svg +79 -0
  7. package/client-metadata.json +16 -0
  8. package/dist/bridge/index.js +25 -0
  9. package/dist/bridge/index.js.map +1 -1
  10. package/dist/cli/commands/auth.d.ts +2 -1
  11. package/dist/cli/commands/auth.d.ts.map +1 -1
  12. package/dist/cli/commands/auth.js +27 -12
  13. package/dist/cli/commands/auth.js.map +1 -1
  14. package/dist/cli/commands/grep.js +4 -4
  15. package/dist/cli/commands/grep.js.map +1 -1
  16. package/dist/cli/commands/sessions.d.ts +21 -2
  17. package/dist/cli/commands/sessions.d.ts.map +1 -1
  18. package/dist/cli/commands/sessions.js +366 -66
  19. package/dist/cli/commands/sessions.js.map +1 -1
  20. package/dist/cli/commands/tasks.d.ts.map +1 -1
  21. package/dist/cli/commands/tasks.js +6 -3
  22. package/dist/cli/commands/tasks.js.map +1 -1
  23. package/dist/cli/commands/tools.d.ts.map +1 -1
  24. package/dist/cli/commands/tools.js +42 -18
  25. package/dist/cli/commands/tools.js.map +1 -1
  26. package/dist/cli/commands/x402.d.ts.map +1 -1
  27. package/dist/cli/commands/x402.js +6 -6
  28. package/dist/cli/commands/x402.js.map +1 -1
  29. package/dist/cli/helpers.d.ts.map +1 -1
  30. package/dist/cli/helpers.js +3 -6
  31. package/dist/cli/helpers.js.map +1 -1
  32. package/dist/cli/index.js +110 -73
  33. package/dist/cli/index.js.map +1 -1
  34. package/dist/cli/output.d.ts +13 -5
  35. package/dist/cli/output.d.ts.map +1 -1
  36. package/dist/cli/output.js +176 -77
  37. package/dist/cli/output.js.map +1 -1
  38. package/dist/cli/parser.d.ts.map +1 -1
  39. package/dist/cli/parser.js +19 -9
  40. package/dist/cli/parser.js.map +1 -1
  41. package/dist/cli/shell.js +19 -19
  42. package/dist/cli/shell.js.map +1 -1
  43. package/dist/cli/tool-result.d.ts +1 -1
  44. package/dist/cli/tool-result.d.ts.map +1 -1
  45. package/dist/cli/tool-result.js +20 -15
  46. package/dist/cli/tool-result.js.map +1 -1
  47. package/dist/core/factory.d.ts +1 -0
  48. package/dist/core/factory.d.ts.map +1 -1
  49. package/dist/core/factory.js +3 -0
  50. package/dist/core/factory.js.map +1 -1
  51. package/dist/core/transports.d.ts +5 -1
  52. package/dist/core/transports.d.ts.map +1 -1
  53. package/dist/core/transports.js +26 -4
  54. package/dist/core/transports.js.map +1 -1
  55. package/dist/lib/auth/auth-page.d.ts +13 -0
  56. package/dist/lib/auth/auth-page.d.ts.map +1 -0
  57. package/dist/lib/auth/auth-page.js +129 -0
  58. package/dist/lib/auth/auth-page.js.map +1 -0
  59. package/dist/lib/auth/oauth-flow.d.ts +1 -1
  60. package/dist/lib/auth/oauth-flow.d.ts.map +1 -1
  61. package/dist/lib/auth/oauth-flow.js +50 -67
  62. package/dist/lib/auth/oauth-flow.js.map +1 -1
  63. package/dist/lib/auth/oauth-provider.d.ts.map +1 -1
  64. package/dist/lib/auth/oauth-provider.js +2 -0
  65. package/dist/lib/auth/oauth-provider.js.map +1 -1
  66. package/dist/lib/auth/oauth-utils.d.ts +3 -0
  67. package/dist/lib/auth/oauth-utils.d.ts.map +1 -1
  68. package/dist/lib/auth/oauth-utils.js +32 -1
  69. package/dist/lib/auth/oauth-utils.js.map +1 -1
  70. package/dist/lib/auth/profiles.d.ts.map +1 -1
  71. package/dist/lib/auth/profiles.js +3 -3
  72. package/dist/lib/auth/profiles.js.map +1 -1
  73. package/dist/lib/bridge-manager.d.ts.map +1 -1
  74. package/dist/lib/bridge-manager.js +21 -9
  75. package/dist/lib/bridge-manager.js.map +1 -1
  76. package/dist/lib/config.d.ts +21 -0
  77. package/dist/lib/config.d.ts.map +1 -1
  78. package/dist/lib/config.js +94 -4
  79. package/dist/lib/config.js.map +1 -1
  80. package/dist/lib/errors.d.ts +1 -0
  81. package/dist/lib/errors.d.ts.map +1 -1
  82. package/dist/lib/errors.js +3 -0
  83. package/dist/lib/errors.js.map +1 -1
  84. package/dist/lib/sessions.d.ts.map +1 -1
  85. package/dist/lib/sessions.js +5 -4
  86. package/dist/lib/sessions.js.map +1 -1
  87. package/dist/lib/utils.d.ts +1 -0
  88. package/dist/lib/utils.d.ts.map +1 -1
  89. package/dist/lib/utils.js +21 -1
  90. package/dist/lib/utils.js.map +1 -1
  91. package/dist/lib/wallets.js +3 -3
  92. package/dist/lib/wallets.js.map +1 -1
  93. package/docs/examples/company-lookup.sh +134 -0
  94. package/docs/examples/mcp-config.json +28 -0
  95. package/package.json +39 -33
  96. package/pnpm-workspace.yaml +10 -0
  97. package/tsconfig.test.json +2 -1
  98. package/vitest.config.ts +26 -0
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/lib/wallets.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../src/lib/wallets.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ #!/bin/bash
2
+ #
3
+ # Company Lookup Script using mcpc + Apify RAG Web Browser
4
+ #
5
+ # This is an example of an AI-generated "code mode" script that uses mcpc
6
+ # to call MCP tools programmatically. It was generated by Claude Code + Opus 4.5.
7
+ #
8
+ # Prerequisites:
9
+ # 1. Install mcpc: npm install -g @apify/mcpc
10
+ # 2. Login to Apify MCP server: mcpc mcp.apify.com login
11
+ # 3. Create a session: mcpc mcp.apify.com connect @apify
12
+ #
13
+ # Usage:
14
+ # ./company-lookup.sh "Company Name"
15
+ #
16
+ # Example:
17
+ # ./company-lookup.sh "Stripe"
18
+ # ./company-lookup.sh "Anthropic"
19
+ #
20
+
21
+ set -e
22
+
23
+ # Configuration
24
+ SESSION="${MCPC_SESSION:-@apify}"
25
+ REQUIRED_TOOL="apify-slash-rag-web-browser"
26
+
27
+ # Colors for output
28
+ RED='\033[0;31m'
29
+ GREEN='\033[0;32m'
30
+ YELLOW='\033[0;33m'
31
+ BLUE='\033[0;34m'
32
+ NC='\033[0m' # No Color
33
+
34
+ # Helper functions
35
+ error() { echo -e "${RED}❌ Error: $1${NC}" >&2; exit 1; }
36
+ info() { echo -e "${BLUE}$1${NC}"; }
37
+ success() { echo -e "${GREEN}$1${NC}"; }
38
+ warn() { echo -e "${YELLOW}$1${NC}"; }
39
+
40
+ # Check if mcpc is installed
41
+ if ! command -v mcpc &> /dev/null; then
42
+ error "mcpc is not installed. Install it with: npm install -g @apify/mcpc"
43
+ fi
44
+
45
+ # Parse arguments
46
+ COMPANY="${1:-}"
47
+ if [ -z "$COMPANY" ]; then
48
+ echo "Usage: $0 \"Company Name\""
49
+ echo ""
50
+ echo "Examples:"
51
+ echo " $0 \"Stripe\""
52
+ echo " $0 \"Anthropic\""
53
+ echo ""
54
+ echo "Environment variables:"
55
+ echo " MCPC_SESSION Session to use (default: @apify)"
56
+ exit 1
57
+ fi
58
+
59
+ # Check if the session exists and is live
60
+ info "🔌 Checking session ${SESSION}..."
61
+
62
+ SESSION_STATUS=$(mcpc --json 2>/dev/null | jq -r ".sessions[] | select(.name == \"${SESSION}\") | .status" 2>/dev/null || echo "")
63
+
64
+ if [ -z "$SESSION_STATUS" ]; then
65
+ echo ""
66
+ error "Session ${SESSION} not found.
67
+
68
+ To set up the required session:
69
+ 1. Login to Apify: mcpc mcp.apify.com login
70
+ 2. Create session: mcpc mcp.apify.com connect ${SESSION}
71
+
72
+ Or use a different session by setting MCPC_SESSION environment variable."
73
+ fi
74
+
75
+ if [ "$SESSION_STATUS" = "expired" ]; then
76
+ error "Session ${SESSION} has expired. Please recreate it:
77
+ mcpc ${SESSION} close
78
+ mcpc mcp.apify.com connect ${SESSION}"
79
+ fi
80
+
81
+ if [ "$SESSION_STATUS" = "crashed" ]; then
82
+ warn "⚠️ Session ${SESSION} has crashed, will attempt to restart..."
83
+ fi
84
+
85
+ # Verify the required tool is available
86
+ info "🔧 Checking for required tool..."
87
+
88
+ TOOL_EXISTS=$(mcpc --json "${SESSION}" tools-list 2>/dev/null | jq -r ".[] | select(.name == \"${REQUIRED_TOOL}\") | .name" 2>/dev/null || echo "")
89
+
90
+ if [ -z "$TOOL_EXISTS" ]; then
91
+ error "Required tool '${REQUIRED_TOOL}' not found on server.
92
+ Make sure you're connected to the correct MCP server (mcp.apify.com)."
93
+ fi
94
+
95
+ # All checks passed, proceed with the lookup
96
+ echo ""
97
+ info "🔍 Looking up: $COMPANY"
98
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
99
+ echo ""
100
+ info "⏳ Searching the web..."
101
+ echo ""
102
+
103
+ # Build the query - company name + search terms
104
+ QUERY="${COMPANY} company headquarters address"
105
+
106
+ # Use mcpc with the RAG web browser to fetch results as JSON
107
+ RESULT=$(mcpc "${SESSION}" tools-call "${REQUIRED_TOOL}" \
108
+ query:="$QUERY" \
109
+ maxResults:=1 \
110
+ outputFormats:='["markdown"]' \
111
+ --json 2>/dev/null) || error "Failed to call tool. Check your session and try again."
112
+
113
+ # Parse the markdown from the result
114
+ MARKDOWN=$(echo "$RESULT" \
115
+ | jq -r '.content[0].text // empty' 2>/dev/null \
116
+ | jq -r '.[0].markdown // empty' 2>/dev/null)
117
+
118
+ # Check if we got results
119
+ if [ -z "$MARKDOWN" ]; then
120
+ warn "⚠️ No results found for '$COMPANY'"
121
+ echo ""
122
+ echo "Raw response:"
123
+ echo "$RESULT" | jq '.' 2>/dev/null || echo "$RESULT"
124
+ exit 1
125
+ fi
126
+
127
+ echo "📄 Company Information:"
128
+ echo "────────────────────────────────────────────────────"
129
+ # Show first 50 lines of markdown
130
+ echo "$MARKDOWN" | head -50
131
+
132
+ echo ""
133
+ echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
134
+ success "✅ Done"
@@ -0,0 +1,28 @@
1
+ {
2
+ "mcpServers": {
3
+ "playwright": {
4
+ "command": "npx",
5
+ "args": ["@playwright/mcp@latest"]
6
+ },
7
+
8
+ "fs": {
9
+ "command": "npx",
10
+ "args": ["-y", "@modelcontextprotocol/server-filesystem", "${PWD}"]
11
+ },
12
+
13
+ "apify-public": {
14
+ "url": "https://mcp.apify.com/?tools=docs,search-actors"
15
+ },
16
+
17
+ "apify-bearer": {
18
+ "url": "https://mcp.apify.com",
19
+ "headers": {
20
+ "Authorization": "Bearer ${APIFY_TOKEN}"
21
+ }
22
+ },
23
+
24
+ "apify-oauth": {
25
+ "url": "https://mcp.apify.com"
26
+ }
27
+ }
28
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@apify/mcpc",
3
- "version": "0.2.6",
3
+ "version": "0.3.0-beta.1",
4
4
  "description": "Universal command-line client for the Model Context Protocol (MCP).",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -28,31 +28,6 @@
28
28
  "engines": {
29
29
  "node": ">=20.0.0"
30
30
  },
31
- "scripts": {
32
- "build": "tsc",
33
- "build:watch": "tsc --watch",
34
- "build:readme": "./scripts/update-readme.sh",
35
- "test": "npm run build && npm run test:unit && ./test/e2e/run.sh --no-build --parallel 8 && ./test/e2e/run.sh --no-build --parallel 8 --runtime bun",
36
- "test:unit": "jest",
37
- "test:watch": "jest --watch",
38
- "test:coverage": "npm run test:coverage:unit && npm run test:coverage:e2e && npm run test:coverage:merge",
39
- "test:coverage:unit": "jest --coverage && find test/coverage/unit -name '*.html' -exec sed -i '' -e 's/Code coverage report for All files/mcpc Coverage (Unit Tests)/g' -e 's/<h1>All files<\\/h1>/<h1>Unit Test Coverage<\\/h1>/g' {} \\;",
40
- "test:coverage:e2e": "./test/e2e/run.sh --coverage",
41
- "test:coverage:merge": "test/coverage/coverage-merge.sh",
42
- "test:e2e": "./test/e2e/run.sh --keep",
43
- "test:e2e:bun": "./test/e2e/run.sh --no-build --runtime bun",
44
- "lint": "eslint src/**/*.ts && prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
45
- "lint:fix": "eslint src/**/*.ts --fix && prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
46
- "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
47
- "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
48
- "clean": "rm -rf dist",
49
- "prebuild": "npm run clean",
50
- "prepublishOnly": "if [ -z \"$MCPC_RELEASE\" ]; then echo '\\n❌ Direct npm publish is not allowed.\\n Please use: npm run release\\n' && exit 1; fi",
51
- "release": "bash scripts/publish.sh",
52
- "release:minor": "bash scripts/publish.sh minor",
53
- "release:major": "bash scripts/publish.sh major",
54
- "release:pre": "bash scripts/publish.sh --pre-release"
55
- },
56
31
  "dependencies": {
57
32
  "@inquirer/input": "^5.0.3",
58
33
  "@inquirer/select": "^5.0.3",
@@ -68,23 +43,54 @@
68
43
  "viem": "^2.46.3"
69
44
  },
70
45
  "devDependencies": {
71
- "@types/jest": "^30.0.0",
72
46
  "@types/node": "^25.0.3",
73
47
  "@types/proper-lockfile": "^4.1.4",
74
48
  "@types/qrcode-terminal": "^0.12.2",
75
49
  "@types/uuid": "^11.0.0",
76
- "@typescript-eslint/eslint-plugin": "^8.50.0",
77
- "@typescript-eslint/parser": "^8.50.0",
50
+ "@typescript-eslint/eslint-plugin": "8.57.2",
51
+ "@typescript-eslint/parser": "8.57.2",
52
+ "@vitest/coverage-v8": "4.1.5",
78
53
  "c8": "^11.0.0",
79
54
  "doctoc": "^2.2.1",
80
55
  "eslint": "^8.57.1",
81
- "jest": "^30.2.0",
82
56
  "markdown-link-check": "^3.14.2",
83
57
  "nyc": "^18.0.0",
84
58
  "prettier": "^3.7.4",
85
59
  "proxy-chain": "^2.7.1",
86
- "ts-jest": "^29.4.6",
87
60
  "tsx": "^4.21.0",
88
- "typescript": "^5.9.3"
61
+ "typescript": "^5.9.3",
62
+ "vitest": "4.1.5"
63
+ },
64
+ "devEngines": {
65
+ "packageManager": {
66
+ "name": "pnpm",
67
+ "version": "10.33.4",
68
+ "onFail": "warn"
69
+ }
70
+ },
71
+ "scripts": {
72
+ "build": "tsc",
73
+ "build:watch": "tsc --watch",
74
+ "build:readme": "./scripts/update-readme.sh",
75
+ "test": "pnpm run build && pnpm run test:unit && ./test/e2e/run.sh --no-build --parallel 8 && ./test/e2e/run.sh --no-build --parallel 8 --runtime bun",
76
+ "test:unit": "vitest run",
77
+ "test:watch": "vitest",
78
+ "test:coverage": "pnpm run test:coverage:unit && pnpm run test:coverage:e2e && pnpm run test:coverage:merge",
79
+ "test:coverage:unit": "vitest run --coverage",
80
+ "test:coverage:e2e": "./test/e2e/run.sh --coverage",
81
+ "test:coverage:merge": "test/coverage/coverage-merge.sh",
82
+ "test:e2e": "./test/e2e/run.sh --keep",
83
+ "test:e2e:bun": "./test/e2e/run.sh --no-build --runtime bun",
84
+ "test:conformance": "pnpm run build && npx -y @modelcontextprotocol/conformance client --command \"node test/conformance/client.mjs\" --scenario initialize",
85
+ "lint": "eslint src/**/*.ts && prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
86
+ "lint:fix": "eslint src/**/*.ts --fix && prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
87
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
88
+ "format:check": "prettier --check \"src/**/*.ts\" \"test/**/*.ts\"",
89
+ "clean": "rm -rf dist",
90
+ "prebuild": "pnpm run clean",
91
+ "release": "bash scripts/publish.sh",
92
+ "release:minor": "bash scripts/publish.sh minor",
93
+ "release:major": "bash scripts/publish.sh major",
94
+ "release:pre": "bash scripts/publish.sh --pre-release"
89
95
  }
90
- }
96
+ }
@@ -0,0 +1,10 @@
1
+ # Supply-chain protection: require packages to be at least X days old before pnpm will install them.
2
+ # Mitigates compromised npm packages discovered and yanked within the first day (shai-hulud worm,
3
+ # nx self-replicator, etc.). 7200 minutes = 5 days.
4
+ minimumReleaseAge: 7200
5
+
6
+ # @napi-rs/keyring ships a native node binding that needs to be built/copied
7
+ # into place on install. Without this entry pnpm v10 refuses to run its
8
+ # postinstall script and the keychain feature breaks at runtime.
9
+ onlyBuiltDependencies:
10
+ - "@napi-rs/keyring"
@@ -2,7 +2,8 @@
2
2
  "extends": "./tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "module": "ES2022",
5
- "moduleResolution": "bundler"
5
+ "moduleResolution": "bundler",
6
+ "types": ["vitest/globals", "node"]
6
7
  },
7
8
  "include": [
8
9
  "test/**/*",
@@ -0,0 +1,26 @@
1
+ import { defineConfig } from 'vitest/config';
2
+
3
+ // Coverage thresholds match the previous Jest setup (70% across the board).
4
+ // See test/README.md for the test layout.
5
+ export default defineConfig({
6
+ test: {
7
+ include: ['test/unit/**/*.test.ts', 'test/unit/**/*.spec.ts'],
8
+ environment: 'node',
9
+ // `globals: true` keeps the existing test bodies (`describe`/`it`/`expect`)
10
+ // working without changing every file's imports. Jest-compatible API.
11
+ globals: true,
12
+ coverage: {
13
+ provider: 'v8',
14
+ reportsDirectory: 'test/coverage/unit',
15
+ reporter: ['text', 'lcov', 'html', 'json'],
16
+ include: ['src/**/*.ts'],
17
+ exclude: ['src/**/*.d.ts', 'src/**/index.ts'],
18
+ thresholds: {
19
+ branches: 70,
20
+ functions: 70,
21
+ lines: 70,
22
+ statements: 70,
23
+ },
24
+ },
25
+ },
26
+ });