Skip to content

<!-- generated by scripts/gen-reference.mjs; do not edit -->

MCP tools and prompts ​

Tools registered by the Basics MCP server. Call them over stdio (basics-mcp) or HTTP (basics ui).

get_vault_overview ​

Read the whole vault catalog in one call: every layer with its techs (kind, use_when, avoid_when, performs_best), the stack profiles and the past projects. Use it to reason over the vault when a ranked shortlist is not enough; read deciding notes with get_note before choosing. Read-only.

InputTypeRequiredDescription
layersstring[]noRestrict the catalog to these layer ids

Minimal call:

json
{
  "name": "get_vault_overview",
  "arguments": {}
}

list_layers ​

List the stack layers (backend, frontend, testing, ...) and the technologies stored under each.

No inputs.

Minimal call:

json
{
  "name": "list_layers",
  "arguments": {}
}

search_vault ​

Full-text search over the user's stack vault. Use before proposing new notes to avoid duplicates.

InputTypeRequiredDescription
querystringyes—
typelayer | tech | practice | check | profile | projectno—
layerstringnoRestrict to tech notes in this layer
limitintegerno—

Minimal call:

json
{
  "name": "search_vault",
  "arguments": {
    "query": "rest api"
  }
}

get_note ​

Read a vault note (frontmatter + markdown body) plus which notes link to it.

InputTypeRequiredDescription
idstringyes—

Minimal call:

json
{
  "name": "get_note",
  "arguments": {
    "id": "fastapi"
  }
}

recommend_stack ​

Given a natural-language project description, return ranked technology candidates per layer and matching stack profiles from the user's vault. Treat as a shortlist: read the candidate notes, choose, and explain the choice to the user. Prefer the user's vault over general knowledge.

InputTypeRequiredDescription
descriptionstringyes—
layersstring[]no—
per_layerintegerno—

Minimal call:

json
{
  "name": "recommend_stack",
  "arguments": {
    "description": "example"
  }
}

get_stack_context ​

Compile best practices and validation checks for a chosen set of technologies into one markdown document. Call once the stack is chosen and follow it while writing code; run the listed checks before declaring work done.

InputTypeRequiredDescription
tech_idsstring[]yes—
versionsmap<string, string>no—

Minimal call:

json
{
  "name": "get_stack_context",
  "arguments": {
    "tech_ids": [
      "example"
    ]
  }
}

get_check_templates ​

Return the file templates (tests, configs) shipped by the checks of a chosen stack. Write missing files into the project; never overwrite existing files.

InputTypeRequiredDescription
stackstring[]yes—
versionsmap<string, string>no—

Minimal call:

json
{
  "name": "get_check_templates",
  "arguments": {
    "stack": [
      "example"
    ]
  }
}

detect_stack ​

Detect technologies and versions from a project directory's package.json, pyproject.toml and requirements files. Read-only.

InputTypeRequiredDescription
pathstringyesExisting project directory

Minimal call:

json
{
  "name": "detect_stack",
  "arguments": {
    "path": "./project"
  }
}

propose_note ​

Propose a new note or an update to an existing one. It lands in the vault inbox for the user to approve; it is NOT applied directly. Frontmatter must match the note type schema (e.g. tech: kind, layer, use_when, avoid_when, performs_best, practices, checks). Use [[id]] wikilinks in the body to connect notes.

InputTypeRequiredDescription
idstringyesSlug, e.g. 'fastapi' or 'react-server-components'
typelayer | tech | practice | check | profile | projectyes—
frontmattermap<string, unknown>yesFields for the note type, excluding 'type'
bodystringyesMarkdown body
reasonstringyesWhy this note should be added/changed
agentstringyesName of the proposing agent, e.g. 'claude-code'

Minimal call:

json
{
  "name": "propose_note",
  "arguments": {
    "id": "fastapi",
    "type": "layer",
    "frontmatter": {},
    "body": "example",
    "reason": "example",
    "agent": "claude-code"
  }
}

record_project_outcome ​

Propose an outcome for a project note: append lessons, optionally extend tech notes (use_when, avoid_when, performs_best, lessons) and add a dated outcome section. Everything lands in the vault inbox for review; nothing is applied directly.

InputTypeRequiredDescription
projectstringyesProject note id
summarystringyesWhat happened and what was learned
lessonsstring[]no—
tech_updates{ id, add_use_when, add_avoid_when, add_performs_best, lesson }[]no—

Minimal call:

json
{
  "name": "record_project_outcome",
  "arguments": {
    "project": "fastapi",
    "summary": "example"
  }
}

export_project ​

Render the files that make a project's coding agents follow the user's stack: STACK.md always, plus AGENTS.md, CLAUDE.md and/or Cursor rules. Pass the current file contents in existing so agent-file blocks merge instead of overwriting user text; basics never writes outside the vault.

InputTypeRequiredDescription
stackstring[]yes—
targetsagents | claude | cursor[]no—
existingmap<string, string>noCurrent file contents keyed by relative path

Minimal call:

json
{
  "name": "export_project",
  "arguments": {
    "stack": [
      "example"
    ]
  }
}

list_proposals ​

List agent proposals waiting for user review in the vault inbox.

No inputs.

Minimal call:

json
{
  "name": "list_proposals",
  "arguments": {}
}

MCP prompts ​

Prompts render a ready-to-use instruction; the client inserts it into the conversation. Discover them with prompts/list and render one with prompts/get.

plan-stack ​

Plan a project's stack from the vault: read the whole catalog and the ranked shortlist, decide one tech per layer, explain the choice, propose any note the vault is missing for that decision and ask for confirmation before writing files.

ArgumentRequiredDescription
projectyesWhat the user is building: product, users and any constraint already known.

Released under the MIT license.