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/outputStdioServerTransport: Enables servers to handle requests through standard input/output
Check out the example implementation:
- Client: stdio_client.mjs
- Server: stdio_server.mjs
Installing Less
This server has no published package — it is built from source. Open the repository and follow its README.
▸ github.com/tilfin/mcp-serverlessFAQ
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
GitHub
PRs, issues, code search, CI status
by GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
by mcpdotdirectCompare Less with
Not sure what to pick?
Find your stack in 60 seconds
Author?
Embed badge for your README
Browse similar
All development MCPs
