Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Less

FreeNot checked

Serverless implementation of the Model Context Protocol (MCP)

GitHubEmbed

About

Serverless implementation of the Model Context Protocol (MCP)

README

A serverless implementation for the Model Context Protocol (MCP) architecture that enables tool management through a clean interface.

Overview

This package provides a serverless implementation of the MCP server that allows you to:

  • Register and manage tools
  • Handle tool-related requests
  • Create in-memory client-server connections
  • Extend request with context to enable credential transmission from clients

Installation

npm install @tilfin/mcp-serverless

Usage

Tool Registration and create a client for service implements

import { createService, ToolManager } from '@tilfin/mcp-serverless';

// Create a tool manager
const toolManager = new ToolManager();

// Register tools
toolManager.registerTools([
  {
    name: 'calculator',
    description: 'Performs basic arithmetic operations',
    inputSchema: {
      type: 'object',
      properties: {
        operation: { type: 'string' },
        numbers: { type: 'array', items: { type: 'number' } }
      },
      required: ['operation', 'numbers']
    },
    toolFunction: async (params, ctx) => {
      if (ctx.apiKey !== 'xyz') throw new Error('Invalid API Key');

      let result;
      if (params.operation === 'add') {
        result = params.numbers.reduce((sum, n) => sum + n, 0);
      }
      return { result };
    }
  }
]);

// Create a serverless client
const client = createService(toolManager);

// List available tools
const toolsList = await client.listTools();

// Call a tool
try {
  const result = await client.callTool({
    name: 'calculator',
    arguments: {
      operation: 'add',
      numbers: [1, 2, 3]
    }
  });
} catch (err) {
  // raise Invalid API Key error
}

// Call a tool with context
const result = await client.callTool({
  name: 'calculator',
  arguments: {
    operation: 'add',
    numbers: [1, 2, 3]
  },
  ctx: { apiKey: 'xyz' }
});

API Reference

ToolManager class

Manages the registration and handling of tools.

Tool Interface

Tools must implement the following interface:

interface Tool {
  name: string;
  description: string;
  inputSchema: ToolInput;
  toolFunction: (args: CallToolRequestArguments, ctx: CallToolRequestContext) => Promise<CallToolResultContent>;
}

createServer(serverInfo, toolManager)

Creates an MCP server with the given tool manager.

createService(toolManager)

Creates an in-memory client-server setup for serverless operation.

Examples

Standard I/O Transport

The package includes examples for using the stdio transports for both client and server communication:

  • StdioClientTransport: Allows clients to communicate with servers over standard input/output
  • StdioServerTransport: Enables servers to handle requests through standard input/output

Check out the example implementation:

from github.com/tilfin/mcp-serverless

Installing Less

This server has no published package — it is built from source. Open the repository and follow its README.

▸ github.com/tilfin/mcp-serverless

FAQ

Is Less MCP free?

Yes, Less MCP is free — one-click install via Unyly at no cost.

Does Less need an API key?

No, Less runs without API keys or environment variables.

Is Less hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Less in Claude Desktop, Claude Code or Cursor?

Open Less on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Less with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs