Tiburcio
Developer intelligence layer for Claude Code.
Makes your AI coding assistant actually understand your codebase, conventions, and what changed overnight.
Quick Start · MCP Tools · How It Works · Configuration · Contributing
______________________________________________________________________
Tiburcio是一个MCP服务器,它为Claude Code提供了有关代码库的深入上下文。它将您的标准、架构文档、源代码和DB模式索引到一个向量数据库中,然后公开12个专门的工具,这些工具返回有针对性的、令牌高效的答案。每天晚上,它都会根据团队的惯例审查昨天的合并,并生成测试建议。
结果:Claude Code停止猜测,开始从你的实际代码库中回答。
______________________________________________________________________
问题
Claude Code功能强大但通用。它不知道:
- 您团队的编码惯例
- 您的系统架构和组件连接方式
- 昨天代码库发生了什么变化
- 哪些合并打破了团队的标准
- 你的团队实际上是如何编写测试的
开发人员最终会在每个提示中重复上下文,或者Claude Code生成的代码不符合团队约定。
解决方案
Tiburcio通过扮演 代码库智能层 Claude Code和您团队的知识之间:
- 12个MCP工具 返回紧凑、集中的答案(每次呼叫300-1500个令牌,而不是8000个)
- 夜间情报 --审查是否符合惯例,生成测试框架,标记关键问题
- 上午简报会 --“这就是一夜之间发生的变化,这就是问题所在”
- 公约执行 --Claude Code在编写代码之前检查标准
- 始终接地 --每个答案都来自你的实际文档和代码,从未产生过幻觉
______________________________________________________________________
运作原理
graph LR
subgraph Clients
CC["Claude Code (MCP)"]
UI["Chat UI (Vue 3)"]
end
subgraph Tiburcio
MCP["MCP Server (12 tools)"]
Agent["AI Agent"]
end
subgraph Storage
Qdrant["Qdrant (6 collections)"]
PG["PostgreSQL"]
Redis["Redis"]
end
CC -- MCP stdio --> MCP --> Qdrant
UI -- SSE --> Agent --> Qdrant
Agent --> PG
Agent --> Redis日间模式——按需智能
Claude Code根据需要调用MCP工具。每个工具都会返回一个专注的、令牌高效的响应:
Developer: "Write a new API endpoint for user preferences"
Claude Code (via MCP):
1. searchStandards → team's endpoint conventions (compact: 3 results, ~400 tokens)
2. getPattern → "new-api-endpoint" template (~600 tokens)
3. searchCode → existing similar endpoints (~500 tokens)
→ Writes code that matches YOUR conventions, YOUR patterns, YOUR architecture.夜间模式——隔夜智能
flowchart LR
A["2 AM Cron"] --> B["Incremental Reindex"]
B --> C["Clean Stale Vectors"]
C --> D["Review Merges"]
D --> E["Generate Test Suggestions"]- 重新索引 自上次运行以来更改的文件
- 清理干净 已删除/修改文件的过时向量
- 评论 昨天违反团队惯例的合并——标记错误、安全问题和违反标准的行为
- 生成测试建议 基于你的团队实际编写测试的方式
晨间简报
Developer: "What should I know this morning?"
Claude Code (via MCP):
1. getNightlySummary → "3 merges reviewed, 1 CRITICAL issue in PaymentService,
2 warnings, 2 files need tests"
→ Developer knows exactly what needs attention before writing a single line of code.______________________________________________________________________
快速开始
先决条件
- 22+和 10+
- 码头工人 Docker Compose
- 什么之中的一个:
- 奥拉玛 (本地推理,零个API调用-默认) - 任何与OpenAI兼容的端点: vLLM, 开放路由, LM 工作室等等。
选项A:本地模型(Ollama)--默认值
git clone https://github.com/JoaoMorais03/tiburcio.git
cd tiburcio
cp .env.example .env
# Edit .env — MODEL_PROVIDER=ollama (no API key needed)
docker compose --profile ollama up -d
# Pull models (first time only):
docker exec ollama ollama pull qwen3:8b
docker exec ollama ollama pull nomic-embed-text选项B:OpenRouter(无本地型号,建议团队使用)
git clone https://github.com/JoaoMorais03/tiburcio.git
cd tiburcio
cp .env.example .env
# Edit .env — fill in your INFERENCE_API_KEY from https://openrouter.ai
# Defaults: qwen/qwen3-8b (LLM) + qwen/qwen3-embedding-8b (embeddings)
# MCP-only (no frontend):
docker compose up db redis qdrant backend -d
# Full stack (with chat UI):
docker compose up -d等待所有服务变得健康(docker compose ps).MCP工具立即可用。对于聊天UI,打开 http://localhost:5174。数据库迁移在首次启动时自动运行。
可观察性(可选): 要跟踪工具调用计数、令牌使用情况和每个模型的成本,请启动Langfuse: docker compose --profile observability up -d --然后打开http://localhost:3001.连接克劳德代码
选项1:本地(stdio)-用于单独开发:
cd backend
claude mcp add tiburcio -- npx tsx src/mcp.ts选项2:HTTP/SSE——用于共享团队部署:
集 TEAM_API_KEY 在你的 .env,然后每个开发人员连接:
claude mcp add tiburcio \
--transport sse \
--url http://your-server:3333/mcp/sse \
--header "Authorization:Bearer "Claude Code现在有12个专用工具。问任何关于你的代码库的问题。
开发模式
pnpm install
docker compose up db redis qdrant -d
cp .env.example .env # configure your model provider
cd backend && pnpm db:migrate # run database migrations
cd .. && pnpm dev # backend + frontend dev servers______________________________________________________________________
MCP工具
12个工具,每个工具都旨在返回重点答案(默认情况下为紧凑模式):
| 工具 | 它的作用 | 关键过滤器 |
|---|---|---|
searchStandards | 团队编码惯例和最佳实践 | category:后端、前端、数据库、集成 |
searchCode | 源代码语义含义(混合搜索) | language:java、ts、vue、sql· layer:20值枚举· repo |
getArchitecture | 系统架构和组件流程 | area:身份验证、请求、批处理、通知、。.. |
searchSchemas | 数据库表文档和关系 | tableName |
searchReviews | 每晚代码审查的见解和问题 | severity · category · since |
getTestSuggestions | 人工智能通过夜间分析生成测试支架 | language · since |
getPattern | 代码模板(列表或按名称获取) | name |
getNightlySummary | 早间简报——合并、问题、测试缺口 | daysBack |
getChangeSummary | “我错过了什么?”--按区域和严重程度分组 | since:1d、7d、2w· area |
getFileContext | 在修改文件之前获取开发上下文:在一次调用中获取约定、审查结果和依赖关系信息。 | filePath, scope |
validateCode | 通过LLM根据团队约定验证代码段。检查 validated:true 信任之前 pass:true. | code, filePath, language |
getImpactAnalysis | 跟踪哪些文件/函数/类依赖于目标。在重构之前使用,以了解爆炸半径。需要Neo4j。 | target, targetType, depth, repo |
代币效率
每个工具默认为 紧凑模式 --针对Claude Code的上下文窗口优化的最小、集中的响应:
| 模式 | 令牌/调用 | 结果 | 用例 |
|---|---|---|---|
| 紧凑(默认) | 300-1500 | 3个结果,仅摘要 | MCP工具调用,快速查找 |
满(compact: false) | 2000-8000 | 5-8个结果,内容完整 | 深入挖掘,详细分析 |
设计原则
- 指南针,不是百科全书 --将Claude Code指向正确答案,不要丢弃整个文档
- 恢复指导 --每个空结果都建议使用其他工具或搜索词
- MCP注释 --所有工具声明
readOnlyHint: true+openWorldHint: false - 混合搜索 --密集向量(余弦)+BM25稀疏向量与码块RRF融合
- 有效载荷截断 --限制大字段以减少令牌开销
______________________________________________________________________
添加您的知识库
替换以下内容 standards/ 使用您团队的文档:
standards/
architecture/ # System design docs (auth flows, data pipelines, etc.)
backend/ # Backend coding conventions
frontend/ # Frontend conventions
database/
schemas/ # Table-by-table documentation
patterns/ # Code templates ("new API endpoint", "new Vue page")
integration/ # Git workflow, CI/CD, deployment docs然后重新索引:
# Via admin API (login first via the UI for httpOnly cookie auth)
curl -X POST http://localhost:5174/api/admin/reindex --cookie "token=$TOKEN"
# Or via CLI
cd backend
pnpm index:standards
pnpm index:codebase # set CODEBASE_REPOS in .env first
pnpm index:architecture______________________________________________________________________
建筑
技术栈
| 层 | 技术 |
|---|---|
| MCP 服务器 | @模型上下文协议/sdk (stdio+HTTP/SSE传输,12个工具) |
| 代理/工作流 | Vercel AI SDK v6 (generateText 工具) |
| LLM | 奥拉马(qwen3:8b,默认)或任何OpenAI兼容端点(vLLM、OpenRouter等)通过 MODEL_PROVIDER |
| 嵌入 | 奥拉马(nomic-embed-text768昏暗)或兼容OpenAI(text-embedding-*,可配置调光) |
| 排名 | Qdrant RRF融合(密集+BM25倒秩融合) |
| 矢量数据库 | Qdrant --6个集合,余弦相似度 |
| 后端 | 荣誉 +Node.js 22 |
| 前端 | 视图3 +Vite+顺风CSS v4 |
| 数据库 | PostgreSQL 17+ Drizzle ORM |
| 认证 | httpOnly cookie JWT(HS256)+刷新令牌轮换+bcrypt |
| 工作 | BullMQ +Redis(夜间cron) |
| 可观测性 | Langfuse(自托管)——跟踪MCP工具调用、LLM生成(聊天、嵌入、上下文化、夜间审查)和后台作业。集 LANGFUSE_PUBLIC_KEY + LANGFUSE_SECRET_KEY 激活。 |
| 测试 | Vitest --171+测试(141后端+30前端) |
Qdrant系列
| 收藏 | 索引内容 | 搜索类型 |
|---|---|---|
standards | 团队惯例、最佳实践 | 密集 |
code-chunks | 源代码(通过树保姆进行AST分块) | 混合(密集+BM25 RRF) |
architecture | 系统架构文档 | 密集 |
schemas | 数据库表文档 | 密集 |
reviews | 夜间代码审查见解 | 密集 |
test-suggestions | AI生成的测试支架 | 密集 |
服务
| 服务 | 端口 | 用途 |
|---|---|---|
| 前端 | 5174 | 聊天UI(nginx,代理 /api 到后端) |
| 后端 | 3333 | API+代理+MCP工具 |
| PostgreSQL | 5555 | 用户、对话、消息 |
| Qdrant | 6333 | 矢量搜索+仪表板 |
| Redis | 6379 | 速率限制+作业队列 |
| Langfuse | 3001 | LLM可观测性(可选) |
| Ollama | 11434 | 局部推理(可选, --profile ollama) |
项目结构
tiburcio/
backend/
src/
config/ # Environment, logger, Redis client
db/ # Drizzle schema, connection, migrations
indexer/ # Code chunker, embedding, indexing pipelines
jobs/ # BullMQ background jobs + nightly cron
mastra/
tools/ # 12 RAG tools (Qdrant vector search)
workflows/ # Nightly review workflow
infra.ts # Shared singletons (qdrant client, ensureCollection)
middleware/ # Rate limiters (global, auth, chat)
routes/ # HTTP routes (auth, chat, admin, MCP SSE)
mcp.ts # MCP stdio server for local Claude Code
server.ts # HTTP server entry point
scripts/ # CLI indexing scripts
frontend/
src/
components/ # UI primitives + chat components
lib/ # API client, Vue Query, web vitals
stores/ # Pinia stores (auth, chat, rate-limit)
views/ # Page components (Auth, Chat)
standards/ # Your team's knowledge base (docs go here)
docs/ # Changelog, contributing guide, roadmap______________________________________________________________________
配置
所有配置均通过环境变量进行。看 .env.example 查看完整列表。
模型提供商
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
MODEL_PROVIDER | 没有 | ollama | ollama (本地)或 openai-compatible (vLLM、OpenRouter等) |
Ollama(本地--默认)
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
OLLAMA_BASE_URL | 没有 | http://ollama:11434 | Ollama服务器URL |
OLLAMA_CHAT_MODEL | 没有 | qwen3:8b | Ollama聊天模型 |
OLLAMA_EMBEDDING_MODEL | 没有 | nomic-embed-text | Ollama嵌入模型 |
OpenAI兼容端点(vLLM、OpenRouter、LM Studio等)
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
INFERENCE_BASE_URL | 是(如果兼容openai) | -- | openai兼容端点的基本URL |
INFERENCE_API_KEY | 端点没有 | - | neneneba API键(如果需要) |
INFERENCE_MODEL | 是(如果兼容openai) | -- | 聊天模式标识符 |
INFERENCE_EMBEDDING_MODEL | 否 | -- | 嵌入模型标识符 |
EMBEDDING_DIMENSIONS | 否 | 自动检测 | 768(Ollama)或4096(openai兼容)-如果需要,请覆盖 |
图形层(可选)
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
NEO4J_URI | 无 | -- | Neo4j连接URI。省略禁用 getImpactAnalysis. |
NEO4J_PASSWORD | 是(如果设置了NEO4J_URI) | -- | NEO4J密码 |
基础设施
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
DATABASE_URL | 是 | -- | PostgreSQL连接字符串 |
JWT_SECRET | 是 | -- | 最少32个字符(openssl rand -base64 32) |
REDIS_URL | 没有 | redis://localhost:6379 | Redis连接字符串 |
QDRANT_URL | 没有 | http://localhost:6333 | Qdrant服务器URL |
PORT | 没有 | 3000 | 后端服务器端口 |
NODE_ENV | 没有 | development | 环境模式 |
CORS_ORIGINS | 没有 | http://localhost:5173,http://localhost:5174 | 逗号分隔的允许来源 |
DISABLE_REGISTRATION | 没有 | false | 设置为 true 防止新用户在初始团队设置后自行注册 |
MCP HTTP/SSE传输
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
TEAM_API_KEY | 用于HTTP MCP | -- | MCP SSE身份验证的承载令牌(openssl rand -base64 32) |
代码库索引
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
CODEBASE_HOST_PATH | 否 | -- | 项目根目录的主机路径(Docker卷装载) |
CODEBASE_REPOS | 否 | -- | 重新存储到索引: name:path:branch (逗号分隔) |
可观测性
Langfuse为LLM调用、MCP工具调用和后台作业提供了完全的可观察性。启动Langfuse并设置按键以激活:
| 变量 | 必填 | 默认 | 描述 |
|---|---|---|---|
LANGFUSE_PUBLIC_KEY | 否 | -- | Langfuse公钥 |
LANGFUSE_SECRET_KEY | 否 | -- | Langfuse密钥 |
LANGFUSE_BASE_URL | 否 | -- | Langfuse服务器URL |
默认凭据
| 服务 | URL | 登录 | 密码 |
|---|---|---|---|
| 廊坊 | http://localhost:3001 | admin@tiburcio.local | admin123 |
| Qdrant | http://localhost:6333/dashboard | 无身份验证 | -- |
______________________________________________________________________
测试
cd backend && pnpm test # 137 tests
cd frontend && pnpm test # 30 tests
cd backend && pnpm check # biome lint + tsc
cd frontend && pnpm check # biome lint + vue-tsc所有测试都使用模拟运行,不需要外部服务。
______________________________________________________________________
路线图
- 事件驱动的新鲜感 --webhook触发索引,\<10分钟新鲜度保证
- 公约监护人 --惯例评分、漂移跟踪、周报
- 多租户支持 --按团队Qdrant命名空间
- 远程仓库克隆 --通过git URL索引仓库,无需本地路径
______________________________________________________________________
Claude代码设置
该项目包括 CLAUDE.md 配置文件,为Claude Code提供有关架构、命令、模式和陷阱的完整上下文。克隆仓库,克劳德就可以工作了。
对于MCP集成:
cd backend
claude mcp add tiburcio -- npx tsx src/mcp.ts______________________________________________________________________
贡献
看 贡献.md 用于开发设置和公关流程。
