list_harnesses
List natural-language harness specs to control workflows, verify proofs, and execute GTM strategies. Filter by tag for specific needs.
Instructions
List natural-language harness specs for portable workflow control, proof-backed verification, and GTM execution.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Optional tag filter such as verification, acquisition, or workflow. |
Implementation Reference
- Handler function for list_harnesses. Loads harness files from the HARNESS_DIR directory, optionally filtered by tag, and returns a simplified catalog with id, title, description, tags, inputs, and sourcePath.
function listHarnesses(options = {}) { return loadHarnesses(options).map((harness) => ({ id: harness.id, title: harness.title, description: harness.description, tags: harness.tags, inputs: Object.keys(harness.inputSchema), sourcePath: harness.sourcePath, })); } - Helper function that reads .md harness files from the HARNESS_DIR directory, parses them, and optionally filters by tag.
function loadHarnesses(options = {}) { if (!fs.existsSync(HARNESS_DIR)) { return []; } const harnesses = fs.readdirSync(HARNESS_DIR) .filter((entry) => entry.endsWith('.md')) .sort() .map((entry) => loadHarnessFile(path.join(HARNESS_DIR, entry))); if (options.tag) { return harnesses.filter((harness) => harness.tags.includes(String(options.tag))); } return harnesses; } - scripts/tool-registry.js:1074-1083 (registration)Tool registration in the TOOLS array with name 'list_harnesses', description, and input schema defining an optional 'tag' filter parameter.
readOnlyTool({ name: 'list_harnesses', description: 'List natural-language harness specs for portable workflow control, proof-backed verification, and GTM execution.', inputSchema: { type: 'object', properties: { tag: { type: 'string', description: 'Optional tag filter such as verification, acquisition, or workflow.' }, }, }, }), - adapters/mcp/server-stdio.js:1016-1017 (registration)MCP server switch-case dispatching the 'list_harnesses' tool call. Imports listHarnesses from natural-language-harness.js and returns the result as text.
case 'list_harnesses': return toTextResult({ harnesses: listHarnesses({ tag: args.tag }) });