Skip to main content
Glama
portel-dev

NCP - Natural Context Provider

by portel-dev
cli-tool-catalog.ts26.4 kB
/** * Curated Catalog of Useful CLI Tools * * Organized by category with descriptions and capabilities. * When CLI discovery runs, it checks which of these tools exist on the system. */ export interface ToolDefinition { name: string; description: string; category: string; capabilities: string[]; platforms?: ('linux' | 'darwin' | 'win32')[]; // Supported platforms (undefined = all) packageManagers?: { brew?: string; apt?: string; npm?: string; pip?: string; cargo?: string; choco?: string; // Windows Chocolatey scoop?: string; // Windows Scoop winget?: string; // Windows Package Manager }; } /** * Comprehensive catalog of useful CLI tools */ export const CLI_TOOL_CATALOG: ToolDefinition[] = [ // ===== Media & Graphics ===== { name: 'ffmpeg', description: 'Convert, record, and stream audio and video', category: 'media', capabilities: ['video', 'audio', 'convert', 'encode', 'stream', 'media'], packageManagers: { brew: 'ffmpeg', apt: 'ffmpeg' } }, { name: 'imagemagick', description: 'Create, edit, compose, or convert images', category: 'media', capabilities: ['image', 'convert', 'resize', 'edit', 'graphics'], packageManagers: { brew: 'imagemagick', apt: 'imagemagick' } }, { name: 'convert', description: 'ImageMagick convert utility', category: 'media', capabilities: ['image', 'convert', 'resize', 'format'], packageManagers: { brew: 'imagemagick', apt: 'imagemagick' } }, { name: 'gifsicle', description: 'Create, edit, and optimize GIF images', category: 'media', capabilities: ['gif', 'image', 'optimize', 'animation'], packageManagers: { brew: 'gifsicle', apt: 'gifsicle' } }, // ===== Version Control ===== { name: 'git', description: 'Distributed version control system', category: 'vcs', capabilities: ['git', 'version', 'control', 'repository', 'commit'], packageManagers: { brew: 'git', apt: 'git' } }, { name: 'gh', description: 'GitHub CLI tool', category: 'vcs', capabilities: ['github', 'git', 'pr', 'issue', 'repo'], packageManagers: { brew: 'gh', apt: 'gh' } }, { name: 'svn', description: 'Subversion version control', category: 'vcs', capabilities: ['svn', 'version', 'control', 'repository'], packageManagers: { brew: 'subversion', apt: 'subversion' } }, { name: 'hg', description: 'Mercurial version control', category: 'vcs', capabilities: ['mercurial', 'version', 'control', 'repository'], packageManagers: { brew: 'mercurial', apt: 'mercurial' } }, // ===== Data & Text Processing ===== { name: 'jq', description: 'Command-line JSON processor', category: 'data', capabilities: ['json', 'parse', 'query', 'filter', 'transform'], packageManagers: { brew: 'jq', apt: 'jq' } }, { name: 'yq', description: 'Command-line YAML/XML/JSON processor', category: 'data', capabilities: ['yaml', 'xml', 'json', 'parse', 'query'], packageManagers: { brew: 'yq', apt: 'yq', pip: 'yq' } }, { name: 'xmllint', description: 'XML parser and validator', category: 'data', capabilities: ['xml', 'parse', 'validate', 'format'], packageManagers: { brew: 'libxml2', apt: 'libxml2-utils' } }, { name: 'pandoc', description: 'Universal document converter', category: 'data', capabilities: ['convert', 'markdown', 'html', 'pdf', 'document'], packageManagers: { brew: 'pandoc', apt: 'pandoc' } }, { name: 'csvkit', description: 'Suite of utilities for working with CSV', category: 'data', capabilities: ['csv', 'parse', 'convert', 'analyze'], packageManagers: { pip: 'csvkit' } }, // ===== Network & HTTP ===== { name: 'curl', description: 'Transfer data with URLs', category: 'network', capabilities: ['http', 'download', 'upload', 'api', 'request'], packageManagers: { brew: 'curl', apt: 'curl' } }, { name: 'wget', description: 'Network downloader', category: 'network', capabilities: ['download', 'http', 'ftp', 'fetch'], packageManagers: { brew: 'wget', apt: 'wget' } }, { name: 'httpie', description: 'User-friendly HTTP client', category: 'network', capabilities: ['http', 'api', 'request', 'rest'], packageManagers: { brew: 'httpie', apt: 'httpie', pip: 'httpie' } }, { name: 'nmap', description: 'Network exploration and security scanner', category: 'network', capabilities: ['network', 'scan', 'security', 'port'], packageManagers: { brew: 'nmap', apt: 'nmap' } }, { name: 'netcat', description: 'Read and write data across networks', category: 'network', capabilities: ['network', 'tcp', 'udp', 'port'], packageManagers: { brew: 'netcat', apt: 'netcat' } }, // ===== Development Tools ===== { name: 'docker', description: 'Container platform', category: 'development', capabilities: ['container', 'docker', 'build', 'deploy'], packageManagers: { brew: 'docker' } }, { name: 'kubectl', description: 'Kubernetes command-line tool', category: 'development', capabilities: ['kubernetes', 'k8s', 'container', 'deploy'], packageManagers: { brew: 'kubectl' } }, { name: 'npm', description: 'Node.js package manager', category: 'development', capabilities: ['nodejs', 'javascript', 'package', 'install'], packageManagers: { brew: 'node' } }, { name: 'yarn', description: 'Fast JavaScript package manager', category: 'development', capabilities: ['nodejs', 'javascript', 'package', 'install'], packageManagers: { brew: 'yarn', npm: 'yarn' } }, { name: 'pnpm', description: 'Fast, disk space efficient package manager', category: 'development', capabilities: ['nodejs', 'javascript', 'package', 'install'], packageManagers: { brew: 'pnpm', npm: 'pnpm' } }, { name: 'cargo', description: 'Rust package manager', category: 'development', capabilities: ['rust', 'package', 'build', 'compile'], packageManagers: { brew: 'rust' } }, { name: 'go', description: 'Go programming language compiler', category: 'development', capabilities: ['golang', 'compile', 'build', 'run'], packageManagers: { brew: 'go', apt: 'golang' } }, { name: 'python', description: 'Python interpreter', category: 'development', capabilities: ['python', 'script', 'run', 'execute'], packageManagers: { brew: 'python', apt: 'python3' } }, { name: 'pip', description: 'Python package installer', category: 'development', capabilities: ['python', 'package', 'install'], packageManagers: { brew: 'python', apt: 'python3-pip' } }, { name: 'node', description: 'Node.js JavaScript runtime', category: 'development', capabilities: ['nodejs', 'javascript', 'runtime', 'execute'], packageManagers: { brew: 'node', apt: 'nodejs' } }, { name: 'make', description: 'Build automation tool', category: 'development', capabilities: ['build', 'compile', 'make', 'automation'], packageManagers: { brew: 'make', apt: 'build-essential' } }, // ===== Archives & Compression ===== { name: 'tar', description: 'Archive utility', category: 'archive', capabilities: ['archive', 'compress', 'extract', 'tar'], packageManagers: { brew: 'gnu-tar', apt: 'tar' } }, { name: 'zip', description: 'Package and compress files', category: 'archive', capabilities: ['zip', 'compress', 'archive'], packageManagers: { brew: 'zip', apt: 'zip' } }, { name: 'unzip', description: 'Extract compressed files', category: 'archive', capabilities: ['unzip', 'extract', 'decompress'], packageManagers: { brew: 'unzip', apt: 'unzip' } }, { name: '7z', description: '7-Zip file archiver', category: 'archive', capabilities: ['archive', 'compress', 'extract', '7z'], packageManagers: { brew: 'p7zip', apt: 'p7zip-full' } }, { name: 'gzip', description: 'GNU zip compression', category: 'archive', capabilities: ['compress', 'gzip', 'decompress'], packageManagers: { brew: 'gzip', apt: 'gzip' } }, // ===== Cloud & Infrastructure ===== { name: 'aws', description: 'AWS command-line interface', category: 'cloud', capabilities: ['aws', 'cloud', 'amazon', 's3', 'ec2'], packageManagers: { brew: 'awscli', pip: 'awscli' } }, { name: 'gcloud', description: 'Google Cloud SDK', category: 'cloud', capabilities: ['gcp', 'google', 'cloud'], packageManagers: { brew: 'google-cloud-sdk' } }, { name: 'az', description: 'Azure command-line interface', category: 'cloud', capabilities: ['azure', 'microsoft', 'cloud'], packageManagers: { brew: 'azure-cli' } }, { name: 'terraform', description: 'Infrastructure as code tool', category: 'cloud', capabilities: ['infrastructure', 'terraform', 'cloud', 'provision'], packageManagers: { brew: 'terraform' } }, { name: 'ansible', description: 'IT automation tool', category: 'cloud', capabilities: ['automation', 'deploy', 'configuration'], packageManagers: { brew: 'ansible', pip: 'ansible' } }, // ===== Database ===== { name: 'mysql', description: 'MySQL client', category: 'database', capabilities: ['mysql', 'database', 'sql', 'query'], packageManagers: { brew: 'mysql-client', apt: 'mysql-client' } }, { name: 'psql', description: 'PostgreSQL client', category: 'database', capabilities: ['postgresql', 'database', 'sql', 'query'], packageManagers: { brew: 'postgresql', apt: 'postgresql-client' } }, { name: 'redis-cli', description: 'Redis client', category: 'database', capabilities: ['redis', 'cache', 'database'], packageManagers: { brew: 'redis', apt: 'redis-tools' } }, { name: 'mongosh', description: 'MongoDB shell', category: 'database', capabilities: ['mongodb', 'database', 'nosql'], packageManagers: { brew: 'mongosh' } }, // ===== Security & Encryption ===== { name: 'openssl', description: 'SSL/TLS toolkit', category: 'security', capabilities: ['ssl', 'encrypt', 'decrypt', 'certificate'], packageManagers: { brew: 'openssl', apt: 'openssl' } }, { name: 'gpg', description: 'GNU Privacy Guard', category: 'security', capabilities: ['encrypt', 'decrypt', 'sign', 'pgp'], packageManagers: { brew: 'gnupg', apt: 'gnupg' } }, { name: 'ssh-keygen', description: 'Generate SSH authentication keys', category: 'security', capabilities: ['ssh', 'key', 'generate', 'authentication'], packageManagers: { brew: 'openssh', apt: 'openssh-client' } }, // ===== System Utilities ===== { name: 'rsync', description: 'Fast file transfer tool', category: 'utilities', capabilities: ['sync', 'copy', 'backup', 'transfer'], packageManagers: { brew: 'rsync', apt: 'rsync' } }, { name: 'htop', description: 'Interactive process viewer', category: 'utilities', capabilities: ['monitor', 'process', 'system', 'performance'], packageManagers: { brew: 'htop', apt: 'htop' } }, { name: 'watch', description: 'Execute a program periodically', category: 'utilities', capabilities: ['monitor', 'repeat', 'watch'], packageManagers: { brew: 'watch', apt: 'procps' } }, { name: 'tmux', description: 'Terminal multiplexer', category: 'utilities', capabilities: ['terminal', 'session', 'multiplex'], packageManagers: { brew: 'tmux', apt: 'tmux' } }, { name: 'screen', description: 'Terminal multiplexer', category: 'utilities', capabilities: ['terminal', 'session', 'multiplex'], packageManagers: { brew: 'screen', apt: 'screen' } }, // ===== Search & Find ===== { name: 'rg', description: 'Ripgrep - fast search tool', category: 'search', capabilities: ['search', 'grep', 'find', 'text'], packageManagers: { brew: 'ripgrep', apt: 'ripgrep', cargo: 'ripgrep' } }, { name: 'ag', description: 'The Silver Searcher', category: 'search', capabilities: ['search', 'grep', 'find', 'text'], packageManagers: { brew: 'the_silver_searcher', apt: 'silversearcher-ag' } }, { name: 'fd', description: 'Fast alternative to find', category: 'search', capabilities: ['find', 'search', 'file'], packageManagers: { brew: 'fd', apt: 'fd-find', cargo: 'fd-find' } }, { name: 'fzf', description: 'Fuzzy finder', category: 'search', capabilities: ['fuzzy', 'search', 'find', 'filter'], packageManagers: { brew: 'fzf', apt: 'fzf' } }, // ===== Package Managers ===== { name: 'brew', description: 'Homebrew package manager', category: 'package-manager', capabilities: ['install', 'package', 'homebrew', 'macos'], packageManagers: { brew: 'brew' } }, { name: 'apt', description: 'Advanced Package Tool', category: 'package-manager', capabilities: ['install', 'package', 'debian', 'ubuntu'], packageManagers: { apt: 'apt' } }, { name: 'yum', description: 'Yellowdog Updater Modified', category: 'package-manager', capabilities: ['install', 'package', 'redhat', 'centos'], packageManagers: {} }, { name: 'gem', description: 'RubyGems package manager', category: 'package-manager', capabilities: ['ruby', 'package', 'install'], packageManagers: { brew: 'ruby' } }, // ===== System/Built-in Text Processing Tools ===== { name: 'grep', description: 'Search text using patterns', category: 'text-processing', capabilities: ['search', 'filter', 'pattern', 'regex', 'text'], packageManagers: {} // Built-in on Unix systems }, { name: 'egrep', description: 'Extended grep with regex support', category: 'text-processing', capabilities: ['search', 'filter', 'regex', 'text'], packageManagers: {} }, { name: 'sed', description: 'Stream editor for filtering and transforming text', category: 'text-processing', capabilities: ['edit', 'transform', 'replace', 'text', 'stream'], packageManagers: {} }, { name: 'awk', description: 'Pattern scanning and processing language', category: 'text-processing', capabilities: ['parse', 'process', 'text', 'columns', 'data'], packageManagers: {} }, { name: 'cut', description: 'Remove sections from lines of files', category: 'text-processing', capabilities: ['extract', 'columns', 'text', 'split'], packageManagers: {} }, { name: 'sort', description: 'Sort lines of text files', category: 'text-processing', capabilities: ['sort', 'order', 'text'], packageManagers: {} }, { name: 'uniq', description: 'Report or omit repeated lines', category: 'text-processing', capabilities: ['unique', 'deduplicate', 'text'], packageManagers: {} }, { name: 'wc', description: 'Print newline, word, and byte counts', category: 'text-processing', capabilities: ['count', 'lines', 'words', 'text'], packageManagers: {} }, { name: 'tr', description: 'Translate or delete characters', category: 'text-processing', capabilities: ['translate', 'replace', 'transform', 'text'], packageManagers: {} }, { name: 'head', description: 'Output the first part of files', category: 'text-processing', capabilities: ['head', 'preview', 'text', 'file'], packageManagers: {} }, { name: 'tail', description: 'Output the last part of files', category: 'text-processing', capabilities: ['tail', 'monitor', 'text', 'file', 'log'], packageManagers: {} }, // ===== System File/Directory Tools ===== { name: 'find', description: 'Search for files in a directory hierarchy', category: 'file-system', capabilities: ['find', 'search', 'file', 'directory'], packageManagers: {} }, { name: 'xargs', description: 'Build and execute command lines from standard input', category: 'file-system', capabilities: ['execute', 'batch', 'command'], packageManagers: {} }, { name: 'chmod', description: 'Change file mode bits', category: 'file-system', capabilities: ['permission', 'file', 'security'], packageManagers: {} }, { name: 'chown', description: 'Change file owner and group', category: 'file-system', capabilities: ['owner', 'file', 'permission'], packageManagers: {} }, { name: 'mkdir', description: 'Make directories', category: 'file-system', capabilities: ['create', 'directory', 'folder'], packageManagers: {} }, { name: 'rm', description: 'Remove files or directories', category: 'file-system', capabilities: ['delete', 'remove', 'file'], packageManagers: {} }, { name: 'cp', description: 'Copy files and directories', category: 'file-system', capabilities: ['copy', 'file', 'directory'], packageManagers: {} }, { name: 'mv', description: 'Move or rename files', category: 'file-system', capabilities: ['move', 'rename', 'file'], packageManagers: {} }, { name: 'ln', description: 'Make links between files', category: 'file-system', capabilities: ['link', 'symlink', 'file'], packageManagers: {} }, { name: 'ls', description: 'List directory contents', category: 'file-system', capabilities: ['list', 'directory', 'file'], packageManagers: {} }, { name: 'du', description: 'Estimate file space usage', category: 'file-system', capabilities: ['disk', 'usage', 'size', 'space'], packageManagers: {} }, { name: 'df', description: 'Report file system disk space usage', category: 'file-system', capabilities: ['disk', 'space', 'filesystem', 'usage'], packageManagers: {} }, { name: 'diff', description: 'Compare files line by line', category: 'file-system', capabilities: ['compare', 'diff', 'file', 'text'], packageManagers: {} }, { name: 'patch', description: 'Apply a diff file to an original', category: 'file-system', capabilities: ['patch', 'apply', 'diff'], packageManagers: {} }, // ===== Process Management ===== { name: 'ps', description: 'Report process status', category: 'process', capabilities: ['process', 'list', 'monitor', 'status'], packageManagers: {} }, { name: 'top', description: 'Display system tasks', category: 'process', capabilities: ['monitor', 'process', 'performance', 'cpu', 'memory'], packageManagers: {} }, { name: 'kill', description: 'Send signals to processes', category: 'process', capabilities: ['kill', 'signal', 'process', 'terminate'], packageManagers: {} }, { name: 'killall', description: 'Kill processes by name', category: 'process', capabilities: ['kill', 'process', 'terminate'], packageManagers: {} }, { name: 'pkill', description: 'Signal processes based on name', category: 'process', capabilities: ['kill', 'signal', 'process'], packageManagers: {} }, { name: 'pgrep', description: 'Look up processes based on name', category: 'process', capabilities: ['search', 'process', 'find'], packageManagers: {} }, // ===== Network Tools (Often Pre-installed) ===== { name: 'ssh', description: 'OpenSSH remote login client', category: 'network', capabilities: ['ssh', 'remote', 'login', 'secure'], packageManagers: {} }, { name: 'scp', description: 'Secure copy (remote file copy)', category: 'network', capabilities: ['copy', 'transfer', 'ssh', 'file'], packageManagers: {} }, { name: 'sftp', description: 'Secure file transfer program', category: 'network', capabilities: ['transfer', 'ftp', 'ssh', 'file'], packageManagers: {} }, { name: 'ping', description: 'Send ICMP ECHO_REQUEST to network hosts', category: 'network', capabilities: ['ping', 'network', 'test', 'connectivity'], packageManagers: {} }, { name: 'traceroute', description: 'Print the route packets trace to network host', category: 'network', capabilities: ['trace', 'network', 'route', 'diagnostic'], packageManagers: {} }, { name: 'netstat', description: 'Print network connections, routing tables', category: 'network', capabilities: ['network', 'connections', 'ports', 'status'], packageManagers: {} }, { name: 'ifconfig', description: 'Configure network interface', category: 'network', capabilities: ['network', 'interface', 'configure', 'ip'], packageManagers: {} }, { name: 'ip', description: 'Show/manipulate routing, devices, policy routing', category: 'network', capabilities: ['network', 'route', 'interface', 'ip'], packageManagers: {} }, // ===== Misc System Tools ===== { name: 'cron', description: 'Daemon to execute scheduled commands', category: 'utilities', capabilities: ['schedule', 'cron', 'automation', 'task'], packageManagers: {} }, { name: 'crontab', description: 'Maintain crontab files', category: 'utilities', capabilities: ['schedule', 'cron', 'automation'], packageManagers: {} }, { name: 'date', description: 'Print or set system date and time', category: 'utilities', capabilities: ['date', 'time', 'timestamp'], packageManagers: {} }, { name: 'cal', description: 'Display a calendar', category: 'utilities', capabilities: ['calendar', 'date'], packageManagers: {} }, { name: 'uptime', description: 'Tell how long the system has been running', category: 'utilities', capabilities: ['uptime', 'system', 'status'], packageManagers: {} }, { name: 'whoami', description: 'Print effective user name', category: 'utilities', capabilities: ['user', 'identity'], packageManagers: {} }, { name: 'env', description: 'Run a program in a modified environment', category: 'utilities', capabilities: ['environment', 'variable', 'execute'], packageManagers: {} }, { name: 'printenv', description: 'Print environment variables', category: 'utilities', capabilities: ['environment', 'variable', 'list'], packageManagers: {} }, { name: 'basename', description: 'Strip directory and suffix from filenames', category: 'utilities', capabilities: ['path', 'file', 'name'], packageManagers: {} }, { name: 'dirname', description: 'Strip last component from file name', category: 'utilities', capabilities: ['path', 'directory'], packageManagers: {}, platforms: ['linux', 'darwin'] }, // ===== Windows-Specific Tools ===== { name: 'powershell', description: 'Windows PowerShell', category: 'windows', capabilities: ['shell', 'script', 'automation', 'windows'], packageManagers: {}, platforms: ['win32'] }, { name: 'pwsh', description: 'PowerShell Core (cross-platform)', category: 'windows', capabilities: ['shell', 'script', 'automation', 'powershell'], packageManagers: { winget: 'Microsoft.PowerShell', choco: 'powershell-core' } }, { name: 'cmd', description: 'Windows Command Prompt', category: 'windows', capabilities: ['shell', 'cmd', 'windows'], packageManagers: {}, platforms: ['win32'] }, { name: 'wsl', description: 'Windows Subsystem for Linux', category: 'windows', capabilities: ['linux', 'wsl', 'subsystem', 'bash'], packageManagers: {}, platforms: ['win32'] }, { name: 'winget', description: 'Windows Package Manager', category: 'package-manager', capabilities: ['install', 'package', 'windows'], packageManagers: {}, platforms: ['win32'] }, { name: 'choco', description: 'Chocolatey package manager', category: 'package-manager', capabilities: ['install', 'package', 'windows'], packageManagers: { choco: 'chocolatey' }, platforms: ['win32'] }, { name: 'scoop', description: 'Scoop command-line installer', category: 'package-manager', capabilities: ['install', 'package', 'windows'], packageManagers: {}, platforms: ['win32'] }, // Windows utilities { name: 'robocopy', description: 'Robust file copy utility', category: 'file-system', capabilities: ['copy', 'sync', 'backup', 'file'], packageManagers: {}, platforms: ['win32'] }, { name: 'xcopy', description: 'Extended copy utility', category: 'file-system', capabilities: ['copy', 'file', 'directory'], packageManagers: {}, platforms: ['win32'] }, { name: 'tasklist', description: 'Display running processes', category: 'process', capabilities: ['process', 'list', 'monitor'], packageManagers: {}, platforms: ['win32'] }, { name: 'taskkill', description: 'Terminate processes', category: 'process', capabilities: ['kill', 'process', 'terminate'], packageManagers: {}, platforms: ['win32'] }, { name: 'netsh', description: 'Network Shell utility', category: 'network', capabilities: ['network', 'configure', 'interface'], packageManagers: {}, platforms: ['win32'] }, { name: 'ipconfig', description: 'Display network configuration', category: 'network', capabilities: ['network', 'ip', 'configuration'], packageManagers: {}, platforms: ['win32'] }, { name: 'systeminfo', description: 'Display system information', category: 'utilities', capabilities: ['system', 'info', 'hardware'], packageManagers: {}, platforms: ['win32'] }, { name: 'wmic', description: 'Windows Management Instrumentation Command', category: 'utilities', capabilities: ['system', 'management', 'wmi'], packageManagers: {}, platforms: ['win32'] }, ];

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/portel-dev/ncp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server