代码智能层

Tiburcio是一个为Claude Code提供代码库智能分析的开发者工具,通过索引团队标准、架构文档和源代码到向量数据库,提供12种专用工具以实现精准、高效的代码辅助。

  • by JoaoMorais03
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 JoaoMorais03/Tiburcio

使用说明

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"]
  1. 重新索引 自上次运行以来更改的文件
  2. 清理干净 已删除/修改文件的过时向量
  3. 评论 昨天违反团队惯例的合并——标记错误、安全问题和违反标准的行为
  4. 生成测试建议 基于你的团队实际编写测试的方式

晨间简报

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.

快速开始

先决条件

选项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 <team-api-key>"

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 用于开发设置和公关流程。

许可证

麻省理工学院