Token导航 LogoToken导航TokenDH.com
llng MCP logo
运维云端stdio官方级别未说明来源级核验

llng MCP

MCP Server

@modelcontextprotocol/inspector

一款用于管理Lemonldap-NG Web SSO实例的工具,支持配置、会话、OIDC、SAML、双因素认证等功能。

工具数

47

提示词数

0

GitHub Stars

3

资源数

0
会话管理TypeScriptClaudeClaude DesktopClaudeCursorCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

linagora

提供方

linagora

最后核验

2026/5/17 20:22

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx @modelcontextprotocol/inspector node dist/index.js

详细介绍

llng mcp

MCP服务器 柠檬花,但

从Claude、Cursor或任何兼容MCP的AI助手管理您的Lemondap NG web SSO实例。47种工具,涵盖配置、会话、OIDC、SAML、2FA等。

快速开始

1.添加到克劳德代码

claude mcp add llng-mcp -- npx llng-mcp

或添加到克劳德桌面(~/.claude/desktop_config.json):

{
  "mcpServers": {
    "llng": {
      "command": "npx",
      "args": ["llng-mcp"]
    }
  }
}

2.配置您的SSO实例

创建 ~/.llng-mcp.json:

{
  "instances": {
    "prod": {
      "mode": "ssh",
      "ssh": { "host": "sso.example.com", "user": "root" }
    },
    "staging": {
      "mode": "ssh",
      "ssh": { "host": "sso-staging.example.com", "user": "root" }
    }
  },
  "default": "prod"
}

所有工具都接受可选 instance 参数以针对特定实例。看 配置 以下是SSH、API、Kubernetes和Docker模式。

3.开始使用

用自然语言问克劳德:

  • _“显示当前SSO配置”_
  • _“有多少个活动会话?”_
  • _“列出所有OIDC依赖方”_
  • _“使用重定向URI为我的应用程序添加新的OIDC RPhttps://my-app.example.com/callback"_
  • _“删除用户jdoe的所有会话”_
  • _“用户alice有哪些2FA设备?”_
  • _“旋转OIDC签名密钥”_
  • _“将完整配置导出为备份”_

你能做什么

能力描述
配置读取、更新、导出、导入、合并和回滚SSO配置。测试电子邮件设置。
会话搜索、检查、修改和删除用户会话。备份所有会话。管理离线/刷新令牌。
OIDC依赖方启用OIDC发行人,列出/添加/更新/删除具有合理默认值的依赖方。
OIDC测试完整的OIDC流测试:发现、使用PKCE授权、令牌交换、用户信息、自检。
SAML联盟下载IdP元数据,导入SAML联盟。
双因素认证列出并管理用户的2FA设备(TOTP、U2F、WebAuthn)。
用户同意书列出并撤销每个用户的OIDC同意。
用户目录从配置的后端查找用户属性。
缓存和维护清除中央和本地缓存,旋转OIDC密钥,按UID模式删除会话。
多实例从单个服务器管理多个SSO实例(prod、staging、dev)。
文档在完整的LemonLDAP::NG文档中进行语义搜索。捆绑索引,只需要Ollama进行嵌入。

安装

需要Node.js 20或更高版本。

npm install llng-mcp
npm run build

配置

MCP服务器从以下位置读取配置 ~/.llng-mcp.json 支持环境变量重写。有两种操作模式可供选择。

SSH/CLI模式(默认)

通过SSH或使用Lemondap NG CLI工具在本地执行命令。

{
  "mode": "ssh",
  "ssh": {
    "binPrefix": "/usr/share/lemonldap-ng/bin"
  }
}

对于远程SSH连接:

{
  "mode": "ssh",
  "ssh": {
    "host": "llng.example.com",
    "user": "root",
    "port": 22,
    "sudo": "root",
    "binPrefix": "/usr/share/lemonldap-ng/bin"
  }
}

remoteCommand -通过Docker、LXC等执行。

remoteCommand 字段在SSH/sudo和LLNG CLI二进制文件之间插入命令。这允许在容器内或通过其他包装器运行命令:

{
  "mode": "ssh",
  "ssh": {
    "host": "server.example.com",
    "remoteCommand": "docker exec sso-auth-1",
    "binPrefix": "/usr/share/lemonldap-ng/bin"
  }
}

这产生了: ssh server.example.com docker exec sso-auth-1 /usr/share/lemonldap-ng/bin/lemonldap-ng-cli ...

