LeanMCP Minimal Server MCP Server

$npm install && npm run dev
README.md

A minimal MCP server framework that enables zero-config tool discovery

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
listProductsList products

Configuration

claude_desktop_config.json
{
  "mcpServers": {
    "leanmcp-minimal": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/inspector", "http://localhost:3001/mcp"]
    }
  }
}

Try it

Use myTool to process the message 'Hello World'
List all the products using the ProductsService
Run the LeanMCP inspector on http://localhost:3001/mcp to test the tools

Frequently Asked Questions

How do I install LeanMCP Minimal Server?

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

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.

Use LeanMCP Minimal Server with Conare

Manage MCP servers visually, upload persistent context, and never start from zero with Claude Code & Codex.

Try Free