Emlog MCP Server
Enables AI assistants to interact with Emlog blog systems through a standardized Model Context Protocol interface, supporting content management operations like creating/updating articles, managing comments, uploading files, and accessing blog resources.
Tools
create_article
Create a new blog article
update_article
Update an existing blog article
get_article
Get a specific article by ID
search_articles
Search articles by keyword, tag, or category
add_comment
Add a comment to an article
get_comments
Get comments for an article
like_article
Like an article
create_note
Create a new micro-note
get_user_info
Get current user information
upload_file
Upload a file (image, document, etc.)
README
Emlog MCP Server
一个基于 Model Context Protocol (MCP) 的 Emlog 博客系统集成服务,允许 AI 助手通过标准化接口与 Emlog 博客进行交互。
项目信息
- 项目名称: emlog-mcp
- 包名: emlog-mcp
- 作者: Yiklam
- 仓库地址: https://github.com/eraincc/emlog-mcp
- 许可证: MIT
功能特性
资源 (Resources)
- 博客文章 (
emlog://articles) - 获取所有博客文章列表 - 分类 (
emlog://categories) - 获取所有分类信息 - 评论 (
emlog://comments) - 获取评论列表(基于最新文章) - 微语笔记 (
emlog://notes) - 获取微语笔记列表 - 用户信息 (
emlog://user) - 获取当前用户信息
工具 (Tools)
- create_article - 创建新的博客文章
- update_article - 更新现有博客文章
- get_article - 获取指定文章详情
- search_articles - 搜索文章(支持关键词、标签、分类等筛选)
- like_article - 为文章点赞
- add_comment - 添加评论
- get_comments - 获取指定文章的评论列表
- create_note - 创建微语笔记
- upload_file - 上传文件(图片等媒体资源)
- get_user_info - 获取用户信息
技术栈
- TypeScript - 类型安全的 JavaScript 超集
- Node.js - JavaScript 运行时环境
- MCP SDK - Model Context Protocol TypeScript SDK
- Axios - HTTP 客户端库
- Zod - TypeScript 优先的模式验证库
- form-data - 多部分表单数据处理
安装和配置
方式一:使用已发布的 npm 包(推荐)
直接在 Claude Desktop 配置中使用 emlog-mcp,无需本地安装。跳转到 MCP 客户端配置 部分。
方式二:本地开发安装
1. 克隆项目
git clone https://github.com/eraincc/emlog-mcp.git
cd emlog-mcp
2. 安装依赖
npm install
3. 环境变量配置
复制示例配置文件并编辑:
cp .env.example .env
在 .env 文件中设置以下环境变量:
# Emlog API 基础 URL(必需)
EMLOG_API_URL=https://your-emlog-site.com
# Emlog API 密钥(必需)
EMLOG_API_KEY=your_api_key_here
获取 API 密钥:
- 登录你的 Emlog 后台管理系统
- 进入「设置」→「API 接口」
- 启用 API 功能并生成 API 密钥
- 将生成的密钥复制到
.env文件中
4. 构建项目
npm run build
5. 运行服务
npm start
或者开发模式:
npm run dev
MCP 客户端配置
Claude Desktop 配置
在 Claude Desktop 的配置文件中添加(通常位于 ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"emlog": {
"command": "npx",
"args": ["emlog-mcp"],
"env": {
"EMLOG_API_URL": "https://your-emlog-site.com",
"EMLOG_API_KEY": "your_api_key_here"
}
}
}
}
注意: 现在配置直接使用已发布的 npm 包 emlog-mcp,无需本地安装或编译,npx 会自动下载并运行最新版本。
项目还提供了一个示例配置文件 claude-desktop-config.json,你可以参考其中的配置格式。
其他 MCP 客户端
对于其他支持 MCP 的客户端,请参考相应的文档来配置 stdio 传输。
API 接口说明
本服务基于 Emlog 的 REST API 构建,支持以下主要操作:
文章管理
GET /api/article_list- 获取文章列表GET /api/article_view- 获取指定文章详情POST /api/article_save- 创建/更新文章POST /api/article_like- 文章点赞
分类管理
GET /api/sort_list- 获取分类列表
评论管理
GET /api/comment_list- 获取评论列表POST /api/comment_save- 发布评论
微语笔记
GET /api/note_list- 获取微语笔记列表POST /api/note_save- 发布微语笔记
文件上传
POST /api/upload- 上传文件
用户管理
GET /api/userinfo- 获取用户信息
使用示例
创建博客文章
// 通过 MCP 工具调用
{
"name": "create_article",
"arguments": {
"title": "我的新文章",
"content": "这是文章内容,支持 HTML 和 Markdown 格式。",
"sort_id": 1,
"tag": "技术,编程,MCP",
"is_private": "n",
"allow_comment": "y"
}
}
搜索文章
// 搜索包含关键词的文章
{
"name": "search_articles",
"arguments": {
"keyword": "技术",
"page": 1,
"count": 10
}
}
获取文章列表
// 通过 MCP 资源访问
{
"uri": "emlog://articles"
}
上传文件
// 上传图片文件
{
"name": "upload_file",
"arguments": {
"file_path": "/path/to/image.jpg"
}
}
创建微语笔记
// 发布微语笔记
{
"name": "create_note",
"arguments": {
"content": "这是一条微语笔记",
"is_private": false
}
}
错误处理
服务包含完整的错误处理机制:
- 网络错误 - 自动重试和超时处理
- API 错误 - 详细的错误信息返回
- 认证错误 - API 密钥验证失败提示
- 参数错误 - 输入参数验证和提示
开发和调试
可用脚本
# 构建项目
npm run build
# 启动服务
npm start
# 开发模式(自动重启)
npm run dev
# 监视模式(自动编译)
npm run watch
# 运行测试
npm test
日志输出
服务会在 stderr 输出运行状态信息,便于调试:
Emlog MCP server running on stdio
测试服务
项目包含一个简单的测试脚本 test-server.js,可以用来验证服务是否正常工作:
node test-server.js
安全注意事项
- API 密钥保护 - 确保 API 密钥不被泄露,使用环境变量存储
- HTTPS 连接 - 生产环境建议使用 HTTPS 连接 Emlog API
- 权限控制 - 确保 API 密钥具有适当的权限范围
- 输入验证 - 所有用户输入都经过验证和清理
故障排除
常见问题
-
连接失败
- 检查
EMLOG_API_URL是否正确 - 确认 Emlog 站点可访问
- 检查
-
认证失败
- 验证
EMLOG_API_KEY是否有效 - 检查 API 密钥权限
- 验证
-
工具调用失败
- 查看错误信息中的具体原因
- 确认参数格式正确
项目结构
emlog-mcp/
├── src/ # 源代码目录
│ ├── index.ts # MCP 服务主入口
│ └── emlog-client.ts # Emlog API 客户端
├── dist/ # 编译输出目录
├── docs/ # 文档目录
│ └── api_doc.md # Emlog API 详细文档
├── .env.example # 环境变量示例文件
├── .gitignore # Git 忽略文件配置
├── claude-desktop-config.json # Claude Desktop 配置示例
├── test-server.js # 测试脚本
├── package.json # 项目配置和依赖
├── tsconfig.json # TypeScript 配置
└── README.md # 项目说明文档
贡献
欢迎提交 Issue 和 Pull Request 来改进这个项目。在提交代码前,请确保:
- 代码通过 TypeScript 编译检查
- 遵循项目的代码风格
- 添加适当的错误处理
- 更新相关文档
许可证
MIT License
相关链接
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器