Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Serverless

FreeNot checked

Provides a serverless implementation of the Model Context Protocol for registering and managing tools, enabling in-memory client-server connections and credenti

GitHubEmbed

About

Provides a serverless implementation of the Model Context Protocol for registering and managing tools, enabling in-memory client-server connections and credential transmission via request context.

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 Serverless

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 Serverless MCP free?

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

Does Serverless need an API key?

No, Serverless runs without API keys or environment variables.

Is Serverless hosted or self-hosted?

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

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

Open Serverless 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 Serverless with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All development MCPs