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