Free for open source projects and schools. AI Council costs nothing for OSS maintainers and educational institutions. Apply →

Home / Compare / TeaRAGs-MCP

AI Council and TeaRAGs-MCP: what each one does

A feature-by-feature comparison based on the code and documentation of both projects.

In short

AI Council is a platform for development teams, cloud or self-hosted. It parses your repositories into a code graph on its own: stack, structure, dependencies and cycles, calls, data layer, architecture, DDD, patterns, style, code smells and ISO 25010 quality. On top of the graph sits the project knowledge base: decisions, notes, diagrams and changelogs. Each entry is anchored to a place in the code and to a branch, and reaches the agent when it touches that file. Conventions live separately: rules at three scopes (code entities, paths, the whole project) with MUST/SHOULD levels, states, and checks before an edit and against the diff. Around this sit review with publishing to the MR, tickets, tasks, and companies with roles and licensing. Static analysis does not use a model, but without a model that is all you get: review, knowledge review, AI chat and workspaces run through a host worker, a bridge and the vendor's CLI/OAuth. The model lives on the host, not inside the Council stack.

There are two ways to work with Council. On a developer's machine, Claude Code or Codex connects to it via MCP and hooks: project rules arrive with every message, file context on Read/Edit/Bash, and a checklist at the end of the turn. In a workspace, the task runs on a VM in an isolated sysbox container, can live for days, and a person drives it from the web UI: from analysis and diff to commit, push and MR.

TeaRAGs is a local "Codebase Intelligence" MCP server for AI agents. It indexes the repository on the user's machine and answers with a profile of the code across five layers rather than with "similar lines": what it does (semantic and hybrid search over AST chunks in Qdrant), how it connects (call and import graph in DuckDB), how it evolved (git trajectory: churn, bug-fix rate, ownership, age), whether it is laid out well (architecture detectors: stable dependencies, leaks through facades, silent coupling, shotgun surgery, main sequence) and how the project names things (a naming lexicon and verdicts on new names). It has review_changes, a five-section diff review, background auto-update, working-tree delta, and a Claude Code plugin with skills and rules. MIT license.

Of the projects we compared, it is the closest to Council in features: it also builds a graph, reads git history, judges architecture and reviews changes. But it is local and doesn't keep a knowledge base, conventions, a review service that publishes to MRs, tasks or a team model.

1. Understanding the code

AI Council TeaRAGs
What gets built Council itself parses the repositories and builds the graph. No model is called during analysis A local server: AST chunks plus embeddings in Qdrant, a call/import graph in DuckDB, git trajectory, architecture detectors, a lexicon. A model is used only for resolving leftover calls (Kev), and that is optional
When On project creation, on push to main (polling), on demand, and nightly; after the agent edits a file, the file and its dependents are recomputed On index_codebase; then incremental updates by Merkle/mtime, background auto-update (opt-in), and working-tree reads from the base index plus a delta
What it extracts Layers L0–L10: stack, structure, dependencies and cycles, metrics and calls, data (ORM, DDL), architecture and forbidden dependencies, patterns, style, DDD, files that change together, code smells, ISO 25010 quality, diagrams Five layers: semantic index, codegraph (calls, imports, hierarchy, PageRank, cycles, fan-in/out), git trajectory (churn, bug-fix, ownership, age), architecture (SDP, facade leaks, silent coupling, split/merge, shotgun surgery, main sequence, hub-like, layering, propagation cost, norms, restructure what-if), naming lexicon
What's missing — DDD bounded contexts, design patterns, code style, ISO 25010 and SonarQube; instead of code smells, it has architecture detectors and the lexicon
Languages Python, PHP, TypeScript, JavaScript, Java, Kotlin, C#, C, C++, with full layer analysis Ten verticals: TypeScript, JavaScript, Python, Ruby, Go, Java, Rust, Swift, Bash, Markdown; not all with full codegraph resolution
Multiple repositories A project made of several repositories with a shared graph A project registry (~/.tea-rags/registry.json), one collection per project; no shared graph across repositories
External analyzers SonarQube: imports its findings; its own scanner (text-based languages, JVM, .NET, .NET Framework on Windows) —
History Edges are versioned after every run; architecture_as_of shows the architecture as of a date Git trajectory (history windows, renames, blame, sessions, time anchor) and temporal co-change (bundles, bursts, significance, shotgun surgery). No architecture history by snapshot
Search Semantic and regex search, find_usages, find_path, dependency graph, similar implementations; ask_question returns excerpts from the knowledge base without a model's paraphrase Hybrid dense + BM25 search with RRF, a reranker with presets, SearchConfidence, vector/hybrid/scroll-rank/similar/symbol/outline strategies; graph tools get_callers, get_callees, find_cycles, trace_path

