Install¶
The only prerequisite is uv. Everything else —
GNU Global, universal-ctags, Pygments — installs itself into ~/.gtags-mcp on the
first tool call, in user space, without sudo or a compiler.
Pick one installation path
A plugin and a manual entry means two servers running and every tool
appearing twice in the agent's tool list. If you switch to the plugin, remove
the manual entry first (claude mcp remove gtags).
One config entry, every repository¶
~/.codex/config.toml:
~/.cursor/mcp.json (or the one-click install badge in the README):
A single user-level entry serves every repository: each call resolves its project root from the tool argument, the client's workspace, or the working directory. See Configuration.
As a plugin¶
The plugin adds the server plus a "C/C++ code navigation" skill and the
/gtags:impact and /gtags:explain slash commands. Installing it registers the
MCP server for you — there is no config file to edit.
| Client | Install |
|---|---|
| Claude Code | /plugin marketplace add harshithsunku/mcp-gtags-server then /plugin install mcp-gtags-server@mcp-gtags-server |
| Codex | codex plugin marketplace add harshithsunku/mcp-gtags-server, then install it from the Plugins Directory in the ChatGPT desktop app |
| Cursor | Loads Agent Plugins 1.0.0; installs from the Cursor Marketplace or a team marketplace |
Details in Plugin & slash commands.
Shared background server (HTTP)¶
One installer, one background server, every client and IDE window on the machine pointing at it:
curl -fsSL https://raw.githubusercontent.com/harshithsunku/mcp-gtags-server/main/scripts/install.sh | bash
It installs the package with uv, sets up the toolchain, starts
mcp-gtags-server --transport http --host 127.0.0.1 --port 8383, and prints the
client configuration. Re-run it any time to update.
Security
The HTTP endpoint is unauthenticated. It binds 127.0.0.1 by default, and the
SDK enables DNS-rebinding protection for localhost binds. Only bind 0.0.0.0
on networks you trust.
Claude Desktop (.mcpb bundle)¶
Download mcp-gtags-server.mcpb from the
latest release
and open it with Claude Desktop. The bundle vendors the Python package, so it runs
on any system python3 ≥ 3.10; the gtags toolchain still installs itself on first
use.
Manual toolchain (optional)¶
Prefer system packages, or already have GNU Global? Install it yourself and the server will use it:
# EITHER user-space, no sudo:
uvx mcp-gtags-server setup
# OR a system package:
sudo apt install global universal-ctags python3-pygments # Debian/Ubuntu
brew install global universal-ctags # macOS
--no-auto-setup (or GTAGS_MCP_AUTO_SETUP=0) disables the automatic install so
tools fail with instructions instead.
Verify¶
uvx mcp-gtags-server doctor # what the server detects here
uvx mcp-gtags-server config # ready-to-paste client configuration
doctor reports the resolved binaries, the parser label, guard scanning, the
auto-setup state and where the index lives for the current project.
Update and uninstall¶
uvx --refresh mcp-gtags-server --version # pick up a new release
uv tool upgrade mcp-gtags-server # if installed with uv tool install
claude mcp remove gtags # remove the manual entry
rm -rf ~/.gtags-mcp # remove the managed toolchain
rm -rf <project>/.gtags-mcp # remove one project's index
Requirements¶
- Python ≥ 3.10 (provided by
uvwhen you useuvx) - Linux or macOS for the prebuilt GNU Global binaries (glibc ≥ 2.28 on Linux;
older hosts fall back to a source build, which needs
makeand a C compiler) - Git is optional — it is used to respect
.gitignorewhen collecting files