Skip to main content

rust_memex/
common.rs

1//! Shared types for MCP host detection.
2
3use serde::{Deserialize, Serialize};
4
5/// Supported MCP host application kinds.
6#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
7pub enum HostKind {
8    Codex,
9    Cursor,
10    VSCode,
11    Claude,
12    JetBrains,
13    Unknown,
14}
15
16impl HostKind {
17    pub fn as_label(&self) -> &'static str {
18        match self {
19            HostKind::Codex => "codex",
20            HostKind::Cursor => "cursor",
21            HostKind::VSCode => "vscode",
22            HostKind::Claude => "claude",
23            HostKind::JetBrains => "jetbrains",
24            HostKind::Unknown => "unknown",
25        }
26    }
27
28    pub fn display_name(&self) -> &'static str {
29        match self {
30            HostKind::Codex => "Codex CLI",
31            HostKind::Cursor => "Cursor",
32            HostKind::VSCode => "VS Code",
33            HostKind::Claude => "Claude Desktop",
34            HostKind::JetBrains => "JetBrains IDEs",
35            HostKind::Unknown => "Unknown",
36        }
37    }
38}
39
40/// Configuration file format for MCP hosts.
41#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
42pub enum HostFormat {
43    Toml,
44    Json,
45}