GitHub
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
Description from the maker (original English)
Extract colors from stylesheets and code, with their notation and position.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"colors-le": {
"command": "npx",
"args": [
"-y",
"colors-le-mcp"
]
}
}
}Run this in your terminal
claude mcp add colors-le -- npx -y colors-le-mcpPaste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"colors-le": {
"command": "npx",
"args": [
"-y",
"colors-le-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"colors-le": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"colors-le-mcp"
]
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.
Your choice stays on this device in a cookie; no account needed.
These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Runs on your computer; the tool list appears in your AI app after you install it.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 9, 2026
The registry name was verified with the GitHub account nolindnaidoo, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
This one runs on your computer; there is no internet endpoint
Runs on your computer and uses local settings instead
Runs on your computer; we can only read tool lists from internet endpoints
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).
The GitHub repo last changed –, and the latest version (2.5.0) reached the registry 32 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.
In the same category: GitHub, Desktop Commander, Cloudflare MCP
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
GitHub’s official server lets AI read and manage code, issues and pull requests in your account. Use GitHub’s hosted version or run it locally with Docker.
MCP server for terminal commands, file operations, and process management
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Colors-LE: Zero Hassle Color Extraction
Pull every color out of the current file in one keystroke
CSS, SCSS, LESS, Stylus, HTML, JavaScript, TypeScript, SVG, XML, JSON, YAML, TOML, Markdown, and any text
Useful? A star or rating is how other developers find it —
★ GitHub ·
Open a file, run Colors-LE: Extract Colors, and every color in the document lands in a new editor — deduplicate, sort, convert, filter, analyze, or validate it from there. Works in VS Code and in VS Code–based editors like Cursor and VSCodium (installable from Open VSX).
| Where | What you get | Install |
|---|---|---|
| VS Code | Extraction, conversion, analysis and validation in your editor | Marketplace |
| Cursor, VSCodium, Windsurf | The same extension | Open VSX |
| A terminal or a CI step | The same extraction over a whole tree, with exit codes | npx colors-le · npm or cargo install colors-le · crates.io |
| Any MCP agent, via Node | extract_colors over stdio | npx colors-le-mcp · npm |
The same engine runs as an MCP server, so an agent can call it directly instead of you running a command.
| Editor | How |
|---|---|
| VS Code 1.101+ | Nothing to install — the extension registers extract_colors with agent mode |
| Claude Code | claude mcp add colors-le -- npx -y colors-le-mcp |
| Cursor, Windsurf, anything else | point it at npx colors-le-mcp |
extract_colors(content, format?, filename?, dedupe?, maxResults?)
Returns every color with its notation and 1-based line and column, capped at 500 by default with meta.truncated so a large stylesheet cannot flood the agent's context window.
The server takes content and returns data — it reads no files and makes no network requests of its own. Published as colors-le-mcp on npm and as io.github.nolindnaidoo/colors-le in the MCP registry.
Configuring it by hand — any host with an MCP config file
Most hosts read a JSON config. Add one entry:
{
"mcpServers": { "colors-le": { "command": "npx", "args": ["-y", "colors-le-mcp"] } } }
-y skips the install prompt on first run. Pin a version if you would rather not track releases — colors-le-mcp@2.5.0.
Prefer not to go through npx on every launch? Install it once and point at the binary instead:
npm install -g colors-le-mcp
{
"mcpServers": { "colors-le": { "command": "colors-le-mcp" } } }
It speaks MCP over stdio and needs no environment variables, no API key and no configuration of its own. To check it before wiring it into anything:
echo '{"jsonrpc":"2.0","id":1,"method":"tools/list"}' | npx -y colors-le-mcp
That prints the tool list and exits — if you see extract_colors, the server works.
| Format | Language IDs | Where colors are recognized |
|---|---|---|
| CSS | css | Hex/functional literals anywhere outside comments; named colors in declaration values |
| SCSS / LESS / Stylus | scss, less, stylus | Same as CSS, plus // line comments respected; Stylus = assignments count as values |
| HTML | html | style="…" attributes, blocks, and the fill, stroke, stop-color, flood-color, lighting-color, color and bgcolor attributes |
| JavaScript / TypeScript | javascript, javascriptreact, typescript, typescriptreact | Inside string and template literals (theme objects, styled-components); named colors only when the whole string is the color |
| SVG / XML | xml, svg | fill, stroke, stop-color, flood-color, lighting-color, color, bgcolor attributes, plus style attributes/blocks |
| JSON / YAML / TOML | json, jsonc, yaml, toml | Design tokens: literals anywhere, named colors where the value is the color |
| Markdown / plain text | markdown, plaintext | Same, and a 3- or 4-digit hex must contain an a-f — #250 in prose is an issue reference |
| Everything else | any language id | Read as raw text under the same rules, and reported as unknown |
No document is refused. A language with no reader of its own is read as raw text, and metadata.fileType says which of the two answered.
Recognized syntax: #rgb, #rgba, #rrggbb, #rrggbbaa, comma-form rgb()/rgba()/hsl()/hsla(), CSS Color 4 modern syntax — space-separated rgb()/hsl() with / alpha, hwb(), lab(), lch(), oklab(), oklch() and color() in the nine predefined spaces, with angles in deg, rad, grad or turn and none (calls may span multiple lines), and the CSS named colors including rebeccapurple and transparent. Positions are real 1-based line/column of each literal. Comments never produce colors, and comment markers inside strings don't start comments.
Known limitations (documented, not bugs): relative colours (rgb(from red r g b)), calc() and var() inside a colour call are not read; a colour outside sRGB is clipped when converted; a hex inside any JS string matches, including URL fragments; Stylus values without : or = only yield hex/functional literals, not named colors; in the raw-text scan a value segment runs to the end of the line, so two tokens on one line cost the named one.
Extract reads the document you have open. A scan reads many files from disk and gives one report: the project's palette.
Colors-LE: Extract Colors from Workspace from the command palette.Extract Colors from Folder, or run Colors-LE: Extract Colors from Folder and pick one.Each color is listed once however it is spelled, the most widely used first, with the spellings, how often it is written and where:
# Colors-LE workspace report
my-project · 3 file(s) read · 3 distinct color(s), 7 occurrence(s) in 3 file(s)
| Color | Written as | Occurrences | Files |
|---|---|---|---|
#ff0000 | #FF0000, #f00, red, rgb(255, 0, 0) | 4 | 2 |
#00ff00 | #00ff00 | 2 | 2 |
#0000ff | #0000ff | 1 | 1 |
#ff0000 (4)styles/a.css · 1:12, 1:30, 2:12styles/b.css · 1:12#00ff00 (2)styles/a.css · 2:31styles/b.css · 1:43#0000ff (1)theme.json · 2:14
The same color is one row. #f00, #FF0000, red and rgb(255, 0, 0) are one color written four ways, and the table says so. Alpha keeps colors apart: a half-transparent red is another color. A value that is not a color in sRGB on its own, such as a var(), is compared as written.
That is with colors-le.showPositions on. It is off by default, and then each line is the file and how many times the color is in it: styles/a.css (3). The copy on the clipboard follows colors-le.clipboardIncludesPositions, as it does for Extract.
What a scan reads. Files come from disk, so an unsaved edit is not seen. A file over the safety size, or one that is not UTF-8 text, is left unread. It stops at 5,000 files or 10,000 listed occurrences. The report ends with a line for each thing it left out, so a short report is never mistaken for a clean project.
What it skips, and how to change that. Three switches are on by default, and each can be turned off on its own in Settings:
| Switch | Skips |
|---|---|
scanUseDefaultExcludes | Dependency folders, build output, tool caches and lockfiles. The full list is below |
scanRespectGitignore | Whatever the project's .gitignore files skip |
scanSkipBinaryFiles | Images, fonts, archives and other files that are not text |
Two lists adjust the result without turning a switch off. To skip more, add a pattern to scanExcludes. To read something a switch would skip, add it to scanAlwaysInclude:
{
// Also skip the test fixtures. "colors-le.workspace.scanExcludes": ["/fixtures/"], // Read the vendored code, though the built-in list skips it. "colors-le.workspace.scanAlwaysInclude": ["/vendor/"] }
Colors-LE: Open Settings opens all of these in the Settings editor.
The built-in list
Folders, wherever they appear:
.git, .hg, .svn, node_modules, bower_components, jspm_packages, .pnpm-store, .yarn, vendor, site-packages, Pods, Carthage, dist, build, out, target, _build, _site, dist-newstyle, zig-out, storybook-static, cdk.out, DerivedData, CMakeFiles, .next, .nuxt, .output, .svelte-kit, .angular, .astro, .docusaurus, .vuepress, .expo, .turbo, .parcel-cache, .cache, .sass-cache, .jekyll-cache, .dart_tool, .pub-cache, .gradle, .kotlin, .cxx, .externalNativeBuild, captures, ephemeral, .symlinks, .swiftpm, .build, .bundle, .stack-work, .zig-cache, .godot, elm-stuff, .vercel, .netlify, .serverless, .aws-sam, .terraform, .venv, venv, __pycache__, .tox, .nox, .mypy_cache, .pytest_cache, .ruff_cache, .ipynb_checkpoints, .eggs, coverage, htmlcov, .nyc_output, .vscode-test, .idea, .vs, xcuserdata, *.egg-info
File
Only the beginning is shown; read the rest in the repo