2. Knowledge and rules

AI Council TeaRAGs
Knowledge base Decisions, notes, Mermaid diagrams, changelogs. Each entry is anchored to code and reaches the agent when it touches that file No separate knowledge base of decisions and rationale. It has derived knowledge: an architecture report, a naming lexicon, git trajectory, diff review. That is knowledge about the code, not about team agreements
Freshness An entry holds its place in the code on its branch and goes back for re-checking when the code under it changes, the entry itself changes, a similar entry appears, or the branch is merged. The reviewer must provide a quote; the outcome is a label Drift monitors compare the index, payload schema, environment, language and trajectory versions, and the stats contract; stale knowledge about the code is handled by rebuilding the index, not by checking entries
Branches Knowledge and the graph are stored per branch; the agent sees its own branch, the parent and whatever was merged; on merge, entries move with the code A project is tied to a path and a registry entry; the working tree is read on top of a base commit. No per-branch knowledge or knowledge merging
Rules Conventions at three scopes: code entities, paths (they apply even to a file that doesn't exist yet), the whole project. MUST/SHOULD, draft, retired and deleted states. Checked before an edit and against the diff Rules are inferred from the code: the naming lexicon and role-pair norms (established dependency directions) produce CONFORMS / MISFIT / NEW_TERM / COLLISION verdicts. These are observed norms, not authoritative MUST/SHOULD, and you can't edit them as rules. Plus "how to use TeaRAGs" rules in the plugin
How it reaches the agent Claude Code hooks: project rules with every message, a wide channel before an action, file context on Read/Edit/Bash, a checklist at the end; the KB gate Four layers: prime at session start (index state, drift, thresholds), tool schemas, MCP resources with reference docs, and a search cascade in the plugin rules. All of it is about how to use TeaRAGs; there is no per-file knowledge and no KB gate
MCP Server: 61 tools, profiles, modes, XML with a size budget Server: 28 tools and 9 resources: search, indexing, codegraph, review_changes, collections/documents, project registry. Schemas are built from a live registry of presets and signals
Moving knowledge Bulk export and import of knowledge, copying between projects Project registry and indexes in Qdrant/DuckDB; no knowledge export as a bundle

3. Requirements and tasks

AI Council TeaRAGs
Requirements Traces tests to requirements by tags: coverage and gaps; "no test" is a tri-state, not requirements management —
Tickets Jira, GitHub Issues, Redmine: reading, parsing into knowledge, graph-based advice per ticket —
Working on your own machine The agent is the developer's Claude Code or Codex; Council supplies context and rules via MCP and hooks; local diff review, diff walkthrough, diff check against rules This is its main mode: an MCP server for Claude Code and other agents; a Claude Code plugin with skills (explore, architecture-diagnostics, bug-hunt, mr-review, risk-assessment and more), commands and rules
Workspace Tasks on a VM in a sysbox container, living for days; a person drives them from chat; a mentor agent; diff, commit, push, MR No tasks or workspace: local analysis and review only
PR Review with publishing to the MR (GitHub, GitLab, Bitbucket) review_changes is a pre-commit gate inside the TeaRAGs repository itself; no publishing to MRs
Process A task state machine: created, analysis, in progress, MR, closed; a person defines what happens at each step No task process. There is a DDG pre-commit gate (introduced=0, partial=false) and plugin skills

4. Verification and models

AI Council TeaRAGs
Code review A separate service: looks at what changed, a verdict for every file, a second pass, publishing to the MR without duplicates; knowledge review is separate review_changes: one call with five sections, naming, incompleteChange, cohesion, architecture, norms. Detectors judge only introduced edges and findings; preExisting is kept separate; remedy suggests a cheap fix; an empty section says plainly that it wasn't read. No publishing to MRs
Models A model is required: on the host, two processes use the vendor's OAuth: AI chat and six background jobs (review, knowledge review, ticket parsing and others). Without a model, only static code analysis remains Embeddings: Ollama by default (no key needed), plus OpenAI, Cohere, Voyage, ONNX, llama-server. Leftover call resolution uses the optional Kev (a model). Review uses deterministic detectors and the graph, no LLM
Agents Claude Code and Codex (hooks, MCP); MCP is open to any client MCP server and a Claude Code plugin; the tea-rags CLI with 14 commands (call runs a single tool in-process)
Measurement Telemetry for every MCP call and hook; an agent repeating a search signals a poor first answer SearchConfidence (score against the collection's own scale), get_index_metrics, get_index_status, drift reports, embedding benchmarks and evals/swe-bench-lite
Risks SSRF protection, RBAC, task isolation, read-only knowledge reviewer A local server without a multi-user model; keys in env; Qdrant can be external; the working tree and git history are read locally; no sandbox

5. Platform

AI Council TeaRAGs
Users Companies, members, roles (can be scoped to a project), permissions. Company API keys. Data is separated: a request without a company is rejected. License and seat limits One user, local. A project registry, but no multi-user model, roles or license
Interface About 50 pages: code, graph, branches, quality, rules, review, knowledge, tickets, tasks, MCP Live, administration, System Health MCP server (28 tools, 9 resources), the tea-rags CLI (14 commands), a Claude Code plugin with skills/commands/rules, a Docusaurus site; no separate UI
Monitoring Telemetry for every MCP call and hook without PII; about 22 Prometheus rules with tests; System Health, tracing The prime digest, drift monitors, get_index_metrics, get_index_status, logs in ~/.tea-rags/logs; no Prometheus or System Health
Self-healing Reconciles Temporal with the database, cleans up orphaned data, deletes projects in batches, nightly backup with restore check, telemetry retention Versioned collections _vN with an atomic alias, build lease, checkpoints, quarantine, scoped force with a persistent stale flag, a drift repair matrix, auto-update watcher, working-tree delta. No backup or restore check
Storage Neo4j, Qdrant, PostgreSQL per service, Temporal, NATS, Redis Qdrant (points with dense/sparse vectors and payload) plus DuckDB (codegraph) plus ~/.tea-rags (registry, snapshots, stats, quarantine, logs, models)
Isolation A sysbox container per task, one-time credentials for push, read-only knowledge reviewer, permission checks in a single gateway, SSRF protection A local process; no sandbox, keys in env, Qdrant can be external; no multi-user isolation
Delivery A distribution for self-hosted installation, or SaaS; on the developer's machine, MCP and hooks npm tea-rags, Node ≥ 22 < 26; Claude Code plugin; MIT; no separate server deployment
License Proprietary MIT

Bottom line

Of the projects we compared, TeaRAGs is the closest to Council in features. It also builds a graph, reads git history, judges architecture, checks names and reviews changes. But it is local and doesn't keep what Council keeps on top of the graph: a knowledge base of decisions, authoritative conventions, a review service that publishes to MRs, tasks on a VM, and a team with permissions.

Where TeaRAGs is stronger:

  • five layers in one local server, where the value is in the combination rather than the count: semantics, codegraph, git, architecture, lexicon (each is a pragmatic signal, not necessarily best in class);
  • architecture detectors that Council doesn't have in explicit form: an SDP check, silent coupling, shotgun surgery as a separate metric, role-pair norms and a what-if restructure. Council has Martin's metrics (instability, abstractness, distance from the main sequence), detectors for cycles, layer violations, god/hub components and scattered_functionality by co-change, but not these specific detectors, and it doesn't recompute metrics on a virtual graph;
  • review_changes: diff-scoped detectors, preExisting, remedy, the introduced=0, partial=false gate;
  • the naming lexicon and ontology report: verdicts on new names that neither types nor tests catch;
  • temporal co-change with a null hypothesis and multiple-comparison correction;
  • working-tree reads from the base index plus a delta, without re-indexing;
  • SearchConfidence, presets and a reranker;
  • a compact surface for the agent: 28 MCP tools, 9 resources (two for Qdrant collections and seven tea-rags://schema/* references), prime with live index state at session start, and search cascade as a tool selection policy. Council has 61 tools and broader coverage, but no MCP resources and no separate prime digest: its reference lives in tool schemas, a skill and hooks, and "knowledge base first, then code" is enforced by the gate;
  • MIT, fully local, Ollama by default.

Where Council is stronger:

  • Knowledge anchored to code and branches, not just to an index. An entry lives on a branch, reaches the agent when it touches the file, and goes back for re-checking when the code under it changes; the reviewer must provide a quote, the outcome is a label, and entries move on branch merge. TeaRAGs builds an architecture report and a lexicon, but has no knowledge base of decisions and rationale.
  • Conventions are authoritative rules, not observed norms. Three scopes (entities; paths, including files that don't exist yet; project), MUST/SHOULD, draft/retired/deleted states, checks before an edit and against the diff. Hooks deliver rules with every message and file context on Read/Edit/Bash; the KB gate blocks reading code until the agent has queried the knowledge base. TeaRAGs' role-pair norms and lexicon are observed, and you can't edit them as rules.
  • Code and knowledge review as a service, not a local gate. A verdict for every file, a second pass, publishing to the MR without duplicates (GitHub/GitLab/Bitbucket). A separate knowledge review checks a claim against its AST position, requires a verbatim quote, and keeps a log and calibration. TeaRAGs' review_changes is a deterministic pre-commit gate in one repository, with no MR and no knowledge.
  • Tasks on a VM, tickets, MRs, team. A task in a sysbox container lives for days and a person drives it from the UI: analysis, diff, commit, push, MR. Jira/GitHub/Redmine tickets parsed into knowledge; companies, members, roles (including per project), permissions, license and seats. TeaRAGs is a local single-user server without tasks, roles or licensing.
  • Broader quality and history layers. DDD bounded contexts, patterns, style, code smells, ISO 25010, SonarQube, architecture_as_of and versioned edges. TeaRAGs is stronger on specific architecture detectors (SDP, silent coupling, shotgun surgery, norms, what-if), but not on these layers.
  • Shared graph across repositories. One project can include several repositories with a shared graph; ask_question returns excerpts with FQNs, not a model's paraphrase. TeaRAGs keeps a project registry with one collection per project and no shared graph across repositories.
  • Platform observability and self-healing. Telemetry for every MCP call and hook without PII, repeated agent searches as a signal, about 22 Prometheus rules, System Health, tracing; Temporal reconciliation, orphaned data cleanup, backups with restore checks, retention. TeaRAGs has drift monitors and get_index_metrics, but not per-call observability or platform self-healing.
  • The model isn't a key inside the stack. Static analysis runs without a model; review, knowledge review, AI chat and workspaces go through the host worker, bridge and vendor CLI/OAuth. TeaRAGs uses local Ollama embeddings and deterministic review, which is a real strength for running locally. Deep model-based review with publishing to MRs is Council's axis.

Can they work together? Yes, they are different layers. TeaRAGs provides a local profile of the code and a deterministic pre-commit gate; Council provides knowledge, rules, model-based review with publishing to MRs, tasks and team features. Both are MCP servers, and one agent can connect to both. They overlap on architecture and review: TeaRAGs judges introduced edges and names deterministically, Council reviews the change with a model and publishes findings. A sensible setup: TeaRAGs as a fast pre-commit filter, Council for deep review and knowledge. There is no built-in integration.

Compare on your own project

Connect AI Council to one of your repositories and see the project graph, rules and review on your real code.

Made on
Tilda