[PR #5965] feat(realtime): add Model Context Protocol (MCP) client support #5437

Open
opened 2026-03-17 02:52:57 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hoppscotch/hoppscotch/pull/5965
Author: @rahulbsw
Created: 3/9/2026
Status: 🔄 Open

Base: mainHead: feat/mcp-client-support


📝 Commits (10+)

  • ec97a96 feat(realtime): add Model Context Protocol (MCP) client support
  • addbe8f docs(mcp): add comprehensive tests and documentation
  • 6494089 docs(mcp): add local testing guide with Playwright examples
  • 3cd04ea refactor(mcp): move MCP to separate sidebar navigation
  • ce36e26 fix(mcp): replace HoppSmartSelect with HoppButtonSecondary
  • 40a0d75 fix(mcp): address critical PR review issues
  • 87240e0 feat(mcp): add server catalog for quick connections
  • 9313e80 fix(mcp): address PR review issues from cubic-dev-ai
  • fd5e4a4 fix(mcp): address additional PR review issues
  • 5e90944 fix(mcp): address remaining PR review issues

📊 Changes

32 files changed (+5410 additions, -78 deletions)

View changed files

packages/hoppscotch-common/assets/icons/mcp.svg (+1 -0)
📝 packages/hoppscotch-common/locales/en.json (+53 -0)
📝 packages/hoppscotch-common/src/components.d.ts (+14 -0)
📝 packages/hoppscotch-common/src/components/app/Sidenav.vue (+7 -0)
packages/hoppscotch-common/src/components/collections/mcp/Add.vue (+93 -0)
packages/hoppscotch-common/src/components/collections/mcp/Edit.vue (+104 -0)
packages/hoppscotch-common/src/components/collections/mcp/index.vue (+184 -0)
packages/hoppscotch-common/src/components/history/mcp/Card.vue (+122 -0)
packages/hoppscotch-common/src/components/mcp/Configuration.vue (+220 -0)
packages/hoppscotch-common/src/components/mcp/EnvVarsList.vue (+176 -0)
packages/hoppscotch-common/src/components/mcp/HTTPAuth.vue (+206 -0)
packages/hoppscotch-common/src/components/mcp/MethodCard.vue (+164 -0)
packages/hoppscotch-common/src/components/mcp/PromptsList.vue (+103 -0)
packages/hoppscotch-common/src/components/mcp/ResourcesList.vue (+122 -0)
packages/hoppscotch-common/src/components/mcp/ServerCard.vue (+105 -0)
packages/hoppscotch-common/src/components/mcp/ServerCatalog.vue (+136 -0)
packages/hoppscotch-common/src/components/mcp/ToolsList.vue (+99 -0)
packages/hoppscotch-common/src/helpers/mcp/servers.ts (+249 -0)
packages/hoppscotch-common/src/helpers/realtime/MCPConnection.ts (+86 -0)
packages/hoppscotch-common/src/helpers/realtime/MCPHTTPConnection.ts (+335 -0)

...and 12 more files

📄 Description

Summary

Adds comprehensive Model Context Protocol (MCP) client support to Hoppscotch, similar to Postman's implementation. This enables users to connect to MCP servers, discover capabilities (tools, prompts, resources), and invoke methods with JSON arguments.

Closes #5966

Key Features:

  • HTTP and STDIO transport support
  • Multiple authentication methods (Basic, Bearer, API Key, None)
  • Automatic capability discovery
  • Tool/prompt/resource invocation with JSON editor
  • Real-time event logging and connection status
  • Collections support for saving MCP requests
  • History tracking for method invocations
  • Search/filter across capabilities
  • Full i18n support

Technical Implementation

Data Layer:

  • Versioned schema in @hoppscotch/data using verzod pattern
  • HoppMCPRequest type with transport configs and auth
  • Schema validation with Zod

Connection Layer:

  • Abstract MCPConnection base class
  • MCPHTTPConnection - JSON-RPC 2.0 over HTTP/SSE
  • MCPSTDIOConnection - Process-based transport (requires Agent/Desktop)
  • Event-driven architecture with RxJS

State Management:

  • MCPSession store with 20+ dispatchers
  • Observable streams for reactive UI updates
  • Integration with existing collections/history stores

UI Components:

  • 12 Vue 3 composition API components
  • Configuration, Tools, Prompts, Resources, Logs, Response tabs
  • Modal dialogs for collections/history
  • Real-time connection status indicators

Integration:

  • New /realtime/mcp route
  • Tab in realtime navigation alongside WebSocket, SSE, Socket.io, MQTT
  • Follows existing Hoppscotch architectural patterns

Files Changed

  • 23 new files (~3,600 lines):

    • 3 data schema files (packages/hoppscotch-data/src/mcp/)
    • 3 connection helper files (packages/hoppscotch-common/src/helpers/realtime/)
    • 1 session store (packages/hoppscotch-common/src/newstore/MCPSession.ts)
    • 13 Vue components (packages/hoppscotch-common/src/components/mcp/)
    • 1 main page (packages/hoppscotch-common/src/pages/realtime/mcp.vue)
    • i18n translations
  • 5 modified files:

    • packages/hoppscotch-common/src/newstore/collections.ts - MCP collections support
    • packages/hoppscotch-common/src/newstore/history.ts - MCP history tracking
    • packages/hoppscotch-common/src/pages/realtime.vue - Navigation entry
    • packages/hoppscotch-common/locales/en.json - i18n strings
    • pnpm-lock.yaml - No new dependencies

Test Plan

  • Zero linting errors (eslint --fix)
  • Zero TypeScript errors (vue-tsc --noEmit)
  • All pre-commit hooks pass
  • Manual testing:
    • HTTP transport connection
    • STDIO transport (requires Agent)
    • Capability discovery (tools, prompts, resources)
    • Method invocation with various JSON arguments
    • Authentication methods (Basic, Bearer, API Key)
    • Save to collections
    • History tracking
    • Search/filter functionality
    • Real-time event logging
    • UI responsiveness

Reference

Implementation based on Postman's MCP support and the Model Context Protocol specification.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hoppscotch/hoppscotch/pull/5965 **Author:** [@rahulbsw](https://github.com/rahulbsw) **Created:** 3/9/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `feat/mcp-client-support` --- ### 📝 Commits (10+) - [`ec97a96`](https://github.com/hoppscotch/hoppscotch/commit/ec97a9624571a022bcbd1d60342df1c93bc11f5f) feat(realtime): add Model Context Protocol (MCP) client support - [`addbe8f`](https://github.com/hoppscotch/hoppscotch/commit/addbe8f38bb83174c103fb7cbf040c0d105272ec) docs(mcp): add comprehensive tests and documentation - [`6494089`](https://github.com/hoppscotch/hoppscotch/commit/6494089e7dc3b6002e6c8ae26f69ff1433a9b155) docs(mcp): add local testing guide with Playwright examples - [`3cd04ea`](https://github.com/hoppscotch/hoppscotch/commit/3cd04ea2a188306629b02c19c258f856989ae25f) refactor(mcp): move MCP to separate sidebar navigation - [`ce36e26`](https://github.com/hoppscotch/hoppscotch/commit/ce36e26dcdc47e7b78f2769c6e9065bca2bda33b) fix(mcp): replace HoppSmartSelect with HoppButtonSecondary - [`40a0d75`](https://github.com/hoppscotch/hoppscotch/commit/40a0d750163699faf7b701421586826058d12ca2) fix(mcp): address critical PR review issues - [`87240e0`](https://github.com/hoppscotch/hoppscotch/commit/87240e09c36e9070f9576f41468cb72b91d0b4a2) feat(mcp): add server catalog for quick connections - [`9313e80`](https://github.com/hoppscotch/hoppscotch/commit/9313e80e1e696fa6c688cf6356225d429e8bbfd4) fix(mcp): address PR review issues from cubic-dev-ai - [`fd5e4a4`](https://github.com/hoppscotch/hoppscotch/commit/fd5e4a4164bf941adf9f5ded415e20acb8444809) fix(mcp): address additional PR review issues - [`5e90944`](https://github.com/hoppscotch/hoppscotch/commit/5e9094456b6dcd3c206b5abbf34eea7129011261) fix(mcp): address remaining PR review issues ### 📊 Changes **32 files changed** (+5410 additions, -78 deletions) <details> <summary>View changed files</summary> ➕ `packages/hoppscotch-common/assets/icons/mcp.svg` (+1 -0) 📝 `packages/hoppscotch-common/locales/en.json` (+53 -0) 📝 `packages/hoppscotch-common/src/components.d.ts` (+14 -0) 📝 `packages/hoppscotch-common/src/components/app/Sidenav.vue` (+7 -0) ➕ `packages/hoppscotch-common/src/components/collections/mcp/Add.vue` (+93 -0) ➕ `packages/hoppscotch-common/src/components/collections/mcp/Edit.vue` (+104 -0) ➕ `packages/hoppscotch-common/src/components/collections/mcp/index.vue` (+184 -0) ➕ `packages/hoppscotch-common/src/components/history/mcp/Card.vue` (+122 -0) ➕ `packages/hoppscotch-common/src/components/mcp/Configuration.vue` (+220 -0) ➕ `packages/hoppscotch-common/src/components/mcp/EnvVarsList.vue` (+176 -0) ➕ `packages/hoppscotch-common/src/components/mcp/HTTPAuth.vue` (+206 -0) ➕ `packages/hoppscotch-common/src/components/mcp/MethodCard.vue` (+164 -0) ➕ `packages/hoppscotch-common/src/components/mcp/PromptsList.vue` (+103 -0) ➕ `packages/hoppscotch-common/src/components/mcp/ResourcesList.vue` (+122 -0) ➕ `packages/hoppscotch-common/src/components/mcp/ServerCard.vue` (+105 -0) ➕ `packages/hoppscotch-common/src/components/mcp/ServerCatalog.vue` (+136 -0) ➕ `packages/hoppscotch-common/src/components/mcp/ToolsList.vue` (+99 -0) ➕ `packages/hoppscotch-common/src/helpers/mcp/servers.ts` (+249 -0) ➕ `packages/hoppscotch-common/src/helpers/realtime/MCPConnection.ts` (+86 -0) ➕ `packages/hoppscotch-common/src/helpers/realtime/MCPHTTPConnection.ts` (+335 -0) _...and 12 more files_ </details> ### 📄 Description ## Summary Adds comprehensive Model Context Protocol (MCP) client support to Hoppscotch, similar to Postman's implementation. This enables users to connect to MCP servers, discover capabilities (tools, prompts, resources), and invoke methods with JSON arguments. **Closes #5966** **Key Features:** - ✅ HTTP and STDIO transport support - ✅ Multiple authentication methods (Basic, Bearer, API Key, None) - ✅ Automatic capability discovery - ✅ Tool/prompt/resource invocation with JSON editor - ✅ Real-time event logging and connection status - ✅ Collections support for saving MCP requests - ✅ History tracking for method invocations - ✅ Search/filter across capabilities - ✅ Full i18n support ## Technical Implementation **Data Layer:** - Versioned schema in `@hoppscotch/data` using verzod pattern - `HoppMCPRequest` type with transport configs and auth - Schema validation with Zod **Connection Layer:** - Abstract `MCPConnection` base class - `MCPHTTPConnection` - JSON-RPC 2.0 over HTTP/SSE - `MCPSTDIOConnection` - Process-based transport (requires Agent/Desktop) - Event-driven architecture with RxJS **State Management:** - `MCPSession` store with 20+ dispatchers - Observable streams for reactive UI updates - Integration with existing collections/history stores **UI Components:** - 12 Vue 3 composition API components - Configuration, Tools, Prompts, Resources, Logs, Response tabs - Modal dialogs for collections/history - Real-time connection status indicators **Integration:** - New `/realtime/mcp` route - Tab in realtime navigation alongside WebSocket, SSE, Socket.io, MQTT - Follows existing Hoppscotch architectural patterns ## Files Changed - **23 new files** (~3,600 lines): - 3 data schema files (`packages/hoppscotch-data/src/mcp/`) - 3 connection helper files (`packages/hoppscotch-common/src/helpers/realtime/`) - 1 session store (`packages/hoppscotch-common/src/newstore/MCPSession.ts`) - 13 Vue components (`packages/hoppscotch-common/src/components/mcp/`) - 1 main page (`packages/hoppscotch-common/src/pages/realtime/mcp.vue`) - i18n translations - **5 modified files**: - `packages/hoppscotch-common/src/newstore/collections.ts` - MCP collections support - `packages/hoppscotch-common/src/newstore/history.ts` - MCP history tracking - `packages/hoppscotch-common/src/pages/realtime.vue` - Navigation entry - `packages/hoppscotch-common/locales/en.json` - i18n strings - `pnpm-lock.yaml` - No new dependencies ## Test Plan - [x] Zero linting errors (`eslint --fix`) - [x] Zero TypeScript errors (`vue-tsc --noEmit`) - [x] All pre-commit hooks pass - [x] Manual testing: - [x] HTTP transport connection - [ ] STDIO transport (requires Agent) - [x] Capability discovery (tools, prompts, resources) - [x] Method invocation with various JSON arguments - [ ] Authentication methods (Basic, Bearer, API Key) - [ ] Save to collections - [x] History tracking - [ ] Search/filter functionality - [ ] Real-time event logging - [x] UI responsiveness ## Reference Implementation based on [Postman's MCP support](https://learning.postman.com/docs/postman-ai/mcp-requests/create) and the [Model Context Protocol specification](https://modelcontextprotocol.io/). --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hoppscotch#5437
No description provided.