@apify/actors-mcp-server 0.9.12-beta.4 → 0.9.13-beta.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.
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_apify_docs.d.ts","sourceRoot":"","sources":["../../../src/tools/common/fetch_apify_docs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAanF,eAAO,MAAM,kBAAkB,EAAE,SAqFtB,CAAC"}
1
+ {"version":3,"file":"fetch_apify_docs.d.ts","sourceRoot":"","sources":["../../../src/tools/common/fetch_apify_docs.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAoBnF,eAAO,MAAM,kBAAkB,EAAE,SAgFtB,CAAC"}
@@ -3,7 +3,6 @@ import log from '@apify/log';
3
3
  import { ALLOWED_DOC_DOMAINS, HelperTools, TOOL_STATUS } from '../../const.js';
4
4
  import { fetchApifyDocsCache } from '../../state.js';
5
5
  import { compileSchema } from '../../utils/ajv.js';
6
- import { htmlToMarkdown } from '../../utils/html_to_md.js';
7
6
  import { logHttpError } from '../../utils/logging.js';
8
7
  import { buildMCPResponse } from '../../utils/mcp.js';
9
8
  import { fetchApifyDocsToolOutputSchema } from '../structured_output_schemas.js';
@@ -12,6 +11,12 @@ const fetchApifyDocsToolArgsSchema = z.object({
12
11
  .min(1)
13
12
  .describe(`URL of the Apify documentation page to fetch. This should be the full URL, including the protocol (e.g., https://docs.apify.com/).`),
14
13
  });
14
+ const fetchApifyDocsToolInputSchema = z.toJSONSchema(fetchApifyDocsToolArgsSchema);
15
+ function buildFetchErrorMessage(url, detail) {
16
+ return `Failed to fetch the documentation page at "${url}". ${detail} \
17
+ Please verify the URL is correct and accessible. \
18
+ You can search for available documentation pages using the ${HelperTools.DOCS_SEARCH} tool.`;
19
+ }
15
20
  export const fetchApifyDocsTool = Object.freeze({
16
21
  type: 'internal',
17
22
  name: HelperTools.DOCS_FETCH,
@@ -25,9 +30,9 @@ USAGE EXAMPLES:
25
30
  - user_input: Fetch https://docs.apify.com/platform/actors/running#builds
26
31
  - user_input: Fetch https://docs.apify.com/academy
27
32
  - user_input: Fetch https://crawlee.dev/docs/guides/basic-concepts`,
28
- inputSchema: z.toJSONSchema(fetchApifyDocsToolArgsSchema),
33
+ inputSchema: fetchApifyDocsToolInputSchema,
29
34
  outputSchema: fetchApifyDocsToolOutputSchema,
30
- ajvValidate: compileSchema(z.toJSONSchema(fetchApifyDocsToolArgsSchema)),
35
+ ajvValidate: compileSchema(fetchApifyDocsToolInputSchema),
31
36
  annotations: {
32
37
  title: 'Fetch Apify docs',
33
38
  readOnlyHint: true,
@@ -39,53 +44,47 @@ USAGE EXAMPLES:
39
44
  const { args } = toolArgs;
40
45
  const parsed = fetchApifyDocsToolArgsSchema.parse(args);
41
46
  const url = parsed.url.trim();
42
- const urlWithoutFragment = url.split('#')[0];
43
47
  // Allow URLs from Apify and Crawlee documentation
44
48
  const isAllowedDomain = ALLOWED_DOC_DOMAINS.some((domain) => url.startsWith(domain));
45
49
  if (!isAllowedDomain) {
46
50
  log.softFail(`[fetch-apify-docs] Invalid URL domain: ${url}`);
47
51
  return buildMCPResponse({
48
- texts: [`Invalid URL: "${url}".
49
- Only documentation URLs from Apify and Crawlee are allowed (starting with ${ALLOWED_DOC_DOMAINS.map((d) => `"${d}"`).join(' or ')}).
50
- Please provide a valid documentation URL. You can find documentation URLs using the ${HelperTools.DOCS_SEARCH} tool.`],
52
+ texts: [`Invalid URL: "${url}". \
53
+ Only documentation URLs from Apify and Crawlee are allowed \
54
+ (starting with ${ALLOWED_DOC_DOMAINS.map((d) => `"${d}"`).join(' or ')}). \
55
+ Please provide a valid documentation URL. \
56
+ You can find documentation URLs using the ${HelperTools.DOCS_SEARCH} tool.`],
51
57
  isError: true,
52
58
  toolStatus: TOOL_STATUS.SOFT_FAIL,
53
59
  });
54
60
  }
55
- // Cache URL without fragment to avoid fetching the same page multiple times
61
+ // Cache by URL without fragment to avoid fetching the same page multiple times
62
+ const urlWithoutFragment = url.split('#')[0];
56
63
  let markdown = fetchApifyDocsCache.get(urlWithoutFragment);
57
- // If the content is not cached, fetch it from the URL
58
64
  if (!markdown) {
65
+ // Use the .md variant of the URL to get Markdown directly
66
+ const mdUrl = `${urlWithoutFragment}.md`;
59
67
  try {
60
- const response = await fetch(url);
68
+ const response = await fetch(mdUrl);
61
69
  if (!response.ok) {
62
70
  const error = Object.assign(new Error(`HTTP ${response.status} ${response.statusText}`), {
63
71
  statusCode: response.status,
64
72
  });
65
- logHttpError(error, 'Failed to fetch the documentation page', { url, statusText: response.statusText });
66
- // HTTP 4xx = user error (soft_fail), 5xx = server error (will be caught by catch block)
73
+ logHttpError(error, 'Failed to fetch the documentation page', { url: mdUrl, statusText: response.statusText });
67
74
  const isUserError = response.status >= 400 && response.status < 500;
68
75
  return buildMCPResponse({
69
- texts: [`Failed to fetch the documentation page at "${url}".
70
- HTTP Status: ${response.status} ${response.statusText}.
71
- Please verify the URL is correct and accessible. You can search for available documentation pages using the ${HelperTools.DOCS_SEARCH} tool.`],
76
+ texts: [buildFetchErrorMessage(url, `HTTP Status: ${response.status} ${response.statusText}.`)],
72
77
  isError: true,
73
78
  toolStatus: isUserError ? TOOL_STATUS.SOFT_FAIL : TOOL_STATUS.FAILED,
74
79
  });
75
80
  }
76
- const html = await response.text();
77
- markdown = htmlToMarkdown(html);
78
- // Cache the processed Markdown content
79
- // Use the URL without fragment as the key to avoid caching same page with different fragments
81
+ markdown = await response.text();
80
82
  fetchApifyDocsCache.set(urlWithoutFragment, markdown);
81
83
  }
82
84
  catch (error) {
83
- logHttpError(error, 'Failed to fetch the documentation page', { url });
84
- // Network/fetch errors are typically user errors (bad URL, connectivity issues)
85
+ logHttpError(error, 'Failed to fetch the documentation page', { url: mdUrl });
85
86
  return buildMCPResponse({
86
- texts: [`Failed to fetch the documentation page at "${url}".
87
- Error: ${error instanceof Error ? error.message : String(error)}.
88
- Please verify the URL is correct and accessible. You can search for available documentation pages using the ${HelperTools.DOCS_SEARCH} tool.`],
87
+ texts: [buildFetchErrorMessage(url, `Error: ${error instanceof Error ? error.message : String(error)}.`)],
89
88
  isError: true,
90
89
  toolStatus: TOOL_STATUS.SOFT_FAIL,
91
90
  });
@@ -1 +1 @@
1
- {"version":3,"file":"fetch_apify_docs.js","sourceRoot":"","sources":["../../../src/tools/common/fetch_apify_docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fetch_apify_docs.js","sourceRoot":"","sources":["../../../src/tools/common/fetch_apify_docs.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"search_apify_docs.d.ts","sourceRoot":"","sources":["../../../src/tools/common/search_apify_docs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAgEnF,eAAO,MAAM,mBAAmB,EAAE,SA8DvB,CAAC"}
1
+ {"version":3,"file":"search_apify_docs.d.ts","sourceRoot":"","sources":["../../../src/tools/common/search_apify_docs.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAoB,SAAS,EAAmB,MAAM,gBAAgB,CAAC;AAuEnF,eAAO,MAAM,mBAAmB,EAAE,SA8DvB,CAAC"}
@@ -4,6 +4,8 @@ import { compileSchema } from '../../utils/ajv.js';
4
4
  import { searchDocsBySourceCached } from '../../utils/apify_docs.js';
5
5
  import { buildMCPResponse } from '../../utils/mcp.js';
6
6
  import { searchApifyDocsToolOutputSchema } from '../structured_output_schemas.js';
7
+ const PLATFORM_DOCS_PREFERENCE = `When results contain both platform documentation (\`docs.apify.com/platform\`) \
8
+ and Academy content (\`docs.apify.com/academy\`) on the same topic, prefer the platform documentation.`;
7
9
  /**
8
10
  * Build docSource parameter description dynamically from DOCS_SOURCES
9
11
  */
@@ -25,7 +27,9 @@ ${sources}
25
27
  The results will include the URL of the documentation page (which may include an anchor),
26
28
  and a limited piece of content that matches the search query.
27
29
 
28
- Fetch the full content of the document using the ${HelperTools.DOCS_FETCH} tool by providing the URL.`;
30
+ Fetch the full content of the document using the ${HelperTools.DOCS_FETCH} tool by providing the URL.
31
+
32
+ ${PLATFORM_DOCS_PREFERENCE}`;
29
33
  }
30
34
  const searchApifyDocsToolArgsSchema = z.object({
31
35
  docSource: z.enum(DOCS_SOURCES.map((source) => source.id))
@@ -50,13 +54,14 @@ You can increase this limit if you need more results, but keep in mind that the
50
54
  .describe(`Offset for the search results. Defaults to 0.
51
55
  Use this to paginate through the search results. For example, if you want to get the next 5 results, set the offset to 5 and limit to 5.`),
52
56
  });
57
+ const searchApifyDocsToolInputSchema = z.toJSONSchema(searchApifyDocsToolArgsSchema);
53
58
  export const searchApifyDocsTool = Object.freeze({
54
59
  type: 'internal',
55
60
  name: HelperTools.DOCS_SEARCH,
56
61
  description: buildToolDescription(),
57
- inputSchema: z.toJSONSchema(searchApifyDocsToolArgsSchema),
62
+ inputSchema: searchApifyDocsToolInputSchema,
58
63
  outputSchema: searchApifyDocsToolOutputSchema,
59
- ajvValidate: compileSchema(z.toJSONSchema(searchApifyDocsToolArgsSchema)),
64
+ ajvValidate: compileSchema(searchApifyDocsToolInputSchema),
60
65
  annotations: {
61
66
  title: 'Search Apify docs',
62
67
  readOnlyHint: true,
@@ -83,7 +88,7 @@ You can also try using more specific or alternative keywords related to your sea
83
88
  return buildMCPResponse({ texts: [instructions], structuredContent });
84
89
  }
85
90
  // Instructions for LLM to use the docs fetch tool when retrieving full document content
86
- const instructions = 'You can use the Apify docs fetch tool to retrieve the full content of a document by its URL.';
91
+ const instructions = `You can use the Apify docs fetch tool to retrieve the full content of a document by its URL. ${PLATFORM_DOCS_PREFERENCE}`;
87
92
  // Actual unstructured text result
88
93
  const textResult = `Search results for "${query}" in ${parsed.docSource}:
89
94
 
@@ -1 +1 @@
1
- {"version":3,"file":"search_apify_docs.js","sourceRoot":"","sources":["../../../src/tools/common/search_apify_docs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search_apify_docs.js","sourceRoot":"","sources":["../../../src/tools/common/search_apify_docs.ts"],"names":[],"mappings":"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"}