Hashnode 文章管理服务器

一个基于Model Context Protocol (MCP)的服务器,用于程序化访问和管理Hashnode上的文章内容。

  • by sbmagar13
  • Python
  • 本地部署
  • 7 星标
  • 更新于
在 GitHub 查看 sbmagar13/hashnode-mcp-server

使用说明

哈希节点MCP服务器

模型上下文协议(MCP)服务器,用于与哈希节点API交互。此服务器提供用于以编程方式访问和搜索Hashnode内容的工具。

演示

  • 创建文章
  • 更新文章

特性

  • 创建和发布新文章
  • 更新现有文章
  • 按关键字搜索文章
  • 正在检索文章详细信息
  • 获取用户信息
  • 从出版物中获取最新文章

安装

  1. 克隆存储库:

    git clone https://github.com/sbmagar13/hashnode-mcp-server.git
    cd hashnode-mcp-server
    
  2. 创建虚拟环境并激活它:

    python -m venv .venv
    source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
    
  3. 安装依赖项:

    pip install -r requirements.txt
    
  4. 创建 .env 根目录中带有您的Hashnode API凭据的文件:

    HASHNODE_PERSONAL_ACCESS_TOKEN=your_personal_access_token
    HASHNODE_API_URL=https://gql.hashnode.com
    

用法

启动服务器

您有两个运行服务器的选项:

选项1:手动运行服务器

python run_server.py

或者直接使用根文件:

python mcp_server.py

服务器将启动并监听来自AI助手的连接。默认情况下,它运行在 localhost:8000 使用服务器发送事件(SSE)传输协议。

选项2:让MCP集成自动处理

在Claude Desktop或Cline VSCode扩展中正确配置后,MCP集成将自动启动并为您管理服务器进程。

关于文件结构的重要说明

在Claude Desktop或Cline VSCode扩展中配置MCP服务器时,您应该使用root mcp_server.py 直接文件,而不是 hashnode_mcp 目录。这 hashnode_mcp 目录主要用于打包目的。

可用工具

服务器提供以下工具:

  • test_api_connection():测试与Hashnode API的连接
  • create_article(title, body_markdown, tags="", published=False):在Hashnode上创建并发布一篇新文章
  • update_article(article_id, title=None, body_markdown=None, tags=None, published=None):更新Hashnode上的现有文章
  • get_latest_articles(hostname, limit=10):按主机名从Hashnode发布中获取最新文章
  • search_articles(query, page=1):搜索关于Hashnode的文章
  • get_article_details(article_id):获取特定文章的详细信息
  • get_user_info(username):获取有关Hashnode用户的信息

使用MCP服务器

服务器运行后,您可以将其与支持模型上下文协议(MCP)的AI助手(如Claude)一起使用。助手将能够使用服务器提供的工具与Hashnode API进行交互。

这些工具可用于:

  • 测试API连接
  • 创建和发布新文章
  • 更新现有文章
  • 从出版物获取最新文章
  • 搜索文章
  • 获取特定文章的详细信息
  • 获取用户信息

在Claude桌面上配置MCP和Cline VSCode扩展

临床VSCode扩展

  1. 导航到Cline MCP设置文件:

    • 窗户: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
    • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings\cline_mcp_settings.json
    • Linux: Unfortunately, Claude Desktop is not available for Linux as of now (您可以使用Cline扩展)
  2. 添加您的Hashnode MCP服务器配置:

    {
      "mcpServers": {
        "hashnode": {
          "command": "/path/to/your/venv/bin/python",
          "args": [
            "/path/to/your/hashnode-mcp-server/mcp_server.py"
          ],
          "env": {
            "HASHNODE_PERSONAL_ACCESS_TOKEN": "your-personal-access-token"
          }
        }
      }
    }
    

克劳德桌面版

  1. 导航到配置文件:

    • 窗户: %APPDATA%\Claude\claude_desktop_config.json
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  2. 使用与上述相同的格式添加您的Hashnode MCP服务器配置。

连接问题疑难解答

如果您遇到连接问题:

  • 验证服务器是否正在运行
  • 检查配置中的路径
  • 确保您的环境变量设置正确
  • 检查服务器日志中是否有任何错误消息
  • 尝试重新启动MCP服务器和Claude应用程序

环境变量

  • HASHNODE_PERSONAL_ACCESS_TOKEN:您的Hashnode个人访问令牌
  • HASHNODE_API_URL:Hashnode GraphQL API URL(默认值:https://gql.hashnode.com)

贡献

欢迎投稿!请随时提交拉取请求。

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

GitHub存储库

这个项目的源代码可以在GitHub上找到: https://github.com/sbmagar13/hashnode-mcp-server

技术架构

该项目采用干净的模块化结构组织:

  • mcp_server.py:可以直接运行的根服务器实现
  • hashnode_mcp/:包含模块化功能的核心包
    • mcp_server.py:服务器实现的包版本
    • utils.py:用于格式化响应和GraphQL查询的实用函数
  • run_server.py:使用包版本运行服务器的入口点

服务器使用Python的异步编程 asyncio 和 httpx 用于高效API通信的库。GraphQL查询和突变被定义为常量,使其易于维护和更新。

未来的增强功能

计划的未来发展包括:

  • 其他Hashnode功能(评论、系列、通讯)
  • 分析集成
  • 内容优化
  • 多用户支持
  • Webhook支持

致谢