{"_id":"@1e0zj/mcp-backend-trace","_rev":"3-1e0de9e606bf3dcfa1b2303af560ee0c","name":"@1e0zj/mcp-backend-trace","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@1e0zj/mcp-backend-trace","version":"1.0.0","keywords":["mcp","java","spring","call-chain","trace","controller"],"license":"MIT","_id":"@1e0zj/mcp-backend-trace@1.0.0","maintainers":[{"name":"1e0zj","email":"1038681076@qq.com"}],"bin":{"mcp-backend-trace":"dist/index.js"},"dist":{"shasum":"942dda0bdee678ddb19cc1d8a097479e0374cf99","tarball":"https://registry.npmjs.org/@1e0zj/mcp-backend-trace/-/mcp-backend-trace-1.0.0.tgz","fileCount":11,"integrity":"sha512-WbK6K7FAIf2c83QhbYG5rUUD9tY5AS/VOe5wTrh43BxETF3Llovhl5I7toD2TdOWlSbkysBHNJu1ZLFh7uJhpw==","signatures":[{"sig":"MEUCIEi+zeGaDCtWoy6vKJrUGMfVsaT8LlvvFkuI8kSgguk7AiEAiJmo/Dy+GZ9tB+n3WH5bLwgAgNXKZrsoyVRE5uQOQIQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":92227},"type":"module","gitHead":"73c9147d7c76bf7531eba3a93385a7cb6c48276a","scripts":{"dev":"npx fastmcp dev src/index.ts","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"1e0zj","email":"1038681076@qq.com"},"repository":{"url":"https://gitee.com/le0zj/mcp-backend-trace.git","type":"git"},"_npmVersion":"11.3.0","description":"MCP Server for Java backend call chain tracing — scan Controllers, trace Spring call chains, read code blocks","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-backend-trace_1.0.0_1780234138777_0.560802956384953","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@1e0zj/mcp-backend-trace","version":"1.1.0","keywords":["mcp","java","spring","call-chain","trace","controller"],"license":"MIT","_id":"@1e0zj/mcp-backend-trace@1.1.0","maintainers":[{"name":"1e0zj","email":"1038681076@qq.com"}],"bin":{"mcp-backend-trace":"dist/index.js"},"dist":{"shasum":"b768251764f7997a07a392188f49b6c9632d9355","tarball":"https://registry.npmjs.org/@1e0zj/mcp-backend-trace/-/mcp-backend-trace-1.1.0.tgz","fileCount":11,"integrity":"sha512-ubfoK+6lVEkbcZaC3M61q6BYFkqghpgevwR5VaGRZXctxQ9f8w1sTpdQ4d1WiMMcQCKuSLlJDQL0lvqntTEeiw==","signatures":[{"sig":"MEYCIQDQvP1o1gz+kSl5iUVtLNZVStGsZ3VH58pOW9sbhkCmYgIhALkOHQxn9x8pEAgAK4isWnlV8EPv1EfP+twF3th5CCAN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":107123},"type":"module","gitHead":"4b82f47fccf5d2f6adc28a396af71df6c2efd160","scripts":{"dev":"npx fastmcp dev src/index.ts","build":"tsc","start":"node dist/index.js","prepare":"npm run build"},"_npmUser":{"name":"1e0zj","email":"1038681076@qq.com"},"repository":{"url":"https://gitee.com/le0zj/mcp-backend-trace.git","type":"git"},"_npmVersion":"11.3.0","description":"MCP Server for Java backend call chain tracing — scan Controllers, trace Spring call chains, read code blocks","directories":{},"_nodeVersion":"24.14.0","dependencies":{"zod":"^3.24.0","fastmcp":"^4.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/mcp-backend-trace_1.1.0_1780235960431_0.2640548563958023","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@1e0zj/mcp-backend-trace","version":"1.2.0","description":"MCP Server for Java backend call chain tracing — scan Controllers, trace Spring call chains, read code blocks","type":"module","bin":{"mcp-backend-trace":"dist/index.js"},"scripts":{"build":"tsc","prepare":"npm run build","dev":"npx fastmcp dev src/index.ts","start":"node dist/index.js"},"dependencies":{"fastmcp":"^4.0.0","zod":"^3.24.0"},"devDependencies":{"tsx":"^4.19.0","typescript":"^5.7.0","@types/node":"^22.0.0"},"keywords":["mcp","java","spring","call-chain","trace","controller"],"license":"MIT","repository":{"type":"git","url":"https://gitee.com/le0zj/mcp-backend-trace.git"},"_id":"@1e0zj/mcp-backend-trace@1.2.0","gitHead":"833859c084ee00d26d842da001e2189169edb1d7","_nodeVersion":"24.14.0","_npmVersion":"11.3.0","dist":{"integrity":"sha512-yEFcxK1xNkgZe94raZ7EbdUsMs5wEZnZgGFF65MqtnU9ffB7I+RFj/DjBFPpxFj+k85ws95y8uHJOw5invNYEA==","shasum":"67c1738736afe53914028a739acfb9107d4de25f","tarball":"https://registry.npmjs.org/@1e0zj/mcp-backend-trace/-/mcp-backend-trace-1.2.0.tgz","fileCount":11,"unpackedSize":112287,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCcPljLK4BMAZezq2BGoqUJYdCV++Ch4+1BGfeQ1brNNgIhALsf6ofuZj5YIpPwuLw6zQ8apcS/pCDU3z1eaAt/P2ma"}]},"_npmUser":{"name":"1e0zj","email":"1038681076@qq.com"},"directories":{},"maintainers":[{"name":"1e0zj","email":"1038681076@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-backend-trace_1.2.0_1780236574827_0.8721585232535558"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-31T13:28:58.672Z","modified":"2026-05-31T14:09:35.057Z","1.0.0":"2026-05-31T13:28:58.916Z","1.1.0":"2026-05-31T13:59:20.601Z","1.2.0":"2026-05-31T14:09:34.961Z"},"license":"MIT","keywords":["mcp","java","spring","call-chain","trace","controller"],"repository":{"type":"git","url":"https://gitee.com/le0zj/mcp-backend-trace.git"},"description":"MCP Server for Java backend call chain tracing — scan Controllers, trace Spring call chains, read code blocks","maintainers":[{"name":"1e0zj","email":"1038681076@qq.com"}],"readme":"# @le0zj/mcp-backend-trace\n\nMCP Server for Java Spring Cloud 后端链路追踪。\n\n扫描 `@RequestMapping` Controller，沿 Spring 调用链追踪 Service → Feign → 子服务实现，支持跨微服务 Feign 调用链追踪。\n\n## Tools\n\n| 工具 | 说明 |\n|------|------|\n| `index_backend` | 初始化后端链路追踪索引（扫描 Controller，生成端点索引） |\n| `search_endpoints` | 按 URL / 关键词 / HTTP 方法搜索端点 |\n| `trace_call_chain` | 从 Controller 追踪完整调用链（Service → Feign → 子服务） |\n| `get_code_block` | 读取指定文件的代码块 |\n| `list_projects` | 显示当前目录的索引状态 |\n\n## Install\n\n```bash\nnpm install -g @le0zj/mcp-backend-trace\n# 或直接用 npx\n```\n\n## 快速开始\n\n### 1. 全局注册一次\n\n```bash\nclaude mcp add backend-trace -- npx @le0zj/mcp-backend-trace\n```\n\n### 2. 进到项目目录，启动 Claude Code\n\n```bash\ncd D:/code/edu-platform\nclaude\n```\n\n### 3. 直接对话\n\n```\n> 初始化后端索引\n\n> 只扫描 api-gateway 和 user-service 的 Controller\n→ index_backend({ modules: [\"api-gateway\", \"user-service\"] })\n\n> 追踪 /v3/channel/list 的调用链\n> 搜索包含 \"user\" 的端点\n> 读取 UserController.java 第 50-80 行\n```\n\n所有工具的 `project` 参数可选，默认用当前目录。\n\n## modules 参数\n\n`index_backend` 支持 `modules` 参数，只扫描指定的入口子目录。链路追踪从 Controller 入口出发即可，不需要扫描所有子项目的 Controller：\n\n```\nD:/code/edu-platform/\n├── api-gateway/       ← 入口项目，有 Controller\n├── user-service/      ← 入口项目，有 Controller\n├── order-service/     ← 内部服务，没有对外的 Controller\n└── channel-service/   ← 入口项目，有 Controller\n```\n\n```bash\n# 只扫描入口项目的 Controller（更快、结果更精准）\n> 只扫描 api-gateway、user-service 和 channel-service\n\n# 扫描全部（默认）\n> 初始化后端索引\n```\n\n## 项目结构说明\n\n每个\"项目\"是一个 **Spring Cloud 微服务集合**（一组有互相调用关系的子服务放在同一目录下）。工具会递归扫描目录下所有 `.java` 文件，自动识别跨服务 Feign 调用链。\n\n```\nD:/code/edu-platform/              ← 一个项目（cd 进这里）\n├── user-service/                  ← 微服务 A\n├── order-service/                 ← 微服务 B（Feign 调用 A）\n├── channel-service/               ← 微服务 C（Feign 调用 B）\n└── api-gateway/\n```\n\n调用链追踪示例：\n\n```\n[v3/channel/list] ChannelController.list()          ← channel-service\n├── [service] ChannelServiceImpl.queryChannels()\n│   ├── [api] UserFeignClient.getUsers()             ← Feign 跨服务调用\n│   │   └── [service] UserServiceImpl.getUsers()     ← user-service\n│   └── [mapper] ChannelMapper.selectList()\n```\n\n## 索引数据\n\n索引文件存在项目目录的 `.index/` 下，各项目独立：\n\n```\nD:/code/edu-platform/.index/controller_urls.json    ← edu-platform 的索引\nD:/code/another-system/.index/controller_urls.json  ← another-system 的索引\n```\n\n进到不同项目目录，各自维护自己的索引，互不影响。\n\n## Environment Variables\n\n| 变量 | 必须 | 说明 |\n|------|------|------|\n| — | — | 无需环境变量 |\n\n## Requirements\n\n- Node.js >= 18\n- Java source projects with Spring `@RequestMapping` annotations\n\n## License\n\nMIT\n","readmeFilename":"README.md"}