NetLicensing-MCP is the official NetLicensing MCP server released by Labs64, positioned as a natural language interface that enables agent-capable applications to manage the complete software licensing lifecycle in Labs64 NetLicensing without writing any API calls. It can be used with Claude Desktop, GitHub Copilot (Agent mode), VS Code, JetBrains / IntelliJ IDEA, and any other MCP-compatible client.
Key Capabilities
Natural language license management: Allows AI assistants to create products, issue licenses, verify entitlements, and generate shop URLs without operating the NetLicensing interface or writing API calls.
Complete API coverage: Provides multiple tools spanning the entire NetLicensing REST API, covering products, modules, templates, licensees, licenses, bundles, tokens, transactions, and payment methods.
Built-in audit prompts: Provides five ready-to-run prompt templates for account auditing, expiration scanning, anomaly detection, and cleanup workflows.
Secure by default: All delete operations expose a force_cascade option and do not silently cascade.
Zero-dependency quick start: Can be run via uvx or Docker, with no local Python installation required.
Example Questions You Can Ask
After connecting, you can interact with NetLicensing in natural language, for example:
- "List all products in my NetLicensing account."
- "Create a new licensee for customer@example.com under product PTEST."
- "Verify the license for licensee L001—does it pass?"
- "Generate a shop URL for licensee L001 so they can self-renew."
- "Which licenses will expire in the next 30 days?"
- "Find licensees without any valid licenses—flag them for cleanup."
- "Transfer all licenses from licensee L001 to L002."
- "Create an API key token with read-only access scope."
- "Show all transactions from last month."
Secure Default Settings
The server is designed according to secure-by-default principles:
- No silent credential fallback: If NETLICENSING is not set_API_KEY and NETLICENSING_ALLOW_DEMO is not explicitly enabled, the server will refuse to start (stdio mode) or return 503 (HTTP mode), rather than silently using demo credentials.
- Redaction layer: every tool response passes through a redaction filter. Sensitive fields (apiKey, licenseeSecret, nodeSecret, password, secret) are masked into partial forms (for example s3c****ecret). This field set can be extended via MCP_REDACT_FIELDS.
- One-time credentials: create_api_token and create_shop_token mark "shown_once": true in the response, letting the client know that the credential will not be shown in full again. Subsequent get_token / list_tokens calls return masked values.
- Deletion confirmation: all destructive operations require a two-step confirmation token flow; there is no silent cascade.
Usage
Can be run via uvx (no installation required) or Docker. The specific installation commands, configuration JSON, and image names are not fully provided in the source material.
Environment Variables
NETLICENSING_API_KEY and demo mode: if neither NETLICENSING_API_KEY is set nor NETLICENSING_ALLOW_DEMO=true is set, the server will refuse to start (stdio mode) or return 503 Service Unavailable for all tool calls (HTTP mode). This prevents accidental use of demo credentials in production.
Without an API key: you can set NETLICENSING_ALLOW_DEMO=true to run using the NetLicensing built-in sandbox and demo credentials, with no account required. The server will mark "demo_mode": true in every response and periodically emit warnings, so it is always clear that a real account is not currently being used.
HTTP deployment considerations (for example AWS): when running in HTTP mode on a network, you can skip setting NETLICENSING_API_KEY on the server. If the connecting client provides the key via the X-NetLicensing-API-Key HTTP header, Authorization: Bearer <key> header, or ?apikey=<key> query parameter, the MCP server will automatically extract that key per request.
Client Configuration
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows); the official Docker image can also be used. The specific JSON configuration block is not provided in the source material.
VS Code / GitHub Copilot
The repository includes .vscode/mcp.json, which can automatically configure Copilot Agent mode. Set NETLICENSING_API_KEY in the shell environment or in a .env file, then click Start in the editor banner that appears above mcp.json.
JetBrains / IntelliJ IDEA
In Copilot Chat → Agent mode → tools icon → Add More Tools…, paste the same JSON block as in the Claude Desktop section above.
Audit Prompt Templates
Five built-in prompts are provided, accessible in Copilot Agent and Claude Desktop. The specific prompt contents are not provided in the source material.
Troubleshooting
- Check the MCP server logs
- Run MCP Inspector (browser UI at http://localhost:5173)
HTTP Mode (for remote / shared deployments)
Use ngrok or a reverse proxy to expose the HTTP endpoint to remote MCP clients. The specific commands are not provided in the source material.
Cloud Deployment (AWS)
The MCP server can be deployed to AWS to obtain a public HTTPS endpoint that remote AI agents can connect to. To use a shared remote deployment, do not hardcode NETLICENSING_API_KEY into the remote server settings; instead, pass the API key from the client side via query parameters or HTTP headers. For example, use a URL configuration with query parameters in the MCP client; if the client or tool supports passing HTTP headers directly, the key can also be provided via X-NetLicensing-API-Key: YOUR_API_KEY or Authorization: Bearer YOUR_API_KEY. For complete instructions, architecture diagrams, and cost estimates, see deploy/aws/README.md.
Contributing and License
Contributions are welcome; you can submit an issue or pull request on GitHub. For major changes, please open an issue first to discuss the approach. Licensed under Apache 2.0; see LICENSE for details.