LeanMCP Minimal Server MCP Server

MCP Server with Streamable HTTP Transport built with LeanMCP SDK

README.md

Slack MCP Server

MCP Server with Streamable HTTP Transport built with LeanMCP SDK

Quick Start

# Install dependencies
npm install

# Start development server (hot reload + UI build)
npm run dev

# Build for production
npm run build

# Run production server
npm start

Project Structure

leanmcp-minimal/
├── main.ts              # Server entry point
├── mcp/                 # Services directory (auto-discovered)
│   └── example/
│       └── index.ts     # Example service
├── .env                 # Environment variables
└── package.json

Adding New Services

Create a new service directory in mcp/:

// mcp/myservice/index.ts
import { Tool, SchemaConstraint } from "@leanmcp/core";

// Define input schema
class MyToolInput {
  @SchemaConstraint({ 
    description: "Message to process",
    minLength: 1
  })
  message!: string;
}

export class MyService {
  @Tool({ 
    description: "My awesome tool",
    inputClass: MyToolInput
  })
  async myTool(input: MyToolInput) {
    return {
      content: [{
        type: "text",
        text: `You said: ${input.message}`
      }]
    };
  }
}

Services are automatically discovered and registered - no need to modify main.ts!

Adding UI Components

Use @UIApp decorator to link tools to React components:

// mcp/products/index.ts
import { Tool } from "@leanmcp/core";
import { UIApp } from "@leanmcp/ui";

export class ProductsService {
  @Tool({ description: "List products" })
  @UIApp({ component: "./ProductsDashboard" })
  async listProducts() {
    return { products: [...] };
  }
}
// mcp/products/ProductsDashboard.tsx
import { ToolDataGrid, RequireConnection } from "@leanmcp/ui";

export function ProductsDashboard() {
  return (
    <RequireConnection loading={Loading...}>
      <ToolDataGrid toolName="listProducts" columns={[...]} />
    </RequireConnection>
  );
}

The CLI automatically builds UI components and wraps them with AppProvider.

Features

  • Zero-config auto-discovery - Services automatically registered from ./mcp directory
  • Type-safe decorators - @Tool, @Prompt, @Resource with full TypeScript support
  • Schema validation - Automatic input validation with @SchemaConstraint
  • HTTP transport - Production-ready HTTP server with session management
  • Hot reload - Development mode with automatic restart on file changes
  • UI Components - React UI components with @UIApp decorator

Testing with MCP Inspector

npx @modelcontextprotocol/inspector http://localhost:3001/mcp

License

MIT

Tools 2

myToolMy awesome tool that processes a message
listProductsList products available in the system

Try it

Process the message 'Hello LeanMCP' using the myTool function.
List all available products using the listProducts tool.
Show me the product dashboard interface.

Frequently Asked Questions

What are the key features of LeanMCP Minimal Server?

Zero-config auto-discovery of services from the ./mcp directory. Type-safe decorators including @Tool, @Prompt, and @Resource. Automatic input schema validation using @SchemaConstraint. Production-ready HTTP transport with session management. Integrated React UI components via the @UIApp decorator.

What can I use LeanMCP Minimal Server for?

Rapidly prototyping new MCP tools without manual registration. Building type-safe backend services with integrated frontend dashboards. Developing MCP servers that require hot-reloading during development. Creating validated API endpoints for LLM interaction.

How do I install LeanMCP Minimal Server?

Install LeanMCP Minimal Server by running: npm install && npm run build

What MCP clients work with LeanMCP Minimal Server?

LeanMCP Minimal Server works with any MCP-compatible client including Claude Desktop, Claude Code, Cursor, and other editors with MCP support.

Turn this server into reusable context

Keep LeanMCP Minimal Server docs, env vars, and workflow notes in Conare so your agent carries them across sessions.

Open Conare