MCP tools
Overview of Tessl MCP tools.
Server
This is typically configured in your agent MCP configuration
command:
tessl mcp
type: stdio
Tools
list
Lists tests and implementation paths in the project, optionally filtered by spec, and/or type of link
inputSchema
type:"object"
properties:
type:"object"
includeMissing: "Include files which have not been generated yet"
type:"boolean"
tests: "Select which kind of test links to list: 'none' (default) shows no test files, 'draft' shows only draft test files, 'locked' shows only locked test files, 'impl' shows only implementation test files, and 'all' shows all kinds of test files"
default:"none"
enum:["none", "draft", "locked", "impl", "all"]
type:"string"
code: "Select which kind code link to show: 'none' (default) shows no code links, 'generate' shows only
@generate
links, 'describe' shows only@describe
links, and 'all' shows both kinds of links"default:"none"
enum:["none", "generate", "describe", "all"]
type:"string"
generate-tests
Generates tests for any [@test] links found in the provided spec.
inputSchema
properties:
context: Paths of any additional files that should be considered as context during generation
type:"array"
items
type:"string"
prompt:"A short description of what you want to build"
type:"string"
test-paths: "Additional filter for tests within the spec to generate; if omitted will generate all tests in spec."
type:"array"
items
type:"string"
reference: "Whether to reference existing content: "none" to regenerate from scratch, "current" to edit existing content"
default:"current"
enum:["none","current"]
type:"string"
generate-draft-tests: "Control which draft tests to generate: 'missing' skips existing files and only generates new ones, 'outdated' generates missing files and regenerates existing files when the spec has changed but the code file remains unmodified, 'always' regenerates all files regardless of manual edits"
default:"outdated"
enum:["missing","outdated","always"]
type:"string"
generate-locked-tests: "Control which locked tests to generate: 'missing' skips existing files and only generates new ones, 'outdated' generates missing files and regenerates existing files when the spec has changed but the code file remains unmodified, 'always' regenerates all files regardless of manual edits"
default:"missing"
enum:["missing","outdated","always"]
type:"string"
generate-impl-tests: "Control which impl tests to generate: 'missing' skips existing files and only generates new ones, 'outdated' generates missing files and regenerates existing files when the spec has changed but the code file remains unmodified, 'always' regenerates all files regardless of manual edits"
default:"always"
enum:["missing","outdated","always"]
type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
test
Run tests for the provided spec
inputSchema
properties:
spec
description:"Path to a specific spec being checked, relative to the project root"
"type:"string"
regenerate-test-runner: Force regeneration of the test runner (defaults to using an existing one if available)
"type": "boolean"
timeout-secs: Override test execution timeout, specified in seconds
"type:"string"
test-command: The command to use to run any associated tests
"type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
status
Checks project specs for errors and suggests fixes. Pass the spec param for details on a specific spec.
inputSchema
properties:
spec
description:"Path to a specific spec being checked, relative to the project root"
"type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
create
Create a new spec from a natural language prompt.
inputSchema
properties:
context
description:"Paths of any additional files that should be considered as context during generation"
items
type:"string
"type:"array"
force
description:"Whether to overwrite the spec if it already exists"
type:"boolean"
prompt
description:"A short description of what you want to build"
type:"string"
spec
description:"Path to the spec to be created. You should choose a path that is relative to the project root. Must be a .spec.md file. If none is provided, one will be inferred from the prompt."
type:"string"
required:["prompt"]
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
build
Generate or refresh code for each [@generate] link in the spec and runs any existing tests. If no spec is provided, all project specs will be built.
inputSchema
properties
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
context: Paths of any additional files that should be considered as context during generation
items
type:"string"
type:"array"
generateCode
default:"outdated"
"description:"Control which files to generate: 'missing' skips existing files and only generates new ones, 'outdated' generates missing files and regenerates existing files when the spec has changed but the code file remains unmodified, 'always' regenerates all files regardless of manual edits"
enum:["missing","outdated","always"]
type:"string"
specifyMissingDependencies
description:"Whether to automatically add missing dependencies to the spec during verification"
"type:"boolean"
default:false
maxIterations
default:1
description:"Max improvement passes to attempt to fix tests after generating code and/or tests"
type:"number"
spec
description:"Path to the spec file to build. If omitted, all project specs will be built."
items
type:"string"
type:"array"
testCommand
description:"Test command to run after generating code (e.g. "npm run test", "pytest") - used by the fix loop to try and improve the generated code
"type:"string"
type:"object"
type:"object"
build-tests
Generate tests for [@test] links in the spec without generating code. Focuses specifically on test generation and running existing tests. If no spec is provided, all project specs will be processed.
inputSchema
properties
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
context: Paths of any additional files that should be considered as context during generation
items
type:"string"
type:"array"
maxIterations
default:1
description:"Max improvement passes to attempt to fix tests after generating code and/or tests"
type:"number"
spec
description:"Path to the spec file to build. If omitted, all project specs will be built."
items
type:"string"
type:"array"
testCommand
description:"Test command to run after generating code (e.g. "npm run test", "pytest") - used by the fix loop to try and improve the generated code
"type:"string"
generateDraftTests
default:"outdated"
description:"Controls which draft tests to generate. Options: 'outdated' (generates draft tests when the spec has changed but the code has not), 'never', 'missing' (generates draft tests when they are not found), 'dirty' (generates draft tests when they are have been manually modified since last generation), 'always'."
enum:["always","never","missing","outdated","dirty"]
type:"string"
generateLockedTests
default:"outdated"
description:"Controls which locked tests to generate. Options: 'outdated' (generates draft tests when the spec has changed but the code has not), 'never', 'missing' (generates draft tests when they are not found), 'dirty' (generates draft tests when they are have been manually modified since last generation), 'always'."
enum:["always","never","missing","outdated","dirty"]
type:"string"
generateImplTests
default:"outdated"
description:"Controls which impl tests to generate. Options: 'outdated' (generates draft tests when the spec has changed but the code has not), 'never', 'missing' (generates draft tests when they are not found), 'dirty' (generates draft tests when they are have been manually modified since last generation), 'always'."
enum:["always","never","missing","outdated","dirty"]
type:"string"
type:"object"
type:"object"
document
Create or update a spec to describe a code file. If used with --include-impl-details, will lock an existing spec to any undocumented behavior of its @generate code file. If neither a spec nor a code file is provided, all project specs will be processed; specs with @describe will be regenerated, and specs with @generate will be locked if --include-impl-details is enabled.
inputSchema
properties
code
description:"Path to the code file to document
"type:"string"
context
description:"Paths of any additional files that should be considered as context during generation"
items
type:"string"
type:"array"
includeImplDetails
description:"Lock an existing spec to a code generation by adding highly granular details as .impl content. Must be used for a @generate spec link to a code file"
"type:"boolean"
prompt
description:"Additional instructions on how to create or update the spec document
"type:"string"
spec
description:"Path to the spec file. Must ends with '.spec.md'"
"type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
edit
Edit a spec, code file, or test implementation based on a natural language prompt. If editing code or tests, the referencing spec will be updated with new context.
inputSchema
properties
context
description:"Paths of any additional files that should be considered as context during the edit"
items
type:"string"
type:"array"
documentUnknownFiles
default:"always"
description:"Whether to automatically run `tessl document` for code files we don't have specs for"
enum:["always","never"]
type:"string"
testCommand
description:"Test command to run after generating code (e.g. "npm run test", "pytest") - used by the fix loop to try and improve the generated code
"type:"string"
file
description:"Path to the file to edit"
type:"string"
prompt
description:"Description of the desired change
"type:"string"
required:["file","prompt"]
maxIterations
default:1
description:"Max improvement passes to attempt to fix tests after generating code and/or tests"
type:"number"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
run-parallel
Execute multiple Tessl tools in parallel to improve performance when running independent operations.
inputSchema
properties
operations
description:"Array of tool executions to run in parallel"
items
additionalProperties:false
properties
id
description:"Optional ID for tracking this tool execution"
type:"string"
params
additionalProperties
description:"JSON object of parameters to pass to the tool e.g. {"path": "specs/book.spec.md"}
"type:"object"
tool
description:"The name of the tool to execute, e.g. mcp__tessl__create-spec"
type:"string"
required:["tool","params"]
type:"object"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
minItems:1
type:"array"
required:["operations"]
type:"object"
install
Install docs (usage specs) for your project by providing the full name the spec e.g. "tessl/[email protected]". If a version is not provided, the latest version will be used. This can help provide context for your LLM tooling. You can find more with the search command.
inputSchema
properties:
properties:
name:"The full name of the tile e.g. "tessl/[email protected]". The version is optional; if omitted, the latest version will be used"
"type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
search
Search for docs (usage specs) by package name
inputSchema
properties:
properties:
name:"A name, package-url, or package registry web url"
"type:"string"
detailedLog
type:"string"
enum:["none","file","output"]
"description:"Control detailed output: "none" returns summary only, "file" writes detailed output to a log file and returns summary, "output" returns detailed output (default)"
default:"output"
logFile
type:"string"
"description:"Custom log file path when detailedLog="file" (if not specified, log file path is auto-generated)"
type:"object"
Prompts
introduction
Explain AI-native development and the Tessl tool
create
Create a new unit of spec-centric software
Last updated