内容
# 使用MCP构建企业大脑
一个企业级项目,旨在将分散的企业运营知识集中到一个交互式、可执行的图层和一个安全的无服务器模型上下文协议(MCP)端点。该系统允许大型语言模型和人工智能代理在确保完全的数据安全性和不进行上下文猜测的情况下,无缝地查询、维护和执行组织指令。
---

## 🧠 核心概念与灵感
该项目采用了**LLM Wiki Pattern**。与仅使用LLM代币预算来编写代码不同,代币被系统地转移到结构化和操作知识的操纵上。
### 核心问题
在标准组织中,关键知识分散在Slack线程、电子邮件链、孤立的电子表格、内部工单和人类记忆中。虽然人类通过直觉来应对这种混乱,但人工智能代理却无法做到。猜测操作边界(尤其是财务边界)的代理是一种负债。
### 解决方案:企业大脑
这一层充当企业如何运作的可执行映射。标准知识库仅限于文档检索,而**企业大脑**则编码上下文感知判断,使人工智能代理能够安全地做出允许的决策。
---
## 💼 高影响力的生产用例
此部署适用于一家**40人物流提供商**,用于自动**供应商发票核对**。
- **运营负荷**:消除外包财务团队的手动验证工作量。
- **三方匹配**:服务器公开工具,将到来的承运商发票与现有的采购订单(PO)和收货凭证(GRN)进行匹配,以检测逐项差异。
- **上下文驱动的付款条款**:从边缘数据库直接读取特定的供应商结算结构(例如Net-30 vs. Net-60),以计算动态付款窗口。
- **上限防护栏**:实施严格的验证循环。如果发票包含异常、重复配置文件或金额超过**$5,000**,则代理触发硬停止,并将执行权交回创始人进行手动审查。
---
## 🏗️ 系统架构
基础设施完全在Cloudflare上以无服务器方式运行。
```
[ 本地Obsidian Vault ] ───( sync.js )───> [ Cloudflare KV Store ]
(Markdown内存) │
▼
[ 浏览器可视化工具 ] ◄──────( GET / )────── [ Cloudflare Worker ]
[ Claude Desktop / Code ] ◄──( POST /mcp )─── [ (无服务器处理程序) ]
```
### 基础设施组件
| 组件 | 技术 | 角色 |
|---|---|---|
| 语义层 | Obsidian Vault(Markdown) | 便携、无锁定知识创作 |
| 采集管道 | `sync.js` | 遍历保险库目录并将资产推送到KV |
| 存储层 | Cloudflare KV | 全球分布式边缘键值存储 |
| 智能层 | Cloudflare Worker(ES模块) | 无状态JSON-RPC MCP托管端点 |
---
## 🌐 实时网络可视化工具
当访问根URL(`/`)时,工作程序从Cloudflare KV读取键,解析内部Markdown链接,并在2D画布布局上渲染交互式**Obsidian风格动画图**。
### 视觉设计令牌
- **主题背景**:高级电影暗灰色 graphite(`#0B0F19`)
- **背景引擎**:程序化动画神经网络,模拟矢状脑轮廓,带有浮动突触粒子路径
### 节点类别图例
| 颜色 | 层 | 映射到 |
|---|---|---|
| 🟠 `#C65D07` | 来源 | 原始操作数据日志、电子邮件、输入输入 |
| 🔵 `#00f5ff` | 概念 | 规则、逻辑约束、SOP |
| 🟣 `#8a2be2` | 实体 | 利益相关者角色、团队、供应商配置文件 |
| 💗 `#ff1493` | 综合 | 跨源洞察、战略里程碑地图 |
---
## 🛠️ 公开MCP工具集
边缘工作程序在`/mcp`公开一个严格的JSON-RPC MCP网关。Claude客户端通过HTTP流进行通信,调用这5种核心工具:
| 工具名称 | 输入参数 | 操作 |
|---|---|---|
| `read_wiki_page` | `relativePath` | 从KV键获取原始Markdown文本 |
| `write_wiki_page` | `relativePath`, `category`, `content` | 在云KV存储中写入或修改节点 |
| `search_wiki` | `query` | 在所有活动文件上运行文本查询,返回上下文摘录 |
| `list_backlinks` | `pageName` | 确定引用目标页面的所有图节点 |
| `ingest_clipping` | `clippingName` | 流式传输原始转录并返回解析提示以协助摄入 |
---
## 📁 项目目录映射
```text
Company-Brain_usingMCP/
├── .obsidian/ # 本地Obsidian保险库可视化配置
├── my-wiki-mcp/ # 自动生成的Cloudflare构建/遥测目录
├── public/ # 备份静态文件夹资产
├── src/
│ └── index.ts # 核心工作程序脚本:路由、图编译、MCP工具
├── wiki/ # 语义知识保险库
│ ├── concepts/ # 规则、逻辑结构和三方匹配约束
│ ├── entities/ # 供应商文件、利益相关者角色和系统配置文件
│ ├── raw/clippings/ # 用于网页剪辑和原始通信日志的输入空间
│ └── synthesis/ # 主索引布局和跨源战略路线图
├── CLAUDE.md # 主LLM模式:文件夹规则、命名约定、摄入协议
├── package.json # Node依赖定义
├── sync.js # 上传脚本:将本地保险库资产推送到Cloudflare KV
└── wrangler.toml # Cloudflare部署清单:工作程序配置和KV绑定
```
### 摄入蓝图(`CLAUDE.md`)
系统中最重要的文件。它为AI代理提供明确的硬编码操作规则 - 确切的文件夹范围、强制的小写连字符命名约定以及用于分析未经验证的原始记录的逐步摄入协议。
---
## 🚀 部署指南
### 先决条件
- [Node.js](https://nodejs.org/) v18+
- [Cloudflare账户](https://dash.cloudflare.com/sign-up)
- Wrangler CLI:`npm install -g wrangler`
### 1. 配置KV数据库
验证Wrangler并启动一个全局KV命名空间:
```powershell
# 验证会话
npx wrangler login
# 创建生产KV桶
npx wrangler kv namespace create WIKI_DATA
```
复制返回的`id`字符串并粘贴到`wrangler.toml`下的`[[kv_namespaces]]`表格中:
```toml
[[kv_namespaces]]
binding = "WIKI_DATA"
id = "YOUR_KV_NAMESPACE_ID_HERE"
```
### 2. 同步Markdown保险库
将本地知识文件推送到全球边缘网络:
```powershell
node sync.js
```
### 3. 部署工作程序
将TypeScript路由器实时推送到Cloudflare子域:
```powershell
npx wrangler deploy
```
---
## 🔌 连接Claude客户端
部署后,工作程序通过任何准备好的MCP客户端公开一个实时MCP端点。
### Claude Desktop
将您的边缘路由添加到本地配置文件中:
- **macOS/Linux:** `~/Library/Application Support/Claude/claude_desktop_config.json`
- **Windows:** `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"company-brain": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/client-cli",
"https://my-wiki-mcp.YOUR_SUBDOMAIN.workers.dev/mcp"
]
}
}
}
```
> ⚠️ **安全注意:** 在建立客户端连接时,请始终将您的`X-Wiki-Token`机密注入请求头中。永远不要在配置文件中硬编码令牌 - 使用环境变量或机密管理器。
### Claude Code
```bash
claude mcp add company-brain \
--transport http \
https://my-wiki-mcp.YOUR_SUBDOMAIN.workers.dev/mcp
```
---
## 🔒 安全考虑
- `X-Wiki-Token`标头必须在`index.ts`中验证每个传入请求。未经身份验证的请求应返回`401 Unauthorized`。
- 通过Cloudflare Worker Secrets轮换您的令牌,而不是通过`wrangler.toml`:
```powershell
npx wrangler secret put WIKI_TOKEN
```
- `write_wiki_page`工具应仅限受信任的代理使用。考虑为写入操作使用单独的令牌或角色检查。
- KV命名空间是全局分布的 - 确保在静止时没有加密存储任何PII或受监管的财务数据(发票元数据除外)。
---
## 🤝 贡献
1. 分叉仓库
2. 创建功能分支:`git checkout -b feature/your-feature`
3. 提交更改:`git commit -m 'Add your feature'`
4. 推送并打开拉取请求
---
## 📄 许可证
MIT — 有关详细信息,请参见`LICENSE`。