Stone.jsDocs
Paradigm

Extensions

MCP dev server

A coding agent is only as good as its context. @stone-js/mcp-dev gives it three things through one command, stone mcp: the framework’s knowledge, a read-only view of this app, and any tools you add. The MCP SDK owns the protocol and runs the handlers in-process, so these dev helpers never touch your domain or the kernel.

#Install

terminalbash
npm i -D @stone-js/mcp-dev

#Add the command

Enable it with the @McpDev() decorator (or register mcpDevBlueprint), then start the server from your project. It runs over stdio and stops on Ctrl+C, exactly like stone dev.

app/Application.tsts
import { McpDev } from '@stone-js/mcp-dev'
import { StoneApp } from '@stone-js/core'

@McpDev()
@StoneApp({ name: 'my-app' })
export class Application {}
terminalbash
stone mcp

#Register it for your agent

Let stone mcp write .mcp.json for you. It creates or merges the entry and never clobbers your own config, so a coding agent (Claude Code, Cursor, Claude Desktop, …) discovers the server.

terminalbash
stone mcp --init

#Framework-knowledge tools

The agent queries the framework live instead of guessing from stale training data.

ToolTypeDescription
stone_searchquerySearch concepts, modules, best-practices and gaps.
stone_conceptid?Explain a core concept (omit id to list them).
stone_docs()Links to the authoritative documentation.
stone_modules()The ecosystem modules and what each does.
stone_best_practices()Conventions and anti-patterns, with rationale.
stone_gaps()What the framework does not (yet) provide.
stone_brief()The full agent brief (llms-full.txt).

#App-introspection tools

These read your app’s resolved blueprint, so the agent understands the app you are building, not just the framework. They are read-only and redact secret-looking config.

ToolTypeDescription
stone_app()Name, env, active platform, and counts of routes/commands/providers/adapters.
stone_routes()The route tree: path, methods, name, handler, middleware.
stone_commands()The CLI commands (name, alias, args, description).
stone_adapters()Registered adapters and the active platform.
stone_providers()The service providers.
stone_kernel()The kernel pipeline: event handler, middleware, error handlers.
stone_key_routes()Key-routing definitions (event-bus / realtime).
stone_configkey?A resolved stone.* value by dotted key (secrets redacted).
The agent reads the app the way the framework does: one blueprint, one source of truth.

#Your own tools

Add project-specific tools. They run in-process and receive their arguments directly. Set the server name, instructions, or the GitHub report tools under stone.mcpDev.

app/Application.tsts
import { McpDev } from '@stone-js/mcp-dev'

@McpDev({
  name: 'my-app-dev',
  tools: [
    { name: 'db_schema', description: 'Return the current DB schema', handler: () => readSchema() }
  ]
})
@StoneApp({ name: 'my-app' })
export class Application {}

#Agent Skills

The package ships Agent Skills(stone-js, stone-js-routing, stone-js-adapters): portable SKILL.md folders that teach a skills-compatible agent the framework’s conventions on demand. The tools introspect the app; the skills say how to build it. Copy the ones you want into your agent’s skills directory.

terminalbash
mkdir -p .claude/skills
cp -R node_modules/@stone-js/mcp-dev/skills/stone-js* .claude/skills/

Stone.js

Your app exists in every runtime. Until you run it.

An open-source project by Stone Foundation
Created by Mr. Stone (Evens Pierre)