Scalekit MCP 服务器端

使用说明内容(Markdown格式)

项目简介

本仓库实现了一个基于 Model Context Protocol (MCP) 的服务端(服务器端)应用。它通过标准化的 MCP 传输向 AI 代理提供上下文信息和能力,核心职责包括对资源(Resources)的托管与管理、对工具(Tools)的注册与执行、以及对提示模板/交互模式的支持。服务器提供认证保护、会话管理与多环境/多组织的上下文能力,便于在企业场景中与 LLM 客户端进行安全、可扩展的集成。

主要功能点

  • MCP 服务器核心
    • 实例化并暴露 MCP 服务器,注册各种工具以响应客户端请求。
    • 通过 Express HTTP 路由对 MCP 请求进行处理,使用 StreamableHTTPServerTransport 支持 JSON‑RPC 风格的请求/响应。
  • 资源与工具管理
    • 提供环境、组织、工作区、工作区成员、组织成员等多维度的资源与工具。
    • 针对不同资源类型(如环境、组织、工作区、MCP 服务器等)实现创建、查询、更新等操作的工具。
  • 认证与安全
    • 使用 OAuth 2.1 风格的令牌校验,针对工具调用进行授权范围检查(基于 TOOL 的所需作用域)。
    • 对 MCP 请求进行统一鉴权,公开的端点除外(如 .well-known 元数据)。
  • 数据与接口
    • 通过预定义的接口聚合外部系统的数据(比如环境与组织信息),并将结果以文本形式返回给客户端做呈现。
    • 支持多种端点和资源元数据,配合外部 API 提供丰富的上下文。
  • 可扩展性
    • 工具注册体系化,新增工具只需在相应模块实现并在 TOOLS 中注册即可。
    • 结构清晰,便于在企业场景中接入自有资源与认证体系。
  • 传输与部署
    • 采用基于 Express 的 HTTP 传输实现 MCP 请求/响应处理,能与符合 MCP 客户端的实现进行对接。
    • 服务器的启动与运行依赖于环境变量配置,部署时可将其打包成独立服务进行运行。

安装步骤

  • 准备工作
    • 具备 Node.js(推荐 v18+)运行环境。
    • 获取本仓库代码并进入项目目录。
  • 安装依赖
    • 安装所需的 Node 模块依赖(如 express、cors、node-fetch、zod、Winston 等)。
  • 配置环境
    • 根据实际部署环境,配置以下环境变量(示例,实际值请替换为真实信息):
      • PORT:服务端监听端口(如 3000)。
      • SK_API_BASE_URL、SK_ENV_URL:Ska lekit 的后端 API 地址与环境。
      • SK_CLIENT_ID、SK_CLIENT_SECRET:用于与 Scalekit 身份平台的客户端凭证。
      • AUTH_ISSUER、AUTH_SERVER_ID、AUTH_AUDIENCE:OAuth 授权服务器信息与受众标识。
      • MCP_INSPECTOR、LOG_LEVEL 等用于调试与日志的开关/级别。
  • 运行服务
    • 将代码编译为可执行的分发文件后启动服务。例如:使用 Node 运行打包后的入口文件(如 dist/scalekit.js)。确保端口和相关配置正确生效后,服务器就会监听并准备处理 MCP 请求。

服务器配置(面向 MCP 客户端的配置信息说明)

说明:MCP 客户端需要的配置是用于启动并连接到 MCP 服务器的启动命令及参数,以及用于标识该服务器的名称等信息。以下为基于仓库实现的准确描述,便于在客户端配置时理解无需编码。

  • 服务器名称(server name):在 MCP 客户端的注册中,可使用与服务端一致的名称,例如 “scalekit”。
  • 启动命令(command):用于启动服务端程序的命令,典型场景为直接执行 Node.js 打包后的入口文件,例如通过 Node 运行编译产物(dist/your-entry.js)。
  • 启动参数(args):对应上述入口文件的运行参数,例如 ["dist/scalekit.js"](具体路径以实际部署产物为准)。
  • 其他说明:
    • 服务器配置仅用于 MCP 客户端的启动信息,客户端本身无需理解服务端内部实现细节。
    • 服务端会在启动后通过 HTTP 入口处理 MCP 请求,客户端通过指定的启动命令与参数来启动并保持连接。
    • 服务端的实际暴露地址与端口,请在部署时通过网络或反向代理进行访问配置(示例地址如 https://your-mcp-server.example.com/)。
  • 备注:以上命令与参数是基于仓库代码的部署方式设定的通用描述,实际环境中可按项目打包和部署流程进行调整。

基本使用方法

  • 启动服务器
    • 在合适的运行环境中执行配置好的启动命令,确保服务器启动并监听配置的端口。
  • 配置客户端
    • 在 MCP 客户端中使用上述启动命令与参数启动服务端的代表实例,以建立与 MCP 服务器的 JSON‑RPC 连接。
  • 使用与扩展
    • 通过 MCP 客户端或对等工具调用注册的工具与操作资源、环境、组织等,服务器端会依据当前身份令牌及作用域进行校验与执行。
    • 如需扩展能力,可新增工具实现并在 TOOLS 注册表中添加对应项,服务器将自动暴露新的工具接口。
  • 安全注意
    • 生产环境请务必按企业安全要求正确配置 OAuth 授权服务器、令牌签名及作用域校验逻辑,确保只有具备相应权限的客户端能够调用相应工具。

服务器信息