oJob-common MCP Server

使用说明内容(Markdown格式)

项目简介

  • 该仓库中的 oJob-common 包含对 MCP(Model Context Protocol)服务器功能的描述与实现方案,旨在提供一个可通过 HTTP SSE 或 STDIO 传输的 MCP 服务端,能够处理 MCP 请求、返回 JSON-RPC 风格响应,并对资源、工具、Prompts 等进行管理,支持与 LLm 客户端的对接。

主要功能点

  • HTTP MCP 服务器:监听指定端口与 URI,接收 MCP 请求,执行对应作业(Jobs),并返回 JSON-RPC 风格的响应;支持通过 SSE 实现流式响应。
  • STDIO MCP 服务器:通过标准输入/输出进行 MCP 通信,适合在本地进程间传输 JSON-RPC 请求与响应,便于快速集成和调试。
  • 核心能力暴露:资源(Resources)用于数据访问、工具(Tools)用于外部功能调用、Prompt 模板(Prompts)用于渲染与提供对话上下文。
  • 会话管理与能力声明:服务器维护会话状态,声明自身能力,便于客户端基于能力集进行协作。
  • 多传输协议支持:HTTP(SSE) 与 STDIO 传输为主,描述中还提及 WebSocket 等扩展传输能力,提升与不同客户端的适配性。
  • JSON-RPC 统一协议:服务端遵循 JSON-RPC 请求/响应格式,便于 LLM 客户端进行标准化交互。
  • 错误处理与可观测性:当作业执行结果包含特定错误标记(如返回的结果包含 _err 字段),服务器以错误响应返回客户端,并支持调试信息输出。

安装步骤

  • 获取与依赖
    • 获取源码并确保运行环境具备 oJob 引擎/运行框架所需的基础运行时。
    • 安装所需依赖(如有),确保可编译与执行 MCP 服务模块。
  • 启动方式
    • 通过配置引入 oJob-common 的 MCP 模块,在你的应用或工作流引擎中启动 MCP 服务。
    • 选用 HTTP MCP 服务或 STDIO MCP 服务之一,亦可同时启用两种传输方式以满足不同场景。
  • 运行与测试
    • 使用客户端发送 MCP JSON-RPC 请求,验证请求-响应流程、资源/工具/Prompts 的注册与执行是否正常。

服务器配置(客户端不需要,供 MCP 服务器运维与集成使用,以下为描述性配置要点)

  • serverName: 指定 MCP 服务器名称,便于日志与监控识别。
  • command: 启动 MCP 服务器的执行命令(按你的运行环境设定,例如“启动 MCP 服务器的主程序”)。
  • args: 启动参数列表,涵盖以下常见选项:
    • port: MCP 服务监听端口(HTTP MCP 时使用的端口,例如 8080)。
    • uri: MCP 请求的处理路径(默认 /mcp)。
    • usestream: 是否使用 HTTP SSE 实现流式响应(true/false)。
    • debug: 是否开启调试模式(true/false)。
    • description: 服务器元数据,如协议版本、服务器信息、能力描述。
    • fnsMeta: 函数/能力的元数据,用于描述可用的功能入口(在客户端帮助描述输入输出)。
    • fns: 公开给 MCP 客户端调用的作业映射,定义名称、描述与输入输出约束。
  • 说明
    • 这是服务器端的启动配置,客户端(LLM/GPT 之类的模型驱动的对话客户端)无需关心内部实现细节,但需要知道如何连接到服务器、可用的功能入口以及传输方式。
    • 你可以根据实际部署环境将端口、路径、传输方式等配置成与你的基础设施一致的值。

示例性配置要点(文本描述,不含具体代码)

  • 服务器名称:oJob-common-MCP
  • 启动命令:启动 MCP 服务的主程序或入口脚本
  • 启动参数:
    • port: 8080
    • uri: /mcp
    • usestream: false
    • debug: false
    • description: { protocolVersion: "1.0", serverInfo: "OpenAF oJob-common MCP module", capabilities: ["HTTP MCP", "STDIO MCP", "JSON-RPC"] }
    • fnsMeta: { ping: { name: "ping", description: "Pings the server" }, echo: { name: "echo", description: "Echoes input" } }
    • fns: { ping: "ping", echo: "echo" }

基本使用方法

  • 与客户端对接流程简单:
    • 客户端发送 MCP JSON-RPC 请求到服务器指定的端口与 URI。
    • 服务器解析请求、将请求路由到相应的作业/函数,执行并返回 JSON-RPC 响应。
    • 如使用 SSE,客户端可通过持续连接接收服务器推送的响应事件。
  • 调试与日志:
    • 打开 debug 模式可获得更详细的日志输出,便于排查请求路由、参数校验及执行结果的问题。
  • 常见场景:
    • 读取/写入资源数据。
    • 调用工具执行外部功能(如数据查询、文件处理、网络调用)。
    • 根据输入动态渲染并返回 Prompts,供 LLM 进行上下文驱动的对话。

关键词 资源管理, JSON-RPC, 流式传输, LLM 对接, Prompts 渲染

分类ID 6

服务器信息