mcp-desktop

MCP.Pizza Chef: http4k

The http4k MCP Desktop Client is a command-line client enabling desktop applications to connect to MCP servers through standard input/output (StdIO). It supports multiple remote transport protocols like HTTP Streaming, SSE, JSON-RPC, and WebSocket, and offers various authentication methods including API Key, Bearer Token, Basic Auth, and OAuth. Optimized for http4k MCP SDK servers, it provides a customizable reconnection strategy and a simple interface for native Kotlin desktop apps, facilitating smooth integration with AI assistants like Claude and other desktop AI applications.

Use This MCP client To

Connect desktop AI apps to MCP servers via StdIO Use multiple transport protocols for flexible server communication Authenticate MCP connections with API Key, OAuth, or Basic Auth Implement custom reconnection strategies for reliable connectivity Integrate Kotlin desktop apps with MCP servers easily Proxy MCP server communication for desktop AI assistants

README

http4k MCP Desktop Client

http4k Logo

A command-line desktop client for connecting to MCP (Model Context Protocol) servers via standard input/output (StdIO). This client is designed to work seamlessly with AI assistants and applications that communicate through StdIO, such as Claude and other desktop AI applications.

Overview

The http4k MCP Desktop Client serves as a proxy that enables communication between desktop applications and MCP servers. While it works with any MCP-compliant server, it's specially optimized for servers built using the http4k MCP SDK.

Features

  • Multiple remote transport options: HTTP Streaming, SSE (Server-Sent Events), JSON-RPC, WebSocket
  • Various authentication methods: API Key, Bearer Token, Basic Auth, and OAuth
  • Customizable reconnection strategy
  • Simple StdIO interface for easy integration with desktop applications when using natively compiled Kotlin apps.

Remote Protocol Comparison

The MCP Standard remote protocol is HTTP Streaming, which superceded the previous standard (SSE) in the 2025-03-26 version. http4k has implemented other standard transports into the http4k-mcp-desktop, as these will be more appropriate for distributed/hosted MCP servers.

Protocol Standard/Extension State Default server path Setting Description
HTTP Non-streaming MCP Standard Stateless http://host/mcp http-nonstream Pure HTTP-based streaming communication Use this setting for Cursor!
HTTP Streaming MCP Standard Stateful http://host/mcp http-stream HTTP/SSE-based streaming communication. Supports sessions and replaying/reconnection of stram
SSE MCP (Legacy) Stateful http://host/sse sse Server-Sent Events, part of HTML5 spec, ideal for streaming data from server to client
WebSocket Protocol Extension Stateful http://host/ws websocket Full-duplex communication protocol, maintains persistent connection
JSON-RPC Protocol Extension Stateless http://host/jsonrpc jsonrpc Remote Procedure Call protocol encoded in JSON, request/response model

Installation

Via Homebrew

brew tap http4k/tap
brew install http4k-mcp-desktop

Via GitHub Releases

Download the latest release from GitHub Releases.

Usage

http4k-mcp-desktop --url http://localhost:3001/<protocol> [OPTIONS]

Command Line Options

Option Description Default
--transport MCP transport mode: http-stream, http-nonstream, sse (legacy), jsonrpc (non-streaming), websocket (streaming) http-stream
--url URL of the MCP server to connect to (required) N/A
--reconnectDelay Reconnect delay in seconds if disconnected 0
--version Get the version information for the app N/A

Authentication Options

At time of writing, the MCP auth standards are in flux, but http4k-mcp-desktop has implemented some standard HTTP mechanisms into the http4k-mcp-desktop.

  • Basic Auth
  • Bearer Token
  • API Key
  • *OAuth via standardised auto-discovery
  • This is the OAuth standard which is currently in the post 2025-03-26 draft specification which uses auto discovery of the authentication token using OAuth Protected Resource and OAuth Client Credentials. This requires:

    • The MCP server to list its authentication servers in it's OAuth Protected Resource metadata endpoint (/.well-knwon/oauth-protected-resource)
    • The Authentication server to support the OAuth Client Credentials flow and auto discovery endpoint (/.well-knwon/oauth-authorization-server)

MCP servers built using the http4k MCP SDK do support the above, but other servers may not.

Option Description Format
--apiKey API key for server authentication String
--apiKeyHeader Custom header name for API key X-Api-key (default)
--bearerToken Bearer token for server authentication String
--basicAuth Basic authentication credentials <user>:<password>
--oauthScopes OAuth scopes to request Comma-separated list
--oauthClientCredentials OAuth client credentials <client>:<secret>

