Emlog MCP服务器
](https://img.shields.io/github/license/eraincc/emlog-mcp.svg)   
基于模型上下文协议(MCP)的Emlog博客系统集成服务,允许AI助手通过标准化接口与Emlog博客进行交互。
特性
资源
- 博客文章 (
emlog://articles)-获取所有博客文章列表 - 分类 (
emlog://categories)-获取所有类别信息 - 评论 (
emlog://comments)-获取评论列表(基于最新文章) - 微型笔记 (
emlog://notes)-获取微型笔记列表 - 条款草案 (
emlog://drafts)-获取所有草稿文章列表 - 用户信息 (
emlog://user)-获取当前用户信息
工具
- 创建_文章 -创建新的博客文章
- 更新_文章 -更新现有博客文章
- 获取_文章 -获取特定文章详细信息
- 搜索_文章 -搜索文章(支持关键字、标签、类别过滤)
- 喜欢_文章 -喜欢文章
- 添加注释 -添加评论
- 获取_注释 -获取特定文章的评论列表
- create_note -创建微型笔记
- 上传文件 -上传文件(图像和其他媒体资源)
- get_user_info -获取用户信息
- get_draft_list -获取文章草稿列表
- get_draft_detail -获取具体草稿的详细信息
技术栈
- TypeScript -类型安全的JavaScript超集
- Node.js -JavaScript运行时环境
- MCP-SDK -模型上下文协议TypeScript SDK
- 阿西奥斯 -HTTP客户端库
- 萨德 -TypeScript第一个模式验证库
- 表单数据 -多部分表单数据处理
安装和配置
方法1:直接使用(推荐)
使用 emlog-mcp 直接在Claude Desktop配置中,无需本地安装。跳转到 MCP客户端配置 部分。
方法2:本地开发安装
1.克隆项目
git clone https://github.com/eraincc/emlog-mcp.git
cd emlog-mcp2.安装依赖项
npm install3.环境变量配置
复制示例配置文件并编辑:
cp .env.example .env在中设置以下环境变量 .env 文件:
# Emlog API base URL (required)
EMLOG_API_URL=https://your-emlog-site.com
# Emlog API key (required)
EMLOG_API_KEY=your_api_key_here正在获取API密钥:
- 登录您的Emlog后端管理系统
- 转到“设置”→ “API接口”
- 启用API功能并生成API密钥
- 将生成的密钥复制到
.env文件
4.建设项目
npm run build5.运行服务
npm start或开发模式:
npm run devMCP客户端配置
Claude桌面配置
添加到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/draft_list-获取草稿列表GET /api/draft_detail-获取具体的草稿详细信息
品类管理
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-获取用户信息
使用示例
创建博客文章
// Through MCP tool call
{
"name": "create_article",
"arguments": {
"title": "My New Article",
"content": "This is the article content, supporting HTML and Markdown formats.",
"sort_id": 1,
"tag": "technology,programming,MCP",
"is_private": "n",
"allow_comment": "y"
}
}搜索文章
// Search articles containing keywords
{
"name": "search_articles",
"arguments": {
"keyword": "technology",
"page": 1,
"count": 10
}
}获取文章列表
// Through MCP resource access
{
"uri": "emlog://articles"
}获取草稿列表
// Get draft list
{
"name": "get_draft_list",
"arguments": {
"count": 10
}
}获取草稿详细信息
// Get detailed information of specific draft
{
"name": "get_draft_detail",
"arguments": {
"id": 123
}
}上传文件
// Upload image file
{
"name": "upload_file",
"arguments": {
"file_path": "/path/to/image.jpg"
}
}创建微型笔记
// Publish micro note
{
"name": "create_note",
"arguments": {
"content": "This is a micro note",
"is_private": false
}
}错误处理
该服务包括全面的错误处理机制:
- 网络错误 -自动重试和超时处理
- API错误 -返回详细错误信息
- 身份验证错误 -API密钥验证失败提示
- 参数错误 -输入参数验证和提示
开发与调试
可用脚本
# Build project
npm run build
# Start service
npm start
# Development mode (auto restart)
npm run dev
# Watch mode (auto compile)
npm run watch
# Run tests
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/ # Source code directory
│ ├── index.ts # MCP service main entry
│ └── emlog-client.ts # Emlog API client
├── dist/ # Compiled output directory
├── docs/ # Documentation directory
│ └── api_doc.md # Detailed Emlog API documentation
├── .env.example # Environment variable example file
├── .gitignore # Git ignore file configuration
├── claude-desktop-config.json # Claude Desktop configuration example
├── test-server.js # Test script
├── package.json # Project configuration and dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # Project documentation贡献
欢迎提交问题和拉取请求以改进此项目。在提交代码之前,请确保:
- 代码通过TypeScript编译检查
- 遵循项目代码样式
- 添加适当的错误处理
- 更新相关文档
许可证
MIT许可证
