maintenant MCP 服务器
使用说明
- 项目简介
- maintenant 是一个整合型的监控与后端服务框架,其中内置了一个 MCP 服务器。该 MCP 服务器负责向具备 MCP 客户端能力的 AI 模型提供资源数据、可调用的工具,以及按需渲染的 Prompt 模板等上下文信息,帮助 LLM 客户端进行高效、安全的推理与对话。支持通过标准的 JSON-RPC 传输与多种传输协议进行通信,并通过 OAuth2 进行远程客户端认证。
- 主要功能点
- 资源管理:提供可访问的资源数据,便于 MCP 客户端查询与读取。
- 工具注册与执行:允许注册并触发外部功能调用,扩展 LLM 的能力边界。
- Prompt 渲染与模板:定义并渲染自定义的提示模板,以引导 LLM 的对话和任务执行。
- 会话与能力声明:服务器端管理会话、能力(可用的资源/工具/提示)声明,支持安全、可扩展的上下文服务。
- 传输协议与安全:内置支持 stdio、Streamable HTTP 等传输模式,且在启用 MCP 时可通过 OAuth2 对远程客户端进行认证。
- 与现有系统的集成能力:与 domaine 生态中的多种后端服务(如身份认证、授权、数据源)协同工作,提供统一的 MCP 服务入口。
- 安装步骤
- 克隆仓库并进入项目目录。
- 构建可执行文件(Go 语言,默认生成名为 maintenant 的二进制)。
- 启动方式
- 直接运行以启动 HTTP MCP 服务(默认关闭,需配置环境变量以开启):
- 需要设置 MAINTENANT_ADDR 指定监听地址,MAINTENANT_DB 指定数据库路径等基本参数。
- 使用 MCP 的标准输入/输出的场景(stdio 传输):
- 通过命令行参数 --mcp-stdio 启用 stdio 传输,适合在托管环境中通过父进程与 MCP 服务直接通信。
- 直接运行以启动 HTTP MCP 服务(默认关闭,需配置环境变量以开启):
- 常用环境变量(示例)
- MAINTENANT_MCP=true:启用 MCP 服务器的 HTTP 传输(Streamable HTTP),让 MCP 客户端通过网络连接。
- MAINTENANT_MCP_CLIENT_ID、MAINTENANT_MCP_CLIENT_SECRET:用于 OAuth2 客户端认证(如果需要对远程客户端进行鉴权)。
- MAINTENANT_ADDR、MAINTENANT_BASE_URL、MAINTENANT_DB 等其他参数请结合官方文档配置。
- 服务器配置(MCP 客户端配置示例)
说明:MCP 客户端需要配置一个“服务器”(server)来连接 MCP 服务器。以下 JSON 形式为常见的两种连接方式的配置示意,实际客户端按需选择一种:
- 使用 stdio 传输方式(本地进程间通信) { "server_name": "maintenant-mcp-stdio", "command": "/path/to/maintenant", // MCP 服务器可执行文件的路径 "args": ["--mcp-stdio"] // 启用标准输入/输出传输 // 说明:此模式通过父进程与 MCP 服务在同一台机子上进行通信,适合开发和本地集成测试 }
- 使用 Streamable HTTP 传输(网络传输) { "server_name": "maintenant-mcp-http", "command": "/path/to/maintenant", // MCP 服务器可执行文件的路径 "args": [], // 直接启动,默认通过 HTTP /mcp 端点暴露服务 "transport": "http", "endpoint": "http://localhost:8080/mcp", // MCP 服务器对外暴露的 MCP 端点 "auth": { "type": "oauth2", "client_id": "<your-client-id>", "client_secret": "<your-client-secret>", "token_url": "https://your-auth-server/oauth/token" } } 注释说明
- server_name:用于标识 MCP 服务的名称,便于日志与监控追踪。
- command、args:指定启动 MCP 服务器的可执行路径及启动参数,确保客户端能够正确连接并使用正确的传输模式。
- transport、endpoint、auth:若使用网络传输,需要明确传输类型、MCP 服务地址和认证方式,确保 MCP 客户端能够完成鉴权并建立连接。
- 基本使用方法
- 启动后,MCP 服务器对外的 MCP API 将按配置提供服务,LLM 客户端可以通过 JSON-RPC 调用读取资源、执行工具、获取并渲染 Prompts 等能力。
- 客户端在初次连接时需要进行身份鉴权(若开启 OAuth2),并在后续通信中维持会话。
- 通过浏览器/前端 UI 的集成或后端服务的 API 调用,开发者可以将 MCP 服务融入更大规模的应用流程中。
- 备注
- 仓库内也包含了对 MCP 的集成实现(包括 HTTP 的 Streamable 接口、stdio 传输、以及 OAuth2 授权的实现路径),实际使用时请参考环境变量配置与部署指南。