使用说明内容(Markdown格式)

项目简介

  • 这是一个基于 MCP 的后端服务器实现,旨在为大语言模型(LLM)客户端提供统一的上下文信息、数据资源、可调用工具以及提示模板的渲染能力,便于在 LDAP 场景下进行健康诊断、用户/组管理、监控等操作。

主要功能点

  • 资源托管与访问:提供配置化的 LDAP 资源信息与 CN/config 相关属性的读取能力。
  • 工具注册与执行:按模块分组注册健康、用户、组、监控、搜索等工具,LLM 可以调用这些工具执行外部功能。
  • 提示模板与对话支持:内置提示导航来引导 LLM 客户端如何使用可用工具;
  • 多服务器支持:可通过配置加载多服务器信息,允许对指定服务器执行操作,或对所有服务器进行聚合健康检查。
  • 与 MCP 协议的通信:通过 FastMCP 框架实现对 MCP 请求/响应的处理,返回标准化的 JSON 结构。
  • 会话与配置管理:支持环境变量、配置文件及从环境读取默认服务器配置,提供默认服务器选择逻辑。
  • 安全与扩展性:提供连接管理、错误处理、日志记录等基础设施,便于扩展新的 LDAP 提供者与工具。

安装步骤

  • 获取代码并安装依赖(README 中的说明为参考基线);
  • 确保 Python 版本和依赖可用(本实现假设在 Python 环境中运行,依赖项包括 fastmcp、lib389 等);
  • 在本地运行 MCP 服务器(后续集成时,请按下述命令启动);
  • 使用 MCP 客户端(如 Claude Desktop、Claude Code、Cursor、Gemini CLI 等)连接并调用工具、读取资源或获取提示模板。

服务器配置(MCP 客户端启动时需要的 JSON 配置) 说明:MCP 客户端需要至少包含服务器名称、启动命令以及参数,以便通过客户端连接并启动 MCP 服务器。以下为示例配置说明,实际使用时请用具体的服务器信息替换示例字段。

{ "server_name": "ds-test-1", // 服务器名称,需与服务端配置中的 server.name 对应 "command": "python", // 启动服务器的命令 "args": ["-m", "src.main"], // 启动参数,等效于在代码中执行: python -m src.main "env": { // 运行时可选的环境变量 "LDAP_PROVIDER": "dirsrv", // 指定 LDAP 提供者,示例为 389 DS "LDAP_SERVERS_CONFIG": "/path/to/servers.json" // 如果使用多服务器配置,通过此路径加载 } }

服务器多服务器配置示例(用于 MCP 服务器端的服务器列表) { "servers": [ { "name": "ds-test-1", "hostname": "ds1.example.org", "port": 389, "use_ssl": false, "base_dn": "dc=example,dc=com", "bind_dn": "cn=Directory Manager", "bind_password": "your-password", "auth_method": "simple", "provider_type": "389ds" }, { "name": "ds-test-2", "hostname": "ds2.example.org", "port": 389, "use_ssl": false, "base_dn": "dc=example,dc=com", "bind_dn": "cn=Directory Manager", "bind_password": "your-password", "auth_method": "simple", "provider_type": "389ds" } ] }

基本使用方法

  • 启动前准备
    • 在服务器配置文件中定义一个或多个 LDAP 服务器的连接信息(hostname、端口、base_dn、bind_dn、bind_password、provider_type 等)。
    • 将上述服务器列表以 JSON 形式保存为配置文件(例如 servers.json),路径通过环境变量 LDAP_SERVERS_CONFIG 指定,或通过提供 config_path 启动参数加载。
  • 启动 MCP 服务器
    • 使用命令行直接启动服务器(示例:python -m src.main,或在您环境中的等效启动方式),客户端将通过配置中的命令和参数与该 MCP 服务器建立连接。
  • 客户端使用
    • 通过支持 MCP 的客户端工具连接服务器,调用工具(如 ldap_search、list_all_users、first_look 等)获取结构化返回数据。
    • 使用多服务器功能进行跨服务器健康检查、跨服务器查询,以及对特定服务器执行工具调用。
  • 常见问题
    • 如果未提供任何服务器,默认会尝试从环境变量读取单服务器配置,或报错要求至少配置一个服务器。
    • 配置中的密码请设置为受限权限文件中的明文或根据您的运维策略进行管理。

快速上手要点

  • 该实现提供多提供方支持(389 DS、OpenLDAP),核心在于通过 MCP 协议实现资源、工具、提示模板的集中管理与访问。
  • 通过多服务器配置可以实现对多个 LDAP 目录的健康诊断、用户/组管理、监控等操作的统一入口。
  • 客户端启动配置与服务端实例的绑定关系需要确保服务器名称和配置文件相匹配,以实现正确的服务器定位。

关键词 ldap 目录服务, 多服务器配置, 工具执行, 健康诊断, 模板与上下文

分类ID 6

信息

分类

AI与计算