mcp-wibu
Analyzes Java codebases using an internal Knowledge Graph stored in SQLite, enabling symbol search, endpoint tracing, and impact analysis without requiring AI APIs.
README
Engineering Intelligence MCP
Engineering Intelligence MCP là công cụ phân tích codebase Java bằng Knowledge Graph nội bộ. Mục tiêu là index cấu trúc dự án một lần, lưu node/edge vào SQLite, rồi để AI hoặc MCP client đọc graph có bằng chứng thay vì phải đọc từng file source.
Project này không cần API key AI và không cần graph database ngoài. Backend graph hiện tại là SQLite thông qua SQLAlchemy.
Kiến Trúc
flowchart LR
MCP[MCP Tools] --> Services[Application Services]
Services --> Analyzer[Java / Spring / MyBatis / SQL / Git Analyzers]
Services --> Repos[Repository Interfaces]
Repos --> SQLite[(SQLite)]
SQLite --> Graph[knowledge_nodes / knowledge_edges]
Graph --> Context[Graph Context Cho AI]
SQLite lưu hai nhóm dữ liệu:
- Metadata vận hành: project, repository, index run, file hash, commit, task summary.
- Knowledge Graph:
knowledge_nodesvàknowledge_edges.
MCP tools chỉ là lớp giao tiếp. Logic phân tích nằm trong service/analyzer/repository, không nằm trực tiếp trong MCP tool.
AI Được Tận Dụng Ở Đâu
Project không gọi AI API. Thay vào đó project tạo graph có cấu trúc để AI bên ngoài đọc qua MCP.
AI hoặc MCP client có thể gọi:
get_knowledge_schema: đọc loại node/edge được hỗ trợ.get_project_knowledge_map: lấy bản đồ dự án rút gọn.search_symbol: tìm endpoint, class, method, mapper, table, requirement.explain_endpoint_flow: trace REST API tới method, mapper, SQL, table/column.find_table_usage: tìm API/code đang dùng table.analyze_change_impact: phân tích impact từ một node.generate_semantic_summary_markdown: tạo file.mdtổng kết ngữ nghĩa local, không cần API key.
AI dùng kết quả JSON có evidence, confidence, resolution, warnings để giải thích. AI không tự sinh quan hệ chính.
Cài Đặt Nhanh Trên Windows
Yêu cầu:
- Windows 10/11.
- Python 3.11 trở lên.
- JDK có
javavàjavacnếu muốn index Java thật. - Git nếu muốn phân tích task/commit.
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python -m pip install -e .
copy .env.example .env
python scripts\init_sqlite_storage.py
python -m engineering_mcp.main --check
pytest
Nếu đã xóa data\engineering_intelligence.db, chạy lại:
python scripts\init_sqlite_storage.py
hoặc:
python -m engineering_mcp.main --check
Project sẽ tạo lại SQLite schema. Path sqlite:///data/engineering_intelligence.db được neo theo thư mục project MCP.
Cấu Hình
File .env.example tối thiểu:
APP_ENV=development
LOG_LEVEL=INFO
SQLALCHEMY_DATABASE_URL=sqlite:///data/engineering_intelligence.db
GRAPH_BACKEND=sqlite
REPOSITORY_ALLOWED_ROOTS=.
MCP_TRANSPORT=stdio
Khi index project Java thật, thêm thư mục project vào allow-list:
REPOSITORY_ALLOWED_ROOTS=.,C:\work\order-system
Build Java Analyzer
Java analyzer là CLI nhỏ dùng JDK Compiler Tree API, không dùng Tree-sitter.
tools\java-ast-indexer\build.bat
Chạy Demo Local
Demo tạo sample Java project, sample git history, index graph vào SQLite và export UI HTML.
python scripts\run_local_demo.py
Export UI demo tĩnh:
python scripts\export_graph_ui.py --project-id order-system --demo --output-path data\graph-ui\order-system-demo-graph.html
Mở file:
data\graph-ui\order-system-demo-graph.html
Index Project Java Thật
Ví dụ:
python scripts\index_repository.py `
--project-id order-system `
--repository-path C:\work\order-system `
--repository-id order-system-backend `
--repository-name backend
Sau khi index, export graph UI thật từ SQLite:
python scripts\export_graph_ui.py --project-id order-system --output-path data\graph-ui\order-system-graph.html
Kiểm tra một node:
python scripts\inspect_graph.py --node-id "endpoint:order-system:POST:/orders/{id}/approve" --trace --max-depth 8
Chạy MCP Server
python -m engineering_mcp.main
MCP client cấu hình command:
{
"command": "python",
"args": ["-m", "engineering_mcp.main"],
"cwd": "C:\\work\\engineering-intelligence-mcp"
}
Tạo File Markdown Tổng Kết Ngữ Nghĩa
Sau khi build Java analyzer:
python scripts\generate_markdown_summary.py `
--project-id order-system `
--repository-path C:\work\order-system `
--output-path data\reports\order-system-semantic-summary.md
File Markdown được tạo từ phân tích deterministic, không gọi AI API.
An Toàn Database Nghiệp Vụ
Project không sửa dữ liệu trong Tibero/Oracle hoặc database nghiệp vụ.
Các lớp bảo vệ hiện có:
- MCP không có tool chạy SQL tùy ý.
- Lệnh sync database chỉ đọc metadata schema/table/column bằng query cố định.
- JDBC connection phải bật được read-only mode; nếu bật thất bại thì sync dừng.
- Trước khi
cursor.execute, SQL được kiểm tra và chỉ cho phépSELECThoặcWITH. - Các keyword ghi/chỉnh sửa như
INSERT,UPDATE,DELETE,MERGE,ALTER,DROP,CREATE,TRUNCATE,CALL,EXEC,COMMIT,ROLLBACKbị chặn. - Nên dùng database account read-only, không dùng owner, DBA hoặc account ứng dụng có quyền ghi.
Project vẫn ghi vào SQLite local tại data\engineering_intelligence.db; đây là storage nội bộ để lưu metadata, Knowledge Graph, index run và cache báo cáo.
Task Git
Tìm commit theo task:
python scripts\summarize_task_changes.py `
--project-id order-system `
--repository-path C:\work\order-system `
--task-id 001
Quy tắc quan trọng: project không lấy diff range lớn từ commit đầu tới commit cuối. Nó diff từng commit match task với parent trực tiếp, rồi aggregate lại để tránh lẫn commit không liên quan.
Tài Liệu
docs/huong-dan-tung-buoc-cai-dat-mcp-ui.mddocs/huong-dan-cai-dat-windows.mddocs/huong-dan-sqlite-knowledge-graph.mddocs/architecture.mddocs/knowledge-model.mddocs/indexing-pipeline.mddocs/mcp-tools.mddocs/graph-ui.mddocs/java-analyzer.mddocs/sql-analysis.mddocs/git-task-analysis.mddocs/tibero-setup.md
Giới Hạn Hiện Tại
- Không dùng Tree-sitter.
- Không dùng SQLGlot.
- Không gọi AI API.
- Không thực thi SQL tùy ý.
- Không sửa code tự động.
- Java semantic resolution ở mức MVP, không thay thế compiler/build đầy đủ.
- SQL analyzer là conservative parser; SQL phức tạp có thể trả
PARTIALhoặcFAILED.
mcp-wibu
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。