基于模型上下文协议(MCP)集成的Emlog博客系统服务,允许AI助手通过标准化接口与Emlog博客进行交互。
<a href="https://glama.ai/mcp/servers/@eraincc/emlog-mcp"> <img width="380" height="200" src="https://gips0.baidu.com/it/u=4128595613,3458328242&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Emlog MCP Server" /> </a>emlog://articles) - 获取所有博客文章列表emlog://categories) - 获取所有分类信息emlog://comments) - 获取评论列表(基于最新文章)emlog://notes) - 获取微笔记列表emlog://drafts) - 获取所有草稿文章列表emlog://user) - 获取当前用户信息在Claude Desktop配置中直接使用emlog-mcp,无需本地安装。跳转至MCP客户端配置部分。
git clone https://github.com/eraincc/emlog-mcp.git
cd emlog-mcp
npm install
复制示例配置文件并编辑:
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密钥:
.env文件中npm run build
npm start
或开发模式:
npm run dev
添加到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的客户端,请参阅各自文档中的stdio传输配置。
此服务基于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 - 获取用户信息// 通过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": "get_draft_list",
"arguments": {
"count": 10
}
}
// 获取特定草稿的详细信息
{
"name": "get_draft_detail",
"arguments": {
"id": 123
}
}
// 上传图片文件
{
"name": "upload_file",
"arguments": {
"file_path": "/path/to/image.jpg"
}
}
// 发布微笔记
{
"name": "create_note",
"arguments": {
"content": "这是一条微笔记",
"is_private": false
}
}
该服务包括全面的错误处理机制:
# 构建项目
npm run build
# 启动服务
npm start
# 开发模式(自动重启)
npm run dev
# 监视模式(自动编译)
npm run watch
# 运行测试
npm test
服务将运行状态信息输出到stderr以供调试:
Emlog MCP服务器正在stdio上运行
项目包含一个简单的测试脚本test-server.js来验证服务是否正常工作:
node test-server.js
连接失败
EMLOG_API_URL是否正确认证失败
EMLOG_API_KEY是否有效工具调用失败
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 # 项目文档
欢迎提交Issues和Pull Requests以改进此项目。在提交代码之前,请确保:
MIT许可证