ProjectBrain
ProjectBrain is a local project cognition layer that helps AI coding agents understand project context before making code changes, operating entirely on local files without uploading source code.
Import Projects: Index a local repository by importing CodeGraph facts (nodes, edges, symbols) into the local ProjectBrain store.
List Projects: View all projects imported into the local ProjectBrain store.
Inspect Output Policy: Check the local output policy for a project, including denied paths, output limits, and snippet inclusion rules.
Add Experience Claims: Record human knowledge as structured claims with support for risk levels (low/medium/high/critical), claim types, and review states.
List Experience Claims: Retrieve all experience claims for a project, optionally including archived ones.
Review/Update Experience Claims: Update the review metadata, statement, risk level, or type of an existing claim.
Archive Experience Claims: Soft-delete a claim while retaining it in storage.
Build Context Pack: Generate a task-scoped context pack containing relevant files, symbols, workflows, risks, and annotations, in JSON or compact agent-friendly format.
Impact Analysis: Analyze the likely impact of changes to specified files or symbols, returning affected files, call chains, dependencies, tests, and review risks.
Git Diff Impact Review: Analyze the impact of local Git changes (staged, last commit, or between refs) based on changed file names — without reading or uploading source code bodies.
Provides tools for reviewing Git diffs (staged, branch, last-commit) and analyzing the impact of changes on the project, including changed file detection and impact analysis.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ProjectBrainGenerate a context pack for checkout refactoring"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
ProjectBrain 是一个本地项目认知层,帮助 AI 编程智能体在修改代码前理解项目背景。
它将代码结构事实与人工经验转化为任务范围的制品,供 AI 智能体使用:
Context Pack:与当前任务相关的文件、符号、流程、风险和人工注释。
Impact Analysis:某次变更可能影响的文件、符号、调用链、依赖、测试和审查风险。
Git Diff Impact:基于 Git 变更文件的本地变更影响分析。
Project Brain:从 Codex 会话中自动提取知识单元,支持人工确认与检索。
ProjectBrain 不是代码搜索 UI,不是通用 RAG 聊天机器人,也不会自动修改代码。
状态
原型 / 本地 MVP。
当前能力:
CodeGraph SQLite 适配器
ProjectBrain JSON Schema 模型与校验
Context Pack 构建器
Impact Analysis 构建器
基于 Git 变更文件的 Git diff 影响分析
智能体友好的紧凑输出格式
本地经验声明(claim)创作
JSON 文件本地运行时
本地 stdio MCP 服务器
Project Brain 知识单元存储与管理
可选 FastAPI API 与暗色系 Brain Explorer UI
合成公开演示数据
examples/payment-mini/
Related MCP server: codemap
快速上手
使用 Homebrew 安装:
brew tap yinshaojun001/projectbrain https://github.com/yinshaojun001/projectbrain
brew trust yinshaojun001/projectbrain
brew install projectbrain
projectbrain doctor
codex-brain --help或从源码安装:
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/projectbrain doctor运行测试:
python3 -m unittest discover -s tests与自己的项目配合使用
一条命令初始化项目:
projectbrain --store-root ~/.projectbrain-work setup /path/to/my/project \
--id my_projectsetup 会运行 CodeGraph 索引、导入 ProjectBrain 事实、执行 Context Pack 冒烟测试,并提示安装 MCP 服务器到 Codex CLI、Claude Code、Cursor、Trae 等支持的智能体。
生成 Context Pack:
projectbrain context my_project "解释结算入口" --format agent生成 Impact Analysis:
projectbrain impact my_project "修改结算合约" \
--changed-file src/settlement/SettlementService.java
projectbrain impact-diff my_project "审查暂存变更" --staged --format agent添加人工经验声明:
projectbrain claim add my_project \
--id exp_checkout \
--applies-to checkout \
--risk high \
--review-state approved \
--claim-type HUMAN_CONFIRMED \
--statement "结账校验变更需要兼容性审查。"Brain Explorer(知识管理)
启动本地 API 服务后,在浏览器打开:
http://127.0.0.1:8000/ui/projects/<project_id>/brain可以:
浏览已确认的知识单元(按类型分组)
审核待确认的 AI 提取候选知识
手动添加知识
搜索项目知识库
通过 CLI 管理知识:
projectbrain brain propose /path/to/my/project --type constraint --statement "退款手续费需单独入账。"
projectbrain brain candidates /path/to/my/project
projectbrain brain confirm-candidate /path/to/my/project <candidate_id>codex-brain:带项目记忆的 Codex
codex-brain 以显式子进程方式启动 Codex CLI,并初始化项目本地 Brain 存储:
cd /path/to/my/project
codex-brain
# 冒烟测试:
codex-brain --project . --no-ui --no-extract --codex-command "true"项目本地 Brain 数据存储在:
<project>/.projectbrain/brain/
knowledge_units.jsonl
memory_candidates.jsonl
conversations.jsonl可选 FastAPI 服务器
python3 -m venv .venv
.venv/bin/python -m pip install -e '.[api]'
PYTHONPATH=apps/api:packages/adapters:packages/runtime:packages/schema \
.venv/bin/uvicorn projectbrain_api.main:app --reload访问 http://127.0.0.1:8000/ui/projects 打开暗色系 Brain Explorer UI。
JSON API 路由:
GET /health
POST /api/v1/projects/import
GET /api/v1/projects
POST /api/v1/projects/{project_id}/context-pack
POST /api/v1/projects/{project_id}/impact-analysis
POST /api/v1/projects/{project_id}/impact-analysis/git-diff
GET /api/v1/projects/{project_id}/policy本地 MCP 服务器
projectbrain --store-root /absolute/path/to/.projectbrain mcp serve本地 stdio 子进程,不开放网络端口,不上传源码。详见 MCP 使用说明。
在 MCP 工具调用中使用 output_format: "agent" 获取紧凑的智能体友好输出。
本地输出控制,在项目根目录添加 .projectbrain-policy.json:
{
"deny_paths": ["private/**"],
"output_limits": { "max_items_per_section": 8 },
"include_source_snippets": false
}仓库结构
apps/
api/projectbrain_api/ 可选 FastAPI API 与 UI
packages/
adapters/ CodeGraph 适配器与制品构建器
runtime/ 本地 JSON 运行时与仓库抽象
schema/ 数据类 Schema 与校验
examples/payment-mini/ 合成公开演示数据
tests/ 单元与 API 测试
docs/ 设计与实现文档设计文档
文档 | 说明 |
产品定位、架构、组件、API 与路线图 | |
项目认知域模型与界限上下文 | |
本地 MVP 架构、服务边界与验收标准 | |
本地 stdio MCP 服务器使用与隐私边界 | |
本地安装、演示、MCP、声明与策略的中文教程 |
路线图
增加类型化 API 请求/响应模型
增加 OpenAPI 快照测试
增加更丰富的 Git diff 符号匹配
增加数据库后端仓库实现
增加更多语言适配器
许可证
MIT
Available Tools
10 toolsprojectbrain_add_experience_claimB
Add a local human experience claim to an imported project. Writes only to local ProjectBrain storage and does not read source bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| statement | Yes | ||
| applies_to | No | ||
| risk_level | No | normal | |
| review_state | No | draft | |
| claim_type | No | HUMAN_REVIEW_REQUIRED | |
| confidence | No | ||
| source | No | ||
| claim_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses two key behaviors: write-only and no reading of source bodies. But it does not mention what happens on conflict (e.g., overwrite vs. fail), required permissions, or side effects like triggering any downstream processes. This is adequate but not thorough.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long, containing only essential information without any fluff. It is efficient and front-loaded, immediately stating the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 9 parameters, no output schema, and no annotations, the description is far too minimal. It lacks details on parameter meanings, return values, error conditions, and usage examples. For a tool of this complexity, the description is incomplete and leaves the agent with many unknowns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning the schema provides no descriptions for any of the 9 parameters. The description offers no additional explanation of parameters like applies_to, risk_level, review_state, claim_type, confidence, source, or claim_id. The agent is left to infer from names alone, which is insufficient for correct invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (add), resource (experience claim), and scope (local human, imported project). It differentiates from siblings like archive and review by implying creation. However, the term 'human experience claim' may be domain-specific and not fully self-explanatory.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context that it writes only to local storage and does not read source bodies, which helps in deciding when to use it. However, it does not explicitly mention when not to use this tool versus alternatives like projectbrain_review_experience_claim or projectbrain_archive_experience_claim, leaving some ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_archive_experience_claimC
Archive a local experience claim while keeping it in ProjectBrain storage.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| claim_id | Yes | ||
| reason | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must convey behavioral traits. It indicates that archiving retains storage, but does not explain whether the claim is hidden, accessible, reversible, or any side effects on related data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 10 words, concisely stating the core functionality. Every word contributes to the purpose, with no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 3 parameters and no output schema or annotations, yet the description omits details on what archiving entails, the effect on queries, and the purpose of the optional 'reason' parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description adds no information about the parameters (project_id, claim_id, reason). Their meanings are entirely left to the schema field names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('archive'), the object ('local experience claim'), and the nuance ('keeping it in ProjectBrain storage'), which distinguishes it from sibling tools like add, review, or list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as when to archive vs. delete or review. There are no scenarios or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_context_packC
Build a task-scoped Context Pack from local ProjectBrain facts.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| task | Yes | ||
| max_items_per_section | No | ||
| output_format | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must bear the burden of behavioral disclosure. 'Build' suggests creation/mutation, but there is no information about side effects, required permissions, reversibility, or any behavioral traits beyond the basic action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and to the point. It front-loads the core action. However, it may be too terse, missing opportunities to add value without significant bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 4 parameters, no output schema, and no annotations, the description is too brief to be complete. It omits context about what a Context Pack is, the expected output format, and any behavioral implications of the 'Build' action.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 4 parameters with 0% description coverage, and the tool description adds no parameter-specific information (e.g., what 'task' format, what 'output_format' options mean). The description fails to compensate for the schema's lack of detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Build') and resource ('Context Pack from local ProjectBrain facts'), making the tool's purpose clear. However, it does not explicitly distinguish itself from siblings, which have different actions like adding or archiving claims.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'task-scoped' implies usage when building a context pack for a specific task, but there is no explicit guidance on when to use this tool versus alternatives, no when-not conditions, and no mention of prerequisites or constraints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_impact_analysisC
Analyze likely local project impact for changed files or symbols.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| task | Yes | ||
| changed_files | No | ||
| changed_symbols | No | ||
| max_items_per_section | No | ||
| output_format | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. The single sentence does not disclose any behavioral traits such as whether the tool is read-only, what data it accesses, performance implications, or side effects. This is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no redundancy, but it achieves conciseness at the expense of critical information. Under-specification is not true conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given six parameters, no output schema, and no annotations, the description is extremely incomplete. It fails to explain what the analysis returns, how to use the parameters effectively, or any behavioral details. Agent cannot use this tool correctly without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage for parameters, and the description does not explain any of the six parameters (project_id, task, changed_files, etc.). The agent receives no additional meaning beyond the raw schema names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states 'Analyze likely local project impact for changed files or symbols,' which clearly identifies the tool's purpose. It differentiates from siblings like 'projectbrain_add_experience_claim' or 'projectbrain_inspect_policy' by focusing on impact analysis.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives (e.g., 'projectbrain_review_git_diff' or 'projectbrain_inspect_policy'). No mentions of prerequisites, limitations, or scenarios where other tools would be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_import_projectC
Import CodeGraph facts from a local repository into the local ProjectBrain store. Runs only on local files and does not upload source code.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| project_path | Yes | ||
| name | No | ||
| experience_seed | No | ||
| path_prefixes | No | ||
| kinds | No | ||
| node_limit | No | ||
| edge_limit | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, description carries full burden. It mentions only that it runs on local files and does not upload source code, but lacks details on error handling, overwrite behavior, or other side effects.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with key information, but omits essential parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no output schema, and no annotations, the description is severely incomplete. It lacks details on return values, side effects, and parameter usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description provides no explanation for any of the 8 parameters, including required ones like project_id and project_path.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it imports CodeGraph facts from a local repository into the ProjectBrain store, with a specific verb and resource. It distinguishes itself from siblings by focusing on importing projects, not adding claims or other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives like projectbrain_context_pack or projectbrain_list_projects. No prerequisites or exclusions mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_inspect_policyC
Inspect the local output policy loaded for an imported project.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It states 'inspect' (implying read-only), but does not confirm side effects, authorization needs, or what 'local output policy' entails. The description is too brief to be informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no extraneous information. However, it sacrifices necessary detail for brevity, making it less useful than a slightly longer description would be.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of output schema and annotations, the description should explain what the tool returns or the behavior of inspection. It does not, leaving the agent without knowledge of the output format or content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (project_id) with 0% description coverage, but the description adds only minimal context: it mentions the policy is for an imported project. No details on parameter format, constraints, or how it affects the inspection.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (inspect) and the resource (local output policy for an imported project), distinguishing it from sibling tools that perform different operations like adding, archiving, or listing claims.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as prerequisites for having an imported project or when inspecting a policy is appropriate. The description is silent on usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_list_experience_claimsB
List local experience claims for an imported project. Archived claims are hidden by default.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| include_archived | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses default archived filter, but lacks permissions info or other behaviors; acceptable for a simple list tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two precise sentences with no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose and default filtering, but lacks return format and error handling; adequate for a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 0% description coverage; description doesn't explain parameters beyond names and default behavior for archived.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists experience claims for a project and distinguishes from sibling add/archive tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this vs alternatives like add or archive; only implied by listing purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_list_projectsA
List projects imported into the local ProjectBrain store.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description does not disclose any behavioral traits beyond the basic listing functionality. With no annotations, the description carries the full burden, but for a simple list operation with no parameters, the minimal behavioral info is adequate. It does not state whether the operation is read-only or has side effects, but it is implied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that conveys the core purpose without any extraneous words. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no parameters and no output schema, the description is largely complete. It explains what the tool does (list imported projects). However, it does not mention the return format or any limitations, which would be helpful but not critical for such a simple tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so the schema description coverage is trivially 100%. The description adds no parameter information, which is acceptable since there are none to explain. Baseline 4 for zero parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists projects that have been imported into the local ProjectBrain store, specifying the verb 'list' and the resource 'projects'. It implicitly distinguishes from sibling tools like projectbrain_import_project and projectbrain_list_experience_claims by focusing on projects. However, it does not explicitly differentiate itself from other list tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as projectbrain_list_experience_claims. There is no mention of prerequisites, typical use cases, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_review_experience_claimC
Update local review metadata for an experience claim.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| claim_id | Yes | ||
| statement | No | ||
| applies_to | No | ||
| risk_level | No | ||
| review_state | No | ||
| claim_type | No | ||
| confidence | No | ||
| source | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description carries full behavioral burden. It states 'Update' but does not disclose side effects, permissions needed, idempotency, or error states. A mutation tool with 9 parameters requires more transparency about what 'local review metadata' entails and whether other data is affected.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, which is concise but vastly underspecified given the tool's complexity (9 parameters, no output schema). It does not earn its brevity; it sacrifices necessary detail. A minimal viable description for this tool would require multiple sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no output schema, and no annotations, the description is inadequate. It fails to explain the tool's purpose in the context of the sibling tools, the role of each parameter, or the expected outcome of the update. This leaves the AI agent with insufficient information to correctly invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%. The description adds no meaning to the 9 parameters beyond their names and types in the schema. For example, it doesn't explain what 'applies_to', 'confidence', or 'source' mean in context. Parameter semantics are entirely undocumented in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'update' and resource 'local review metadata for an experience claim'. It distinguishes from sibling tools like 'add' and 'archive' by implying modification of existing data. However, it does not explicitly contrast with siblings, and the term 'review metadata' could be more precise.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. No mention of prerequisites, typical use cases, or when not to use it. Given the sibling tools (add, archive, list), the description should provide context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
projectbrain_review_git_diffA
Analyze impact for local Git changes in an imported project. Reads changed file names from local git only; does not read or upload source bodies.
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | Yes | ||
| task | Yes | ||
| staged | No | ||
| from_ref | No | ||
| to_ref | No | ||
| last_commit | No | ||
| changed_symbols | No | ||
| max_items_per_section | No | ||
| output_format | No | json |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and explicitly states it reads changed file names from local git only and does not read or upload source bodies. However, it omits details on permissions, side effects, or response format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with purpose, no unnecessary words. Efficient and well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 9 parameters (0% schema coverage), no output schema, and no annotations, the description is too brief. It fails to explain parameters, output, or usage context, leaving the agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it adds no explanation for any of the 9 parameters. The mention of 'local Git changes' loosely relates to some parameters but provides no semantic mapping or syntax guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool analyzes impact for local Git changes in an imported project, distinguishing it from sibling tools by specifying 'local Git changes' and clarifying it reads only file names, not source bodies.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like impact_analysis or context_pack is provided. Usage is implied but not explained with when-not or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
10 tool updates
v0.1.0- First observed
projectbrain_add_experience_claim - First observed
projectbrain_archive_experience_claim - First observed
projectbrain_context_pack - First observed
projectbrain_impact_analysis - First observed
projectbrain_import_project - First observed
projectbrain_inspect_policy - First observed
projectbrain_list_experience_claims - First observed
projectbrain_list_projects - First observed
projectbrain_review_experience_claim - First observed
projectbrain_review_git_diff
TDQS
Each tool has a clearly distinct purpose, from importing projects and managing experience claims to analyzing impacts and building context packs. The two analysis tools differ by scope: impact_analysis for changed files/symbols and review_git_diff for git changes.
All tools use the 'projectbrain_' prefix followed by a consistent verb_noun pattern (e.g., add_experience_claim, list_projects, inspect_policy). The naming is predictable and clear across the entire set.
With 10 tools, the server is well-scoped for managing local project knowledge. Each tool serves a specific purpose without unnecessary redundancy, covering import, CRUD for claims, analysis, and context building.
The tool surface covers core workflows but has minor gaps: there is no tool to update claim content (only review metadata) and no unarchive functionality. Retrieving a single claim by ID is also missing, though listing works.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
A MCP server built for developers enabling Git based project management with project and personal…
An MCP server that gives your AI access to the source code and docs of all public github repos
Related MCP Servers
- AlicenseAqualityDmaintenanceUniversal MCP server that analyzes any codebase and provides structured context to AI assistants. Dynamic, accurate, and token-efficient.1814MIT
- AlicenseNot gradedqualityAmaintenanceMCP server for local-first code intelligence, providing structural code graph, semantic search, and impact analysis to AI agents.2MIT
- AlicenseNot gradedqualityBmaintenanceLocal-first code intelligence and safety layer for AI coding agents. MCP server exposes dependency graph, impact analysis, and AST-compressed repo context, backed by typed local memory, patch-scope safety gates, and git-independent transaction rollback.1MIT
- AlicenseNot gradedqualityAmaintenanceLocal-first MCP server that provides project context, verification gates, and structured tools for coding agents to discover knowledge, run diagnostics, and execute allowlisted commands within a repository.35MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/yinshaojun001/projectbrain'
If you have feedback or need assistance with the MCP directory API, please join our Discord server