Skip to content

Latest commit

 

History

History
138 lines (117 loc) · 21.9 KB

File metadata and controls

138 lines (117 loc) · 21.9 KB

eCanMCP (eCan Model-Context-Protocol)

eCan.ai has a set of MCP tools that can be integrated with LLM to automate complicated tasks.

Streamable HTTP MCP Tools Integration

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
{
 "type" : "Mouse Click",
  "action": "string",
  "action args": "string",
  "save_rb": True/False,
  "screen": "string",
  "target_name": "string",
  "target_type": "string",
  "text": "string",
  "nth": [x-int, y-int],
  "offset from": "string",
  "offset unit": "string",
  "offset": [x-int, y-int]
}
Mouse
Move
Execute a mouse move action
{
 "type" : "Mouse Scroll",
  "action": "string",
  "screen": "string",
  "amount": integer,
  "resolution": "string",
  "random_min": integer,
  "random_max": integer,
  "unit": "string"
}
Mouse
Scroll
Execute a mouse scroll action
{
 "type" : "Mouse Scroll",
  "action": "string",
  "screen": "string",
  "amount": integer,
  "resolution": "string",
  "random_min": integer,
  "random_max": integer,
  "unit": "string"
}
Keyboard
Text
Typing
Execute a keyboard text input action
{
 "type" : "Text Input",
  "action": "string",
  "save_rb": True/False,
  "text": "string",
  "speed": float,
  "key_after": "string",
  "wait_after": "string"
}
Keyboard
Key
Press
Execute a keyboard key stroke action
{
 "type" : "Key Input",
  "action": "string",
  "action value": "string",
  "save_rb": True/False,
  "location": "string",
  "wait_after": "string"
}
Screen
Content
Extraction
Extract text and image info from a screen capture image
{
 "type" : "Extract Info",
  "root": obj,
  "template": "string",
  "option": "string",
  "option": "string",
  "data_sink": "string",
  "page": "string",
  "page_data_info": "string",
  "theme": "string",
  "section": "string"
}
Screen
Content
Search
Search the result of a screen image extraction
{
 "type" : "Search",
  "screen": "string",
  "names": ["string"...],
  "target_types": ["string"...],
  "logic": "string",
  "result": "string",
  "site": "string",
  "status": "string"
}
In-Browser Move (Playwright) In-Browser Move
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Move (Playwright) In-Browser Move
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Execute Script (Playwright) In-Browser Execute JS Script (Playwright)
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Wait For Element (Playwright) In-Browser Wait For Web Element (Playwright)
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Keyboard Action (Playwright) In-Browser Keyboard Action (Playwright)
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Text Input (Playwright) In-Browser Text Input (Playwright)
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Move (Playwright) In-Browser Move
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Move (Playwright) In-Browser Move/Hover (Playwright)
{
 "type" : "Wait",
  "random_min": integer,
  "random_max": integer,
  "time": integer
}
In-Browser Click (Playwright) In-Browser Mouse Click (Playwright)
{
 "type" : "Create Data",
  "data_type": "string",
  "data_name": "string",
  "key_name": "string",
  "key_value": any
}
In-Browser Scroll (Playwright) In-Browser Mouse Click (Playwright)
{
 "type" : "Fill Data",
  "from": "string",
  "to": "string",
  "result": True/False
}
Selenium Execute Script In-Browser Execute JS Script (Selenium)
{
 "type" : "Check Condition",
  "condition": "string",
  "if_else": "string",
  "if_end": "string"
}
Selenium Wait For Element In-Browser Wait For Web Element (Selenium)
{
 "type" : "Repeat",
  "lc_name": "string",
  "until": "string",
  "count": integer,
  "end": "string"
}
Selenium Keyboard Action In-Browser Keyboard Action (combo key) (Selenium)
{
 "type" : "Goto",
  "goto": "string"
}
Selenium Text Input In-Browser Text Input (Selenium)
{
 "type" : "Exception Handler",
  "cause": "string",
  "cdata": any
}
Selenium Move In-Browser Mouse Move/Hover (Selenium)
{
 "type" : "End Exception",
  "cause": "string",
  "cdata": any
}
Selenium Mouse Click In-Browser Mouse Click (Selenium)
{
 "type" : "Stub",
  "stub name": "string",
  "func name": "string"
}
Selenium Scroll In-Browser Mouse Scroll up/down (Selenium)
{
 "type" : "Call Function",
  "fname": "string",
  "args": "string",
  "return_to": "string",
  "output": "string"
}
generic API request HTTP request with specified method, header, and data
{
 "type" : "Call Extern",
  "file": "string",
  "args": "string",
  "entity": "string",
  "output": "string"
}
Mouse Click Instruction
  • 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
Mouse Scroll Instruction
  • 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"
Keyboard Text Input Instruction
  • 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.
Keyboard Key Input Instruction
  • 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.
Screen Extraction Instruction
  • 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 Search Instruction
  • 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.
Time Wait Instruction
  • 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
Variable Creation Instruction
  • 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.
Variable Assign Value Instruction
  • 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.
Call Function Instruction
  • func_name - the name of the function to be executed.
  • stub_name - "function/end function"
Call External Instruction
  • 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.