MCP服务器框架

一个TypeScript/Deno实现的MCP服务器框架,支持AI应用与外部工具、资源和服务之间的结构化通信。

  • by mcpbay
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 mcpbay/easy-mcp-server

使用说明

@mcpbay/easymcp服务器

README.md由人工智能编写,由人类审查。

这个图书馆是实验性的!不要在生产中使用它!

模型上下文协议(MCP)服务器规范的Types/Deno实现。该库为构建MCP服务器提供了一个框架,使AI应用程序和各种数据源、工具和服务之间能够无缝通信。

什么是模型上下文协议?

模型上下文协议 (MCP)是一种标准化协议,允许人工智能应用程序以结构化的方式与外部工具、资源和服务进行交互。它定义了客户端和服务器如何通信,以公开工具执行、资源访问、提示管理和采样操作等功能。

这个图书馆是做什么的?

此库提供了一个完整的MCP服务器实现,可以处理:

  • 协议协商:支持MCP协议版本 2024-11-05, 2025-03-26, 2025-06-18,以及 2025-11-25
  • 请求/响应生命周期:管理完整的消息处理管道,包括验证、执行和错误处理
  • 传输层:目前支持基于进程的通信的stdio传输
  • 超时管理:不同操作类型的可配置超时
  • 中止控制:内置请求取消支持

核心功能

工具

公开客户端可以调用的可执行函数。工具可以是同步的或异步的,并支持对长时间运行的操作进行可选的基于任务的执行。

资源

提供对数据源(文件、API响应、数据库查询等)的访问。可以列出、读取和订阅资源以进行更新。

提示

定义客户端可以检索和使用的可重用提示模板。支持通过参数替换动态生成提示。

取样/完成

从客户端请求LLM完成,使服务器能够执行AI辅助操作。

任务

通过状态跟踪、取消和进度报告支持长时间运行的操作。

日志记录

具有多个严重级别(调试、信息、通知、警告、错误、严重、警报、紧急)和可选文件输出的结构化日志记录系统。

进度通知

使用可定制的进度令牌对长时间运行的操作进行实时进度更新。

引出

使用JSON模式从客户端请求结构化输入以进行验证。

建筑

该库是围绕上下文模型模式构建的,您可以在其中实现 IContextModel 用于定义服务器行为的接口:

  • onClientListInformation:提供服务器元数据
  • onClientListTools:显示可用工具
  • onClientCallTool:处理工具执行
  • onClientListResources:公开可用资源
  • onClientReadResource:处理资源访问
  • onClientListPrompts:显示可用提示
  • onClientGetPrompt:处理快速检索
  • onClientRequestsCompletion:处理完成请求
  • onClientConnect:在客户端连接时初始化
  • onClientRootsChanged:处理客户端根更改

出口

该库为不同的用例提供了多个入口点:

  • 主要出口 (.):核心 EasyMCPServer 类和配置接口
  • 类型 (./types):所有协议结构的TypeScript接口和类型定义
  • 实用工具 (./utils):实用功能包括 crashIfNot 用于验证和 memoize 用于优化
  • 验证器 (./validators):所有协议方法的请求和响应验证功能
  • 运输 (./transports):传输层实现(stdio)
  • 枚举 (./enums):协议常量的枚举类型(LogLevel、TaskStatus、ContextModelEntityType)

配置选项

服务器支持通过以下方式进行广泛配置 IEasyMCPConfig 接口:

  • protocol:选择MCP协议版本
  • timeout:默认请求超时
  • completionAttemptTimeout:完成请求超时
  • elicitationAttemptTimeout:诱导请求超时
  • server.sendToolsListChangedNotification:启用工具列表更改通知
  • server.sendPromptsListChangedNotification:启用提示列表更改通知
  • server.sendResourcesListChangedNotification:启用资源列表更改通知
  • server.sendResourcesUpdatedNotification:启用单个资源更新通知
  • server.allowClientSubscribeToIndividualResourceUpdate:允许资源订阅
  • server.sendLogs:启用日志记录功能
  • server.logsFilePath:日志输出的文件路径
  • server.supportsCompletion:启用完成/采样功能

许可证

麻省理工学院许可证-版权所有(c)2026 mcpbay