LWS

io.github.NKSTUD由 GitHub 账号 NKSTUD 发布v0.2.1更新于 Oct 24, 2026

Manage LWS (lws.fr) domains, DNS zones, hosting and account from any MCP client.

概览

AI 生成的概览

让助手通过 LWS 客户端 API 管理 LWS(lws.fr)的域名、DNS 区域、主机与账户,并可检查 DNS 解析生效情况。

可以做什么
  • 读取、新增、修改和删除 DNS 记录,并对比 LWS 区域、名称服务器与公共解析器检查传播情况
  • 查询域名、检查可用性、列出顶级域名、修改名称服务器、设置转移保护、申请转移授权码、管理域名跳转
  • 列出主机与价格、查看续费价格、开关自动续费,并可选购买或续费主机
  • 读取账户余额、购买记录与联系人,并创建或更新联系人
  • 列出请求,包括名称服务器变更、购买等后台待处理操作
适用场景
适合让助手代为完成常规的 LWS 域名与 DNS 操作,例如添加验证记录或邮件记录,或确认某次 DNS 修改是否已生效,而无需打开 LWS 控制面板。
运行要求
通过 uvx 在本地运行(uv 会自动获取 Python)。需要 LWS 账户 ID(LWS_LOGIN)和 API 密钥(LWS_API_KEY),并在 LWS 的 Api 页面放行运行机器的公网 IP。可选设置包括测试模式、只读模式、购买开关、超时与 API 地址。
安装前请注意
拥有 DNS 权限的助手可能让网站或邮箱中断,购买类工具会花钱;除非设置 LWS_ENABLE_PURCHASES,否则购买工具不会出现,LWS_READ_ONLY 会移除所有修改类工具。API 密钥属于机密,仅发送给 LWS API。名称服务器变更、转移与购买在后台处理。社区项目,与 LWS 无隶属关系。

安装

在 SourceWeft 中

  1. 打开 控制台中的 LWS,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

lws-mcp

[CI] [License: MIT] [PyPI] [Python 3.10+]

English · Français

An MCP server for the LWS Client API. Manage your domains, DNS zones, hosting and account from Claude, Cursor or any MCP client:

"Add the CNAME records Stripe gave me to example.fr, then tell me when they are live."

It covers the whole LWS Client API (29 endpoints), plus a propagation check that compares your LWS zone, its nameservers and three public resolvers.

Community project, not affiliated with or endorsed by LWS.

Tools

AreaTools
DNSget_dns_zone · add_dns_record · update_dns_record · delete_dns_record · check_dns_propagation
Domainsget_domain · check_domain_availability · list_tlds · update_nameservers · set_transfer_protection · request_transfer_authcode · create_domain_redirect · delete_domain_redirect
Hostinglist_hostings · get_hosting · list_hosting_prices · get_renewal_prices · set_auto_renew · buy_hosting¹ · renew_hosting¹
Accountget_account_balance · get_purchase_history · list_contacts · get_contact · create_contact · update_contact · add_test_credit_to_contact² · add_test_credit_to_account²
Requestslist_requests · list_pending_requests

¹ Paid: off unless LWS_ENABLE_PURCHASES=true. ² Only in test mode.

DNS record names can be written in full (_dmarc.example.fr): they are shortened to what the LWS zone expects (_dmarc, @).

Safety

An assistant with access to your DNS can take a site or a mailbox down, and one with access to purchases can spend money. So:

  • Purchases are off by default. buy_hosting and renew_hosting only exist when LWS_ENABLE_PURCHASES=true.
  • Read-only mode. LWS_READ_ONLY=true removes every tool that changes something.
  • Hints for your client. Every tool declares whether it reads, writes or destroys (tool annotations), so clients can ask before running it.
  • Test environment. LWS_TEST_MODE=true sends every request to the LWS sandbox.
  • Your key stays local. It goes only to api.lws.net, and is never logged or returned to the model.

Requirements

  • An LWS account and its API key: LWS Panel → your account number (LWS-XXXXXX, top right) → Api LWS → Clé API en mode PRODUCTION → voir. LWS guide.
  • The public IP address of the machine running the server, allowed on the same Api LWS page. Otherwise every call fails with bad source <your IP>.
  • uv (it fetches Python and the server for you).

Installation

