Skip to content

Commit ed750c0

Browse files
committed
feat: Update tool descriptions
1 parent f026fbb commit ed750c0

File tree

5 files changed

+72
-43
lines changed

5 files changed

+72
-43
lines changed

src/tools/actor.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -317,8 +317,7 @@ export const callActor: ToolEntry = {
317317
tool: {
318318
name: HelperTools.ACTOR_CALL,
319319
actorFullName: HelperTools.ACTOR_CALL,
320-
description: `Call Any Actor from Apify Store - Two-Step Process
321-
320+
description: `Call any Actor from Apify Store - two-step process
322321
This tool uses a mandatory two-step process to safely call any Actor from the Apify store.
323322
324323
USAGE:
@@ -328,13 +327,14 @@ USAGE:
328327
MANDATORY TWO-STEP WORKFLOW:
329328
330329
Step 1: Get Actor Info (step="info", default)
331-
• First call this tool with step="info" to get Actor details and input schema
332-
• This returns the Actor description, documentation, and required input schema
333-
• You MUST do this step first - it's required to understand how to call the Actor
334-
335-
Step 2: Call Actor (step="call")
336-
• Only after step 1, call again with step="call" and proper input based on the schema
337-
• This executes the Actor and returns the results
330+
- First call this tool with step="info" to get Actor details and input schema
331+
- This returns the Actor description, documentation, and required input schema
332+
- You MUST do this step first - it's required to understand how to call the Actor
333+
334+
Step 2: Call Actor (step="call")
335+
- Only after step 1, call again with step="call" and proper input based on the schema
336+
- This calls and runs the Actor. It will create an output as an Apify dataset (with datasetId).
337+
- This step returns a dataset preview, typically JSON-formatted tabular data.
338338
339339
The step parameter enforces this workflow - you cannot call an Actor without first getting its info.`,
340340
inputSchema: zodToJsonSchema(callActorArgs),

src/tools/fetch-actor-details.ts

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,16 @@ export const fetchActorDetailsTool: ToolEntry = {
1717
type: 'internal',
1818
tool: {
1919
name: HelperTools.ACTOR_GET_DETAILS,
20-
description: `Get detailed information about an Actor by its ID or full name.\n`
21-
+ `This tool returns title, description, URL, README (Actor's documentation), input schema, and usage statistics. \n`
22-
+ `The Actor name is always composed of "username/name", for example, "apify/rag-web-browser".\n`
23-
+ `Present Actor information in user-friendly format as an Actor card.\n`
24-
+ `USAGE:\n`
25-
+ `- Use when user asks about an Actor its details, description, input schema, etc.\n`
26-
+ `EXAMPLES:\n`
27-
+ `- user_input: How to use apify/rag-web-browser\n`
28-
+ `- user_input: What is the input schema for apify/rag-web-browser`,
20+
description: `Get detailed information about an Actor by its ID or full name.
21+
This tool returns title, description, URL, README (Actor's documentation), input schema, and usage statistics.
22+
The Actor name is always composed of "username/name", for example, "apify/rag-web-browser".
23+
Present Actor information in user-friendly format as an Actor card.
24+
USAGE:
25+
- Use when user asks about an Actor its details, description, input schema, etc.
26+
EXAMPLES:
27+
- user_input: How to use apify/rag-web-browser
28+
- user_input: What is the input schema for apify/rag-web-browser,
29+
- user_input: What is pricing of apify/instagram-scraper?`,
2930
inputSchema: zodToJsonSchema(fetchActorDetailsToolArgsSchema),
3031
ajvValidate: ajv.compile(zodToJsonSchema(fetchActorDetailsToolArgsSchema)),
3132
call: async (toolArgs) => {

src/tools/get-actor-output.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,10 +68,19 @@ export const getActorOutput: ToolEntry = {
6868
tool: {
6969
name: HelperTools.ACTOR_OUTPUT_GET,
7070
actorFullName: HelperTools.ACTOR_OUTPUT_GET,
71-
description: `Retrieves the output of a specific Actor execution based on its dataset ID.
72-
You can also retrieve only specific fields from the output if needed. Use this tool to get Actor output data outside of the Actor dataset output preview, or to access fields from the Actor output dataset schema that are not included in the preview.
71+
description: `Fetch the dataset of a specific Actor run based on datasetId.
72+
You can also retrieve only specific fields from the output if needed.
7373
74-
Note: This tool is automatically included if the Apify MCP Server is configured with any Actor tools (e.g. \`apify-slash-rag-web-browser\`) or tools that can interact with Actors (e.g. \`call-actor\`, \`add-actor\`).`,
74+
USAGE:
75+
- Use this tool to get Actor dataset outside of the preview, or to access fields from the Actor output
76+
dataset schema that are not included in the preview.
77+
78+
EXAMPLES:
79+
- user_input: Get data of my last Actor run?
80+
- user_input: Get number_of_likes from my dataset?
81+
82+
Note: This tool is automatically included if the Apify MCP Server is configured with any Actor tools
83+
(e.g. "apify-slash-rag-web-browser") or tools that can interact with Actors (e.g. "call-actor", "add-actor").`,
7584
inputSchema: zodToJsonSchema(getActorOutputArgs),
7685
/**
7786
* Allow additional properties for Skyfire mode to pass `skyfire-pay-id`.

src/tools/search-apify-docs.ts

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,25 @@ export const searchApifyDocsTool: ToolEntry = {
3030
type: 'internal',
3131
tool: {
3232
name: HelperTools.DOCS_SEARCH,
33-
description: `Apify documentation search tool. This tool allows you to search the Apify documentation using Algolia's full-text search.\n`
34-
+ 'You can use it to find relevant documentation pages based on keywords. The results will include the URL of the documentation page, '
35-
+ 'a fragment identifier (if available), and a limited piece of content that matches the search query. '
36-
+ `You can then fetch the full content of the document using the ${HelperTools.DOCS_FETCH} tool by providing the URL.\n`
37-
+ 'Use this tool when a user asks for help with Apify documentation or when you need to find relevant documentation pages based on keywords. '
38-
+ 'For example, when a user wants to build an Apify Actor, you can search "How to build Actors" to find relevant guidance.',
33+
description: `Search Apify documentation using full-text search.
34+
You can use it to find relevant documentation based on keywords.
35+
Apify documentation has information about Apify console, Actors (development
36+
(actor.json, input schema, dataset schema, dockerfile), deployment, builds, runs),
37+
schedules, storages (datasets, key-value store), Proxy, Integrations,
38+
Apify Academy (crawling and webscraping with Crawlee),
39+
40+
The results will include the URL of the documentation page, a fragment identifier (if available),
41+
and a limited piece of content that matches the search query.
42+
43+
Fetch the full content of the document using the ${HelperTools.DOCS_FETCH} tool by providing the URL.
44+
45+
USAGE:
46+
- Use when user asks about Apify documentation, Actor development, Crawlee, or Apify platform.
47+
48+
EXAMPLES:
49+
- query: How to use create Apify Actor?
50+
- query: How to define Actor input schema?
51+
- query: How scrape with Crawlee?`,
3952
args: searchApifyDocsToolArgsSchema,
4053
inputSchema: zodToJsonSchema(searchApifyDocsToolArgsSchema),
4154
ajvValidate: ajv.compile(zodToJsonSchema(searchApifyDocsToolArgsSchema)),
@@ -59,7 +72,7 @@ export const searchApifyDocsTool: ToolEntry = {
5972

6073
const textContent = `You can use the Apify docs fetch tool to retrieve the full content of a document by its URL. The document fragment refers to the section of the content containing the relevant part for the search result item.
6174
Search results for "${query}":
62-
75+
6376
${results.map((result) => `- Document URL: ${result.url}${result.fragment ? `\n Document fragment: ${result.fragment}` : ''}
6477
Content: ${result.content}`).join('\n\n')}`;
6578
return {

src/tools/store_collection.ts

Lines changed: 21 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -71,21 +71,27 @@ export const searchActors: ToolEntry = {
7171
type: 'internal',
7272
tool: {
7373
name: HelperTools.STORE_SEARCH,
74-
description: `Search for Actors or Model Context Protocol (MCP) servers in the Apify Store using keywords.\n`
75-
+ `This tool returns a list of Actors with title, description, pricing model, usage statistics, and user ratings.\n`
76-
+ `Use simple space-separated keywords for best results, such as "web scraping", "data extraction", or "playwright mcp".\n`
77-
+ `You may need to use this tool several times to find the right Actor.\n`
78-
+ `Limit the number of results returned, but ensure that relevant results are included.\n`
79-
+ `Always present the results in a user-friendly format as an Actor cards.\n\n`
80-
+ `USAGE:\n`
81-
+ `- Use when user wants to find Actors for a specific task or technology\n`
82-
+ `- Use when user asks about available Actors in the Apify Store\n`
83-
+ `- Use when user needs to discover MCP servers or automation tools\n`
84-
+ `EXAMPLES:\n`
85-
+ `- user_input: Find Actors for web scraping\n`
86-
+ `- user_input: Search for MCP servers\n`
87-
+ `- user_input: What Actors are available for data extraction\n`
88-
+ `- user_input: Show me Actors that use Playwright`,
74+
description: `Search the Apify Store for Actors or Model Context Protocol (MCP) servers using keywords.
75+
Apify is the largest platform for web scrapers, AI agents, and automation tools, called Actors.
76+
The store features solutions for scraping Instagram, Twitter, TikTok, LinkedIn, Bookings, Flights and more.
77+
All Actors are verified and comply with scraping guidelines.
78+
79+
This tool returns a curated list of Actors, including their title, description, pricing model, usage statistics, and user ratings.
80+
For best results, use simple space-separated keywords (e.g., "instagram posts", "twitter profile", "playwright mcp").
81+
You may need to run multiple searches to find the most suitable Actor.
82+
Limit the number of results to keep responses relevant and concise.
83+
Results are always presented as user-friendly Actor cards.
84+
85+
USAGE:
86+
- Use when a user wants to find Actors for a specific task
87+
- Use when a user asks about specific data and available Actors in the Apify Store
88+
- Use when a user needs to discover MCP servers or automation tools
89+
90+
EXAMPLES:
91+
- user_input: Find Actors for scraping e-commerce
92+
- user_input: Find browserbase MCP server
93+
- user_input: I need to scrape instagram profiles/comments
94+
- user_input: I need to get flights and airbnb data`,
8995
inputSchema: zodToJsonSchema(searchActorsArgsSchema),
9096
ajvValidate: ajv.compile(zodToJsonSchema(searchActorsArgsSchema)),
9197
call: async (toolArgs) => {

0 commit comments

Comments
 (0)