mcpField
M
MCP Serverless

MCP Serverless

本地服务
github.com/tilfin云与基础设施185 周前更新

关于 MCP Serverless

MCP Serverless 是用于构建无服务器 MCP 服务并管理工具的包。它支持内存中的客户端与服务连接,也可通过请求上下文传递客户端凭据。

主要功能

  1. 01注册和管理工具
  2. 02处理工具请求
  3. 03创建内存客户端与服务连接
  4. 04通过请求上下文传递凭据

适用场景

  1. 01构建无服务器 MCP 服务
  2. 02在内存中连接客户端与服务
  3. 03通过请求上下文转发客户端凭据

MCP 相关

提供创建 MCP 服务及内存客户端—服务连接的 API,并包含使用 stdio 传输的示例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP Serverless

Model Context Protocol(MCP)架构的无服务器实现,通过简洁的接口实现工具管理。

概述

此软件包提供了 MCP 服务的无服务器实现,可用于:

  • 注册和管理工具
  • 处理与工具相关的请求
  • 创建内存中的客户端与服务连接
  • 为请求添加上下文,以便客户端传递凭据

安装

npm install @tilfin/mcp-serverless

用法

注册工具并为实现服务创建客户端
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 参考

ToolManager 类

管理工具的注册和处理。

Tool 接口

工具必须实现以下接口:

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

使用指定的工具管理器创建 MCP 服务。

createService(toolManager)

创建用于无服务器运行的内存客户端与服务设置。

示例

标准输入/输出传输

此软件包包含使用标准输入/输出传输进行客户端和服务通信的示例:

  • StdioClientTransport:允许客户端通过标准输入/输出与服务通信
  • StdioServerTransport:使服务能够通过标准输入/输出处理请求

查看示例实现:

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。