经 AI Skill Hub 精选评估,高性能MCP工具:gortex 获评「推荐使用」。这款MCP工具在功能完整性、社区活跃度和易用性方面表现出色,AI 评分 7.5 分,适合有一定技术背景的用户使用。
gortex是开源的高性能MCP工具,支持256种语言,具有强大的代码图谱和智能引擎,助力开发者高效编码和智能分析。
高性能MCP工具:gortex 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
gortex是开源的高性能MCP工具,支持256种语言,具有强大的代码图谱和智能引擎,助力开发者高效编码和智能分析。
高性能MCP工具:gortex 是一款遵循 MCP(Model Context Protocol)标准协议的 AI 工具扩展。通过 MCP 协议,它可以让 Claude、Cursor 等主流 AI 客户端直接访问和操作外部工具、数据源和服务,实现 AI 能力的无缝扩展。无论是文件操作、数据库查询还是 API 调用,都可以通过自然语言在 AI 对话中直接触发,极大提升生产效率。
# 方式一:通过 Claude Code CLI 一键安装
claude skill install https://github.com/zzet/gortex
# 方式二:手动配置 claude_desktop_config.json
{
"mcpServers": {
"---mcp---gortex": {
"command": "npx",
"args": ["-y", "gortex"]
}
}
}
# 配置文件位置
# macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
# Windows: %APPDATA%/Claude/claude_desktop_config.json
# 安装后在 Claude 对话中直接使用 # 示例: 用户: 请帮我用 高性能MCP工具:gortex 执行以下任务... Claude: [自动调用 高性能MCP工具:gortex MCP 工具处理请求] # 查看可用工具列表 # 在 Claude 中输入:"列出所有可用的 MCP 工具"
// claude_desktop_config.json 配置示例
{
"mcpServers": {
"___mcp___gortex": {
"command": "npx",
"args": ["-y", "gortex"],
"env": {
// "API_KEY": "your-api-key-here"
}
}
}
}
// 保存后重启 Claude Desktop 生效
cross_repo_calls / cross_repo_implements / cross_repo_extends edges whenever a relation's endpoints live in different repos — surfaced via analyze kind: "cross_repo". Resolution is evidence-gated: cross-repo links are only drawn when the symbol evidence clears a confidence bar, so unrelated same-named symbols don't get wired togetheralexaandru/go-sitter-forest, extended by drop-in user grammars via .gortex.yaml's index.grammars key) for the long tail (Vue, Svelte, Astro, GraphQL, Prisma, Latex, Typst, Agda, Idris, Hack, Haxe, MLIR, LLVM, SystemVerilog, Cedar, CEL, TLA+, Robot, Hurl, …) — plus notebook-style sources: Jupyter .ipynb (nbformat 3 + 4) and Databricks notebooks (.dbc archives + source-format .py / .scala / .sql / .R with # COMMAND ---------- separators) extract each cell as its own graph node (code → KindFunction, markdown/raw → KindVariable) tagged with cell_index / cell_kind / cell_language so %%sql / %%scala cell magics and Databricks %magic directives surface as language-routed symbols. See docs/languages.md for the full tableanalyze (dead code, hotspots with novelty + directional ranking modes, cycles, connectivity_health (isolated/leaf node counts, effective-vs-nominal graph size, dead-weight-by-file attribution), channel-ops, goroutine-spawns, field-writers, config-readers, event-emitters, error-surface, external-calls, routes, models, components, k8s_resources, images, kustomize, cross-repo, dbt_models, unsafe_patterns, health_score, role (six-class classifier), constructors_missing_fields (literal-site field-completeness check), clusters (community projections with density + spread + language mix; algorithm selects leiden (default), louvain, or recursive-spectral-bisection spectral), concepts (LLM-or-heuristic cluster theme labels), impact (composite per-symbol change-impact score 0..100 + risk label from PageRank centrality + transitive reach + cyclomatic complexity + co-change coupling + community span), named (runs named detector bundles from the .gortex.yaml::queries block — 10 built-in security bundles ship), tests_as_edges (first-class view over the test→code edge layer, grouped by symbol or by test)), near-duplicate clone detection (find_clones), structural code search (search_ast with bundled detectors), CPG-lite dataflow (flow_between / taint_paths over value-flow / arg-of / returns-to edges), five proactive push channels — diagnostics, workspace readiness, daemon health, stale refs, graph invalidation (subscribe_diagnostics / subscribe_workspace_readiness / subscribe_daemon_health / subscribe_stale_refs / subscribe_graph_invalidated and their unsubscribe_* pairs) — plus code actions (get_code_actions / apply_code_action / fix_all_in_file) wired across every running language server, scaffolding, inline editing, symbol renaming, read-free file writes (edit_file / write_file) with path-traversal guard + dry_run, multi-axis structured retrieval (winnow_symbols), multi-repo management, agent feedback loop, context export, graph-validated config hygiene (audit_agent_config), opening-move routing (plan_turn), narrative repo overview (get_repo_outline), cold-start query suggestions (suggest_queries — 5-10 starter queries from entry points, hubs, bridges, and subsystems), test-coverage gaps (get_untested_symbols), session memory (save_note / query_notes / distill_session — per-repo notes auto-linked to symbols, survive context compactions), cross-session development memories with workspace + global scopes (store_memory / query_memories / surface_memories / edit_memory / rename_memory — symbol-anchored, deterministically ranked; compound across sessions and teammates; promote workspace-local invariants to user-level with one call), repository-local persistent notebook (notebook_save / notebook_find / notebook_list / notebook_show / notebook_used — markdown entries committed to git so agent journal entries surface in PR review), composed workflow primitives — get_architecture (single-shot snapshot: outline + communities + hotspots + entry points + processes + cross-repo + contracts; a resolution arg — file / package / service / system — instead returns a rolled-up hierarchical view with weighted rollup edges and no function leaves), replay_episode (incident investigation walking callers + timeline + coverage gaps + incident memories from a symptom anchor), get_knowledge_gaps (disconnected nodes + thin communities + single-file communities + untested hotspots), get_surprising_connections (composite anomaly scorer over five signals), safe_delete_symbol (atomic dead-code removal with graph-aware safety gate), verify_citation (git-show + substring check at a SHA), check_onboarding_performed (boolean readiness probe over essential memory kinds), check_references (one-call composite over imports + name search + usage graph), generate_skill (bundle a directory into .claude/skills/<name>/SKILL.md + references/), gortex_wakeup (paste-ready ~500-token codebase digest; matched gortex wakeup CLI for MCP-less users), get_churn_rate (per-symbol commit density from blame), find_co_changing_symbols (ranked git co-change neighbours over mined co_change edges), search_artifacts / get_artifact (full-text + by-id lookup over the context-artifacts manifest — schemas, API specs, infra configs, ADRs), get_coupling_metrics (Robert C. Martin Ca/Ce/instability per package or community), get_extraction_candidates (ranked refactor suggestions from log-scaled size × callers × fan-out), list_inspections / run_inspections (uniform inspector surface composing existing analyzers), graph_completion_search (consumes the pluggable Retriever protocol for vector-or-graph hybrid candidate sets), and an optional in-process LLM research agent (ask)auth ≈ authentication ≈ login deterministically without an LLM. A HITS authority/hub signal feeds the rerank pipeline so heavily-referenced symbols outrank shallow utility nodes, with a hub penalty that holds called-by-everything infra down. A per-keyword TaskMemory layer means a new task with similar keywords inherits learned associations from prior searches, not just exact-query matches. A keyword-soup query defense detects degenerate boolean / OR-soup phrasing, skips wasted LLM expansion, and splits the soup into BM25-fusable terms. Markdown documentation is a first-class corpus too — corpus: "docs" returns ranked README / ADR / design-doc sections. Opt-in embedding.provider: local (Hugot MiniLM-L6-v2) or api (Ollama / OpenAI, with a bounded concurrent worker pool for indexing); the vector index is persisted in the daemon snapshot so restarts re-warm in milliseconds. Optional build tags switch to ONNX or GoMLX for higher throughputanalyze kind=race_writes flags struct-field writes from inside a goroutine-reachable function whose writer has no detected lock acquisition (Lock / RLock / Acquire / WithLock / synchronized / Do recognised across Go, Rust, Java, TS, Python, C#); analyze kind=unclosed_channels flags channels with sends but no close() call from any sender or receiver, classified high / medium / low risk based on sender count + receiver presence. Rides existing EdgeSpawns / EdgeSends / EdgeRecvs / EdgeWrites / EdgeCalls edges — no LSP dependency, works on every language whose extractor emits the substrate (Go full; TS, Python, Kotlin, Rust, C# for spawns + writes). Pairs with the existing channel_ops + goroutine_spawns + field_writers producer-side analyzers. Navigation results carry the same intelligence: get_callers and analyze kind=goroutine_spawns annotate each caller / spawn target with sync_guarded (the symbol is a method on a lock-holding type — sync.Mutex / RWMutex in Go, Mutex / RwLock in Rust, ReentrantLock in Java, SemaphoreSlim in C#) and cross_concurrent (the symbol is launched across a concurrency boundary — goroutine / async / promise / worker pool), each with a short human-readable explanation and absent when not applicableanalyze kind=unsafe_patterns fans out seven tree-sitter detectors over the whole indexed file set in one call: Go panic, Rust .unwrap / .expect / panic! / todo! / unimplemented! / unreachable! / assert! (+ debug_assert*) / unsafe { } / unsafe fn, Python assert (stripped by -O in production), JS / TS throw. Filters by language / detector / severity / path_prefix; severity-ranked rows (error > warning > info) with a per-detector count summary; exclude_tests defaults to true so test asserts don't drown real findings. Each rule is also invocable individually via search_ast detector=…analyze kind=health_score aggregates coverage_pct + complexity (fan-in/out + community-crossings) + recency (last_authored) + session churn into one 0..100 value per symbol plus an A..F grade. Missing axes are skipped (not zero-imputed) so a repo with no blame enrichment still produces meaningful scores from the axes that are available. Every response carries a population distribution (mean / median / std-dev / Gini coefficient over risk inequality / per-grade counts). Pass roll_up=file or roll_up=repo for per-file / per-repo averages with min/max bands. Filters: path_prefix, kinds, grade, min_score, max_score, min_axes, limit. Sorted ascending so the worst symbols surface first under truncationstatic function over a same-name extern; C++ prefers a same-namespace candidate and walks Argument-Dependent Lookup (Koenig) namespaces harvested from the call's argument types when same-namespace lookup misses; Java pins unqualified calls to the enclosing class first, then walks the extends chain up to 8 hops; PHP resolves parent::/self::/static:: against the inheritance chain. Scope-resolved edges stamp OriginASTResolved + Meta["resolution"]="scope" so the per-edge tier surface tells scope wins from generic-locality wins. No LSP dependency on these languages — pure static analysis from the tree-sitter parseexplain_change_impact, detect_changes, flow_between step-impact, and the prompt safe_to_change / pre_commit flows all share a precomputed reach index that walks every node's incoming edges to depth 3 at index time and stamps the result on Node.Meta. Blast-radius queries become O(seeds × reach) map lookups instead of a depth-3 BFS, the representative in-edge confidence + label ride alongside each tier entry so consumers don't pay a second GetInEdges per result, and the daemon snapshot persists the index so warm-starts skip the build cost entirely. Bounded incremental rebuilds keep AnalyzeImpact correct after every file watcher patch; queries on nodes added after the last build (or any depth >3 query) transparently fall back to the live walk so consumers never see a stale resultorigin tier (lsp_resolved / lsp_dispatch / ast_resolved / ast_inferred / text_matched) plus a coarse tier label (lsp / ast / heuristic) derived from it, so agents can group or filter by provenance without recomputing the mapping; pass min_tier to get_callers, find_usages, find_implementations, flow_between, taint_paths, etc. to restrict results to compiler-verified edges for high-stakes refactors. flow_between prunes below-tier edges during BFS (no broken paths) and emits per-step origins / tiers plus a per-path worst_tier in the GCX1 wire format so reviewers see the weakest link without decoding every step. For TS/JS/JSX/TSX, the cross-file resolver consults typescript-language-server on the hot path (not just as an after-the-fact enricher), so LSP-grade precision lands on the first query rather than waiting for the enrichment pass. Opt-out with GORTEX_LSP_RESOLVER=0notifications/progress with stage messages (walking files → parsing → resolving → semantic enrichment → search index → contracts → done) so hosts show real progress bars on large reposnotifications/diagnostics (LSP publishDiagnostics fan-out; filter by min_severity / path_prefix), notifications/workspace_readiness (daemon warmup phase transitions: snapshot_loaded → parallel_parse → deferred_passes_all → global_resolve → end_batch → watcher_started → ready), notifications/daemon_health (periodic ticker — default 15 s, clampable 1 s..5 min — snapshots uptime, alloc/sys/heap, num_goroutine, num_gc, tracked_repos, sessions, lsp_alive, graph nodes/edges; only runs while ≥1 subscriber is attached), notifications/stale_refs (per-session intersect of watcher symbol-change events against the session's viewed/modified working set — fires only when a change actually touches what this session has consumed), notifications/graph_invalidated (coarse "the graph was rebuilt, drop cached results" signal fired on every re-analysis — {node_count, edge_count, reason, ts}, unfiltered). Subscriber counts + last-known states surface in graph_stats under notifications for debugging(repo, branch), so switching branches reuses each branch's cached index, and git worktrees of one repo share that base. Change detection is mtime-based by default, with an opt-in BLAKE3 Merkle-tree mode (index.merkle / GORTEX_MERKLE) that diffs by content hash — a touched-but-unchanged file is skipped. A cross-process advisory lock guards the index store against concurrent writersgortex server) — versioned /v1/* JSON API exposing all MCP tools (/v1/health, /v1/tools, /v1/tools/{name}, /v1/stats, /v1/graph, /v1/events SSE) for IDE plugins, CI, and the Next.js web UI. Localhost bind + bearer-token auth (--auth-token / $GORTEX_SERVER_TOKEN) by default; CORS configurable for separate frontend origins/mcp) — the wire format the June 2026 MCP spec locks in. One endpoint (POST/GET/DELETE /mcp), per-request session replay via Mcp-Session-Id and an in-memory streamable.SessionStore (swap for Redis to run multiple workers behind a load balancer), JSON-RPC batching, SSE upstream for server-initiated notifications, multi-server router reuse so tools/call frames still proxy across the federation. Always-on for gortex server; opt-in on the daemon via gortex daemon start --http-addr 127.0.0.1:7411 [--http-auth-token <token>]mode: definitions) for a C# / .NET (scip-dotnet) coverage helper that wants compiler-grade symbol coverage without paying for full reference ingestion; per-server command / args / env overrides in .gortex.yaml let heavyweight servers (notably jdtls) be pinned to a specific JRE. A per-language connect: { network, address, fallback_spawn } block dials an already-running language server (the one the IDE is already managing on tcp or a unix socket) instead of spawning a duplicate subprocess — the dial transport closes the carrier cleanly on shutdown without sending the LSP shutdown / exit sequence, so the IDE keeps its server alive. fallback_spawn: true opts into a spawn fallback after a failed dial; left unset, a failed dial returns a clear passive-attach error rather than racing the IDE for a port. Reconnects use exponential backoff capped at 30 s and reset the dynamic capability table on every fresh sessionindex.crash_isolation) tree-sitter extraction in worker subprocesses, so a grammar SIGSEGV / OOM / hang on one pathological file is contained: the bad file is quarantined with Meta["parse_error"], the quarantine persists across daemon restarts, and the index pass still completes. The worker pool is long-lived — reused across single-file re-indexes so the watcher path never re-spawns a worker per file. A per-file extraction budget (index.max_extract_millis), the size cap, and content-based bundled/minified-artifact detection (a minified bundle or a sourcemap is recognised by content and skipped — on by default, index.index_minified opts back in) each leave a synthetic node carrying skipped_due_to_timeout / skipped_due_to_size / skipped_due_to_minified telemetry instead of dropping the file silently. Pluggable pre-ingestion content transforms (index.transforms) rewrite bytes before parsing — built-in BOM stripping, plus user external-command processors (minified-bundle expansion, SVG/TOON, PDF→markdown) that can even re-type a file to a language its extension does not natively map tox:Class code-behind link, named controls, {Binding} expressions); .NET DI registrations + COM-interop flags on C# files; Lombok / MapStruct / Kotlin / CommunityToolkit.Mvvm source-generated members surfaced via has_generated_members. New analyze kinds — env_var_users, sql_call_sites, fixes_history (git bug-fix-commit hotspots), edge_audit (graph-completeness self-diagnostic), domain (user-pluggable TOML extractor rules), impact (quad-signal change-impact composite), named (named detector bundles from .gortex.yaml::queries), and tests_as_edges (test→code edge-layer view). pyrefly and tsgo join the language-server registryfeedback tool (action: "record" / "query") lets agents report which symbols were useful/missing. Cross-session persistence improves future smart_context quality via feedback-aware rerankingexport_context tool + gortex context CLI render graph context as portable markdown/JSON briefings for sharing outside MCP (Slack, PRs, docs, non-MCP AI tools)if_none_match on source-reading tools avoids re-transmitting unchanged symbols during iterative editingtokens_saved field on source-reading tools + session-level metrics in graph_stats (calls counted, tokens returned, tokens saved, efficiency ratio). gortex savings renders a three-bucket dashboard (Today / Last 7 days / All time) with 16-cell █/░ bars, percentage saved, raw token counts, and USD cost avoided priced against the headline model. Per-call JSONL log at <cache>/savings.jsonl powers windowed buckets and the --verbose per-tool breakdown (get_symbol_source / batch_symbols / smart_context)format: "gcx" on every list-shaped tool (~17). Auto-served as the default for known clients (Claude Code, Cursor, VS Code, Zed, Aider, Kilo Code, OpenCode, OpenClaw, Codex) when no format is passed; explicit format always wins. Median −27.4% savings vs JSON across a 20-case benchmark under tiktoken cl100k_base (Claude 3 / Opus 4 / Sonnet 4 / Haiku 4.5 / GPT-4o family) and a parallel −27.3% under Claude Opus 4.7 input-token counts (best case −38.3%), 100% round-trip integrity. Spec: docs/wire-format.md. Standalone MIT-licensed reference implementations: Go (github.com/gortexhq/gcx-go) and TypeScript (github.com/gortexhq/gcx-ts, npm @gortex/wire). Reproducible harness: bench/wire-format/ (dual-tokenizer scorecard; --use-api for exact Opus 4.7 counts via Anthropic count_tokens)format: "toon"next_cursor for the tail. Pagination, sparse fieldsets, and graceful degradation built in. Per-call caps via max_bytes and max_tokens (composable — tighter wins; ~3.5 bytes/token heuristic calibrated across JSON / TOON / GCX1). Truncation rides on the response as _truncated_by_budget / _truncated_by_tokens / _max_returned_<list> markers (JSON) or a # truncated_by_budget=true / # max_tokens=N truncated_by_tokens=true comment (GCX)smart_context can return a context_manifest (fidelity: "graded") that tiers symbols by graph distance — focus symbols at full source, their caller/callee ring as elided signature stubs, the keyword-match remainder as outline — all packed under one token_budget, with budget pressure demoting entries full → compressed → outline rather than dropping them. estimate: true projects a call's token cost before fetching; an if_none_match pack root turns a repeated call on unchanged code into a near-zero-token not_modified no-op. compress_bodies takes a keep predicate (stub a whole file except the symbols being edited); get_symbol_source / read_file take max_lines for AST-aware salience truncation — the control-flow skeleton is kept and leaf-statement runs collapse to … N lines elided … markers instead of a blind line cut. Source-returning tools attach structured omissions notes (compressed / truncated / binary / vendored / generated) so the model is never guessing about absent codectx_grep / ctx_slice / ctx_peek / head_results / ctx_stats re-cut a prior result — regex search with -A/-B/-C context and a grep-style match block, explicit line slices, head/tail previews — without re-issuing the original querygortex://stats, gortex://workspace, gortex://repos, gortex://active-project, gortex://schema, gortex://session, gortex://index-health), community / process rollups (gortex://communities, gortex://community/{id}, gortex://processes, gortex://process/{id}), and analyzer-backed summaries (gortex://report, gortex://god-nodes, gortex://surprises, gortex://audit, gortex://questions). Read-only, URI-addressable, push notifications/resources/updated after each graph re-warm — no pollinganalyze kind: "routes" / "models" / "components"KindResource (Kubernetes Deployments, Services, Ingresses, ConfigMaps, Secrets, CronJobs), KindKustomization (overlay tree), and KindImage (Dockerfile FROM targets and K8s container.image) with depends_on / configures / mounts / exposes / uses_env edges. Cross-references with code-side os.Getenv calls automatically. Surfaced via analyze kind: "k8s_resources" / "kustomize" / "images"value_flow (intra-procedural assignment / return / range), arg_of (caller arg → callee param), and returns_to (callee → assignment LHS) edges built at index time. flow_between returns ranked dataflow paths between two symbol IDs; taint_paths does pattern-driven source→sink sweeps for security auditssimilar_to edges. find_clones surfaces the clusters; find_clones {dead_only: true} yields the Gortex-unique "dead duplicates of live code" diagnostic. Gated behind the clones coverage domain (default on, threshold tunable in .gortex.yaml)tests edges carry that role, so winnow_symbols can filter "production functions only, no tests" and coverage analyzers can reason per-tier-tags llama and a configured llm.model, the ask MCP tool runs a small GGUF model in-process via llama.cpp that navigates the graph with gortex tools and returns a synthesized answer — one call replaces a long chain of search_symbols / get_callers / contracts calls. chain: true traces a request across repos (consumer → contract → provider → downstream). Falls through to direct tools when the build tag or model is absentpre_commit, orientation, safe_to_change for guided workflowsask research agent + LLM-assisted search_symbols ranking, behind a pluggable provider (local llama.cpp / Anthropic / OpenAI / Ollama). Off by default; the HTTP providers need no native dependencies. See LLM Features~/.config/gortex/config.yaml) for projects and repo lists, per-repo .gortex.yaml for guards, excludes, and local overridescheck_guards, plus an architecture: block: declarative rules: (max_fan_out dependency-cone limits, deny_callers_outside caller boundaries) and named layers: (path globs with directional allow/deny dependency lists)gortexhq/web (separate repo so it deploys independently) that talks to gortex server over /v1/*, with Sigma.js 2D graphs and five react-three-fiber 3D views (City, Strata, Galaxies, Constellation, Graph3D)gortex install --hook-mode={deny,enrich}): deny (default) has PreToolUse enrich Read/Grep/Glob/Bash with graph context and redirect by deny to Gortex MCP tools (matching Task also briefs spawned subagents with an inline tool-swap table + task-scoped smart_context); enrich never denies — PreToolUse downgrades the deny rationale to soft additionalContext and a PostToolUse hook augments the actual tool output with graph context (enclosing symbols for Grep hits, file footprints for Read, indexed-vs-unindexed summary for Glob), trading enforcement for easier onboarding. PreCompact injects a condensed orientation snapshot (index stats, recently-modified symbols, top hotspots, feedback-ranked symbols) before Claude Code compacts the conversation. Stop runs post-task diagnostics (detect_changes → get_test_targets, check_guards, analyze dead_code, contracts check on modified symbols) so the agent self-corrects before handoff. All hooks degrade silently when the server is unreachablegortex daemon start runs a single shared process that holds the graph for every tracked repo. Each Claude Code / Cursor / Kiro window connects as a thin stdio proxy over a Unix socket, getting per-client session isolation (recent activity, token stats) + cross-repo queries by default. Live fsnotify watching on every tracked repo so file edits flow into the graph without manual reload. gortex install sets up user-level config; gortex daemon install-service installs a LaunchAgent (macOS) or systemd --user unit (Linux) so the OS supervises lifecycle and auto-starts at login — no sudo required. Binaries fall back to embedded mode if the daemon isn't running; the feature is additivegortex init --skills (default on) auto-generates SKILL.md per detected community with key files, entry points, cross-community connections, and MCP tool invocations for Claude Code auto-discovery; the same routing table lands in every detected agent's per-repo instructions filegortex eval CLI — first-class evaluation harness. Subcommands: recall (fixture-driven any-hit R@1/5/20 + MRR per ranker, per-tier breakdown, p50/p95 latency, tokens-returned, optional LLM judge for CQS-style dual-judge scoring), embedders (ONNX variant comparison — size + init + embed latency + end-to-end quality across MiniLM variants, BGE, Jina; list subcommand surfaces the next-gen Python-backed model registry — EmbeddingGemma / Qwen3-Embedding-8B / NV-Embed-v2 / potion-code-16m — with availability + install hints), baselines (NDCG@10 + latency vs ripgrep / probe / colgrep / grepai / coderankembed / semble; --smoke verifies wiring without paying for heavy Python deps), quality {drift|confidence|replay|tune} (measurement infra: embedder drift detector + per-query confidence summary + ranker-config replay + rerank weight-tuning suggestion), swebench (passthrough), stdbench (CoIR / SWE-ContextBench / ContextBench standardized-benchmark loaders — Recall@K / NDCG@10 / MRR), tokens (GCX1 wire-format bench). Seed fixture at bench/fixtures/retrieval.yaml; published BM25 baseline on Gortex: R@1 42.3% · R@5 55.1% · R@20 63.5% · exact R@5 96.8%. Published reproducible benches in BENCHMARK.md; SWE-bench results template in BENCHMARK-SWE.md; methodology in docs/04-evaluation/.```bash
```bash gortex install # interactive-free: MCP + skills + slash commands + sub-agents at ~/.claude/ gortex install --start --track # also spawn the daemon and track the current directory gortex install --no-hooks # skip user-level hook installation
gortex daemon start --detach # spawn in background gortex daemon status # PID, uptime, memory, tracked repos, sessions, server roster gortex daemon stop # graceful shutdown + final snapshot gortex daemon restart # stop + start gortex daemon reload # re-read config, pick up new/removed repos gortex daemon logs -n 50 # tail the log file
```bash cd ~/projects/myapp gortex init # writes .mcp.json, .claude/settings.*, CLAUDE.md with community routing gortex init --analyze # also index first for a richer CLAUDE.md overview gortex init --no-skills # skip community-routing generation gortex init --skills-min-size 5 --skills-max 10 # tune the generator gortex init --hooks-only # (re)install repo-local hooks only, skip everything else gortex init --no-hooks # full init but skip hook installation
Setup is split into two commands — gortex install runs once per machine, gortex init runs once per repo:
gortex install writes user-level artifacts: ~/.claude.json MCP config, ~/.claude/skills/gortex-* (tool-usage skills), ~/.claude/commands/gortex-*.md (slash commands), ~/.claude/agents/gortex-*.md (Claude Code sub-agents — graph-only tool allowlist), ~/.gemini/antigravity/ Knowledge Items, and (optionally) user-level Claude Code hooks. Codebase-agnostic content lives here so it isn't duplicated into every repo.gortex init writes per-repo artifacts: .mcp.json, .claude/settings.{json,local.json}, CLAUDE.md with the codebase overview and community routing, .claude/skills/generated/ per-community SKILL.md files, and a marker-guarded community routing block in every other detected agent's per-repo instructions file (AGENTS.md, .windsurfrules, GEMINI.md, .cursor/rules/gortex-communities.mdc, etc.).After gortex install (once per machine) and gortex init (once per repo), Claude Code automatically starts Gortex via .mcp.json. The agent gets:
~/.claude/commands/ by gortex install. Three groups:/gortex-guide, /gortex-explore, /gortex-debug, /gortex-impact, /gortex-dataflow-trace, /gortex-cross-repo-usage, /gortex-co-change, /gortex-onboarding/gortex-refactor, /gortex-safe-edit, /gortex-rename, /gortex-extract-function, /gortex-fix-all, /gortex-add-test. These wrap the speculative-execution (preview_edit / simulate_chain) and LSP code-actions (get_code_actions / apply_code_action / fix_all_in_file) paths so the agent does not bypass the safety steps by calling Edit / Write directly./gortex-pr-review, /gortex-architecture-review, /gortex-quality-audit, /gortex-incident-investigation, /gortex-episode-replay. These wrap the discovery + impact + memory surfaces into ordered playbooks so postmortems, audits, and PR reviews are graph-grounded.~/.claude/skills/ by gortex install — one copy per user, used across every repo~/.claude/agents/ by gortex install. Claude Code auto-routes matching prompts to them; each runs in a fresh context window and returns a single summary, keeping the parent's context clean. Tool allowlists are pinned to gortex graph tools only — Bash / Grep / Glob are unavailable to the sub-agent by construction.gortex-search — locate code, trace call paths, explore architecturegortex-impact — assess blast radius before editing (verify_change, simulate_chain, check_guards, get_test_targets)gortex install --hook-mode — deny (default), enrich, consult-unlock (deny fallback reads only until the graph has been queried once this session), or nudge (a rate-limited soft reminder instead of a hard deny). Gortex's own MCP tools are auto-approved under the host's permissive permission modes--analyze) plus a marker-guarded community routing block written by gortex init --skillsgortex install (user-level) and gortex init (repo-level) together auto-detect and configure 14 other AI coding assistants — Kiro, Cursor, VS Code / Copilot, Windsurf, Continue.dev, Cline, OpenCode, Antigravity, Codex CLI, Gemini CLI, Zed, Aider, Kilo Code, OpenClaw. Each adapter writes only when its host is present on the machine, and every re-run is idempotent.
Tool-usage guidance for agents that have a user-level surface (Claude Code, Antigravity) lives once per user; for the rest, MCP tool descriptions carry the teaching and gortex init adds only a per-repo community-routing block — no more duplicated instructions blocks in every repo.
docs/agents.mdgortex init doctor (zero-op; --json for CI consumers)gortex init --agents=claude-code,cursor or --agents-skip=antigravity (same flags accepted by gortex install)gortex install --yes --json then gortex init --yes --json --dry-rungortex track ~/projects/backend gortex untrack backend
Two-tier config hierarchy:
~/.config/gortex/config.yaml) — projects, repo lists, active project, reference tags.gortex.yaml per repo) — guards, excludes, local overridesExcludes are layered — builtin → repo's own .gitignore → global → per-repo entry → workspace — with gitignore semantics. The repo's .gitignore is respected by default so you don't have to re-declare entries already curated for git; opt out per-workspace with respect_gitignore: false in .gortex.yaml (useful for repos that intentionally index otherwise-ignored generated code). Use !pattern in a later layer to re-include something an earlier layer excluded. Beyond .gitignore, the index walk also honors per-directory .gortexignore files (Gortex's own ignore file, a sibling to .gitignore) and ripgrep's .ignore / .rgignore — each scoped to the directory that contains it.
```yaml
active_project: my-saas
exclude: # Applies to every tracked repo - "**/.generated." - "node_modules/" # Already in the builtin baseline
repos: - path: /home/user/projects/gortex name: gortex exclude: # Extra patterns just for this repo - "results/**"
projects: my-saas: repos: - path: /home/user/projects/frontend name: frontend ref: work - path: /home/user/projects/backend name: backend ref: work - path: /home/user/projects/shared-lib name: shared-lib ref: opensource ```
synthesize_external_calls: true (opt-in, default off — set in .gortex.yaml or the global config) makes the resolver synthesize placeholder nodes for calls into un-indexed external packages or sibling services, so call-chains keep the external hop instead of terminating at the indexed boundary.
The daemon's defaults handle typical workflows without configuration. These knobs exist for monorepos, branch-heavy workflows, or filesystems without fsnotify support.
```yaml
watch: debounce_ms: 150 # per-file patch debounce (default 150)
# Storm mode — when more than N events land within the window, # switch from per-file debounced patching to a batched reconcile # that defers cross-file resolver + search work until a quiet # period has passed. Amortises the cost of bulk operations # (rsync, npm install, branch checkout, bulk format-on-save, # find-and-replace). Zero = disabled (default). storm_threshold: 0 # 0 disables; try 50 on monorepos storm_window_ms: 500 storm_quiet_period_ms: 500 ```
Environment variables:
GORTEX_RECONCILE_INTERVAL — janitor tick that walks every tracked repo and runs IncrementalReindex against disk. Insurance against fsnotify gaps on NFS/SMB mounts, inotify watch-limit exhaustion, or daemon downtime where edits happened offline. Default 1h; "0" or "off" disables; otherwise any Go duration string (e.g., 15m)..git/HEAD, so branch switches and rebases reconcile incrementally (via git diff --name-status) rather than by re-indexing every changed file individually — no configuration needed.gortex install One-time machine-wide setup (user-level MCP, skills, hooks, daemon wiring)
gortex init [path] Per-repo setup (.mcp.json, hooks, community routing, per-community SKILL.md)
gortex init doctor Zero-op drift report across all detected agents (human or --json)
gortex mcp [flags] Start the MCP stdio server (auto-detects daemon; --no-daemon / --proxy; --server adds HTTP API)
gortex server [flags] Start the HTTP/JSON API under /v1/* (--bind, --auth-token, --watch, --cors-origin)
gortex daemon <subcommand> start / stop / restart / reload / status / logs / install-service / service-status / uninstall-service / server (multi-server roster)
gortex eval <subcommand> Retrieval + token benchmarks — recall / embedders / swebench / tokens / baselines / quality (substrate; prefer `gortex bench` for the user-facing surface). `eval embedders list` shows the next-gen model registry; `eval quality {drift|confidence|replay|tune}` runs the measurement-infra analyzers; `eval baselines --against ripgrep,...` runs the NDCG@10 adapter harness
gortex eval-server [flags] HTTP server used by the swebench harness
gortex bench <subcommand> User-facing benchmark suite — recall / tokens / tokens-efficiency / embedders / perf / daemon-latency / swebench / all; `bench tokens` adds a USD-per-model card (per-day + per-month projections); `bench perf` runs the reference-repo perf table with budget gates; `bench tokens-efficiency` runs the 3-pipeline vs-ripgrep comparison with recall@k; `bench daemon-latency` measures per-MCP-tool dispatch latency (p50/p95/p99); `--out-dir DIR` writes per-run artifacts
gortex audit [flags] A-F repo health grade derived from per-symbol complexity-axis health score; emits a shields.io-style SVG (default `.gortex/badge.svg`) for the README, JSON with per-grade counts + worst-5 symbols, or a one-line `<grade> · <score>` text form
gortex gain [flags] Forward-looking per-call USD savings projection from the latest bench tokens output; optional `--since DURATION` cumulative-history slice
gortex context [flags] Generate portable context briefing for a task
gortex savings [flags] Token-savings dashboard (Today / Last 7 days / All time bars + USD avoided; --verbose, --json, --model, --utc, --reset)
gortex index [path...] Index one or more repositories and print stats
gortex status [flags] Show index status (per-repo and per-project in multi-repo mode)
gortex repos [--json] List every tracked repo with git head-commit SHA, last-indexed time, and a staleness flag
gortex track <path> Add a repository to the tracked workspace
gortex untrack <path> Remove a repository from the tracked workspace
gortex workspace <sub> list [--json] / set / set-all — manage workspace + project slugs across tracked repos
gortex config exclude ... add / list / remove entries in the effective ignore list
gortex query <subcommand> Query the knowledge graph from the CLI
gortex wiki [path] Generate a multi-page markdown wiki (per-community + processes + analysis)
gortex docs [path] Generate a "living docs" bundle (recent changes + ownership + stale + blame)
gortex export [path] Export the graph to Cypher, GraphML, or Mermaid (--format mermaid --scope all)
gortex githook <sub> install / uninstall / status — manage the post-commit hook
gortex clean Remove Gortex files from a project
gortex version Print version
gortex是一个高性能的MCP工具,支持多语言编码和智能引擎,具有强大的代码图谱分析能力,适用于需要高效编码和智能分析的开发者,评分7.5分,推荐使用。
AI Skill Hub 为第三方内容聚合平台,本页面信息基于公开数据整理,不对工具功能和质量作任何法律背书。
建议在沙箱或测试环境中充分验证后,再部署至生产环境,并做好必要的安全评估。
✅ Apache 2.0 — 宽松开源协议,可商用,需保留版权声明和 NOTICE 文件,含专利授权条款。
AI Skill Hub 点评:高性能MCP工具:gortex 的核心功能完整,质量良好。对于Claude Desktop / Claude Code 用户来说,这是一个值得纳入个人工具库的选择。建议先在非生产环境试用,再逐步推广。
| 原始名称 | gortex |
| Topics | mcpai-toolscode-analysiscode-assistant |
| GitHub | https://github.com/zzet/gortex |
| License | Apache-2.0 |
| 语言 | Go |
收录时间:2026-05-23 · 更新时间:2026-05-23 · License:Apache-2.0 · AI Skill Hub 不对第三方内容的准确性作法律背书。
选择 Agent 类型,复制安装指令后粘贴到对应客户端