README
🚀 鬼魂 MCP 服务器
一个用于通过大型语言模型 (LLM) 接口与 Ghost CMS 交互的 Model Context Protocol (MCP) 服务器。此服务器提供安全且全面的 Ghost 博客访问权限,并利用 JWT 认证和丰富的 MCP 工具集,支持管理文章、用户、成员、订阅层级、优惠和简报。
🚀 快速开始
要与此 MCP 服务器配合使用,请在 claude_desktop.yaml 中添加以下内容:
ghost-mcp-server:
enabled: true
endpoint: http://localhost:5000
默认端口为 5000。请参考 配置文件 了解详细信息。
✨ 主要特性
- 使用 @tryghost/admin-api 安全请求 Ghost Admin API
- 全面的实体访问权限,涵盖文章、用户、成员、订阅层级、优惠和简报
- 高级搜索功能,支持模糊匹配和精确匹配选项
- 详细且易于理解的实体输出
- 使用自定义 GhostError 异常处理错误
- 集成的日志记录支持(通过 MCP 上下文),便于故障排除
📦 安装指南
我完全使用 TypeScript 重写了 Ghost MCP Server,并在 v0.1.0 版本中发布。此次重大变更带来了以下好处:
- 安装简化:现在以 NPM 包形式提供(@fanyangmeng/ghost-mcp)
- 可靠性提升:使用官方 @tryghost/admin-api 客户端,而非自定义实现
- 维护更简便:TypeScript 提供类型安全和更好的代码组织
- 配置更简洁:仅需设置 Node.js 环境变量
重大更改
- Python 依赖不再需要
- 配置方法发生变化(现使用 Node.js 环境变量)
- Docker 部署简化
- 安装流程变更(现使用 NPM)
请参阅下方更新文档,了解如何从 Python 版本迁移。如果遇到问题,请在 GitHub 上提交 issue。
环境变量
以下是运行服务器所需的环境变量:
GHOST_ADMIN_URL: Ghost 行政界面 URL(必需)GHOST_ADMIN_KEY: Ghost 行政 API 密钥(必需)PORT:服务器监听的端口,默认为 5000NODE_ENV:环境模式,生产或开发
💻 使用示例
基础用法
要与此 MCP 服务器配合使用,请在 claude_desktop.yaml 中添加以下内容:
ghost-mcp-server:
enabled: true
endpoint: http://localhost:5000
高级用法
以下展示了文章管理和用户管理的代码示例:
文章管理
interface GhostArticleToolParams {
title: string;
content: string;
authorId?: string;
publishedAt?: string;
}
async function createGhostArticle(params: GhostArticleToolParams): Promise<void> {
// 创建文章逻辑
}
async function updateGhostArticle(articleId: string, params: Omit<GhostArticleToolParams, 'title'>): Promise<void> {
// 更新文章逻辑
}
async function deleteGhostArticle(articleId: string): Promise<void> {
// 删除文章逻辑
}
用户管理
interface GhostUserToolParams {
email: string;
password: string;
username?: string;
}
async function createUser(params: GhostUserToolParams): Promise<string> {
// 创建用户逻辑,返回用户 ID
}
async function updateUser(userId: string, params: Omit<GhostUserToolParams, 'email'>): Promise<void> {
// 更新用户逻辑
}
🔧 技术细节
Ghost MCP Server 使用自定义的 GhostError 异常来处理 API 通信错误和处理问题,以确保清晰且详细的错误消息,便于故障排除。
🤝 贡献指南
- 叉仓库
- 创建功能分支
- 提交更改
- 创建拉取请求
📄 许可证
MIT

Scan to join WeChat group