Examples

Basic connection: HTTP Streaming (HTTP+SSE) HTTP Connection

http4k-mcp-desktop --url http://localhost:3001/mcp
...or
http4k-mcp-desktop --url http://localhost:3001/mcp --transport http-stream

Basic connection: HTTP Non-streaming (HTTP) + Cursor

http4k-mcp-desktop --url http://localhost:3001/mcp --transport http-nonstream

Basic SSE Connection (legacy MCP standard)

http4k-mcp-desktop --url http://localhost:3001/sse --transport sse

HTTP Streaming with auto-discovered (Protected Resource) OAuth Authentication.

http4k-mcp-desktop --url http://localhost:3001/mcp --oauthClientCredentials client:secret

JSON-RPC with API Key Auth w

http4k-mcp-desktop --transport jsonrpc --url http://localhost:3001/jsonrpc --apiKey your-api-key

WebSocket with Bearer Token and Reconnect

http4k-mcp-desktop --transport websocket --url ws://localhost:3001/ws --bearerToken your-token --reconnectDelay 5

Integration with AI Applications

This client is specifically designed to work with desktop AI applications that use StdIO for communication. It handles:

  1. Reading input from the AI application via stdin
  2. Sending that input to the MCP server
  3. Receiving responses from the server
  4. Passing those responses back to the application via stdout

This enables seamless connections between desktop AI applications like Claude and remote MCP servers.

Configuring Claude Desktop

To configure Claude Desktop to use the http4k MCP Desktop Client, you'll need to create a JSON configuration file. Note that if you're on mac and installed the app via Brew, it will already be on your path. Here's how to set it up:

  1. Create a config.json file with the following structure:
{
    "command": "/path/to/http4k-mcp-desktop",
    "args": [
        "--url",
        "http://your-mcp-server:port/mcp"
    ],
    "env": {}
}
  1. Adjust the parameters as needed:

    • Update the path to where you've installed the http4k-mcp-desktop binary. For brew users it's already on your path so just use http4k-mcp-desktop
    • Set the correct URL and protocol options for your MCP server (see examples)
    • Add any authentication options required (see examples)
  2. In the Claude Desktop application settings, specify the path to your config.json file.

Example Configurations

Basic MCP Server Connection:

{
    "command": "/usr/local/bin/http4k-mcp-desktop",
    "args": [
        "--url",
        "http://localhost:3001/sse"
    ],
    "env": {}
}

With API Key Authentication:

{
    "command": "/usr/local/bin/http4k-mcp-desktop",
    "args": [
        "--url",
        "http://localhost:3001/sse",
        "--apiKey",
        "your-api-key"
    ],
    "env": {}
}

With OAuth Authentication:

{
    "command": "/usr/local/bin/http4k-mcp-desktop",
    "args": [
        "--url",
        "http://localhost:3001/sse",
        "--oauthTokenUrl",
        "http://localhost:3001/token",
        "--oauthClientCredentials",
        "client:secret"
    ],
    "env": {}
}

Learn More

FAQ

  • Q: I'm using Cursor but I get an error message when installing my MCP connection
  • A: Cursor users should currently use HTTP Non-streaming mode (--transport http-nonstream)

License

This project is licensed under the http4k Commercial License, which is totally free for non-commercial, non-profit and research use.

mcp-desktop FAQ

How does mcp-desktop handle different transport protocols?
It supports HTTP Streaming, SSE, JSON-RPC, and WebSocket for flexible MCP server communication.
What authentication methods does mcp-desktop support?
It supports API Key, Bearer Token, Basic Auth, and OAuth authentication methods.
Can mcp-desktop reconnect automatically if the connection drops?
Yes, it includes a customizable reconnection strategy to maintain stable connections.
Is mcp-desktop limited to any specific MCP servers?
No, it works with any MCP-compliant server but is optimized for http4k MCP SDK servers.
How does mcp-desktop integrate with desktop AI applications?
It uses a simple StdIO interface, making it easy to connect with native Kotlin desktop apps and AI assistants like Claude.
Can mcp-desktop be used with AI models from providers like OpenAI, Claude, or Gemini?
Yes, it facilitates communication with MCP servers that can connect to models from OpenAI, Claude, Gemini, and others.