{"$schema":"https://wellknown.network/schemas/agent-record-v1.json","schemaVersion":"1","id":"ag_n7k4yndn9bxy","handle":"ripple-impact-mcp","url":"https://wellknown.network/agents/ripple-impact-mcp","links":{"self":"https://wellknown.network/agents/ripple-impact-mcp/record.json","html":"https://wellknown.network/agents/ripple-impact-mcp","markdown":"https://wellknown.network/agents/ripple-impact-mcp/record.md","api":"https://wellknown.network/api/v1/agents/ripple-impact-mcp","status":"https://wellknown.network/api/v1/agents/ripple-impact-mcp/status","claim":"https://wellknown.network/agents/ripple-impact-mcp/claim","claimApi":"https://wellknown.network/api/v1/claims","claimDescriptor":"https://wellknown.network/agents/ripple-impact-mcp/claim.json","badge":"https://wellknown.network/agents/ripple-impact-mcp/badge.svg","openapi":"https://wellknown.network/openapi.json","history":"https://wellknown.network/api/v1/agents/ripple-impact-mcp/history","tools":"https://wellknown.network/api/v1/agents/ripple-impact-mcp/tools"},"ard":{"identifier":"urn:air::server:ripple-impact-mcp","type":"application/mcp-server-card+json"},"kind":"mcp_server","declared":{"name":"ripple-impact-mcp","summary":"Field-level semantic impact analysis for Claude Code — see the ripple effect of any code change","description":"<div align=\"center\">\n\n# Ripple-MCP\n\n**字段级语义变更影响分析 · Field-Level Semantic Change Impact Analysis**\n\n[中文](#-中文) · [English](#-english)\n\n</div>\n\n---\n\n## 🇨🇳 中文\n\n### 为什么需要 Ripple-MCP？\n\n当你想分析「修改 `machine.x/y` 语义」或「把某字段类型从 `INT` 改为 `VARCHAR`」会影响哪些代码时，传统工具无法回答：\n\n| 问题 | 示例 |\n|------|------|\n| 哪些地方直接读取了这个字段？ | `obj.x` / `obj['x']` / `obj.get('x')` |\n| 哪些地方用了这个字符串值？ | `\"success\"` / `\"failed\"` |\n| 哪些地方调用了这个函数？ | `get_eq_partition()` |\n| 哪些文件导入了这个模块？ | `from plogen_tools import ...` |\n| TypeScript / JavaScript 里哪些地方用了这个变量？ | — |\n| 改了函数 X，哪些函数直接调用了它？ | — |\n\n**Ripple-MCP 把 Claude Code 的语义理解与 ripgrep / Python AST 的机械精确性结合，覆盖 codegraph 的所有盲区。**\n\n---\n\n### 核心工具\n\n| 工具 | 说明 |\n|------|------|\n| `scan_patterns` | 通用正则扫描，支持任意语言 |\n| `analyze_python_ast` | 精准 Python AST 分析，区分属性访问 / 下标 / `.get()` |\n| `trace_callers` | 多层调用链追踪（BFS 上溯「调用者的调用者」，最多 5 层） |\n| `find_definition` | 符号定义查找（函数 / 类 / 常量，含签名与所在类） |\n| `generate_impact_report` | 语义变更影响的结构化 Markdown 报告 |\n| `get_code_context` | 带上下文的代码片段提取 |\n\n---\n\n### 安装\n\n**环境要求：** Python 3.10+\n\n```bash\npip install ripple-impact-mcp\n```\n\n> 包名为 `ripple-impact-mcp`（PyPI 上 `ripple-mcp` 已被占用），安装后的命令行入口仍是 `ripple-mcp`。\n\n或源码安装：\n\n```bash\ngit clone https://github.com/0xYubo/Ripple-Mcp.git\ncd Ripple-Mcp\npip install -e .\n```\n\n**Claude Code 集成（MCP 配置）：**\n\n```bash\n# 方式一：命令行一键添加（推荐，-s user 表示全局可用）\nclaude mcp add ripple -s user -- ripple-mcp\n```\n\n```json\n// 方式二：手动编辑 MCP 配置文件\n{\n  \"mcpServers\": {\n    \"ripple\": {\n      \"command\": \"ripple-mcp\"\n    }\n  }\n}\n```\n\n> `ripple-mcp` 是 `pip install -e .` 注册的命令行入口，等价于 `python -m field_impact_mcp`。\n\n配置完成后重启 Claude Code 即可生效。\n\n---\n\n### 使用方式\n\n无需手动调用任何工具——在 Claude Code 对话中**用自然语言描述变更意图**，Claude 会自动编排下面的工具完成分析。\n\n**字段类型变更**\n```\n分析「把 all_check 表的 survey_status_today 字段从 INT 改为 VARCHAR」\n对 /path/to/backend 的影响范围\n```\n\n**坐标语义变更**\n```\n如果把机台坐标 x/y 从左上角改为中心点，\n/path/to/project 里哪些地方需要修改？\n```\n\n**函数重命名**\n```\n把 get_eq_partition 重命名为 get_machine_partition，\n/path/to/backend 里有多少个调用点？\n```\n\n**API 路径变更**\n```\n/api/external/apiKey/refresh 改为 /api/external/ap…","publisher":null,"homepage":"https://github.com/0xYubo/Ripple-Mcp","repository":"https://github.com/0xYubo/Ripple-Mcp","version":"1.1.0","license":"MIT","protocols":["mcp"],"tags":["ast","claude","claude-code","code-analysis","field-impact","impact-analysis","mcp","mcp-server","ripple","semantic"],"pricing":null,"endpoints":[{"url":"pypi:ripple-impact-mcp","type":"package_pypi","auth":null,"probeable":false}],"skills":null,"tools":null,"extra":null,"attribution":{"kind":"pypi","name":"pypi","license":"pypi","repoUrl":"pypi","summary":"pypi","version":"pypi","description":"pypi","homepageUrl":"pypi"}},"derived":{"capabilities":[{"slug":"dev.version-control","name":"Version Control","confidence":0.745,"provenance":"derived"}],"categories":["dev"],"language":"en"},"observed":{"status":"unknown","statusReason":"Distributed as a package to run locally; no network endpoint to check.","lastOkAt":null,"lastProbedAt":null,"statusComputedAt":null,"reliability30d":null,"latestObservations":[],"tools":null,"package":{"name":"ripple-impact-mcp","registry":"pypi","observedAt":"2026-11-03T23:23:03.133Z","publishedAt":"2026-06-05T08:34:59.285680Z","latestVersion":"1.1.0"},"toolSurface":null,"endpointFacts":[]},"verification":{"claimed":false,"claimedAt":null,"proofs":[]},"provenance":{"sources":[{"source":"pypi","key":"ripple-impact-mcp","url":"https://pypi.org/project/ripple-impact-mcp/","firstSeenAt":"2026-09-10T11:27:09.130Z","fetchedAt":"2026-11-03T23:22:18.168Z","normalizedAt":"2026-11-03T23:22:18.168Z"}]},"firstSeenAt":"2026-09-10T11:27:09.130Z","updatedAt":"2026-11-03T23:23:03.133Z"}