binPrefix -自定义二进制位置

binPrefix 字段(默认值: /usr/share/lemonldap-ng/bin)设置所有LLNG CLI工具的基本目录。个人路径(cliPath, sessionsPath, configEditorPath)仍然可以覆盖特定的二进制文件。

SSH模式限制:以下操作需要API模式:

  • llng_2fa_list -列出2FA设备
  • llng_2fa_delete -删除2FA设备
  • llng_2fa_delType -删除所有类型的设备
  • llng_consent_list -列出用户同意
  • llng_consent_delete -撤销同意

API模式

使用可选的HTTP基本身份验证调用LLNG管理器上的REST端点。

{
  "mode": "api",
  "api": {
    "baseUrl": "https://manager.example.com/api/v1",
    "basicAuth": {
      "username": "admin",
      "password": "secret"
    },
    "verifySsl": true
  }
}

Kubernetes模式

使用以下命令在Kubernetes Pod中执行命令 kubectl exec服务器使用标签选择器自动解析Deployment中的pod。

{
  "mode": "k8s",
  "k8s": {
    "context": "prod-cluster",
    "namespace": "auth",
    "deployment": "lemonldap-ng",
    "container": "sso"
  }
}
  • context (可选)-要使用的kubectl上下文
  • namespace (必填)-Kubernetes命名空间
  • deployment (必需)-部署名称(用于派生默认pod选择器 app.kubernetes.io/name=DEPLOYMENT)
  • container (可选)-pod中的容器名称(如果是单个容器,则省略)
  • podSelector (可选)-覆盖吊舱分辨率的标签选择器(默认值: app.kubernetes.io/name=DEPLOYMENT)
  • binPrefix (可选)-pod内LLNG二进制文件的路径(默认: /usr/share/lemonldap-ng/bin)

K8s模式具有与SSH模式相同的限制(2FA和同意需要API模式)。

OIDC配置(可选)

对于OIDC测试工具:

{
  "oidc": {
    "issuer": "https://auth.example.com",
    "clientId": "my-app",
    "clientSecret": "secret",
    "redirectUri": "http://localhost:8080/callback",
    "scope": "openid profile email"
  }
}

多实例配置

要从单个MCP服务器管理多个LLNG实例,请使用 instances 格式:

{
  "instances": {
    "prod": {
      "mode": "api",
      "api": {
        "baseUrl": "https://manager-prod.example.com/api/v1",
        "basicAuth": { "username": "admin", "password": "secret" }
      }
    },
    "staging": {
      "mode": "ssh",
      "ssh": {
        "host": "staging.example.com",
        "user": "root"
      }
    },
    "local": {
      "mode": "ssh"
    }
  },
  "default": "prod"
}
  • instances -命名LLNG实例配置,每个配置都有自己的 mode, ssh, api,以及 oidc 设置
  • default -在执行以下操作时使用的实例的名称 instance 省略参数(如果未指定,则默认为第一个实例)
  • 所有工具都接受可选 instance 针对特定实例的参数
  • 传统的平面格式(无 instances)完全受支持,并被视为单个“默认”实例
  • 环境变量(LLNG_*)仅应用于默认实例

环境变量

可以通过环境变量覆盖配置:

模式

  • LLNG_MODE -设置为“ssh”或“api”

SSH配置

  • LLNG_SSH_HOST -SSH连接的主机名
  • LLNG_SSH_USER -SSH用户名
  • LLNG_SSH_PORT -SSH端口(默认值:22)
  • LLNG_SSH_SUDO -用户使用sudo
  • LLNG_SSH_REMOTE_COMMAND -在SSH/sudo和LLNG二进制文件之间插入的命令(例如。, docker exec container-name)
  • LLNG_SSH_BIN_PREFIX -LLNG CLI工具的基本目录(默认: /usr/share/lemonldap-ng/bin)
  • LLNG_SSH_CLI_PATH -lemondap-ng-cli的路径(覆盖binPrefix)
  • LLNG_SSH_SESSIONS_PATH -lemondap-ng会话的路径(覆盖binPrefix)
  • LLNG_SSH_CONFIG_EDITOR_PATH -lmConfigEditor的路径(覆盖binPrefix)

