内容
# VibbersBlog
> 一款超轻量级、由MCP驱动的无头式CMS,专为AI代理设计,用于直接在生产环境中编写、编辑和发布博客或自定义页面。
[](https://www.python.org/)
[](https://fastapi.tiptap.dev/)
[](https://modelcontextprotocol.io/)
VibbersBlog 弥合了您的代码仓库与发布平台之间的差距。您无需管理复杂的后台管理面板,而是为您的 AI 代理配备此应用提供的 **模型上下文协议(MCP)** 工具,让它为您构建内容、模板或着陆页。
---
## 关键架构洞察
### 1. 内存中的 Jinja2 模板(RAM 缓存)
为了实现极端速度,VibbersBlog 直接在 **RAM** 中缓存模板,而不是每次渲染页面时从磁盘读取原始 HTML 文件。
> [!WARNING]
> **扩展考虑:** 虽然这使得页面交付速度极快,但在资源有限的服务器(例如 512MB/1GB RAM VPS)上托管数千个复杂、高度不同的模板将增加空闲内存使用。请保持您的模板集合精简!
### 2. “一切皆博客”(动态路由)
应用程序使用两个简单的概念处理布局:
- **模板:** 包含结构和标准 Jinja/模板槽(例如 `{{title}}`、`{{content}}`)但不包含实际帖子数据的骨架 HTML 文件。
- **博客:** 原始内容负载。虽然名为“博客”,但博客实例可以被指定为自定义页面(使用 `is_blog=False` 架构标志)。
结合通配符路由 (`/{slug}`),您可以提供从常规博客条目到复杂的单页着陆结构的任何内容。
---
## MCP 工具暴露
应用程序注册了 **10 个 MCP 工具**,允许代理管理布局和内容生命周期:
- **模板:** 创建、读取列表、编辑和删除呈现布局。
- **内容:** 发布博客、修改文本负载、删除文章或动态检索页面组件。
---
## 入门指南
### 1. 先决条件
确保您已安装 [uv](https://github.com/astral-sh/uv)(一个快速的 Python 包安装程序和解析器)。
### 2. 安装和设置
```bash
# 克隆仓库
git clone https://github.com/your-username/vibbers-blog.git
cd vibbers-blog
# 使用 uv 安装依赖项
uv sync
# 在环境或配置文件中配置您的数据库详细信息
```
### 3. 运行服务器
#### 启动 FastAPI Web 引擎:
```bash
# 切换到应用程序目录并运行 Uvicorn
cd app
uvicorn main:app --reload --port 8000
```
#### 启动 MCP 代理服务器:
在新的终端窗口中:
```bash
python app/mcp_main.py
```
现在,您的公开站点(FastAPI)和后台代理通道(MCP)都已激活!
---
## 连接您的代理
要将 VibbersBlog 连接到您的开发代理(例如 Claude Desktop、cursor 或自定义包装器),请在代理的 `mcp.json` 文件中注册它:
```json
{
"mcpServers": {
"vibbers_blog": {
"transport": "streamable-http",
"url": "http://localhost:6767/mcp",
"headers": {
"vb-mcp-api-key": "your_api_key"
}
}
}
}
```
或者,将上面的代码片段粘贴到您的workspace聊天窗口中,并指示您的代理:
> _“注册此HTTP MCP服务器以访问我的网站数据库和模板。”_
参见 [app/mcp_connect.py](/app/mcp_connect.py) 以了解如何使用 LangChain 以编程方式连接的样板实现。