EasyPostman

September 15, 2026 · View on GitHub

EasyPostman Logo

EasyPostman

An open-source Postman-style API client + JMeter-style load testing desktop app
Local-first · Git workspaces · Headless CLI · Built-in MCP Server

GitHub license GitHub release GitHub downloads GitHub stars Java Platform

简体中文 · 📦 Download · 🤖 Install MCP · 📖 Docs · 💬 Discuss · WeChat: lakernote


What is EasyPostman?

EasyPostman combines Postman-style API debugging and JMeter-style performance testing in one Java 17 desktop application. Collections, environments, and test data stay local by default, while Git workspaces support team collaboration. The same workspace can also run in CI through the headless CLI or be exposed to AI clients such as Codex, Claude Desktop, and Cursor through MCP.

Core capabilityWhat it provides
🔌 API debuggingHTTP/HTTPS, SSE, WebSocket, auth, cookies, multiple body types, response inspection, and network logs
🧩 Collections and scriptsPostman v2.1 / cURL import, environments, pre/post scripts, assertions, and request chaining
⚡ Performance testingThread groups, timers, extractors, live metrics, reports, and distributed master/worker runs
🏢 Local and Git workspacesIsolated collections, environments, and settings with user-controlled storage
🤖 MCP and headless CLILet AI run saved APIs; run collections, functional tests, and load plans in CI

📖 See the full feature list

🖼️ Preview

Postman-style API debugging JMeter-style performance testing
Collections and response viewer Performance trend dashboard
Scripts, assertions, and snippets Git workspace collaboration
Script snippets and editor support Git workspace management

📸 View all screenshots

📦 Download and install

Download the latest release from GitHub Releases. A Gitee mirror is also available. Native installers and the Windows portable package include a runtime, so neither the desktop app nor MCP needs a separate Java installation. Only the cross-platform JAR requires Java 17+.

Windows WinGet

winget install --id Laker.EasyPostman --exact

Upgrade later with:

winget upgrade --id Laker.EasyPostman --exact

Choose a package

PlatformFile
macOS Apple SiliconEasyPostman-{version}-macos-arm64.dmg
macOS IntelEasyPostman-{version}-macos-x86_64.dmg
Windows installer / portableEasyPostman-{version}-windows-x64.exe / -portable.zip
Debian / Ubuntu x64EasyPostman-{version}-linux-amd64.deb
Debian / Ubuntu ARM64EasyPostman-{version}-linux-arm64.deb; use -compat.deb only for older incompatible dpkg versions
RHEL / Rocky / CentOS / FedoraEasyPostman-{version}-1.x86_64.rpm or -1.aarch64.rpm
Cross-platform JAReasy-postman-{version}.jar, requires Java 17+

Windows SmartScreen or macOS Gatekeeper may show a warning on first launch. Choose “Run anyway,” or right-click the macOS app and choose “Open.” The project does not currently use a commercial code-signing certificate, and all source code is available for review.

🤖 MCP Server

The MCP Server is included in every EasyPostman release package, so there is no separate MCP download or server to start manually. The recommended native installers and Windows portable package bundle both EasyPostmanMCP and a JRE, so users do not need to install Java.

  1. Install a native package from Releases, or extract the Windows portable ZIP.
  2. Add a local STDIO MCP Server in Codex, Claude Desktop, or Cursor and use the platform launcher as command:
Platformcommand
macOS/Applications/EasyPostman.app/Contents/MacOS/EasyPostmanMCP
Windows installerC:\Program Files\EasyPostman\EasyPostmanMCP.exe
Windows portableEasyPostmanMCP.exe in the extracted directory, for example D:\Tools\EasyPostman\EasyPostmanMCP.exe
Linux DEB / RPM/opt/easypostman/bin/EasyPostmanMCP

The core macOS configuration is shown below; on another platform, replace only command:

{
  "command": "/Applications/EasyPostman.app/Contents/MacOS/EasyPostmanMCP",
  "args": []
}

