<!-- 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.
| Input | Type | Required | Description |
|---|---|---|---|
layers | string[] | no | Restrict the catalog to these layer ids |
Minimal call:
{
"name": "get_vault_overview",
"arguments": {}
}list_layers
List the stack layers (backend, frontend, testing, ...) and the technologies stored under each.
No inputs.
Minimal call:
{
"name": "list_layers",
"arguments": {}
}search_vault
Full-text search over the user's stack vault. Use before proposing new notes to avoid duplicates.
| Input | Type | Required | Description |
|---|---|---|---|
query | string | yes | — |
type | layer | tech | practice | check | profile | project | no | — |
layer | string | no | Restrict to tech notes in this layer |
limit | integer | no | — |
Minimal call:
{
"name": "search_vault",
"arguments": {
"query": "rest api"
}
}get_note
Read a vault note (frontmatter + markdown body) plus which notes link to it.
| Input | Type | Required | Description |
|---|---|---|---|
id | string | yes | — |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
description | string | yes | — |
layers | string[] | no | — |
per_layer | integer | no | — |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
tech_ids | string[] | yes | — |
versions | map<string, string> | no | — |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
stack | string[] | yes | — |
versions | map<string, string> | no | — |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
path | string | yes | Existing project directory |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
id | string | yes | Slug, e.g. 'fastapi' or 'react-server-components' |
type | layer | tech | practice | check | profile | project | yes | — |
frontmatter | map<string, unknown> | yes | Fields for the note type, excluding 'type' |
body | string | yes | Markdown body |
reason | string | yes | Why this note should be added/changed |
agent | string | yes | Name of the proposing agent, e.g. 'claude-code' |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
project | string | yes | Project note id |
summary | string | yes | What happened and what was learned |
lessons | string[] | no | — |
tech_updates | { id, add_use_when, add_avoid_when, add_performs_best, lesson }[] | no | — |
Minimal call:
{
"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.
| Input | Type | Required | Description |
|---|---|---|---|
stack | string[] | yes | — |
targets | agents | claude | cursor[] | no | — |
existing | map<string, string> | no | Current file contents keyed by relative path |
Minimal call:
{
"name": "export_project",
"arguments": {
"stack": [
"example"
]
}
}list_proposals
List agent proposals waiting for user review in the vault inbox.
No inputs.
Minimal call:
{
"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.
| Argument | Required | Description |
|---|---|---|
project | yes | What the user is building: product, users and any constraint already known. |