LiteMCP

LiteMCP

site icon
2025.01.23 163
TypeScriptMCP服务器框架TypeScript开发开发效率
LiteMCP 是一个基于 TypeScript 的框架,用于优雅地构建 MCP(Model Context Protocol)服务器。它提供了简单的工具、资源和提示定义,支持完整的 TypeScript 类型检查,内置日志记录、错误处理和 CLI 工具,便于测试和调试。LiteMCP 适用于需要快速构建和部署 MCP 服务器的开发场景,特别是那些需要与 LLM(大型语言模型)交互的应用。
View on GitHub

Overview

基本能力

产品定位

LiteMCP 是一个用于构建 MCP 服务器的 TypeScript 框架,旨在简化服务器开发过程,提供高效的开发工具和内置功能。

核心功能

  • 工具(Tools):允许服务器暴露可执行的函数,供客户端和 LLM 调用以执行操作。
  • 资源(Resources):表示服务器希望提供给客户端的任何类型的数据,如文件内容、日志文件等。
  • 提示(Prompts):定义可重用的提示模板和工作流,便于标准化和共享常见的 LLM 交互。
  • 日志记录(Logging):内置日志记录功能,支持不同级别的日志输出。
  • 错误处理:内置错误处理机制,提高服务器的健壮性。
  • CLI 工具:内置 CLI 工具,便于测试和调试服务器。
  • SSE 传输支持:支持通过 Server-Sent Events (SSE) 进行通信。

适用场景

  • 开发需要与 LLM 交互的应用程序。
  • 构建提供工具和资源的后端服务。
  • 快速原型设计和测试 MCP 服务器。

工具列表

  • mcp-cli:用于测试和调试 MCP 服务器的 CLI 工具。
  • MCP Inspector:提供 Web UI 用于检查服务器状态和交互。

常见问题解答

  • 如何调试服务器? 使用 npx litemcp dev server.js 命令启动服务器并进行调试。
  • 如何查看服务器日志? 使用内置的 logger 对象记录日志,并通过客户端查看。
  • 如何支持 SSE 传输?server.start 方法中配置 transportTypesse 并设置相关参数。

使用教程

使用依赖

安装 LiteMCP 和 Zod(用于参数验证):

npm install litemcp zod

安装教程

  1. 创建一个新的 TypeScript 项目(如果尚未创建)。
  2. 安装 LiteMCP 和 Zod:
npm install litemcp zod
  1. 创建一个服务器文件(如 server.jsserver.ts)并编写代码。

调试方式

使用以下命令启动服务器并进行调试:

npx litemcp dev server.js

或使用 MCP Inspector 检查服务器:

npx litemcp inspect server.js

核心概念

工具(Tools)

工具允许服务器暴露可执行的函数,供客户端和 LLM 调用。例如:

server.addTool({
  name: "fetch",
  description: "Fetch the content of a url",
  parameters: z.object({
    url: z.string(),
  }),
  execute: async (args) => {
    const content = await fetchWebpageContent(args.url);
    return content;
  },
});

资源(Resources)

资源表示服务器希望提供给客户端的任何类型的数据。例如:

server.addResource({
  uri: "file:///logs/app.log",
  name: "Application Logs",
  mimeType: "text/plain",
  async load() {
    return {
      text: await readLogFile(),
    };
  },
});

提示(Prompts)

提示用于定义可重用的提示模板和工作流。例如:

server.addPrompt({
  name: "git-commit",
  description: "Generate a Git commit message",
  arguments: [
    {
      name: "changes",
      description: "Git diff or description of changes",
      required: true,
    },
  ],
  load: async (args) => {
    return `Generate a concise but descriptive commit message for these changes:\n\n${args.changes}`;
  },
});

日志记录(Logging)

使用 server.logger 记录日志:

server.logger.info("Downloading file", { url: args.url });

运行服务器

调试与测试

使用 mcp-cli 调试服务器:

npx litemcp dev server.js

SSE 传输

配置服务器以支持 SSE 传输:

server.start({
  transportType: "sse",
  sse: {
    endpoint: "/sse",
    port: 8080,
  },
});

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。