Tuxcare Eportal Mcp — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Tuxcare Eportal Mcp (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Model Context Protocol (MCP) server for integrating with TuxCare ePortal API. This server provides MCP tools for managing servers, feeds, registration keys, patchsets, and users through the ePortal API.
# Install globally from npm
npm install -g tuxcare-eportal-mcp
# Verify installation
tuxcare-eportal-mcp --help# Run directly with npx
npx tuxcare-eportal-mcp --help
# Use in MCP configuration with npx
npx tuxcare-eportal-mcp --url https://your-eportal.com --auth-type basic --username admin --password secret# Install directly from GitHub
npm install -g github:Revmagi/tuxcare-eportal-mcp
# Or clone and install locally
git clone https://github.com/Revmagi/tuxcare-eportal-mcp.git
cd tuxcare-eportal-mcp
npm install
npm run build
npm linkYou can configure the MCP server in three ways:
Create a configuration file in JSON format:
Basic Authentication Example (`config.json`):
{
"eportal_url": "https://your-eportal.com",
"auth": {
"type": "basic",
"username": "admin",
"password": "your-password"
}
}API Key Authentication Example (`config.json`):
{
"eportal_url": "https://your-eportal.com",
"auth": {
"type": "api_key",
"api_key": "your-api-key",
"header_name": "X-Api-Key"
}
}#### Configuration File Locations
The server looks for configuration files in the following order:
--config /path/to/config.json./config.json~/.tuxcare-eportal-mcp/config.json/etc/tuxcare-eportal-mcp/config.jsonYou can pass all configuration via command line arguments:
# Basic authentication
tuxcare-eportal-mcp \
--url https://your-eportal.com \
--auth-type basic \
--username admin \
--password your-password
# API key authentication
tuxcare-eportal-mcp \
--url https://your-eportal.com \
--auth-type api_key \
--api-key your-api-key \
--header-name X-Api-KeySet environment variables for secure configuration:
export TUXCARE_EPORTAL_URL="https://your-eportal.com"
export TUXCARE_AUTH_TYPE="basic"
export TUXCARE_USERNAME="admin"
export TUXCARE_PASSWORD="your-password"
# Or for API key
export TUXCARE_AUTH_TYPE="api_key"
export TUXCARE_API_KEY="your-api-key"
export TUXCARE_HEADER_NAME="X-Api-Key"#### Method 1: Using Configuration File
{
"eportal_url": "https://your-eportal.com",
"auth": {
"type": "basic",
"username": "admin",
"password": "your-password"
}
} {
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": ["tuxcare-eportal-mcp", "--config", "./config.json"]
}
}
}#### Method 2: Using Command Line Arguments (No Config File)
Basic Authentication:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": [
"[email protected]",
"--url", "https://your-eportal.com",
"--auth-type", "basic",
"--username", "admin",
"--password", "your-password"
]
}
}
}API Key Authentication:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": [
"[email protected]",
"--url", "https://your-eportal.com",
"--auth-type", "api_key",
"--api-key", "your-api-key"
]
}
}
}API Key with Custom Header:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": [
"[email protected]",
"--url", "https://your-eportal.com",
"--auth-type", "api_key",
"--api-key", "your-api-key",
"--header-name", "X-API-Key"
]
}
}
}#### Method 3: Using Environment Variables (Most Secure)
Basic Authentication:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": ["[email protected]"],
"env": {
"TUXCARE_EPORTAL_URL": "https://your-eportal.com",
"TUXCARE_AUTH_TYPE": "basic",
"TUXCARE_USERNAME": "admin",
"TUXCARE_PASSWORD": "your-password"
}
}
}
}API Key Authentication:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": ["[email protected]"],
"env": {
"TUXCARE_EPORTAL_URL": "https://your-eportal.com",
"TUXCARE_AUTH_TYPE": "api_key",
"TUXCARE_API_KEY": "your-api-key"
}
}
}
}API Key with Custom Header:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": ["[email protected]"],
"env": {
"TUXCARE_EPORTAL_URL": "https://your-eportal.com",
"TUXCARE_AUTH_TYPE": "api_key",
"TUXCARE_API_KEY": "your-api-key",
"TUXCARE_HEADER_NAME": "X-API-Key"
}
}
}
}Add to your continue.json:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "npx",
"args": ["tuxcare-eportal-mcp", "--config", "./config.json"]
}
}
}Add to your MCP settings:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "tuxcare-eportal-mcp",
"args": [
"--url", "https://your-eportal.com",
"--auth-type", "basic",
"--username", "admin",
"--password", "your-password"
]
}
}
}For any MCP client, use this format:
{
"mcpServers": {
"tuxcare-eportal": {
"command": "tuxcare-eportal-mcp",
"args": ["--config", "/path/to/config.json"]
}
}
}Generate a configuration file interactively:
# Create config file with prompts
npx tuxcare-eportal-mcp --setup
# Create config file with basic auth
npx tuxcare-eportal-mcp --setup --url https://your-eportal.com --auth-type basic
# Create config file with API key
npx tuxcare-eportal-mcp --setup --url https://your-eportal.com --auth-type api_keyVerify your configuration works:
# Test with config file
tuxcare-eportal-mcp --config ./config.json --test
# Test with command line args
tuxcare-eportal-mcp --url https://your-eportal.com --auth-type basic --username admin --password secret --testlist_servers: List servers with filtering optionsregister_host: Register a new hostunregister_host: Unregister a host by hostname, IP, or server IDbulk_unregister_hosts: Bulk unregister inactive hostsset_server_tags: Set tags for a serverlist_feeds: List all feedscreate_feed: Create or modify a feeddelete_feed: Delete a feedlist_keys: List registration keyscreate_key: Create or modify a registration keydelete_key: Delete a registration keylist_patchsets: List patchsets for a feed and productmanage_patchsets: Enable, disable, or manage patchset deploymentslist_users: List all ePortal users// List all servers
await callTool("list_servers", {});
// List servers with filtering
await callTool("list_servers", {
hostname: "web%",
tag: "env:production",
limit: 50
});
// Get server count only
await callTool("list_servers", {
only_count: true
});await callTool("register_host", {
key: "production-key",
hostname: "web-server-01"
});// Enable a patchset
await callTool("manage_patchsets", {
patchset: "K20240101_01",
feed: ["main", "staging"],
action: "enable",
product: "kernel"
});
// Enable all patchsets up to a specific one
await callTool("manage_patchsets", {
patchset: "K20240101_01",
feed: ["main"],
action: "enable-upto",
product: "kernel"
});await callTool("set_server_tags", {
server_id: "abc123",
tags: "env:production;team:platform;ubuntu"
});{
"auth": {
"type": "basic",
"username": "your-username",
"password": "your-password"
}
}{
"auth": {
"type": "api_key",
"api_key": "your-api-key",
"header_name": "X-Api-Key"
}
}chmod 600 config.json#### Connection Errors
# Test connection
curl -v https://your-eportal.com/api/v1/servers
# Check DNS resolution
nslookup your-eportal.com#### Authentication Failures
# Test basic auth
curl -u username:password https://your-eportal.com/api/v1/servers
# Test API key
curl -H "X-Api-Key: your-key" https://your-eportal.com/api/v1/servers#### Configuration Issues
# Validate configuration file
npx tuxcare-eportal-mcp --config ./config.json --validate
# Show current configuration
npx tuxcare-eportal-mcp --config ./config.json --show-configEnable debug logging:
# Debug mode
DEBUG=tuxcare:* tuxcare-eportal-mcp --config ./config.json
# Verbose output
tuxcare-eportal-mcp --config ./config.json --verboseThe server provides comprehensive error handling:
git clone https://github.com/Revmagi/tuxcare-eportal-mcp.git
cd tuxcare-eportal-mcp
npm installnpm run buildnpm run devnpm testnpm run lint
npm run lint:fixMIT License - see LICENSE file for details.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.