Every client runs the same command, uvx lws-mcp, with LWS_LOGIN and LWS_API_KEY in its environment (see Configuration for the optional settings).

[Install in Cursor] [Install in VS Code]

The buttons leave LWS_LOGIN and LWS_API_KEY empty: fill them in after installing.

Claude Code
bash
claude mcp add lws \  -e LWS_LOGIN=123456 \  -e LWS_API_KEY=your-api-key \  -- uvx lws-mcp
Codex (CLI, IDE extension and app)
bash
codex mcp add lws \  --env LWS_LOGIN=123456 \  --env LWS_API_KEY=your-api-key \  -- uvx lws-mcp

Or in ~/.codex/config.toml:

toml
[mcp_servers.lws]command = "uvx"args = ["lws-mcp"]env = { LWS_LOGIN = "123456", LWS_API_KEY = "your-api-key" }
Cursor

Use the button above, or add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):

json
{  "mcpServers": {    "lws": {      "command": "uvx",      "args": [        "lws-mcp"      ],      "env": {        "LWS_LOGIN": "123456",        "LWS_API_KEY": "your-api-key"      }    }  }}
VS Code (GitHub Copilot)
bash
code --add-mcp '{"name":"lws","command":"uvx","args":["lws-mcp"],"env":{"LWS_LOGIN":"123456","LWS_API_KEY":"your-api-key"}}'

Or in .vscode/mcp.json:

json
{  "servers": {    "lws": {      "type": "stdio",      "command": "uvx",      "args": [        "lws-mcp"      ],      "env": {        "LWS_LOGIN": "123456",        "LWS_API_KEY": "your-api-key"      }    }  }}
Claude Desktop · Windsurf · Gemini CLI · others

Add this block to the client's MCP file:

ClientFile
Claude DesktopSettings → Developer → Edit Config (claude_desktop_config.json)
Windsurf~/.codeium/windsurf/mcp_config.json
Gemini CLI~/.gemini/settings.json
Cline, Roo Code, Zed…their MCP settings, same format
json
{  "mcpServers": {    "lws": {      "command": "uvx",      "args": [        "lws-mcp"      ],      "env": {        "LWS_LOGIN": "123456",        "LWS_API_KEY": "your-api-key"      }    }  }}

Configuration

VariableDefaultDescription
LWS_LOGINrequiredYour LWS account ID (the digits of LWS-XXXXXX).
LWS_API_KEYrequiredProduction API key.
LWS_TEST_API_KEYTest key, used instead of LWS_API_KEY in test mode.
LWS_TEST_MODEfalseSend requests to the LWS test environment.
LWS_READ_ONLYfalseOnly expose tools that read.
LWS_ENABLE_PURCHASESfalseExpose buy_hosting and renew_hosting.
LWS_TIMEOUT30Request timeout, in seconds.
LWS_BASE_URLhttps://api.lws.net/v1API base URL.

Good to know

  • Deferred actions. Nameserver changes, transfer protection, auth codes, purchases and renewals are processed in the background. Follow them with list_pending_requests.
  • Propagation. A DNS change can take from minutes to a few hours to be seen everywhere: each resolver keeps the old answer until its TTL runs out. check_dns_propagation compares what is saved in the LWS zone, what the domain's nameservers answer (no cache) and what Cloudflare, Google and Quad9 answer, then says how long a stale answer can last. Some networks block direct DNS queries to nameservers; the resolvers are asked over HTTPS, so that part always works.
  • Record ids change. LWS replaces a record under a new id when it is updated. add_dns_record and update_dns_record return the current id.
  • Rate limit. LWS refuses bursts of requests (about fifteen in a row) with Invalid input (rate limit): wait a minute and retry.
  • Allowed TTLs. 900, 1800, 3600, 7200, 21600, 43200 or 86400 seconds.

Development

bash
git clone https://github.com/NKSTUD/lws-mcp && cd lws-mcpuv syncuv run pytestuv run ruff check . && uv run ruff format --check .

Try it against your account with the MCP Inspector, credentials in a local .env (see .env.example):

bash
npx @modelcontextprotocol/inspector uv run --env-file .env lws-mcp

See CONTRIBUTING.md to add a tool or fix a bug.

License

MIT

来源:README.md,提交 522d902

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.2.1最新Oct 15, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分