connect

package
v0.22.1-rc.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 30, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package connect provides functionality to register MCPProxy as an MCP server in various client configuration files (Claude Code, Cursor, VS Code, Windsurf, Codex, Gemini).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConfigPath

func ConfigPath(clientID, homeDir string) string

ConfigPath returns the expected configuration file path for the given client on the current operating system. homeDir overrides os.UserHomeDir when non-empty (useful for testing).

Types

type ClientDef

type ClientDef struct {
	ID        string // Unique identifier, e.g. "claude-code"
	Name      string // Human-readable name, e.g. "Claude Code"
	Format    string // File format: "json" or "toml"
	ServerKey string // Top-level key for server entries: "mcpServers" or "servers"
	Supported bool   // Whether this client supports HTTP/SSE transport
	Reason    string // Explanation when Supported is false
	Icon      string // Icon identifier for frontend use
}

ClientDef describes a known MCP client and its configuration file format.

func FindClient

func FindClient(clientID string) *ClientDef

FindClient looks up a client definition by ID. Returns nil if not found.

func GetAllClients

func GetAllClients() []ClientDef

GetAllClients returns the definitions of all known clients.

type ClientStatus

type ClientStatus struct {
	ID         string `json:"id"`
	Name       string `json:"name"`
	ConfigPath string `json:"config_path"`
	Exists     bool   `json:"exists"`           // config file exists on disk
	Connected  bool   `json:"connected"`        // mcpproxy entry present in config
	Supported  bool   `json:"supported"`        // client supports HTTP/SSE
	Reason     string `json:"reason,omitempty"` // why not supported
	Icon       string `json:"icon"`
	ServerName string `json:"server_name,omitempty"` // name under which mcpproxy is registered
}

ClientStatus describes the current state of a client's configuration with respect to an MCPProxy entry.

type ConnectResult

type ConnectResult struct {
	Success    bool   `json:"success"`
	Client     string `json:"client"`
	ConfigPath string `json:"config_path"`
	BackupPath string `json:"backup_path,omitempty"`
	ServerName string `json:"server_name"`
	Action     string `json:"action"` // "created", "updated", "already_exists", "removed", "not_found"
	Message    string `json:"message"`
}

ConnectResult describes the outcome of a connect or disconnect operation.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service provides connect/disconnect operations for MCP client configurations.

func NewService

func NewService(listenAddr, apiKey string) *Service

NewService creates a Service that will inject the given listen address and optional API key into client configurations.

func NewServiceWithHome

func NewServiceWithHome(listenAddr, apiKey, homeDir string) *Service

NewServiceWithHome creates a Service with a custom home directory (for testing).

func (*Service) Connect

func (s *Service) Connect(clientID, serverName string, force bool) (*ConnectResult, error)

Connect registers MCPProxy in the specified client's configuration file. serverName defaults to "mcpproxy" if empty. If force is false and an entry already exists, an error is returned.

func (*Service) Disconnect

func (s *Service) Disconnect(clientID, serverName string) (*ConnectResult, error)

Disconnect removes the MCPProxy entry from the specified client's configuration.

func (*Service) GetAllStatus

func (s *Service) GetAllStatus() []ClientStatus

GetAllStatus returns the connection status for every known client.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL