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)
MCP server for Arm64 Linux performance: parse perf output, suggest NEON intrinsics, audit deps.
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.
ARM_CODE_MCP_LOG_LEVELYou 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": {
"arm-code": {
"command": "uvx",
"args": [
"arm-code-mcp"
],
"env": {
"ARM_CODE_MCP_LOG_LEVEL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add arm-code --env ARM_CODE_MCP_LOG_LEVEL=your-value -- uvx arm-code-mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"arm-code": {
"command": "uvx",
"args": [
"arm-code-mcp"
],
"env": {
"ARM_CODE_MCP_LOG_LEVEL": "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": {
"arm-code": {
"type": "stdio",
"command": "uvx",
"args": [
"arm-code-mcp"
],
"env": {
"ARM_CODE_MCP_LOG_LEVEL": "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.
ARM_CODE_MCP_LOG_LEVEL 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 jean-johnson-zwix, 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 (0.1.0) reached the registry 6 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Python (uv) 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:★ 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
Cloudflare MCP servers
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.
An MCP server that helps AI assistants optimize Linux workloads on Arm64. It parses perf report output, recommends NEON SIMD intrinsics for hot loops, and audits Python dependency manifests for arm64 wheel availability — all offline, all structured, all callable from Claude Code, GitHub Copilot, and Codex.
perf report --stdio into a ranked list of hot symbolsrequirements.txt, pyproject.toml, or Dockerfile that lack arm64 wheels or require special handlingdocker pull jeannjohnson/arm-code-mcp:latest
Add to your MCP client config (e.g. ~/.claude/mcp.json):
{
"mcpServers": { "arm-code-mcp": { "command": "docker", "args": ["run", "--rm", "-i", "jeannjohnson/arm-code-mcp:latest"] } } }
Restart your client. All three tools are now available.
analyze_perf_outputParse raw perf report --stdio output and return the top hot symbols, ranked by overhead.
analyze_perf_output(
perf_report_text: str, # raw stdout of perf report --stdio top_n: int = 10, # max symbols to return min_overhead_pct: float = 0.5, # ignore symbols below this % ) -> dict
Example response:
{
"summary": { "total_samples": 5432100, "total_events": null, "command": "myapp" }, "hot_symbols": [ {"overhead_pct": 24.17, "samples": 1245, "command": "myapp", "module": "myapp", "symbol": "process_buffer"}, {"overhead_pct": 12.34, "samples": 636, "command": "myapp", "module": "libc-2.31.so", "symbol": "__memcpy_avx_unaligned_erms"} ], "warnings": [] }
suggest_neon_intrinsicRecommend NEON intrinsics for a hot loop using hybrid semantic + exact-name retrieval over a curated knowledge base of 110 intrinsics.
suggest_neon_intrinsic(
operation_description: str, # e.g. "32-bit float multiply-accumulate" target_arch: str = "armv8-a", # "armv8-a" | "armv8.2-a" | "armv9-a" top_k: int = 5, ) -> dict
Example response:
{
"matches": [ { "intrinsic": "vmlaq_f32", "signature": "float32x4_t vmlaq_f32(float32x4_t a, float32x4_t b, float32x4_t c)", "header": " ", "min_arch": "armv8-a", "description": "Multiply-accumulate: a + (b * c), lane-wise, 4x f32.", "score": 0.9142 } ], "notes": "Filtered to armv8-a. KB contains 110 entries (103 compatible)." }
check_arm64_depsScan a dependency manifest and flag packages with known arm64 compatibility issues. Fully offline — no network calls, fast, deterministic.
check_arm64_deps(
file_content: str, # raw text of the manifest file_type: str = "requirements.txt", # "requirements.txt" | "pyproject.toml" | "Dockerfile" ) -> dict
Example response:
{
"checked": ["numpy", "tensorflow", "cupy-cuda12x", "faiss-cpu", "requests"], "issues": [ {"package": "cupy-cuda12x", "severity": "error", "message": "GPU-only package with no arm64 wheel. Use cupy with ROCm or a CPU fallback."}, {"package": "tensorflow", "severity": "warning", "message": "Official TensorFlow PyPI wheels are x86-only before 2.10; use tensorflow-aarch64 or build from source."}, {"package": "faiss-cpu", "severity": "warning", "message": "No official arm64 wheel on PyPI; build from source or use the conda-forge package."}, {"package": "numpy", "severity": "info", "message": "arm64 wheels available from PyPI since 1.21.0. Ensure version >= 1.21.0."} ], "summary": "Checked 5 package(s): 1 error(s), 2 warning(s), 1 info(s)." }
Severity levels:
| Level | Meaning |
|---|---|
error | No arm64 wheel exists (e.g. GPU-only packages) |
warning | Wheel exists but requires a workaround or alternative source |
info | Wheel available; version constraint or system-lib note applies |
All env vars are optional. The server works with no configuration.
| Variable | Default | Description |
|---|---|---|
ARM_CODE_MCP_LOG_LEVEL | INFO | Log verbosity: DEBUG, INFO, WARNING |
ARM_CODE_MCP_KB_PATH | bundled JSONL | Override path to neon_intrinsics.jsonl |
ARM_CODE_MCP_CACHE_DIR | ~/.cache/arm-code-mcp | Embedding cache directory |
Pass env vars to the container:
docker run --rm -i \
-e ARM_CODE_MCP_LOG_LEVEL=DEBUG \ jeannjohnson/arm-code-mcp:latest
suggest_neon_intrinsic is evaluated against 15 hand-curated (query, expected intrinsic) pairs using the real all-MiniLM-L6-v2 embedding model. Current baseline:
| Metric | Score |
|---|---|
| hit@1 | 0.667 |
| hit@3 | 0.933 |
| hit@5 | 1.000 |
| MRR | 0.817 |
The regression guard exits non-zero if hit@3 drops below 0.70.
Run the eval harness locally:
uv sync
make eval
See eval/README.md for methodology and known limitations.
git clone https://github.com/jean-johnson-zwix/arm-code-mcp
cd arm-code-mcp uv sync make test # 78 tests make lint # ruff check + format make eval # real model, 15 gold queries
Makefile targets:
| Target | Description |
|---|---|
make setup | uv sync + pre-commit install |
make test | Run the full test suite |
make lint | ruff check + ruff format --check |
make eval | Run the NEON retrieval eval harness |
make docker-build | Build arm-code-mcp:dev locally |
make docker-run | Run the local dev image over stdio |
Multi-arch images (linux/amd64 + linux/arm64) are built and pushed automatically by .github/workflows/release.yml on v*.*.* tags.
The NEON intrinsics knowledge base lives in src/arm_code_mcp/kb/data/neon_intrinsics.jsonl (110 entries). To add intrinsics or refresh after a model upgrade, see docs/kb-refresh.md.
Tools
parse_flamegraph — extract hot paths from Linux perf flamegraph SVGsuggest_sve2_intrinsic — extend retrieval to SVE2 intrinsics (Neoverse V2, Cortex-X4)Eval
Coming soon.
Stars, forks, and issues are welcome. Open a PR or file an issue on GitHub.
Good first issues:
kb/data/neon_intrinsics.jsonlparse_flamegraph tool for Linux perf flamegraph SVG filesApache 2.0 — same as arm/mcp.