LDAP MCP 服务器通过模型上下文协议(MCP)公开一个LDAP目录,使MCP客户端能够使用标准工具/资源工作流程执行常见的目录搜索和CRUD操作。
cd /opt/code/github/ldap-mcp
go test ./...
当前仓库没有单元测试,因此成功运行确认项目可以编译且所有依赖项都能解决。
cd /opt/code/github/ldap-mcp
go run ./cmd/server \
-url ldap://localhost:389 \
-bind-dn "cn=admin,dc=example,dc=com" \
-bind-password secret
关键标志:
-addr: MCP监听地址(默认:8080,可通过MCP_PORT覆盖)。-url: LDAP服务器URL,如ldap://host:389或ldaps://host:636。-bind-dn / -bind-password: 绑定到目录的凭据。您也可以通过环境变量LDAP_BIND_PASSWORD提供密码。-starttls: 将纯LDAP连接升级为TLS。仅在使用ldap://URL时有效。-insecure: 跳过TLS证书验证(对于自签名证书的测试很有用)。-read-write: 启用添加/修改/删除工具。如果省略,则服务器将以只读模式运行。-timeout: 与LDAP服务器通信时每个请求的超时时间(默认30秒)。使用-help打印完整的标志和环境变量列表。
工具
search_entries: 执行带有分页、作用域选择、别名解析和大小限制的LDAP搜索。get_entry: 根据区分名获取单个条目。add_entry: 创建新条目(需要-read-write)。modify_entry: 应用属性修改(需要-read- write)。delete_entry: 删除条目(需要-read-write)。资源
ldap://root-dse: 返回目录根DSE作为JSON。ldap://entry/{dn}: 提供DN时获取特定条目。internal/ldapclient)管理连接复用、StartTLS协商以及传输错误时的自动重连。internal/tools)在调用LDAP操作之前验证输入;例如,page_size参数被限制在用于分页结果控制的uint32范围内。gofmt格式化Go源代码,并在依赖项更改时通过go mod tidy保持模块依赖项整洁。