Token导航 LogoToken导航TokenDH.com
Medium MCP API logo
运维云端未说明官方级别未说明来源级核验

Medium MCP API

MCP Server

一个与Medium API集成的模型上下文协议(MCP)服务器,用于从外部应用程序无缝发布内容和管理用户账户。

工具数

0

提示词数

0

GitHub Stars

5

资源数

0
JavaScript用户管理云端部署

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

jignesh88

提供方

jignesh88

最后核验

2026/5/17 20:21

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

中型MCP API服务器

模型上下文协议(MCP)服务器,与Medium的API集成,实现来自外部应用程序的无缝内容发布和用户帐户管理。模型上下文协议为人工智能模型与外部服务和API交互提供了一种标准化的方式,使该服务器成为人工智能助手和Medium发布平台之间的桥梁。

🚀 特性

  • 身份验证和用户管理

- Secure Medium OAuth集成 - 基于JWT的身份验证 - 用户配置文件管理

  • 内容发布

- 支持Markdown和HTML内容格式 - 草稿创建和管理 - 岗位安排 - 出版物集成 - 标签和类别支持

  • 媒体管理

- 图像上传和存储 - 内容格式化实用程序

  • 可靠性和性能

- 基于Redis的缓存 - 发布后的作业安排 - 全面的错误处理 - 速率限制

📋 需求

  • Node.js 16+
  • MongoDB
  • Redis(可选,但建议用于调度)
  • 中等API证书

🛠️ 安装

使用Docker(推荐)

  1. 克隆存储库:
   git clone https://github.com/jignesh88/medium-mcp-api.git
   cd medium-mcp-api
  1. 创建一个 .env 基于示例的文件:
   cp .env.example .env
  1. 更新 .env 使用您的凭据文件:
   MEDIUM_CLIENT_ID=your_medium_client_id
   MEDIUM_CLIENT_SECRET=your_medium_client_secret
   MEDIUM_REDIRECT_URI=http://your-domain.com/api/auth/medium/callback
   JWT_SECRET=your_strong_secret_key
  1. 使用Docker Compose启动服务:
   docker-compose up -d

手动安装

  1. 克隆存储库:
   git clone https://github.com/jignesh88/medium-mcp-api.git
   cd medium-mcp-api
  1. 安装依赖项:
   npm install
  1. 创建和配置您的 .env 文件
  1. 启动MongoDB和Redis服务器
  1. 启动应用程序:
   npm start

🔐 中等API设置

  1. 在以下位置创建Medium开发人员应用程序https://medium.com/me/applications
  2. 将回调URL设置为 http://your-domain.com/api/auth/medium/callback
  3. 将您的客户ID和客户密码复制到您的 .env 文件

📚 API文档

身份验证端点

注册新用户

POST /api/auth/register

请求正文:

{
  "email": "user@example.com",
  "name": "John Doe"
}

答复:

{
  "message": "User registered successfully",
  "token": "jwt_token_here",
  "user": {
    "userId": "user_id",
    "email": "user@example.com",
    "name": "John Doe"
  }
}

登录

POST /api/auth/login

请求正文:

{
  "email": "user@example.com"
}

答复:

{
  "message": "Login successful",
  "token": "jwt_token_here",
  "user": {
    "userId": "user_id",
    "email": "user@example.com",
    "name": "John Doe",
    "mediumConnected": true
  }
}

连接中型帐户

GET /api/auth/medium

标题:

Authorization: Bearer jwt_token_here

答复:

{
  "authUrl": "https://medium.com/m/oauth/authorize?client_id=..."
}

内容管理端点

创建帖子

POST /api/posts

标题:

Authorization: Bearer jwt_token_here

请求正文:

{
  "title": "My New Post",
  "content": "# Markdown Content\n\nThis is my post content.",
  "contentFormat": "markdown",
  "tags": ["programming", "tutorial"],
  "publishStatus": "draft",
  "publicationId": "optional_publication_id"
}

答复:

{
  "_id": "post_id",
  "userId": "user_id",
  "title": "My New Post",
  "content": "# Markdown Content\n\nThis is my post content.",
  "contentFormat": "markdown",
  "tags": ["programming", "tutorial"],
  "publishStatus": "draft",
  "createdAt": "2025-03-16T07:00:00.000Z",
  "updatedAt": "2025-03-16T07:00:00.000Z"
}

将帖子发布到Medium

POST /api/posts/:postId/publish

标题:

Authorization: Bearer jwt_token_here

答复:

{
  "message": "Post published successfully",
  "post": {
    "_id": "post_id",
    "mediumPostId": "medium_post_id",
    "title": "My New Post",
    "published": true,
    ...
  }
}

获取用户帖子

GET /api/posts?status=draft&page=1&limit=10

标题:

Authorization: Bearer jwt_token_here

答复:

{
  "posts": [
    {
      "_id": "post_id",
      "title": "My New Post",
      ...
    }
  ],
  "total": 15,
  "page": 1,
  "pages": 2
}

媒体管理

上传图片

POST /api/media/upload

标题:

Authorization: Bearer jwt_token_here
Content-Type: multipart/form-data

表格数据:

image: [file]

答复:

{
  "message": "File uploaded successfully",
  "filePath": "/uploads/filename.jpg",
  "fileName": "filename.jpg",
  "originalName": "my-image.jpg",
  "mimeType": "image/jpeg",
  "size": 12345
}

🔄 与MCP服务器集成

示例:使用Node.js发布帖子

const axios = require('axios');

const API_URL = 'http://your-domain.com';
const TOKEN = 'your_jwt_token';

async function publishPost() {
  try {
    // Create a draft post
    const post = await axios.post(`${API_URL}/api/posts`, {
      title: 'My Awesome Article',
      content: '# Hello Medium\n\nThis is my first post published via the MCP API.',
      contentFormat: 'markdown',
      tags: ['api', 'medium', 'tutorial'],
      publishStatus: 'draft'
    }, {
      headers: {
        'Authorization': `Bearer ${TOKEN}`
      }
    });
    
    // Publish the post to Medium
    const published = await axios.post(`${API_URL}/api/posts/${post.data._id}/publish`, {}, {
      headers: {
        'Authorization': `Bearer ${TOKEN}`
      }
    });
    
    console.log('Post published successfully!', published.data);
  } catch (error) {
    console.error('Error publishing post:', error.response?.data || error.message);
  }
}

publishPost();

📅 计划发布

服务器支持为将来的发布安排帖子。在创建或更新帖子时,请包含 scheduledAt 带有ISO时间戳的字段:

{
  "title": "Scheduled Post",
  "content": "This will be published automatically.",
  "scheduledAt": "2025-03-20T12:00:00.000Z"
}

如果配置了Redis,服务器将在指定时间自动发布帖子。

🛡️ 安全考虑

  • 在生产环境中始终使用HTTPS
  • 定期轮换JWT机密
  • 设置适当的监控和记录
  • 将敏感数据存储在环境变量或安全保管库中
  • 实施适当的CORS策略

🔧 配置

所有配置都是通过环境变量完成的:

变量描述必填
PORT服务器端口(默认值:3000)
MONGODB_URIMONGODB连接字符串
REDIS_URLREDIS连接字符串
JWT_SECRETJWT令牌的秘密
MEDIUM_CLIENT_ID中等API客户端ID
MEDIUM_CLIENT_SECRET中等API客户端机密
MEDIUM_REDIRECT_URIOAuth回调URL
FRONTEND_URL前端重定向的URL

📜 许可证

麻省理工学院

🤝 贡献

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

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

目录标签

目录标签

JavaScript用户管理云端部署内容发布本地部署API集成媒体管理自动化发布

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

oauth

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明oauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP