网络许可MCP服务器
   ](https://hub.docker.com/r/labs64/netlicensing-mcp)   
官方 Labs64 网络许可 MCP服务器 --一个自然语言界面,让人工智能代理通过对话命令管理软件许可证、客户和权限。
适用于Claude Desktop、GitHub Copilot(代理模式)、VS Code、JetBrains/IntelliJ IDEA和任何其他MCP兼容客户端。
______________________________________________________________________
为什么要用这个?
- 自然语言许可 -请您的人工智能助手在不接触NetLicensing UI或编写API调用的情况下创建产品、颁发许可证、验证授权和生成商店URL。
- API全面覆盖 --涵盖整个NetLicensing的各种工具 REST API:产品、模块、模板、被许可人、许可证、捆绑包、代币、交易和支付方式。
- 内置审计提示 --五个即用型提示模板,用于帐户审核、到期扫描、异常检测和清理工作流。
- 默认安全 --所有删除操作都会暴露一个
force_cascade期权;没有什么是悄无声息地倾泻而下的。 - 零依赖快速启动 --跑步
uvx或者没有本地Python安装的Docker。
______________________________________________________________________
你能问什么?
连接后,您可以用简单的语言与NetLicensing交谈:
- *“列出我的NetLicensing帐户中的所有产品。”*
- *“为创建新的许可证持有人
customer@example.com产品PTEST。"* - *“验证许可证持有人L001的许可证--是否通过?”*
- *“为许可证持有人L001生成一个店铺URL,以便他们可以自助续订。”*
- *“哪些许可证将在未来30天内到期?”*
- *“查找任何没有活动许可证的被许可人——标记他们进行清理。”*
- *“将所有许可证从许可证持有人L001转移到L002。”*
- *“创建作用域为只读访问的API密钥令牌。”*
- *“显示上个月的所有交易。”*
______________________________________________________________________
特性
| 区域 | 工具 |
|---|---|
| 产品 | 列表、获取、创建、更新、删除 |
| 产品模块 | 列表、获取、创建、更新、删除 |
| 许可证模板 | 列表、获取、创建、更新、删除 |
| 被许可人 | 列表、获取、创建、更新、删除、验证、传输 |
| 许可证 | 列表、获取、创建、更新(激活/停用)、删除 |
| 捆绑包 | 列表、获取、创建、更新、删除、获取 |
| 代币 | 列出,获取,创建商店URL,创建API令牌,撤销 |
| 交易 | 列表、获取、创建、更新 |
| 支付方式 | 列表、获取、更新 |
| 公用事业 | 列出许可模式,列出许可类型 |
| 审计提示 | 全账户、单客户、到期扫描、清理、异常检测 |
| 删除安全 | force_cascade 所有删除工具上的选项 |
______________________________________________________________________
快速开始
选项A-uvx(无需安装)
NETLICENSING_API_KEY=your_key uvx netlicensing-mcp选项B-pip
pip install netlicensing-mcp
NETLICENSING_API_KEY=your_key netlicensing-mcp选项C——Docker
stdio(默认)--用于克劳德桌面/VS代码
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latestHTTP模式——用于远程/共享部署
docker run -d -p 8000:8000 \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latest http详细日志记录(任何模式)
# CLI flag
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
ghcr.io/labs64/netlicensing-mcp:latest -v
# Or via env var
docker run -i --rm \
-e NETLICENSING_API_KEY=your_key \
-e MCP_VERBOSE=true \
ghcr.io/labs64/netlicensing-mcp:latest没有API密钥? 离开 NETLICENSING_API_KEY 空,可运行NetLicensing的内置 带有演示凭据的沙盒——无需帐户。______________________________________________________________________
配置
环境变量
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
NETLICENSING_API_KEY | 没有 | *(演示模式)* | NetLicensing API密钥。留空以使用沙盒演示凭据。 |
NETLICENSING_BASE_URL | 没有 | https://go.netlicensing.io/core/v2/rest | 覆盖NetLicensing REST API基本URL(例如,用于预部署)。 |
MCP_TRANSPORT | 没有 | stdio | 运输方式: stdio (默认)或 http。也可以作为CLI参数传递。 |
MCP_HOST | 没有 | 127.0.0.1 | 绑定HTTP服务器的主机地址(仅限HTTP模式)。 |
MCP_PORT | 没有 | 8000 | 绑定HTTP服务器的端口(仅限HTTP模式)。 |
MCP_VERBOSE | 没有 | false | 启用详细调试日志记录(true, 1,或 yes).记录原始API请求/响应。也可以通过以下方式设置 -v CLI标志。 |
关于HTTP部署的说明(例如AWS): 在网络上以HTTP模式运行时,可以跳过设置NETLICENSING_API_KEY在服务器上。如果连接客户端通过以下方式提供密钥,MCP服务器将自动提取每个请求的密钥X-NetLicensing-API-KeyHTTP报头,Authorization: Bearer标题,或?apikey=查询参数。
______________________________________________________________________
克劳德桌面
编辑 ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) 或 %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"netlicensing": {
"command": "uvx",
"args": ["netlicensing-mcp"],
"env": {
"NETLICENSING_API_KEY": "your_key_here"
}
}
}
}或者使用官方Docker镜像:
stdio(默认)--用于克劳德桌面/VS代码
{
"mcpServers": {
"netlicensing": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "NETLICENSING_API_KEY=your_key_here",
"ghcr.io/labs64/netlicensing-mcp:latest"
]
}
}
}HTTP模式——用于远程/共享部署
{
"mcpServers": {
"netlicensing": {
"command": "docker",
"args": [
"run", "-d",
"-p", "8000:8000",
"-e", "NETLICENSING_API_KEY=your_key_here",
"ghcr.io/labs64/netlicensing-mcp:latest",
"http"
]
}
}
}VS代码/GitHub副本
该回购交易 .vscode/mcp.json 自动配置Copilot代理模式。 集 NETLICENSING_API_KEY 在您的shell环境中或 .env 文件,然后单击 开始 在上面显示的编辑器横幅中 mcp.json.
JetBrains/IntelliJ IDEA
在Copilot聊天→ 代理模式→ 工具图标→ 添加更多工具… --粘贴 与上述Claude Desktop部分所示的JSON块相同。
______________________________________________________________________
审核提示模板
Copilot Agent和Claude Desktop中可访问的五个内置提示:
| 提示 | 目的 |
|---|---|
audit_full | 产品的端到端账户审计 |
audit_customer | 深入了解单一持牌人 |
audit_expiry | 查找N天内到期的许可证并生成续订URL |
audit_cleanup | 识别非活动/孤立许可证以进行清理 |
audit_anomaly | 检测所有客户的异常使用模式 |
______________________________________________________________________
故障排除
检查MCP服务器日志
# macOS / Claude Desktop
tail -f ~/Library/Logs/Claude/mcp-server-netlicensing.log
# Windows
Get-Content "$env:APPDATA\Claude\Logs\mcp-server-netlicensing.log" -Wait运行MCP检查器 (浏览器用户界面位于 http://localhost:5173)
mcp dev src/netlicensing_mcp/server.py常见问题
| 症状 | 可能原因 | 修复 |
|---|---|---|
401 Unauthorized responses | API密钥无效或过期 | 在重新生成密钥 ui.netlicensing.io |
| 服务器未在Claude中列出 | 配置文件JSON语法错误 | 使用验证 python -m json.tool claude_desktop_config.json |
uvx: command not found | uv 未安装 | pip install uv 或查看 docs.astral.sh/uv |
| 演示数据而非实时数据 | NETLICENSING_API_KEY not set | 确保在启动客户端的shell中导出env-var |
______________________________________________________________________
发展
git clone https://github.com/Labs64/NetLicensing-MCP
cd NetLicensing-MCP
# Create a virtual environment
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
# ... and install dependencies
pip install -e ".[dev]"
pip install hatch hatch-vcs
# Add your API key to a .env file (or export it in your shell)
cp .env.example .env
# Run the MCP Inspector
mcp dev src/netlicensing_mcp/server.py
# Run tests
pytest tests/ -v
# Clean previous builds
rm -rf dist/
# Build a wheel for local testing
hatch build --target wheel
# Build the Docker image locally
docker build -t ghcr.io/labs64/netlicensing-mcp:latest .HTTP模式(用于远程/共享部署)
python -m netlicensing_mcp.server http
# Server listens on MCP_HOST:MCP_PORT (default: 127.0.0.1:8000)使用 ngrok 或反向代理,将HTTP端点暴露给远程MCP客户端:
ngrok http 8000
# Then point your client at the generated HTTPS URL云部署(AWS)
将MCP服务器部署到AWS 公共HTTPS端点 远程AI代理可以连接到:
| 选项 | 最适合 | 缩放到零 | 设置 |
|---|---|---|---|
| ECS Fargate | 生产,流量一致 | 否 | ALB+Fargate |
| 应用程序运行程序 | 低流量,发展 | ✅ 是 | 自动配置HTTPS |
使用辅助脚本快速部署
cd deploy/aws
# Option A — ECS Fargate
# Deploy (with optional HTTPS via ACM certificate)
./deploy.sh fargate \
--certificate-arn arn:aws:acm:us-east-1:123456789:certificate/your-cert-id
# Option B — App Runner (mirror image to ECR first)
./deploy.sh mirror --ecr-repo 123456789.dkr.ecr.us-east-1.amazonaws.com/netlicensing-mcp
./deploy.sh apprunner \
--ecr-image 123456789.dkr.ecr.us-east-1.amazonaws.com/netlicensing-mcp:latest将MCP客户端连接到公共URL
要使用共享的远程部署,请不要烘焙 NETLICENSING_API_KEY 进入远程服务器设置。相反,使用查询参数或HTTP头从客户端传递API密钥。
例如,在MCP客户端中使用带有查询参数的URL配置:
{
"mcpServers": {
"netlicensing": {
"url": "https://your-endpoint.us-east-1.elb.amazonaws.com/mcp?apikey=YOUR_API_KEY"
}
}
}如果您使用支持直接传递HTTP标头的客户端或工具,您也可以通过以下方式提供密钥 X-NetLicensing-API-Key: YOUR_API_KEY 或 Authorization: Bearer YOUR_API_KEY.
📖 完整说明、架构图和成本估算: deploy/aws/README.md
______________________________________________________________________
贡献
欢迎投稿!请在上打开问题或拉取请求 .
对于重大更改,请先打开一个问题来讨论方法。
______________________________________________________________________
许可证
Apache 2.0——请参阅 许可证
______________________________________________________________________

