eCan.ai has a set of MCP tools that can be integrated with LLM to automate complicated tasks.
eCan.ai makes a set of streamable HTTP accessible MCP tools available to LLM. Here are tools grouped in categories:
- Selenium based browser automation tools
- Vision (OCR) automation tools.
- OS level file and directory handling tools
- Custom utilities for data processing
- Generic API request tools
Here is the list of these MCP tools:
| Name | Description | Syntax |
|---|---|---|
| Mouse Click |
Execute a mouse click action | { |
| Mouse Move |
Execute a mouse move action | { |
| Mouse Scroll |
Execute a mouse scroll action | { |
| Keyboard Text Typing |
Execute a keyboard text input action | { |
| Keyboard Key Press |
Execute a keyboard key stroke action | { |
| Screen Content Extraction |
Extract text and image info from a screen capture image | { |
| Screen Content Search |
Search the result of a screen image extraction | { |
| In-Browser Move (Playwright) | In-Browser Move | { |
| In-Browser Move (Playwright) | In-Browser Move | { |
| In-Browser Execute Script (Playwright) | In-Browser Execute JS Script (Playwright) | { |
| In-Browser Wait For Element (Playwright) | In-Browser Wait For Web Element (Playwright) | { |
| In-Browser Keyboard Action (Playwright) | In-Browser Keyboard Action (Playwright) | { |
| In-Browser Text Input (Playwright) | In-Browser Text Input (Playwright) | { |
| In-Browser Move (Playwright) | In-Browser Move | { |
| In-Browser Move (Playwright) | In-Browser Move/Hover (Playwright) | { |
| In-Browser Click (Playwright) | In-Browser Mouse Click (Playwright) | { |
| In-Browser Scroll (Playwright) | In-Browser Mouse Click (Playwright) | { |
| Selenium Execute Script | In-Browser Execute JS Script (Selenium) | { |
| Selenium Wait For Element | In-Browser Wait For Web Element (Selenium) | { |
| Selenium Keyboard Action | In-Browser Keyboard Action (combo key) (Selenium) | { |
| Selenium Text Input | In-Browser Text Input (Selenium) | { |
| Selenium Move | In-Browser Mouse Move/Hover (Selenium) | { |
| Selenium Mouse Click | In-Browser Mouse Click (Selenium) | { |
| Selenium Scroll | In-Browser Mouse Scroll up/down (Selenium) | { |
| generic API request | HTTP request with specified method, header, and data | { |
- action - can be "single click/double click/right click/drag drop"
- action args - "" this is related to action parameter, for example one can specify
- save_rb - whether to save this instruction to be a roll-back point. (mostly it should be True)
- screen - the variable name that holds the screen extraction results.
- target_name - the name of the anchor or info or other element in "screen" variable, the location of this target item will be clicked on. this is specified in the contents related JOBS instructions on the cloud side.
- target_type - the type of the anchor or info or other element in "screen" variable, the location of this target item will be clicked on.this is specified in the contents related JOBS instructions on the cloud side.
- target_type - the piece of text in "screen" variable, the location of this text will be clicked on.
- nth - the nth occurrence of the target in case multiple targets are on the screen, [x, y] means it's the xth occurrence in horizontal direction (left to right), and yth occurrence in vertial direction (top to bottom).
- offset from - could be "left/top/right/bottom/center", meaning that the click location is at an offset location from the target item, for example "left" means click to the left of the left edge of the target item.
- offset unit - could be "pixel/box/screen", the offset unit.
- offset - could be integer or fractional, this is the offset amount. For example, we could specify to click 120 pixels offset to the right of the right edge of an text anchor named "Search".
- move_pause - pause number of seconds after move the mouse pointer to target
- post_wait - wait number of seconds after mouse click action
- action - can be "scroll up/scroll down"
- action args - "" this is scroll speed
- screen - the variable name that holds the screen extraction results.
- amount - integer, amount to scroll (equivalent to mouse wheel is minimum step)
- resolution - the variable's name that holds the pixel/scroll resolution varaible.
- random min - integer, add random amount to the scroll, the random amount's range's lower limit.
- random max - integer, add random amount to the scroll, the random amount's range's upper limit. Setting both min and max to 0 means there is no randomness.
- unit - the unit the scroll, could "raw/screen"
- action - can be "scroll up/scroll down"
- save_rb - whether to save this instruction to be a roll-back point. (mostly it should be True)
- text - the text to type on the keyboard
- speed - float, type speed, time between each key stroke
- key_after - the non-text key to hit after typing the text, for exammple "enter" means hit the key after typing.
- wait_after - integer, the amount of seconds to wait after the type action. for example, for waiting the web site to load after typing something.
- type - can be "scroll up/scroll down"
- action - "" this is scroll speed
- action value - the variable name that holds the screen extraction results.
- save_rb - whether to save this instruction to be a roll-back point. (mostly it should be True)
- location - integer, amount to scroll (equivalent to mouse wheel is minimum step)
- wait_after - integer, the amount of seconds to wait after the type action. for example, for waiting the web site to load after typing something.
- root - can be "scroll up/scroll down"
- template - "" this is scroll speed
- option - the variable name that holds the screen extraction results.
- data_sink - whether to save this instruction to be a roll-back point. (mostly it should be True)
- page - section name of the page (refer to the contents part of the JOBS-DL instruction set)
- page_data_info - integer, the amount of seconds to wait after the type action. for example, for waiting the web site to load after typing something.
- theme -
- section - section name of the page (refer to the contents part of the JOBS-DL instruction set)
- screen - can be "scroll up/scroll down"
- names - "" this is scroll speed
- target_types - the variable name that holds the screen extraction results.
- logic - whether to save this instruction to be a roll-back point. (mostly it should be True)
- result - integer, amount to scroll (equivalent to mouse wheel is minimum step)
- site - integer, the amount of seconds to wait after the type action. for example, for waiting the web site to load after typing something.
- status - integer, the amount of seconds to wait after the type action. for example, for waiting the web site to load after typing something.
- random_min - add a random amount of seconds on top of the number of seconds specified in "time" parameter. This sets the lower bound of the random number.
- random_max - add a random amount of seconds on top of the number of seconds specified in "time" parameter. This sets the upper bound of the random number.
- time - integer number of seconds to wait
- data_type - the type of the variable to be created, could be "int/string/float/obj"
- data_name - the name of the variable to be created.
- key_name - if data_type is obj, then this holds the name of the key to be created.
- key_value - if data_type is obj, then this holds the value of the key to be created.
- from - the variable that's the souce of the data value assignment
- to - the variable that's the sink of the data value assignment
- result - the name of the variable that holds the result of the assignment.
- func_name - the name of the function to be executed.
- stub_name - "function/end function"
- file - the file name or the external python code in string to be executed.
- args - "" this is scroll speed
- entity - integer, amount to scroll (equivalent to mouse wheel is minimum step)
- output - the name of the variable that will hold the output of the external instructions run.
With the above basic instruction set, one can pretty much create a skill for any task flow.
