Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Check whether a CLI command name is already taken across npm, PyPI, crates.io, Go, Debian and more
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.
GLOBAL_EXECUTABLES_DATASET_ROOT, GLOBAL_EXECUTABLES_CACHE_DIR, GLOBAL_EXECUTABLES_OFFLINEYou 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": {
"global-executables": {
"command": "uvx",
"args": [
"global-executables",
"mcp"
],
"env": {
"GLOBAL_EXECUTABLES_DATASET_ROOT": "your-value",
"GLOBAL_EXECUTABLES_CACHE_DIR": "your-value",
"GLOBAL_EXECUTABLES_OFFLINE": "your-value"
}
}
}
}Run this in your terminal
claude mcp add global-executables --env GLOBAL_EXECUTABLES_DATASET_ROOT=your-value --env GLOBAL_EXECUTABLES_CACHE_DIR=your-value --env GLOBAL_EXECUTABLES_OFFLINE=your-value -- uvx global-executables mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"global-executables": {
"command": "uvx",
"args": [
"global-executables",
"mcp"
],
"env": {
"GLOBAL_EXECUTABLES_DATASET_ROOT": "your-value",
"GLOBAL_EXECUTABLES_CACHE_DIR": "your-value",
"GLOBAL_EXECUTABLES_OFFLINE": "your-value"
}
}
}
}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": {
"global-executables": {
"type": "stdio",
"command": "uvx",
"args": [
"global-executables",
"mcp"
],
"env": {
"GLOBAL_EXECUTABLES_DATASET_ROOT": "your-value",
"GLOBAL_EXECUTABLES_CACHE_DIR": "your-value",
"GLOBAL_EXECUTABLES_OFFLINE": "your-value"
}
}
}
}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.
GLOBAL_EXECUTABLES_DATASET_ROOT envGLOBAL_EXECUTABLES_CACHE_DIR envGLOBAL_EXECUTABLES_OFFLINE envThese 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 7, 2026
The registry name was verified with the GitHub account asopitech-labs, 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 (1.4.1) reached the registry 18 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv), Docker on your computer.
In the same category: Spec Driven Development, Remote Desktop Commander, Draugr
Servers in the same category from other makers, sorted by stars.
Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Security scanning for AI agents: SAST, SCA, secrets, IaC, DAST, ranked by real risk.
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.
Global Executables
Check whether a CLI command name is already in use—before you publish it.
Search executable names across npm, PyPI, crates.io, Go modules, Homebrew, Debian, and more from your AI agent or browser.
Try the Playground · Install the MCP server · Read the docs · Browse the data
A package name is not necessarily the command it installs. Searching registries for package names can miss a collision such as a differently named package that already ships your proposed command.
| Ordinary package search | Global Executables |
|---|---|
| Searches package and repository names | Searches the actual installed command name |
| Leaves evidence scattered across registries | Normalizes providers across ecosystems |
| A missing result can look deceptively final | Reports coverage and absence confidence |
| Requires a person to repeat the work | Lets AI agents check names in batches and verify known packages |
The index preserves the relationship that matters:
command → provider → package → ecosystem → source evidence
Open the [Index Playground](https://asopitech-labs.github.io/global-executables/) to check a name, find similar commands, inspect providers, or review source coverage. The Playground reads the same public JSON dataset as the MCP server, and query data is not sent to a third-party API.
For an AI-assisted check, connect the MCP server below and ask:
I am naming a new CLI. Check `envc`, `evcr`, `evpk`, and `envcp` for exact
collisions and confusingly similar commands. Keep rejected names internal and explain the coverage caveat for every survivor.
The agent can reject envcp with evidence instead of relying on a package-name search: the command is provided on PyPI by both chaperone and envcp.
| Capability | What it gives you |
|---|---|
| Exact and batch checks | Collision results for one name or a candidate set |
| Similar-name search | Typo and confusion candidates before you publish |
| Provider provenance | Package, ecosystem, version, source, and evidence confidence |
| Coverage-aware negatives | An explicit distinction between “not found” and “proven free” |
| Installation resolution | Conservative install and invoke steps for a target environment |
| Public, inspectable data | Versioned JSON, schemas, freshness, and coverage on GitHub |
The server has no write tools and never installs or executes the software it finds.
uvThe recommended setup uses uv. You do not need to clone this repository, download the dataset, or create an API key.
Verify that uvx is available:
uvx --version
Choose your client below. The first launch downloads the package from PyPI; later launches reuse uv's cache.
Claude Desktop and Cursor
Add this to claude_desktop_config.json, ~/.cursor/mcp.json, or a project's .cursor/mcp.json:
{
"mcpServers": { "global-executables": { "command": "uvx", "args": ["global-executables", "mcp"] } } }
Claude Code
claude mcp add global-executables -- uvx global-executables mcp
Codex CLI
codex mcp add global-executables -- uvx global-executables mcp
Start a new Codex session after adding the server. See the Codex setup tutorial for registration checks and a source-checkout setup.
VS Code
Add this to .vscode/mcp.json:
{
"servers": { "global-executables": { "type": "stdio", "command": "uvx", "args": ["global-executables", "mcp"] } } }
Docker (any stdio MCP client)
Use this server entry instead of the uvx entry:
{
"command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/asopitech-labs/global-executables-mcp:latest"] }
The image is public and contains the server, but not a stale copy of the dataset.
Try one of these prompts:
Is the command name `envc` already taken? Check similar names too.
Check `envc`, `evcr`, `evpk`, and `envcp` as possible CLI names. Do not show
rejected candidates; explain the dataset coverage for the survivors.
Which package provides the `ruff` executable, and how should I install it in a
Python 3.12 project virtual environment?
The agent will normally call check_executables for a batch and search_similar_executables for the candidates that remain.
[!IMPORTANT]
found: truemeans a collision.found: falsemeans only that the current
snapshot contains no match. When
statusisunknown, partial source coverage
means the name is not proven to be available. Read
warnings,
absence.confidence, andcoverage_scopebefore adopting a name.
Snapshot lookups fetch only the public dictionary branch files a query needs, cache them in the current user's cache directory, and revalidate them with ETag. Cached files remain usable when the network is temporarily unavailable.
| Requirement | Details |
|---|---|
| Authentication | None |
| Local dataset | Not required |
| Default transport | stdio |
| Data access | On-demand HTTPS from the public dictionary branch |
| Writes or command execution | Lookup never executes software; verified discovery can reserve a Git branch only on a configured runner |
| Supported Python | 3.11+ (handled automatically by uvx) |
| Variable | Effect |
|---|---|
GLOBAL_EXECUTABLES_DATASET_ROOT | use a local checkout of the dictionary branch instead of HTTPS |
GLOBAL_EXECUTABLES_CACHE_DIR | cache location (default ~/.cache/global-executables, ~/Library/Caches/global-executables, or %LOCALAPPDATA%\global-executables\Cache) |
GLOBAL_EXECUTABLES_OFFLINE=1 | serve only cached files, never touch the network |
uvx global-executables mcp --help lists the same options as flags. The package is published to PyPI from release 1.3.0. See the MCP guide for HTTP transport, offline operation, and running from a source checkout.
| Tool | Use it when you want to… |
|---|---|
check_executable | check one exact, case-sensitive command name |
check_executables | check several naming candidates in one call (recommended) |
get_executable | retrieve providers and provenance for a known command |
search_executables | search by prefix, length, ecosystem, or scope |
search_similar_executables | find names that may be confused with a candidate |
get_coverage | inspect source coverage, freshness, and warnings |
assess_executable / assess_executables | add freshness, activity, popularity, and collision-risk signals |
resolve_installation / resolve_installations | derive environment-specific install and invoke guidance |
discover_published_package | verify commands declared by one current npm or PyPI release |
Snapshot lookup tools are read-only. discover_published_package makes bounded live registry and artifact requests without executing package code. On a designated runner configured with Git write access, successful verification also reserves an immutable intake/ branch for central revalidation. The result reports reservation.status; an unconfigured copy reports unavailable and does not claim publication. Neither MCP nor CLI writes the published dictionary directly. The repository's Verify and reserve published package discovery GitHub Actions workflow is the designated runner; it invokes both CLI and MCP before the collector. Installation resolvers return instructions; they never install or execute software. Full inputs and result contracts are documented in the MCP guide.
The scheduled intake collector validates and rechecks reserved evidence before merging it into artifact-data. The regular refresh remains the only writer of the dictionary branch. See the MCP guide for runner configuration and the reservation lifecycle.
| Family | Sources | Typical executable evidence |
|---|---|---|
| System packages | Debian, Ubuntu, Arch Linux | Installed package file lists |
| macOS packages | Homebrew | Formula metadata and package contents |
| Language registries | npm, PyPI, crates.io, Go modules, RubyGems, Packagist | Declared bins, entry points, or executable targets |
| C and C++ recipes | ConanCenter, vcpkg, xmake-repo | Built file lists, tool declarations, or marked binary packages |
Every provider keeps its source and a confidence level (direct, filesystem, or inferred). Coverage differs by ecosystem, so negative results carry explicit coverage metadata instead of pretending that every registry is exhaustive. See Data Sources for collection details and coverage and freshness for the result contract.
| If you want to… | Start here |
|---|---|
| Connect an MCP client or use HTTP transport | MCP access and agent integration |
| Configure Codex step by step | Codex MCP tutorial |
| Verify a clean source checkout | Setup and verification |
| Understand records, indexes, and schemas | Data model |
| Review collection scope and attribution | Data sources |
| Operate or contribute to the data pipeline | Operations |
The client says uvx was not found
Install uv, confirm that uvx --version works in a new terminal, and restart the MCP client so it receives the updated PATH. If the client uses a restricted environment, set the configuration's command to the absolute path reported by command -v uvx (macOS/Linux) or where uvx (Windows).
Only the beginning is shown; read the rest in the repo