Tools and Resources
The Cycle MCP server exposes tools (actions an agent can perform) and resources (documents an agent can read). You don't usually call these directly — your coding agent does, in response to your natural-language requests. This page documents what's available so you can understand what the agent is doing on your behalf and ask for it explicitly when you need to.
Tools
Discovery and Authoring
| Tool | What it does |
|---|---|
search_steps | Searches Cycle's step library by keyword across step text, descriptions, and examples. Returns up to 20 matches. The agent uses this when it needs to find the right step for a task ("How do I click a link?"). |
list_steps | Lists every step in a given category (e.g. Web, File Action, Comparison). Use this when the agent needs to browse all steps in an area. |
get_step | Returns the full definition of one step: parameter names, accepted values, required state, output variables, and usage examples. The agent calls this to get the exact parameter names before generating a step line. |
validate_feature | Parses a .feature file and returns syntax errors with line numbers. Does not execute the file. The agent should call this every time it edits a feature file to catch errors before runtime. |
create_project | Scaffolds a new Cycle project directory tree, writes the .cycproj, and writes a .cycuser settings file. Useful when starting from scratch in an empty folder. |
Execution and Debugging
| Tool | What it does |
|---|---|
run_test | Executes a .feature file with cycle-cli. Returns the exit code, truncated output, and the directory containing the results .db file. |
get_run_errors | Given the results directory (or a direct .db path) from run_test, returns structured error details: the failing step, the error message, the stack trace, and a listing of all artifacts (screenshots, logs) in the output directory. The agent should call this on any failure before suggesting a fix. |
authenticate | Opens a browser login window so you can re-authenticate with Cycle. The agent calls this when a test run fails with auth errors. |
Live Browser Exploration
These let the agent drive a real browser interactively to discover element locators before writing them into a .feature file. They are how the agent avoids guessing at selectors.
| Tool | What it does |
|---|---|
run_step | Executes one step from any installed plugin (WebDriver, File-System, etc.). The browser session persists across calls, so the agent can open Chrome, navigate, click, and inspect — all within a single live session. |
browser_screenshot | Captures the current Chrome viewport as a PNG and returns it inline so the agent (which is multimodal) can see the page. Useful for visual debugging. |
Resources
Resources are read-only reference documents. The agent reads them to learn syntax, conventions, and the lay of the land. You can also read them yourself.
| Resource URI | What's in it |
|---|---|
cycle://authoring-guide | The complete guide to writing CycleScript feature files: syntax, structure, recommended patterns, coding style, and a categorized overview of common steps. The agent should read this before writing any feature file. |
cycle://test-lifecycle | An end-to-end workflow overview: how to create, execute, and debug Cycle tests. Read this when you want a "how does the whole thing fit together" view. |
cycle://language-spec | The authoritative CycleScript language specification, including the EBNF grammar. Read this when you have a specific syntax question the authoring guide doesn't answer. |
cycle://user-manual | A reference for running tests with cycle-cli, including all flags. |
cycle://locator-formats | Valid type:selector locator formats for Web and WinApp steps (e.g. id:, cssSelector:, xpath:), with quoting rules and ExtJS-specific tips. |
cycle://categories | A JSON list of every step category name. The agent calls this before search_steps to know which categories exist. |
cycle://steps/{category} | All steps for one category, rendered as Markdown. For example, cycle://steps/Web returns every web step. |
Server Flags
The Cycle MCP server accepts a handful of command-line flags, passed after --mcp in the args array of your agent's MCP configuration. Most users never need to set anything beyond --mcp itself.
| Flag | Default | Description |
|---|---|---|
--plugin-dir | plugins/ next to cycle-cli.exe | Directory the server scans for installed SDK plugins (WebDriver, File-System, etc.). Override only if your install layout is non-standard. |
--keep-screenshots | false | By default, the screenshot PNGs returned by browser_screenshot are deleted from disk after being inlined to the agent (to avoid disk bloat). Pass --keep-screenshots to retain them — useful for visual diff or regression workflows where you want a permanent record. |
--debug | false | Forwards plugin stdout/stderr to the server's stderr. Use this only when troubleshooting — see Troubleshooting. |
--log-level / -l | ERROR | Log level for the MCP server itself. One of ERROR, INFO, DEBUG. Increase when you want server-side logging without enabling full plugin pass-through via --debug. |
Example with debug logging enabled:
{
"mcpServers": {
"cycle": {
"command": "C:/Program Files (x86)/CycleLabs/Cycle/cycle-cli.exe",
"args": ["--mcp", "--debug"]
}
}
}