@happyvertical/smrt-dev-mcp

Tier 2 development MCP server for the SMRT framework — code generation and project introspection, read-only by design.

v0.29.34MCPTier 2 Dev ToolRead-only

Overview

@happyvertical/smrt-dev-mcp is the Tier 2 (Development) MCP server for the SMRT framework. It provides code generation, project introspection, deterministic ecosystem knowledge, and portable review / architecture prompt bundles for use from Claude Desktop, Claude Code, Codex, or any MCP-aware client during day-to-day development. The two most commonly used tools are generate-smrt-class and introspect-project (documented below); see All Tools for the full set. The server is read-only: it never writes files, never executes generated code, and never hits a database — review and architecture tools return deterministic findings plus a model-ready prompt bundle rather than calling a model directly.

Installation

bash
pnpm install @happyvertical/smrt-dev-mcp

Setup

Add to your .mcp.json or Claude Desktop config:

json
{
  "mcpServers": {
    "smrt-dev-mcp": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "@happyvertical/smrt-dev-mcp"]
    }
  }
}

Set DEBUG=true in the environment to enable diagnostic logging.

Available Tools

generate-smrt-class

Generate a complete SMRT class with @smrt() decorator, fields, and imports.

ParameterTypeRequiredDescription
classNamestringYesClass name (PascalCase)
propertiesarrayYesProperty definitions (name, type, required?, nullable?, description?, defaultValue?)
baseClassstringNo'SmrtObject' (default) or 'SmrtCollection'
templatestringNobasic (default), global-catalog, optional-catalog, tenant-project-object, tenant-event-log-object, or cross-package-reference
tableNamestringNoExplicit @smrt({ tableName }) value
conflictColumnsarrayNoExplicit upsert natural-key columns
tenantScopedboolean | objectNoAdd @TenantScoped(...); object form supports mode, field, and bypass/filter options
includeTenantIdFieldbooleanNoEmit a matching @tenantId() field
relationshipsarrayNoRelationship defs for foreignKey, crossPackageRef, oneToMany, or manyToMany
includeCompanionSnippetsbooleanNoAppend package wiring notes (default: false)
includeApiConfigbooleanNoInclude REST API config (default: true)
includeMcpConfigbooleanNoInclude MCP config (default: true)
includeCliConfigbooleanNoInclude CLI config (default: true)

Supported property types: text, integer, decimal, boolean, datetime, json.

introspect-project

Scan a project directory for SMRT objects and return a class/field/relationship report.

ParameterTypeRequiredDescription
directorystringNoProject directory (default: cwd)
manifestPathstringNoExplicit manifest artifact path (defaults to .smrt/manifest.json, then dist/manifest.json, then source scanning)
includeFieldsbooleanNoInclude field details
includeRelationshipsbooleanNoAnalyze relationships
includeMethodsbooleanNoInclude public method details

All Tools

Beyond generate-smrt-class and introspect-project, the server also exposes deterministic ecosystem-knowledge and review/architecture tools. These return findings and reusable prompt bundles (they do not call a model directly):

  • review-smrt-project — advisory downstream ecosystem alignment review
  • reflect-knowledge / reflect-domain-knowledge — package, SDK, and relationship coverage from the deterministic knowledge index
  • check-knowledge-freshness / check-domain-knowledge — the same freshness checks as pnpm knowledge:check
  • build-review-context / build-domain-review-context / smrt-review — model-ready review prompt bundles for changed files
  • build-architecture-context / build-domain-architecture-context / smrt-architecture — model-ready architecture prompt bundles
  • list-agent-skills / get-agent-skill — fetch the harness-agnostic SMRT agent skills shipped under agent-skills/

Important Notes

  • This is a Tier 2 dev tool -- it does NOT provide runtime data operations
  • For runtime MCP (live CRUD on your objects), use Tier 1 auto-generated MCP from @smrt({ mcp: true })
  • Read-only: never writes files or executes generated code
  • Field type mapping supports: text, integer, decimal, boolean, datetime, json

Related Modules