diff --git a/CHANGELOG.md b/CHANGELOG.md index 9988f21..a3ab005 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -222,6 +222,25 @@ Catalogue additions from the 2026-11-08 candidate review. - `docs/CATALOG.md`, `docs/RESEARCH.md`, and both READMEs were updated in the same change. +Catalogue additions from the 2026-11-09 candidate review. + +- One installable MCP server, smoke-checked through `scripts/smoke_mcp.py`: + `squirrelscan/squirrelscan` (pinned `npx -y squirrelscan@0.0.173 mcp`, protocol + 2025-11-25, 15 tools discovered; a website audit that returns SEO, + accessibility, performance, content and link findings written for an agent to + fix). +- Three reference-only entries: `google/elephant-goldfish-model`, a + Google-published multi-harness plugin whose ten reviewer agents draft a design + and then attack it, recorded in `spec-driven-development`; `pipelab-org/pipelock`, + an AI agent firewall that mediates egress and MCP traffic against a policy file + and emits signed action receipts, recorded in `security-tooling`; and + `iyazerski/lspyx`, a Python-only MCP bridge over `ty` and Ruff, recorded in + `lsp-bridge` next to `mcpls` and `agent-lsp`. +- The catalog now has 103 entries: 47 installable resources (22 skills, 6 rule + packs, 17 MCP servers, and 2 LSP bridges) and 56 references. +- `docs/CATALOG.md`, `docs/RESEARCH.md`, and both READMEs were updated in the + same change. + ## npm shell 0.1.1 — 2026-10-28 - Honor HTTP/HTTPS proxy environment variables for GitHub runtime downloads, diff --git a/README.md b/README.md index 38c712b..a59c7b9 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Find useful, established GitHub projects for AI assisted development, then insta The installer is written in Python, with a dedicated Python toolkit. The collection also serves web and general software development across **Claude Code, Codex, Cursor, VS Code Copilot, and OpenCode**. -The repository catalog includes **99 entries**: **46 installable resources** (22 skills, 6 rule packs, 16 MCP servers, and 2 LSP bridges) and **53 references** (agent-lsp, mcpls, 11 native language servers, and 40 other tools). Choose from **11 profiles** across **5 coding agents**. Repository `main` may include unreleased additions; `apd list --json` reports the catalog in your installed runtime. +The repository catalog includes **103 entries**: **47 installable resources** (22 skills, 6 rule packs, 17 MCP servers, and 2 LSP bridges) and **56 references** (agent-lsp, mcpls, lspyx, 11 native language servers, and 42 other tools). Choose from **11 profiles** across **5 coding agents**. Repository `main` may include unreleased additions; `apd list --json` reports the catalog in your installed runtime. ## Contents diff --git a/README.zh-CN.md b/README.zh-CN.md index c6c2ab7..a7c47d0 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -17,7 +17,7 @@ 安装器使用 Python 编写,并提供 Python 开发预设;整个集合也覆盖 Web 和通用软件开发。目前支持 **Claude Code、Codex、Cursor、VS Code Copilot 和 OpenCode**。 -仓库目录收录 **99 个条目**:**46 个可安装资源**(22 个 skills、6 套规则、16 个 MCP servers、2 个 LSP 桥接),以及 **53 个参考条目**(agent-lsp、mcpls、11 个原生语言服务、40 个其他工具)。提供 **11 种预设、5 种 coding agent** 适配。`main` 可能包含尚未发版的新增项,`apd list --json` 显示已安装 runtime 实际包含的工具目录。 +仓库目录收录 **103 个条目**:**47 个可安装资源**(22 个 skills、6 套规则、17 个 MCP servers、2 个 LSP 桥接),以及 **56 个参考条目**(agent-lsp、mcpls、lspyx、11 个原生语言服务、42 个其他工具)。提供 **11 种预设、5 种 coding agent** 适配。`main` 可能包含尚未发版的新增项,`apd list --json` 显示已安装 runtime 实际包含的工具目录。 ## 目录 diff --git a/docs/CATALOG.md b/docs/CATALOG.md index c7d6516..49c77ad 100644 --- a/docs/CATALOG.md +++ b/docs/CATALOG.md @@ -1,6 +1,6 @@ # Curated catalog / 精选目录 -Reviewed **2026-11-08**, catalog schema **2**. **99 entries**, with **46 installable/configurable integrations** and **53 reference-only tools**. The installable set contains 22 skills, 6 rule packs, 16 MCP servers, and 2 MCP-to-LSP bridges. The 15 LSP entries comprise the two installable bridges (Serena, lsp-mcp-server), the two reference-only bridges (agent-lsp, mcpls), and 11 standalone language-server references. +Reviewed **2026-11-09**, catalog schema **2**. **103 entries**, with **47 installable/configurable integrations** and **56 reference-only tools**. The installable set contains 22 skills, 6 rule packs, 17 MCP servers, and 2 MCP-to-LSP bridges. The 16 LSP entries comprise the two installable bridges (Serena, lsp-mcp-server), the three reference-only bridges (agent-lsp, mcpls, lspyx), and 11 standalone language-server references. Stars are dated repository-level snapshots, not scores for individual skills or rules. Multiple entries from ECC, Superpowers, agent-skills, or another monorepo share the same repository evidence. The executable source of truth is [`catalog.json`](../src/awesome_python_dev/data/catalog.json); every entry records its source, license, review date, and installation status. @@ -81,6 +81,7 @@ Profiles select relevant tools instead of loading every available rule and frame | [`osv-scanner`](https://github.com/google/osv-scanner) | Scan lockfiles, manifests, SBOMs, and containers across ecosystems against the OSV vulnerability database. | Reference only | 11,342 | Apache-2.0 | | [`gitleaks`](https://github.com/gitleaks/gitleaks) | Detect committed or working-tree secrets using configurable rules and allowlists. | Reference only | 30,384 | MIT | | [`skillspector`](https://github.com/NVIDIA/SkillSpector) | Scan a skill directory, MCP server, Git URL, archive, or MCP registry snapshot for prompt injection, exfiltration, credential access, obfuscation, and supply-chain risk before installing it. | Reference only | 24,520 | Apache-2.0 | +| [`pipelock`](https://github.com/pipelab-org/pipelock) | Mediate an agent's egress and MCP traffic against a policy file, scanning requests and responses and signing a receipt for every decision. | Reference only | 987 | Apache-2.0 | ## Portable agent rules @@ -111,6 +112,7 @@ Profiles select relevant tools instead of loading every available rule and frame | [`reticle`](https://github.com/reticlehq/reticle) | Verify the project's running web app from inside a real browser and get pass/fail/cannot-tell verdicts with the `file:line` behind them. | Configure MCP | 1,308 | Apache-2.0 | | [`seleniumbase`](https://github.com/SeleniumBase/SeleniumBase) | Drive a real Chrome through SeleniumBase's pure CDP mode over MCP: open pages, inspect and click elements, type, run JavaScript, manage cookies and storage, assert, and interact with CAPTCHA challenges. | Configure MCP | 13,228 | MIT | | [`dbhub`](https://github.com/bytebase/dbhub) | Execute SQL and search object schemas on PostgreSQL, MySQL, MariaDB, SQL Server, Oracle, and SQLite through a two-tool, token-efficient MCP server. | Configure MCP | 3,801 | MIT | +| [`squirrelscan`](https://github.com/squirrelscan/squirrelscan) | Audit a deployed site over MCP and the CLI and return SEO, accessibility, performance, content and link findings an agent can fix. | Configure MCP | 308 | MIT | | [`mcp-toolbox`](https://github.com/googleapis/mcp-toolbox) | Connect an agent to PostgreSQL, MySQL, SQLite, SQL Server, BigQuery, and other databases through prebuilt or hand-defined SQL tools. | Reference only | 16,792 | Apache-2.0 | | [`github-mcp`](https://github.com/github/github-mcp-server) | Official GitHub tools for repositories, issues, and pull requests. | Reference only | 33,999 | MIT | | [`chrome-devtools`](https://github.com/ChromeDevTools/chrome-devtools-mcp) | Inspect browser performance, network activity, and runtime behavior. | Reference only | 54,261 | Apache-2.0 | @@ -129,6 +131,7 @@ Profiles select relevant tools instead of loading every available rule and frame | [`lsp-mcp-server`](https://github.com/ProfessioneIT/lsp-mcp-server) | Bridge MCP clients to whichever language server a project configures, exposing navigation, references, diagnostics, completion, and edits as 29 tools. | Configure LSP bridge | 24 | MIT | | [`agent-lsp`](https://github.com/blackwell-systems/agent-lsp) | Orchestrate native language servers into batch, refactor, and speculative-edit workflows for coding agents. | Reference only | 166 | MIT | | [`mcpls`](https://bug-ops.github.io/mcpls/) | Bridge MCP to rust-analyzer, pyright, gopls, and other language servers and expose 31 code tools to agents. | Reference only | 80 | MIT OR Apache-2.0 | +| [`lspyx`](https://github.com/iyazerski/lspyx) | Answer Python definition, reference, outline, diagnostic and rename-preview queries over MCP and the CLI through `ty` and Ruff instead of a language server. | Reference only | 0 | MIT | | [`ruff`](https://docs.astral.sh/ruff/editors/) | Python linting, formatting, and the built-in Ruff language server for diagnostics and code actions. | Reference only | 50,317 | MIT | | [`pyright`](https://github.com/microsoft/pyright) | Python type checking and language-server support for navigation and diagnostics. | Reference only | 15,707 | MIT | | [`ty`](https://docs.astral.sh/ty/) | Rust-based Python type checker and language server with editor integrations; upstream labels it beta. | Reference only | 19,973 | MIT | @@ -148,6 +151,7 @@ Profiles select relevant tools instead of loading every available rule and frame | [`openspec`](https://github.com/Fission-AI/OpenSpec) | Spec-driven change workflows with per-agent skills and initialization. | Reference only | 73,139 | MIT | | [`spec-kit`](https://github.com/github/spec-kit) | Specification, planning, and implementation templates for coding agents. | Reference only | 143,181 | MIT | | [`spec-kitty`](https://github.com/spec-kitty/spec-kitty) | Keep specifications, work packages, acceptance criteria, review state, and merge decisions in the repository and run each work package in its own git worktree. | Reference only | 1,716 | MIT | +| [`elephant-goldfish`](https://github.com/google/elephant-goldfish-model) | Draft a software design and then attack it with a ten-agent review ensemble before implementation, and report drift after the change. | Reference only | 15,063 | Apache-2.0 | ## Skill ecosystems and discovery @@ -215,6 +219,7 @@ Skill and rule archives are pinned to full commits and verified against a record | `seleniumbase` | `uvx --python 3.13 --from 'seleniumbase[mcp]==4.57.1' seleniumbase-mcp` | uv/uvx; Python 3.13 pinned (the `mcp` extra needs >=3.10); a Chrome/Chromium installation is a prerequisite for the browser tools | | `dbhub` | `npx -y @bytebase/dbhub@1.5.1 --transport stdio --demo` | Node.js >=22.5 for the built-in `node:sqlite`; `--demo` serves the bundled sample SQLite database and is replaced by `--dsn` for a real database | | `mustel` | `uvx --python 3.12 --with mcp<2 --from mustel==0.3.4 mustel serve` | uv/uvx; Python 3.12 pinned (the package needs >=3.10 while this host's system Python is 3.9); published `0.3.4` leaves `mcp` uncapped, so the recipe adds `--with mcp<2`; the server analyses the directory it starts in, and its `bootstrap` tool is never called | +| `squirrelscan` | `npx -y squirrelscan@0.0.173 mcp` | Node.js >=18; the audit fetches the target site over HTTP, so the server needs network access and an explicit site per call; the hosted endpoint and the signed-in report scopes need the user's own account | - **Context7:** API keys are optional in the pinned stdio package guidance for higher limits/private repositories. Service access and policy can change independently of the package version. Configure credentials through the chosen agent; do not commit secrets. - **Playwright:** A supported browser is needed for browser operations. Configuring the server does not install browser binaries. @@ -267,6 +272,10 @@ Skill and rule archives are pinned to full commits and verified against a record - **ruler:** Applies one `.ruler/` directory (`AGENTS.md` and `ruler.toml`, with nested scopes and a global fallback) to the native files of more than thirty coding agents through the npm package `@intellectronica/ruler` (`ruler apply`, or `npx @intellectronica/ruler apply`). It writes each target's own files - `AGENTS.md`, `CLAUDE.md`, `.amazonq/rules/ruler_q_rules.md`, `firebender.json` and others for instructions; `.mcp.json`, `.cursor/mcp.json`, `.codex/config.toml`, `.gemini/settings.json`, `opencode.json` and similar for MCP servers; and the per-agent skill and subagent directories where an agent has them - and automates `.gitignore` for the generated paths. It stays reference-only because one run rewrites many native files across a project rather than writing one launch configuration or copying one reviewed skill directory. It overlaps `ai-rulez`: that entry authors, locks, signs and policy-checks one source, while this applies an existing source to every harness in a project. - **spec-kitty:** Repo-native spec-driven delivery: specifications, work packages, acceptance criteria, review state, and merge decisions live in the repository, each work package runs through lanes (`planned`, `in_progress`, `for_review`, `approved`, `done`) in its own git worktree under `.worktrees/`, and the loop is `specify -> plan -> tasks -> next -> review -> accept -> merge`, with `spec-kitty agent tasks status` for progress. It is reference-only for two reasons: `spec-kitty init` installs the slash commands and skills into every supported harness it detects on the machine (Claude Code, Codex, Cursor, Gemini, Copilot, Windsurf, OpenCode, and Codex/Vibe/Pi/Letta/Antigravity as Agent Skills), which is a machine-level change the catalog's four install types do not model, and there is no single revision to pin — the README's Team Kitty 4.x prerelease installs `spec-kitty-cli==4.0.0rc2` and states that stable launch acceptance is still pending, while the stable PyPI release is `3.2.7` (`pipx install spec-kitty-cli`, Python 3.11+). It overlaps `openspec` and `spec-kit` in intent and is recorded for the repo-native state, lanes, and worktree isolation rather than as another prompt template. Nothing was installed and no specification was created. - **cross-code-organizer:** The first entry here whose subject is the harness inventory itself rather than the project: it reports what each of Claude Code, Codex, OpenCode, and DSH will actually load per project (the effective set, not only the files on disk), accounts for context budget, edits Memory/`CLAUDE.md`/`SKILL.md` markdown in place, repairs duplicates reversibly, copies skills between harnesses, and scans MCP tool descriptions for poisoning with findings that link back to the offending server entry. It stays reference-only because it is an interactive local application — `npx @mcpware/cross-code-organizer` on Node.js 20 or newer, serving `127.0.0.1:3847` — rather than a skill directory, rule pack, MCP launch configuration, or LSP bridge, and because its npm `latest` tag still points at `0.19.3` while its own README documents `0.20.0`, which is the version skew to re-check before trusting an audit result. It reads `~/.claude/`, `$CODEX_HOME`, `~/.config/opencode/`, `$DSH_HOME`, and discovered project directories, uploads no configuration or content, and sends only an opt-in monthly activity signal containing the UTC month, a rotating pseudonymous ID, its version, and a harness ID. It is adjacent to `mcp-inspector` (protocol debugging) and `mcp-context-forge` (gateway and registry) rather than a duplicate of either. Nothing was installed or launched. +- [`squirrelscan`](https://github.com/squirrelscan/squirrelscan) is installable because its CLI publishes a pinnable npm package whose `mcp` subcommand runs the local stdio server (Node.js >=18): the pinned `npx -y squirrelscan@0.0.173 mcp` was executed through this repository's smoke script and negotiated protocol 2025-11-25, reporting `squirrelscan` 0.0.173 with 15 tools (audit and quick check, report and audit listing, issues, rules, entities and entity graphs, comparison, findings, feedback). It is recorded next to `playwright`, `reticle` and `seleniumbase` for the other half of the Web workflow: those drive or inspect a page that is still being built, this one audits a deployed site and returns findings written for an agent to fix, each pointing at the rule that produced it. The hosted endpoint (`https://mcp.squirrelscan.com/mcp`, HTTP transport) and the Claude Code plugin marketplace route stay upstream setup rather than part of the recipe, and the report, publish and comment scopes need the user's own account. Nothing was audited: no site was fetched, no report was written and no MCP tool was called. +- [`pipelock`](https://github.com/pipelab-org/pipelock) is the runtime counterpart to the static scanners already here. `gitleaks`, `SkillSpector`, `semgrep` and `osv-scanner` find secrets, unsafe content and vulnerable dependencies at rest; `pipelock` sits inline between the agent and the network (including the MCP path), scans outbound requests and inbound responses, and mediates egress against a policy file. Its README describes an ordered URL scanner pipeline (scheme, CRLF and path-traversal checks, allow/block lists, immutable SSRF and DLP floors, path/query/subdomain entropy, nested URL destinations, DNS SSRF and rebinding protection, per-domain rate limits and data budgets) with DLP running before DNS resolution, 65 built-in DLP patterns with checksum validation, 34 prompt-injection and state/control-poisoning response patterns with six-pass normalization for zero-width characters, homoglyphs and leetspeak, and mediator-signed action receipts so a decision can be verified outside the agent runtime; `pipelock demo --receipts-dir ./out` produces those receipts offline with no account. It stays reference-only because it is a Go binary distributed through source builds, release archives, containers, an attested Helm chart and a GitHub Action (`action.yml`) rather than one of the four install types, and because running it means writing a policy and wiring a proxy for each client. Caveats: the quick start in the README targets v3.8.0 and says to use those examples after the release is published, while the latest published release checked in this pass is v3.7.1, and upstream states SVID/AARP workload-identity appraisal is verifier-side today. Nothing was installed: no proxy was started, no policy was loaded and no traffic was intercepted. +- [`elephant-goldfish`](https://github.com/google/elephant-goldfish-model) is a plugin rather than a single skill, which is why it has no recipe: ten reviewer prompts live in `agents/`, and the shipped skills (`skills/egm-*/SKILL.md`, mirrored under `distributions/claude/skills/` for `bootstrap`, `brainstorm`, `draft`, `review`, `review-loop`, `resolve` and `drift-report`) read the repository-level prompts and standards. Upstream states the constraint itself: "Install the complete plugin so its skills can read the reviewer prompts and document standards." It ships per-harness manifests and rule files for Claude Code (`.claude-plugin/`), Codex (`.codex-plugin/`), Cursor (`.cursor-plugin/` plus `rules/egm.mdc`), Copilot (`com.github.copilot/`), Antigravity/Gemini (`.agents/`, `.gemini/`) and a generic `.plugin/`, with per-client setup in `docs/` (`harnesses.md`, `claude.md`, `codex.md`, `cursor.md`, `copilot.md`, `opencode.md`); the Claude route is `claude plugin marketplace add google/elephant-goldfish-model` then `claude plugin install egm@egm`. It is recorded in `spec-driven-development` next to `openspec`, `spec-kit` and `spec-kitty` for a different lever: instead of generating and gating specification documents, it runs an agent ensemble that drafts a design and then attacks it, and reports drift afterwards. Repository metadata, the README, the plugin manifests, the `agents/` and skills trees, `AI_POLICY.md` and the Apache-2.0 `LICENSE` were read in this pass; nothing was installed and no plugin, agent or skill was activated. +- [`lspyx`](https://github.com/iyazerski/lspyx) covers the one gap left in `lsp-bridge`: `serena` and `lsp-mcp-server` bridge to configured language servers, `agent-lsp` orchestrates several, and `mcpls` bridges Rust, Python and Go - none of them is Python-only and none reports through `ty`. `lspyx mcp serve` answers definition, references, outline, diagnostics and rename-preview queries from `ty` plus Ruff with a per-workspace daemon (`src/daemon/`, `src/mcp/`, `src/lsp/rename.rs`), and the CLI exposes the same answers; setup is `brew install iyazerski/tap/lspyx`, `cargo install lspyx --locked` or `install.sh`, with `ty` and Ruff in the project `.venv` or on `PATH`, and `lspyx doctor` checking the result. There is no registry package the installer can own, so it stays reference-only like the other two bridges. Caveat worth weighing: 0 stars observed on 2026-11-09 - the least-adopted entry recorded here - about seven months old, single-maintainer, MIT-licensed, with eight tagged releases (latest v0.6.0, 2026-11-07); re-check it at the next review and drop it if the lane stays unserved. Nothing was installed and no MCP session was started. MCP package/source pins identify the top-level server revision. npm/uv and upstream language-server managers may resolve additional dependencies at launch; this is not a hermetic runtime lock. diff --git a/docs/RESEARCH.md b/docs/RESEARCH.md index fd8376f..6ccb007 100644 --- a/docs/RESEARCH.md +++ b/docs/RESEARCH.md @@ -1,6 +1,6 @@ # Research and provenance -Research date: **2026-11-08**. Repository metadata was fetched with `gh api repos//`; package versions came from the npm and PyPI registries. The manifest records the snapshot date, repository stars, latest push timestamp, license, and source links. Stars belong to whole repositories: the 22 skill entries come from four upstream repositories, and the six ECC rule packs share the ECC repository snapshot. A high star count is not an independent quality score for every skill or rule. +Research date: **2026-11-09**. Repository metadata was fetched with `gh api repos//`; package versions came from the npm and PyPI registries. The manifest records the snapshot date, repository stars, latest push timestamp, license, and source links. Stars belong to whole repositories: the 22 skill entries come from four upstream repositories, and the six ECC rule packs share the ECC repository snapshot. A high star count is not an independent quality score for every skill or rule. ## Patterns adopted @@ -135,6 +135,21 @@ Rejected candidates in this pass were duplicative, stale, or uninstallable: `002 One entry was executed in this pass: the pinned `mustel` command ran from a temporary project through the repository's smoke script, so no project was analysed, no code map was generated, no IDE or hook configuration was written, and no MCP tool was called. The three references were recorded from repository metadata, upstream documentation, package metadata and license files only: nothing was installed, no repository was linted, no skill bundle was activated, and no agent was scaffolded or deployed. +## Candidate review on 2026-11-09 + +A second daily pass over recently active coding-agent skills, MCP servers and Python and web tooling added four entries after de-duplication against the previous 99: one installable MCP server (`squirrelscan/squirrelscan`) and three reference-only entries (`google/elephant-goldfish-model`, `pipelab-org/pipelock`, `iyazerski/lspyx`). + +`squirrelscan` fills the website-audit lane this catalog did not have: `playwright`, `reticle` and `seleniumbase` drive or inspect a page under development, while this one audits a deployed site and returns findings written for an agent to act on, each linking the rule that produced it across SEO, accessibility, performance, content and links. It publishes a pinnable npm package whose `mcp` subcommand runs the local stdio server, so the pinned command was executed through this repository's smoke script before admission (see the protocol check below); the hosted endpoint (`https://mcp.squirrelscan.com/mcp`, HTTP transport) and the plugin-marketplace route stay upstream setup, and the report, publish and comment scopes need the user's own account. + +`elephant-goldfish` is recorded in `spec-driven-development` next to `openspec`, `spec-kit` and `spec-kitty` with a different lever: it does not generate and gate specification documents, it runs an agent ensemble that drafts a design and then attacks it, and reports drift afterwards. Ten reviewer prompts live in `agents/`, and the shipped skills walk `egm-bootstrap`, `egm-brainstorm`, `egm-draft`, `egm-review`/`egm-review-loop`, `egm-resolve` and `egm-drift-report`. Per-harness manifests cover Claude Code, Codex, Cursor, Copilot, Antigravity/Gemini and a generic plugin layout, with setup documented per client in `docs/`; it stays reference-only because upstream states the skills read repository-level reviewer prompts and standards, so a pinned skill subtree would ship half the product. + +`pipelock` is the runtime counterpart to the scanners already recorded here: `gitleaks`, `SkillSpector`, `semgrep` and `osv-scanner` find secrets, unsafe content and vulnerable dependencies at rest, while `pipelock` sits inline between the agent and the network (including the MCP path), scans outbound requests and inbound responses, and mediates egress against a policy file. Detection is layered - an ordered URL scanner pipeline, 65 built-in DLP patterns with checksum validation running before DNS resolution, and 34 prompt-injection and state/control-poisoning response patterns with six-pass normalization - and every decision can be exported as a signed receipt with mediation metadata, with OWASP Agentic Top-15 and LLM Top-10 mappings in `docs/`. It stays reference-only because it is a Go binary distributed through source builds, release archives, containers, an attested Helm chart and a GitHub Action rather than one of the four install types. + +`lspyx` answers the remaining gap in the LSP group: the other bridges reach Python only through a general language-server client, and none reports through `ty`. `lspyx mcp serve` answers definition, references, outline, diagnostics and rename-preview queries from `ty` plus Ruff with a per-workspace daemon, and the CLI exposes the same answers. It is a Rust binary (Homebrew tap, `cargo install`, install script) that expects `ty` and Ruff in the project environment, so like `mcpls` and `agent-lsp` there is no registry package the installer can own. Its 0-star count on 2026-11-09 makes it the least-adopted entry in this catalog; it is recorded for the Python semantic-navigation lane and should be re-checked or dropped at the next review if the lane stays unserved. + +One entry was executed in this pass - the pinned `squirrelscan` launcher, through the repository smoke script - and only to protocol negotiation, so no site was audited, no report was written and no MCP tool was called. The three references were recorded from repository metadata, upstream documentation, package metadata and license files only: nothing was installed, no plugin, agent or skill was activated, no proxy or policy was loaded, no traffic was intercepted and no MCP session was started. + + ## Installable upstream evidence | Item | Evidence checked | Result | @@ -162,6 +177,7 @@ One entry was executed in this pass: the pinned `mustel` command ran from a temp The three skill/rule source archives were downloaded from `codeload.github.com` at full 40-character commits. Their SHA-256 values in the manifest were computed from the downloaded bytes. Serena instead uses an explicit Git source revision through uvx. Skill and original rule contents are upstream third-party material; catalog descriptions, selection notes, and disclosed rule adaptations are authored for this project. No upstream archive is vendored into this repository. +| Squirrelscan MCP | [Repository README](https://github.com/squirrelscan/squirrelscan/blob/main/README.md), [CLI `mcp` command](https://github.com/squirrelscan/squirrelscan/blob/main/apps/cli/src/cli/commands/mcp.ts), [npm package](https://www.npmjs.com/package/squirrelscan/v/0.0.173), [license](https://github.com/squirrelscan/squirrelscan/blob/main/LICENSE) | Published `0.0.173`; the package declares Node.js `>=18` and one `squirrel` binary whose `mcp` subcommand starts the local stdio server, which is exactly what the smoke check launched. Upstream also documents a hosted HTTP endpoint (`https://mcp.squirrelscan.com/mcp`) and a plugin-marketplace route, both outside this recipe, and report, publish and comment scopes need the user's own account. Nothing was audited: no site was fetched, no report was written and no MCP tool was called. | ## Why some tools are reference-only - [GitHub MCP Server](https://github.com/github/github-mcp-server) needs an authentication and tool-permission decision. Its official setup remains the entry point. @@ -175,8 +191,10 @@ The three skill/rule source archives were downloaded from `codeload.github.com` - [chunkhound](https://github.com/chunkhound/chunkhound) is published on PyPI and documents a stdio MCP launch, but its server did not answer `initialize` in a fresh project within the smoke window on this host: uvx first resolved Python 3.10, whose scipy build does not load on arm64 macOS, and after pinning Python 3.12 it stalled on an outbound HTTPS request during startup. Indexing is also an explicit separate step, the database is created inside the project, and semantic search or deep research needs an embedding or LLM provider. It stays a reference until the launch check passes. - [ripwire](https://github.com/redhat-et/ripwire) is ranked call-graph CLI and context tooling whose one-line install downloads a SHA-256-verified release binary, stages seventeen agent skills for every agent it detects, and can add a commit hook; its MCP server is a flag on that same binary rather than a registry package, and no npm or PyPI package of this name exists, so there is no launch command to pin and no handshake was attempted. It is recorded next to `code-review-graph`, `repomix`, and `codebase-memory-mcp` as code-context tooling with a CLI-first, offline, single-binary shape. - [mcpls](https://bug-ops.github.io/mcpls/) speaks MCP over LSP in the same way, with `rust-analyzer`, `pyright`, `gopls`, and other servers in one session. It is distributed as a Rust binary through cargo, its install script, release archives, or a container image, and needs those servers separately, so it stays reference-only as well. +- [lspyx](https://github.com/iyazerski/lspyx) is Python-only and speaks MCP over its own semantic layer instead of over a language server: `lspyx mcp serve` answers definition, references, outline, diagnostics and rename-preview queries from `ty` plus Ruff, with a per-workspace daemon and a CLI that exposes the same answers. It is distributed as a Rust binary through a Homebrew tap, `cargo install lspyx --locked` and `install.sh`, and it expects `ty` and Ruff in the project `.venv` or on `PATH` (`lspyx doctor` checks), so - like `mcpls` and `agent-lsp` - there is no registry package the installer could own and no handshake was attempted. Its 0-star count on 2026-11-09 makes it the least-adopted entry recorded here; it exists to cover the Python semantic-navigation lane that the other bridges reach only through other languages or other servers. - [codebase-memory-mcp](https://github.com/DeusData/codebase-memory-mcp) ships a native pure-C binary through its own install script, a Homebrew formula, and a Nix flake, with npm, PyPI, and Go packages that only verify and cache that runtime for the host. The documented MCP entry points at the installed executable, so no registry launch command is recorded and the wrapper path was not exercised as a launcher. Its installer also writes rules, skills, hooks, and agent configuration, which is a broader change than writing one launch configuration. - [Semgrep](https://github.com/semgrep/semgrep), [Bandit](https://github.com/PyCQA/bandit), [pip-audit](https://github.com/pypa/pip-audit), [OSV-Scanner](https://github.com/google/osv-scanner), and [Gitleaks](https://github.com/gitleaks/gitleaks) need project-specific inputs, scan scope, reviewed policies/rules, and CI decisions. Their official metadata, licensing, and setup links are recorded in the manifest. Installing security guidance does not execute a scanner or imply a clean result. OSV-Scanner and pip-audit overlap on Python dependencies; OSV-Scanner additionally covers other ecosystems, SBOMs, and container images, and its advisory lookups reach the OSV database over the network. +- [Pipelock](https://github.com/pipelab-org/pipelock) is the runtime counterpart to the scanners in the previous bullet: it sits inline between the agent and the network (including the MCP path) and mediates egress against a policy file instead of auditing a repository after the fact. Its README describes scanning HTTP/HTTPS/WebSocket, MCP and A2A traffic plus CONNECT tunnel contents (when TLS interception is enabled) for secret exfiltration, prompt injection, SSRF, tool poisoning and risky tool-call chains, and emitting mediator-signed action receipts so a decision can be verified outside the agent runtime; `docs/attacks-blocked.md`, `docs/bypass-resistance.md`, `docs/policy-spec-v0.1.md`, `docs/mediation-envelope.md`, `docs/receipts/versioning.md` and the OWASP mapping documents carry the rules, the policy schema and the receipt format, and `pipelock demo --receipts-dir ./out` produces receipts offline with no account or server. It stays reference-only because it is a Go binary distributed through source builds, release archives, containers, an attested Helm chart and a GitHub Action (`action.yml`) rather than one of the four install types, and because running it means writing a policy and wiring a proxy for each client. Nothing was installed: no proxy was started, no policy was loaded and no traffic was intercepted. - [FastMCP](https://github.com/jlowin/fastmcp) and the [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) help build integrations; they are not preconfigured MCP services. - [ai-rulez](https://github.com/Goldziher/ai-rulez) does speak MCP for configuration reports and skill serving, but its npm and PyPI packages are Go installer wrappers that fetch a native release binary, so there is no registry launch command to pin; on this host the wrapper's own download of the v5.10.0 archive timed out and retried before any handshake. It also generates files across dozens of agent targets, which the catalog's skill and rule-pack recipes do not model. It is recorded next to `skills-cli` and `awesome-copilot` as authoring and governance tooling, and [its lock file](https://github.com/Goldziher/ai-rulez/blob/main/docs/lockfile.md) is evidence for the folder layout rather than a recipe this project installs. @@ -189,6 +207,7 @@ The three skill/rule source archives were downloaded from `codeload.github.com` - [MCP Inspector](https://github.com/modelcontextprotocol/inspector) is the reference debugging client for MCP servers, not a server a project registers, and upstream publishes it on the npm `latest` tag instead of pinning a version in its own instructions, so it is recorded as the tool to use when a recipe here does not answer the handshake. - [MCP Toolbox for Databases](https://github.com/googleapis/mcp-toolbox) does publish launchable packages (`npx -y @toolbox-sdk/server --prebuilt=postgres`), but every useful launch needs database credentials the project must supply and the custom-tool path needs a `tools.yaml`; a written configuration would register a server that cannot answer its first query. This is the same reasoning that keeps GitHub's MCP server reference-only. - [Spec Kitty](https://github.com/spec-kitty/spec-kitty) keeps specifications, work packages, acceptance criteria, review state, and merge decisions in the repository and runs each work package in an isolated git worktree under `.worktrees/`, with lanes (`planned`, `in_progress`, `for_review`, `approved`, `done`), `spec-kitty agent tasks status`, and the loop `specify -> plan -> tasks -> next -> review -> accept -> merge`. It is published on PyPI (`spec-kitty-cli`, Python 3.11+, `pipx`/`uv tool install`), but `spec-kitty init` installs the slash commands and skills into every harness it detects — Claude Code, Codex, Cursor, Gemini, Copilot, Windsurf, OpenCode, and Codex/Vibe/Pi/Letta/Antigravity as Agent Skills — which is a machine-level change the catalog's four install types do not model, and there is no single revision to pin: the README's Team Kitty 4.x prerelease installs `4.0.0rc2` and states that stable launch acceptance is pending, while the stable release is `3.2.7`. It overlaps `openspec` and `spec-kit` in intent and is recorded for its repo-native state, lanes, and worktree isolation rather than as another prompt template. Nothing was installed and no mission was created. +- [Elephant Goldfish Model](https://github.com/google/elephant-goldfish-model) is a plugin rather than one skill: ten reviewer prompts in `agents/` (`bootstrap_orchestrator`, `comprehension`, `structural`, `style`, `design_critic`, `implementation_readiness`, `inventive_catalyst`, `synthesizer`, `zoom_out`, `codebase_details`) support the shipped `egm-*` skills, and upstream states the constraint directly: "Install the complete plugin so its skills can read the reviewer prompts and document standards." Because those skills read repository-level prompts and standards, a pinned skill subtree would be incomplete, so it is recorded for its adversarial design-review loop rather than as an installable recipe. Setup is per harness (`claude plugin marketplace add google/elephant-goldfish-model` then `claude plugin install egm@egm`, plus documented Codex, Cursor, Copilot and OpenCode routes in `docs/`) and the desktop listings are distribution channels this catalog does not model. Nothing was installed and no plugin, agent or skill was activated. - [Cross-Code Organizer](https://github.com/mcpware/cross-code-organizer) is a local dashboard over the harness inventory itself: it reports what Claude Code, Codex, OpenCode and DSH will actually load per project (the effective set, not only the files on disk), accounts for context budget, edits Memory/`CLAUDE.md`/`SKILL.md` markdown in place, repairs duplicates reversibly, copies skills between harnesses, and scans MCP tool descriptions for poisoning with findings that link back to the server entry. It stays reference-only because it is an interactive local application (`npx @mcpware/cross-code-organizer`, Node.js 20+, an HTTP server bound to `127.0.0.1:3847`) rather than a skill, rule pack, MCP server, or LSP bridge, and because its npm `latest` tag still points at `0.19.3` while its README documents `0.20.0` — the version skew to re-check before trusting an audit result. It reads `~/.claude/`, `$CODEX_HOME`, `~/.config/opencode/`, `$DSH_HOME`, and discovered project directories, uploads no configuration or content, and sends only an opt-in monthly activity signal (UTC month, a rotating pseudonymous ID, its version, and a harness ID). It is adjacent to `mcp-inspector` (protocol debugging) and `mcp-context-forge` (gateway and registry) rather than a duplicate of either. Nothing was installed or launched. ## Verification boundaries @@ -283,6 +302,14 @@ On **2026-11-08**, the same script checked the MCP server added that day with th The `mustel` launcher pins `--python 3.12` because the package requires Python >=3.10 while an unpinned `uvx` resolution on this host picks Python 3.9, and carries `--with mcp<2` for the same reason as `mcp-tools-py`: published `0.3.4` imports `mcp.server.fastmcp` without capping `mcp`. Its reported version is the FastMCP service version inside the package. No MCP tool was invoked, so no project was analysed, no code map was generated, no vulnerability lookup ran and no IDE or hook configuration was written. +On **2026-11-09**, the pinned `squirrelscan` launcher was checked the same way, from a temporary project so nothing else had to be installed. + +| Package pin | Reported server version | Tools discovered | Result | +| --- | --- | ---: | --- | +| `squirrelscan@0.0.173` (`mcp`) | `0.0.173` | 15 | Passed | + +The package installs one `squirrel` binary (`npx -y squirrelscan@0.0.173 mcp` starts its stdio server). The negotiated protocol was 2025-11-25 and the discovered tools were `audit_website`, `quick_check`, `get_report`, `list_audits`, `list_issues`, `get_issue`, `comment_on_issue`, `list_rules`, `get_rule`, `list_entities`, `get_entity`, `get_entity_graph`, `compare_entities`, `get_entity_findings` and `send_feedback`. No tool was invoked, so no site was fetched, no audit ran, no report was written and no account was used. + Reproduce with `uv run --no-project --python 3.12 --with mcp==2.3.0 python scripts/smoke_mcp.py`. The optional script uses a 90-second timeout per server and a temporary npm cache. It forwards only network proxy/CA settings in addition to the SDK's default subprocess environment. Initial attempts on this host exposed missing proxy forwarding and SDK 2.x field-name changes in the smoke helper; the recorded results are from clean reruns after fixing both. ### Serena bridge smoke result diff --git a/src/awesome_python_dev/data/catalog.json b/src/awesome_python_dev/data/catalog.json index 56744a7..0c1aa10 100644 --- a/src/awesome_python_dev/data/catalog.json +++ b/src/awesome_python_dev/data/catalog.json @@ -1,6 +1,6 @@ { "schema_version": 2, - "reviewed_at": "2026-11-08", + "reviewed_at": "2026-11-09", "tools": [ { "id": "systematic-debugging", @@ -2690,6 +2690,119 @@ "notes": "The first entry here whose subject is building the agent rather than tooling a Python or Web project: Agents CLI gives a coding agent seven Agent Skills that cover the ADK development lifecycle — `google-agents-cli-workflow` (lifecycle, code preservation, model selection), `google-agents-cli-adk-code` (ADK Python API: agents, tools, orchestration, callbacks, state, graph Workflow API), `google-agents-cli-scaffold`, `google-agents-cli-eval` (datasets, metrics, generate/grade, compare, analyze, optimize, LLM-as-judge), `google-agents-cli-deploy` (Agent Runtime on the Gemini enterprise platform, Cloud Run, GKE, CI/CD, secrets), `google-agents-cli-publish` (Gemini registration) and `google-agents-cli-observability` (Cloud Trace, Cloud Logging) — shipped in the same repository as a PyPI CLI (`uvx google-agents-cli setup`, package `google-agents-cli` `1.13.0`, Python >=3.11) whose commands stay usable standalone (`agents-cli create`, `scaffold enhance`, `eval`, `deploy`). The documented skill path is the same `npx skills add google/agents-cli` CLI this catalog records as `skills-cli`, with `.claude-plugin`, `plugin.json` and `gemini-extension.json` manifests for the plugin marketplaces. It is reference-only because the delivered unit is a seven-skill bundle plus a generator CLI rather than one pinnable subtree or MCP launch command, and because the parts that matter most (deployment, publishing, hosted evaluation) require the user's own Google Cloud project and credentials while only local `create`/`run`/`eval` works with an AI Studio API key. Upstream also states that its usage telemetry writes a structured log entry into the user's own Google Cloud project (command name, exit code, error class, duration). Recorded next to the other skill collections as a discovery source; nothing was installed, no project was scaffolded and no agent was deployed.", "repository": "google/agents-cli", "stars": 6315 + }, + { + "archived": false, + "category": "spec-driven-development", + "checked_at": "2026-11-09", + "description": "Agent plugin that drafts a software design and then reviews it adversarially with a team of reviewer agents across Claude Code, Codex, Cursor, Copilot, Gemini and Antigravity.", + "evidence": [ + "https://api.github.com/repos/google/elephant-goldfish-model", + "https://github.com/google/elephant-goldfish-model/blob/main/README.md", + "https://github.com/google/elephant-goldfish-model/tree/main/agents", + "https://github.com/google/elephant-goldfish-model/tree/main/distributions/claude/skills", + "https://github.com/google/elephant-goldfish-model/blob/main/.cursor-plugin/rules/egm.mdc", + "https://github.com/google/elephant-goldfish-model/blob/main/AI_POLICY.md", + "https://github.com/google/elephant-goldfish-model/blob/main/LICENSE" + ], + "homepage": "https://egm.dev", + "id": "elephant-goldfish", + "install": null, + "kind": "reference", + "last_pushed_at": "2026-11-08T13:33:11Z", + "license": "Apache-2.0", + "name": "Elephant Goldfish Model", + "notes": "A Google-published, multi-harness agent plugin for the design half of the loop, recorded in `spec-driven-development` next to `spec-kit` and `spec-kitty` with a different lever: rather than generating and gating specification documents, it runs an agent ensemble that drafts a design and then attacks it. Ten reviewer prompts live in `agents/` (`bootstrap_orchestrator`, `comprehension`, `structural`, `style`, `design_critic`, `implementation_readiness`, `inventive_catalyst`, `synthesizer`, `zoom_out`, `codebase_details`) and the shipped skills walk the loop (`egm-bootstrap`, `egm-brainstorm`, `egm-draft`, `egm-review` / `egm-review-loop`, `egm-resolve`, `egm-drift-report`). It ships per-harness manifests and rule files for Claude Code (`.claude-plugin/`, `distributions/claude/skills/*`), Codex (`.codex-plugin/`), Cursor (`.cursor-plugin/` plus `.cursor-plugin/rules/egm.mdc`), Antigravity/Gemini (`.agents/`, `.gemini/`) and Copilot (`com.github.copilot`), with per-client setup under `docs/` (`claude.md`, `codex.md`, `cursor.md`, `copilot.md`); the Claude route upstream documents is `claude plugin marketplace add google/elephant-goldfish-model` then `claude plugin install egm@egm`. It is reference-only for the reason upstream states itself - install the complete plugin so its skills can read the reviewer prompts and document standards: the skills are not self-contained, they read the repository-level `agents/` prompts, so a pinned skill subtree would be incomplete and a recipe would ship half the product. Repository metadata, README, plugin manifests, the `agents/` and `distributions/claude/skills/` trees, `AI_POLICY.md` and `LICENSE` (Apache-2.0) were read in this pass; 15k+ stars and a push the day before this review. Nothing was installed, no plugin or skill was activated and no design review was run.", + "repository": "google/elephant-goldfish-model", + "stars": 15063 + }, + { + "archived": false, + "category": "security-tooling", + "checked_at": "2026-11-09", + "description": "Inline AI-agent firewall and MCP security control that scans outbound and inbound traffic, enforces egress policy and emits signed receipts.", + "evidence": [ + "https://api.github.com/repos/pipelab-org/pipelock", + "https://github.com/pipelab-org/pipelock/blob/main/README.md", + "https://github.com/pipelab-org/pipelock/blob/main/docs/bypass-resistance.md", + "https://github.com/pipelab-org/pipelock/blob/main/docs/mediation-envelope.md", + "https://github.com/pipelab-org/pipelock/blob/main/docs/receipts/versioning.md", + "https://github.com/pipelab-org/pipelock/blob/main/docs/owasp-agentic-top15-mapping.md", + "https://github.com/pipelab-org/pipelock/releases/tag/v3.7.1", + "https://github.com/pipelab-org/pipelock/blob/main/LICENSE" + ], + "homepage": "https://pipelab.org", + "id": "pipelock", + "install": null, + "kind": "reference", + "last_pushed_at": "2026-11-09T00:03:05Z", + "license": "Apache-2.0", + "name": "Pipelock", + "notes": "An AI-agent firewall for the layer this catalog otherwise covers only statically: it sits inline between the agent and the network (and on the MCP path), scans outbound requests and inbound responses, and mediates egress against a policy file instead of auditing a repository after the fact. Detection is layered - an ordered URL scanner pipeline (scheme, CRLF and path-traversal checks, allow/block lists, immutable literal-IP SSRF and core-DLP floors, path/query/subdomain entropy analysis, nested URL destinations, DNS SSRF and rebinding protection, per-domain rate limits and data budgets), 65 built-in DLP patterns with checksum validation, and 34 prompt-injection / state-poisoning response patterns with six-pass normalization for zero-width characters, homoglyphs and leetspeak; DLP runs before DNS resolution so secrets are caught before a query leaves the proxy. Decisions can be exported as signed receipts plus mediation metadata (`docs/receipts/versioning.md`, `docs/mediation-envelope.md`) and mapped to the OWASP Agentic Top 15 and LLM Top 10, and the repository ships a GitHub Action (`action.yml`), Helm charts, Dockerfiles and a policy spec. Reference-only: it is a Go binary distributed as source builds, verified prebuilt releases, containers or a GitHub Action, not as one of this catalog's four installer types. It is the runtime counterpart of the recorded `gitleaks` and `SkillSpector` entries, which find secrets and unsafe content at rest; it is not a duplicate of them. Caveats: the README quick start targets v3.8.0 and says to use those examples after the release is published, while the latest published release checked here is v3.7.1, and upstream states AARP/SVID workload-identity appraisal is verifier-side today. No proxy was started, no policy was loaded and no traffic was intercepted in this pass.", + "repository": "pipelab-org/pipelock", + "stars": 987 + }, + { + "archived": false, + "category": "browser", + "checked_at": "2026-11-09", + "description": "Website audit CLI and stdio MCP server that returns LLM-optimized SEO, accessibility and performance findings a coding agent can fix.", + "evidence": [ + "https://api.github.com/repos/squirrelscan/squirrelscan", + "https://github.com/squirrelscan/squirrelscan/blob/main/README.md", + "https://github.com/squirrelscan/squirrelscan/blob/main/apps/cli/src/cli/commands/mcp.ts", + "https://github.com/squirrelscan/squirrelscan/tree/main/apps/cli/src/mcp/tools", + "https://www.npmjs.com/package/squirrelscan/v/0.0.173", + "https://github.com/squirrelscan/squirrelscan/blob/main/LICENSE" + ], + "homepage": "https://squirrelscan.com", + "id": "squirrelscan", + "install": { + "type": "mcp", + "command": "npx", + "args": [ + "-y", + "squirrelscan@0.0.173", + "mcp" + ], + "requirements": [ + "npx" + ], + "version": "0.0.173", + "runtime": "Node.js >=18; the audit fetches the target site over HTTP, so the server needs network access and an explicit site argument per call; the hosted HTTP endpoint and signed-in report scopes were not part of this recipe" + }, + "kind": "mcp", + "last_pushed_at": "2026-11-08T23:55:50Z", + "license": "MIT", + "name": "Squirrelscan", + "notes": "A website-audit CLI and stdio MCP server for the Web half of this catalog's scope, recorded in `browser` next to `playwright`, `reticle` and `seleniumbase`: those three drive or inspect a page a developer is still building, while this one audits a deployed site and returns findings shaped for an agent to act on (upstream states every finding carries how to fix it, in LLM-optimized output, and every rule has its own documentation page). It exposes the audit, entity, issue, report, rule and feedback tool groups over MCP (`apps/cli/src/mcp/tools/*.ts`) plus Agent Skills, and it is installable here because the CLI publishes a pinnable npm package whose `mcp` subcommand runs the local stdio server (`apps/cli/src/cli/commands/mcp.ts`, upstream issue #112): the smoke check started `npx -y squirrelscan@0.0.173 mcp` from a temporary project and negotiated `initialize` + `tools/list` (protocol 2025-11-25, the server reporting itself as `squirrelscan` 0.0.173, 15 tools: `audit_website`, `quick_check`, `get_report`, `list_audits`, `list_issues`, `get_issue`, `comment_on_issue`, `list_rules`, `get_rule`, `list_entities`, `get_entity`, `get_entity_graph`, `compare_entities`, `get_entity_findings`, `send_feedback`). The hosted endpoint (`https://mcp.squirrelscan.com/mcp`, HTTP transport) and the Claude Code plugin marketplace route stay upstream setup rather than part of this recipe, and signed-in report scopes need the user's own account. Nothing was audited: no site was fetched, no report was written and no MCP tool was called.", + "repository": "squirrelscan/squirrelscan", + "stars": 308 + }, + { + "archived": false, + "category": "lsp-bridge", + "checked_at": "2026-11-09", + "description": "MCP server and CLI that answer Python go-to-definition, references, outline, diagnostic and rename-preview queries through ty and Ruff instead of text search.", + "evidence": [ + "https://api.github.com/repos/iyazerski/lspyx", + "https://github.com/iyazerski/lspyx/blob/main/README.md", + "https://github.com/iyazerski/lspyx/tree/main/src/daemon", + "https://github.com/iyazerski/lspyx/blob/main/src/lsp/rename.rs", + "https://github.com/iyazerski/lspyx/releases/tag/v0.6.0", + "https://crates.io/crates/lspyx", + "https://github.com/iyazerski/lspyx/blob/main/LICENSE" + ], + "homepage": "https://github.com/iyazerski/lspyx", + "id": "lspyx", + "install": null, + "kind": "lsp", + "last_pushed_at": "2026-11-07T20:49:14Z", + "license": "MIT", + "name": "lspyx", + "notes": "A Python-specific bridge in `lsp-bridge`, next to the general bridges (`serena`, `lsp-mcp-server`, `agent-lsp`, `mcpls`). The difference is the semantic backend: instead of driving pyright's language server it answers go-to-definition, references, outline, diagnostics and rename-preview queries through `ty`, Astral's type checker, plus Ruff, behind one small stdio MCP server with a per-workspace daemon (`src/daemon/`, `src/lsp/rename.rs`, `src/mcp/*`), and the same answers are available from the CLI. Launch is `lspyx mcp serve` (`claude mcp add --scope user lspyx -- lspyx mcp serve`), it needs `ty` and Ruff in the project `.venv` or on `PATH` (`lspyx doctor` checks the setup), and it is distributed as a Rust binary through `brew install iyazerski/tap/lspyx`, `cargo install lspyx --locked` or an install script - so, like `mcpls` and `agent-lsp`, there is no pinned registry package the installer could own, and the pair of external tools it depends on is another reason the entry stays reference-only. Evidence read in this pass: repository metadata, README, tags, the `src/` tree, eight tagged releases with eight binary assets each (latest v0.6.0, 2026-11-07) and the MIT license. Caveat worth weighing before adopting it: it is a young, single-maintainer project with 0 stars observed on 2026-11-09, recorded because the Python semantic-navigation lane has no other bridge and its ty/Ruff backend is unrepresented in this catalog. Nothing was installed and no MCP session was started.", + "repository": "iyazerski/lspyx", + "stars": 0 } ], "profiles": {