Skip to content

feat(workflow_list): add query keyword filter for name and description #4

@cyanheads

Description

@cyanheads

`workflow_list` supports filtering by `category` (substring) and `tags` (AND match), but has no way to search by keyword across workflow names or descriptions. Callers looking for a workflow by approximate name or topic must retrieve the full library and filter client-side.

Proposal

Add an optional `query` string parameter to `workflow_list` that does a case-insensitive substring match against both `name` and `description`. A workflow matches if either field contains the query string. Combined with the existing `category` and `tags` params, this completes the practical filter surface for library discovery.

Proposed behavior

New input field on the existing `workflow_list` tool:

```ts
query: z.string().optional().describe(
'Case-insensitive substring filter applied to workflow name and description. A workflow matches if either field contains the query string.'
)
```

Filtering logic (applied before category/tags filters):

```ts
if (query?.trim()) {
const q = query.toLowerCase();
if (!wf.name.toLowerCase().includes(q) && !wf.description.toLowerCase().includes(q)) continue;
}
```

Scope

  • src/mcp-server/tools/definitions/workflow-list.tool.ts — add query input field and handler filtering logic
  • No service changes required; filtering is in-memory over the existing index

Out of scope

  • Full-text search across step content (params, action descriptions)
  • Fuzzy/phonetic matching
  • A dedicated search tool — the filter belongs on `workflow_list` to keep the surface minimal

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions