@@ -18,84 +18,36 @@ jobs:
1818 smoke_test :
1919 name : Smoke test published package
2020 runs-on : ubuntu-latest
21- defaults :
22- run :
23- working-directory : smoke-test
2421 steps :
2522 - name : Use Node.js
2623 uses : actions/setup-node@v6
2724 with :
2825 node-version : 22
2926
30- - name : Create isolated test directory
31- working-directory : .
32- run : |
33- mkdir smoke-test
34- cd smoke-test
35- npm init -y
36-
3727 - name : Install published package
3828 uses : nick-fields/retry@v3
3929 with :
4030 timeout_minutes : 10
4131 max_attempts : 5
4232 retry_wait_seconds : 30
4333 command : |
44- cd smoke-test
45- if [ -n "${{ inputs.version }}" ]; then
46- npm install @apify/actors-mcp-server@${{ inputs.version }} @apify/mcpc
47- else
48- npm install @apify/actors-mcp-server@${{ inputs.npm_tag }} @apify/mcpc
49- fi
50-
51- - name : Report installed version
52- run : node -e "import fs from 'fs'; const p = JSON.parse(fs.readFileSync('node_modules/@apify/actors-mcp-server/package.json', 'utf8')); console.log('Installed version:', p.version);" --input-type=module
53-
54- - name : Verify library import
55- run : node --input-type=module -e "import { ActorsMcpServer } from '@apify/actors-mcp-server'; console.log('Library import OK');"
56-
57- - name : Verify internals import
58- run : node --input-type=module -e "import { HelperTools } from '@apify/actors-mcp-server/internals'; console.log('Internals import OK');"
59-
60- - name : Create MCP config for docs-only mode (no token needed)
61- run : |
62- cat > .mcp.json << 'EOF'
63- {
64- "mcpServers": {
65- "smoke": {
66- "command": "node",
67- "args": ["node_modules/@apify/actors-mcp-server/dist/stdio.js", "--tools", "docs", "--telemetry-enabled", "false"]
68- }
69- }
70- }
71- EOF
34+ mkdir -p smoke-test && cd smoke-test
35+ npm init -y
36+ SPEC="${{ inputs.version && format('@apify/actors-mcp-server@{0}', inputs.version) || format('@apify/actors-mcp-server@{0}', inputs.npm_tag) }}"
37+ npm install "$SPEC" @apify/mcpc
7238
73- - name : Connect mcpc session
74- run : npx mcpc --config .mcp.json stdio connect @smoke
75-
76- - name : Ping server
77- run : npx mcpc @smoke ping
78-
79- - name : List tools
80- run : |
81- TOOL_COUNT=$(npx mcpc --json @smoke tools-list | jq 'length')
82- echo "Found $TOOL_COUNT tools"
83- if [ "$TOOL_COUNT" -lt 1 ]; then
84- echo "ERROR: No tools returned"
85- exit 1
86- fi
87- npx mcpc --json @smoke tools-list | jq '.[].name'
88-
89- - name : Call search-apify-docs
39+ - name : Verify imports
40+ working-directory : smoke-test
9041 run : |
91- npx mcpc --json @smoke tools-call search-apify-docs query:="web scraping" docSource:="apify" | jq '.content[0].text' > /dev/null
92- echo "search- apify-docs OK "
42+ node --input-type=module -e "import { ActorsMcpServer } from '@apify/actors-mcp-server'; console.log('OK: library')"
43+ node --input-type=module -e "import { HelperTools } from '@ apify/actors-mcp-server/internals'; console.log('OK: internals') "
9344
94- - name : Call fetch-apify-docs
45+ - name : Smoke test MCP server via mcpc
46+ working-directory : smoke-test
9547 run : |
96- npx mcpc --json @smoke tools-call fetch-apify-docs url:="https://docs.apify.com/platform" | jq '.content[0].text ' > /dev/null
97- echo "fetch-apify-docs OK"
98-
99- - name : Disconnect mcpc session
100- if : always()
101- run : npx mcpc @smoke disconnect || true
48+ echo '{"mcpServers":{"s":{"command":"node","args":["node_modules/@apify/actors-mcp-server/dist/stdio.js","-- tools","docs","--telemetry-enabled","false"]}}} ' > .mcp.json
49+ npx mcpc --config .mcp.json stdio connect @s
50+ npx mcpc @s ping
51+ npx mcpc --json @s tools-list | jq -e 'length > 0'
52+ npx mcpc --json @s tools-call search-apify-docs query:="web scraping" docSource:="apify" | jq -e '.content[0].text'
53+ npx mcpc @s disconnect
0 commit comments