With Codex CLI:

codex mcp add easy-postman -- /Applications/EasyPostman.app/Contents/MacOS/EasyPostmanMCP
  1. Save the configuration, restart the MCP client, and open a new conversation. A safe first test is: Use EasyPostman MCP to list all workspaces. Do not run any request.

Keep args empty for the default setup; no workspace path is required. The client starts one process per MCP connection and reuses it across tool calls—it does not restart EasyPostman for every API call. Keep the entire Windows portable directory together; EasyPostmanMCP.exe cannot be copied out by itself.

If you download only the cross-platform JAR, use this fallback and make sure Java 17+ is available:

{
  "command": "java",
  "args": ["-jar", "/absolute/path/to/easy-postman-{version}.jar", "mcp", "serve"]
}

By default, MCP loads workspaces registered in EasyPostman. AI can call list_workspaces, then select a workspace and environment per tool call. The desktop app and MCP run as separate processes and can be used at the same time; MCP does not switch the desktop UI or change its current selection.

To authorize only one workspace, pass its absolute path in the native launcher's args; with the JAR fallback, append it after "serve". The directory must contain collections.json; environments.json is optional.

JSON-based clients such as Claude Desktop and Cursor normally place the object above under mcpServers.easy-postman. Codex can also use MCP Server settings or config.toml. See the official Codex MCP documentation.

What AI can do

AI can list workspaces, collections, environments, and saved requests, then use run_request or run_collection to select a workspace and environment for that call and execute HTTP APIs. Environment values are not exposed by listing tools. API response bodies are returned to the MCP client, so do not authorize workspaces containing sensitive business data to an untrusted client.

MCP can discover and execute only saved HTTP requests in authorized workspaces; it cannot construct an arbitrary URL on demand. API response bodies are returned to the MCP client, and requests can cause real business side effects, so only trusted MCP clients should receive access to production workspaces.

📖 Full MCP setup, tools, architecture, and security guide (Chinese)

🚀 Quick start

The basic desktop workflow:

  1. Create a local workspace or connect a Git workspace.
  2. Create or import a collection and select an environment.
  3. Enter the URL, parameters, and authentication, then send the request.
  4. Add scripts, assertions, functional tests, or a load-test plan as needed.

Build and run from source:

git clone https://github.com/lakernote/easy-postman.git
cd easy-postman
mvn -pl easy-postman-app -am -DskipTests clean package
java -jar easy-postman-app/target/easy-postman-*.jar

📖 Full build guide (Chinese)

🧪 Headless CLI

The same JAR can run a native EasyPostman workspace without exporting collections or environments:

java -jar easy-postman.jar collection run /srv/api-workspace -c "Basic HTTP Examples" -e "Dev Env"
java -jar easy-postman.jar functional run /srv/api-workspace --bail --out target/result.json

📚 Documentation

GuideContents
Feature referenceAPI debugging, scripts, Mock Server, performance testing, and workspaces
MCP ServerSetup, tool inputs, workspace/environment routing, architecture, and security
Collection CLIHeadless collection runs, variables, data, uploads, and CI exit codes
Functional CLIRun functional tests from functional_config.json
Plugin architecturePlugin development and online/offline installation
Script APIPre-request and test script reference
Build guideSource builds and native installers
FAQInstallation and usage questions

🛠️ Development and contributing

# Fast compile
mvn -q -pl easy-postman-app -am -DskipTests compile

# Full build and tests
mvn clean package

Bug reports, ideas, documentation, and code contributions are welcome: create an issue · contribution guide

🙏 Credits and support

EasyPostman builds on excellent open-source projects including FlatLaf, RSyntaxTextArea, and OkHttp.

If EasyPostman helps you, consider giving it a Star, joining the discussions, or contacting lakernote on WeChat.

Postman-style API debugging, JMeter-style performance testing

Made with ❤️ by laker