MCP tools

Overview of Tessl MCP tools.

👉 Closed beta notice

The full framework is currently part of Tessl’s closed beta program. You can request access here.

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 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