Kubernetes配置

  • LLNG_K8S_CONTEXT -kubectl上下文
  • LLNG_K8S_NAMESPACE Kubernetes 命名空间
  • LLNG_K8S_DEPLOYMENT -部署名称
  • LLNG_K8S_CONTAINER -容器名称(可选)
  • LLNG_K8S_POD_SELECTOR -标签选择器覆盖
  • LLNG_K8S_BIN_PREFIX -pod内LLNG二进制文件的路径

API配置

  • LLNG_API_URL -API基本URL
  • LLNG_API_BASIC_USER -HTTP基本身份验证用户名
  • LLNG_API_BASIC_PASSWORD -HTTP基本身份验证密码
  • LLNG_API_VERIFY_SSL -设置为“false”跳过SSL验证

OIDC配置

  • LLNG_OIDC_ISSUER -OIDC发行人URL
  • LLNG_OIDC_CLIENT_ID -OIDC客户端ID
  • LLNG_OIDC_CLIENT_SECRET -OIDC客户端机密
  • LLNG_OIDC_REDIRECT_URI -oidc重定向类型
  • LLNG_OIDC_SCOPE -OIDC范围

文档

  • LLNG_DOC_INDEX -自定义文档索引文件的路径(覆盖捆绑索引)
  • OLLAMA_URL -嵌入的Ollama服务器URL(默认值: http://localhost:11434)
备注:使用多实例配置时,环境变量会覆盖 默认实例 只有。

使用Claude Desktop

将此添加到您的Claude Desktop配置中(~/.claude/desktop_config.json):

{
  "mcpServers": {
    "llng": {
      "command": "node",
      "args": ["/path/to/llng-mcp/dist/index.js"]
    }
  }
}

如果您在中有配置 ~/.llng-mcp.json,它将自动加载。您还可以通过环境变量进行覆盖:

{
  "mcpServers": {
    "llng": {
      "command": "node",
      "args": ["/path/to/llng-mcp/dist/index.js"],
      "env": {
        "LLNG_MODE": "api",
        "LLNG_API_URL": "https://manager.example.com/api/v1"
      }
    }
  }
}

与其他MCP客户端一起使用

使用npx检查工具

使用官方MCP检查器测试服务器:

npx @modelcontextprotocol/inspector node dist/index.js

这将打开一个交互式检查器,您可以在其中调用工具并查看结果。

配置

配置MCP客户端以连接到stdio服务器。例如,与 cline:

{
  "mcpServers": {
    "llng": {
      "command": "node",
      "args": ["/absolute/path/to/llng-mcp/dist/index.js"]
    }
  }
}

工具参考

备注:所有工具都接受可选 instance 参数(字符串),以针对特定的LLNG实例。如果省略,则使用默认实例。

配置管理

工具说明参数模式
llng_config_info获取配置元数据两者都有
llng_health健康检查两者都有
llng_flush_cache刷新本地缓存目标(config/sessions/all)SSH/K8s
llng_version获取llng版本SSH/K8s
llng_config_get获取配置值键(string\[\])两者都有
llng_config_set更新配置值键(对象)、日志(字符串)两者都有
llng_config_addKey添加复合键键、子键、值两者都有
llng_config_delKey删除复合密钥密钥,子密钥两者都有
llng_config导出导出为JSON两者都有
llng_config_import从JSON导入JSON(字符串)两者都有
llng_configure_merge合并JSONJSON(字符串)两者都有
llng_config_rollback还原上一个两者都有
llng_configure_update_cache强制缓存刷新两者都有
llng_config_test_email发送测试电子邮件目的地(字符串)SSH/K8s

会话管理

工具说明参数模式
llng_session_get获取会话id、后端、持久、哈希、刷新令牌两者都有
llng_session_search搜索会话其中,选择,后端,计数,种类,持久,哈希,idOnly,refreshTokens两者都有
llng_session_delete删除会话id(可选),其中、种类、后端、持久、哈希、刷新令牌两者都有
llng_session_setKey修改会话id、密钥、后端、持久、哈希、刷新令牌两者
llng_session_delKey删除属性id、键、后端、持久、哈希、刷新令牌两者
llng_session_backup导出会话后端、持久、刷新令牌两者都有

双重认证

工具说明参数模式
llng_2fa_list仅列出设备用户(字符串)API
llng_2fa_delete删除设备用户,id(string\[\])仅限API
llng_2fa_delType按类型删除用户,类型(字符串)仅限API

用户同意书

工具说明参数模式
llng_consent_list列表同意用户(字符串)仅限API
llng_consent_delete吊销同意用户,id(string\[\])仅限API

实例发现

工具说明参数模式
llng_instances列出可用实例两者都有

OIDC依赖方管理

工具说明参数模式
llng_oidc_issuer_enable启用oidc发卡机构强制(可选bool)两者都有
llng_oidc_rp_list列出oidc rp两者都有
llng_oidc_rp_get获取rp详细信息confKey两者都有
llng_oidc_rp_add添加新的rpconfKey、clientId、redirectUris、clientSecret、displayName、exportedVars、extraClaims、选项两者都有
llng_oidc_rp_delete删除rpconfKey两者都有

CLI实用程序

工具说明参数模式
llng_download_saml_metadata下载saml元数据url,输出文件,无检查,详细SSH/K8s
llng_import_metadata导入SAML联合url、spPrefix、idpPrefix、ignoreSp、ignoreIdp、remove、noCheck、verboseSSH/K8s
llng_delete_session按UID删除会话UID、强制、调试SSH/K8s
llng_user_attributes查找用户属性用户名,字段SSH/K8s
llng_purge_central_cache从中央缓存中清除过期会话调试、强制、jsonSSH/K8s
llng_purge_local_cache从本地缓存中清除过期会话调试SSH/K8s
llng_rotate_oidc_keys旋转oidc签名密钥调试SSH/K8s

OIDC测试

工具描述参数需要配置
llng_oidc_mediata提取发现oidc配置
llng_oidc_authority获取身份验证URL作用域(可选)oidc配置
llng_oidc_tokens交换代码代码,代码验证器oidc配置
llng_oidc_userinfo获取用户信息访问令牌(字符串)oidc配置
llng_oidc_Inspect检查令牌令牌(字符串)oidc配置
llng_oidc_refresh刷新令牌刷新令牌(字符串)oidc配置
llng_oidc_whami解码ID令牌ID_token(字符串)oidc配置
llng_oidc_check_auth测试保护url,access_tokenoidc配置

文档

完整的LemonLDAP::NG文档索引作为Brotli压缩文件捆绑在包中(data/index.json.br).在查询时,只需要一个Ollama实例来计算搜索查询的嵌入(模型: nomic-embed-text).

工具描述参数需要
llng_doc_searchllng文档中的语义搜索查询(字符串),限制(int)Ollama

配置:

  • OLLAMA_URL --Ollama端点(默认值: http://localhost:11434)
  • LLNG_DOC_INDEX --覆盖文档索引文件的路径

发展

构建

npm run build

观看模式

npm run dev

单元测试

npm test

集成测试

运行Lemondap NG实例需要Docker Compose:

npm run test:integration

测试堆栈包括一个完整的Lemondap NG实例,可在以下网址访问 http://localhost:19876.

在中查看测试配置 docker-compose.test.yml.

建筑

llng-mcp使用抽象层(ILlngTransport)有两种实现方式:

  • SshTransport -通过SSH或本地使用child_process执行CLI命令
  • K8s运输 -通过kubectl exec在Kubernetes Pod中执行CLI命令
  • ApiTransport -向LLNG REST API发出HTTP请求

A. TransportRegistry 管理每个命名配置的传输实例,实现多实例支持。所有工具都通过注册表解析其传输,允许在模式和实例之间无缝切换。

捆绑的Brotli压缩文档索引(data/index.json.br)通过Ollama嵌入实现语义搜索,而不需要原始RST源。

局限性

SSH模式

2FA管理和用户同意操作需要REST API。CLI工具(lemonldap-ng-clilemonldap-ng-sessions)为这些功能提供只读或仅删除功能。

API模式

确保LLNG管理器已正确配置,启用了REST端点并提供了身份验证凭据。

OIDC工具

OIDC测试工具是可选的。如果不需要,省略OIDC配置。

相关项目

  • llng助理 --由本地LLM(Ollama)支持的LLNG交互式CLI助手。使用llng-mcp通过自然语言管理多个实例。
  • 柠檬汁: --web SSO和访问管理平台。

许可证

AGPL-3.0

版权所有:2026 利纳戈拉

目录标签

目录标签

会话管理TypeScriptClaude单点登录本地部署身份认证OIDCSAML双因素认证

支持客户端

Claude DesktopClaudeCursorCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

@modelcontextprotocol/inspector

工具数量(toolCount,工具数)

47

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP