PostMCP

February 25, 2025 · View on GitHub

这是一个使用 Typescript 实现的 MCP(Model Context Protocol)server,仿照官方 mcp_server_fetch 工具实现,用以访问 API 服务器。

功能特性

  • 支持 GET / POST / PUT / DELETE 等请求方法
  • 支持动态参数配置
  • 支持环境变量管理(可用于JWT鉴权储存token等)
  • 支持请求前后执行自定义脚本
    • beforeRequest(req: request)
    • afterResponse(resp: response)
  • 支持在参数中使用环境变量引用:$(变量名)

工具列表

环境变量管理

  • setEnvironment: 设置环境变量
  • getEnvironment: 获取环境变量
  • deleteEnvironment: 删除环境变量
  • listEnvironment: 列出所有环境变量

API访问

  • requestApi: 访问API服务
    • 支持传入查询参数:{req.query: {"key": "value"...}}
    • 支持传入请求体:{req.body: {"key": "value"...}}
    • 支持设置访问的方法:GET/POST/PUT/DELETE,默认为GET
    • 支持传入自定义请求头,默认包含content-type
    • 返回请求状态码和JSON格式的响应结果
    • 支持请求前后执行自定义脚本

提示词

提示词 "requestServer" 可以获取使用帮助。

安装与运行

# 安装依赖
npm install

# 开发模式运行
npm run dev

# 构建项目
npm run build

# 运行构建后的项目
npm start

在 Cursor 中作为客户端连接 PostMCP 服务器

要在 Cursor IDE 中作为客户端连接到 PostMCP 服务器,请按照以下步骤操作:

  1. 编译 PostMCP 服务器

    npm run build
    
  2. 在 Cursor 中配置 MCP 服务器

    • 在项目根目录创建 .cursor/mcp.json 文件(如果不存在)
    • 添加以下配置:

{ "mcpServers": { "postmcp": { "command": "ts-node-dev", "args": ["./dist/index.js"] } } }


## 使用示例

1. 设置环境变量: 

setEnvironment({ key: "baseUrl", value: "https://jsonplaceholder.typicode.com" })


2. 发送GET请求: 

requestApi({ url: "$(baseUrl)/posts/1" })


3. 发送POST请求: 

requestApi({ url: "$(baseUrl)/posts", method: "POST", body: { title: "测试标题", body: "测试内容", userId: 1 } })


4. 使用请求前后置脚本:

requestApi({ url: "$(baseUrl)/posts/1", beforeRequestScript: "setEnvironment('requestTime', new Date().toISOString())", afterResponseScript: "console.log('请求时间:', getEnvironment('requestTime'))" })