### DXT Install Directories Example Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md Suggested installation directories for MCPMate extensions on different operating systems, as defined by the DXT application. ```plaintext macOS: ~/Library/Application Support/MCPMate/Extensions/ Windows: %APPDATA%/MCPMate/Extensions/ Linux: ~/.config/MCPMate/Extensions/ ``` -------------------------------- ### Start Development Server with Bun or npm Source: https://github.com/loocor/mcpmate/blob/main/board/README.md Starts the development server using Bun or npm. The server runs on http://localhost:5173 and automatically proxies API requests. ```bash bun run dev ``` ```bash npm run dev ``` -------------------------------- ### Start Backend and Board Source: https://github.com/loocor/mcpmate/blob/main/README_CN.md Launch both the backend services and the Board interface simultaneously. This command is used to start the full development environment. ```bash # Simultaneously start backend and Board ./scripts/dev-all ``` -------------------------------- ### Install Dependencies with Bun Source: https://github.com/loocor/mcpmate/blob/main/board/AGENTS.md Use 'bun install' for dependency installation. 'npm install' is a fallback option. ```bash bun install ``` -------------------------------- ### Install Registry Server Source: https://context7.com/loocor/mcpmate/llms.txt Install a server from the MCP registry using its unique server ID. This command fetches and sets up the specified server. ```bash curl -s -X POST http://localhost:8080/api/mcp/registry/install \ -H "Content-Type: application/json" \ -d '{"server_id": "github.com/modelcontextprotocol/servers/tree/main/src/brave-search"}' ``` -------------------------------- ### Install Runtimes using Runtime Manager CLI Source: https://context7.com/loocor/mcpmate/llms.txt Installs Node.js, uv (Python), and Bun.js runtimes required by stdio MCP servers using the `runtime` CLI. Also shows how to list installed runtimes and reset the cache. ```bash # Install Node.js runtime for JavaScript MCP servers runtime install node # Install uv runtime for Python MCP servers runtime install uv # List installed runtimes runtime list ``` ```bash # Equivalent via REST API (POST /api/runtime/install): curl -s -X POST http://localhost:8080/api/runtime/install \ -H "Content-Type: application/json" \ -d '{"runtime": "uv"}' # {"ok":true,"data":{"runtime":"uv","status":"installed","version":"0.4.0"}} ``` ```bash # Check runtime status curl -s http://localhost:8080/api/runtime/status # {"ok":true,"data":{"uv":{"installed":true,"version":"0.4.0"},"bun":{"installed":false}}} ``` ```bash # Reset runtime cache curl -s -X POST http://localhost:8080/api/runtime/cache/reset \ -H "Content-Type: application/json" \ -d '{"cache_type": "all"}' ``` -------------------------------- ### Start Backend for Inspector Source: https://github.com/loocor/mcpmate/blob/main/backend/README.md Starts the MCPMate backend server, typically in one terminal, to allow the MCP Inspector to connect. ```bash cargo run ``` -------------------------------- ### Install Runtimes with MCPMate CLI Source: https://github.com/loocor/mcpmate/blob/main/README.md Use the `runtime` command to install and manage Node.js, uv (for Python), and Bun.js. This is useful for setting up different execution environments for MCP servers. ```bash # Install Node.js for JavaScript MCP servers runtime install node # Install uv for Python MCP servers runtime install uv # List installed runtimes runtime list ``` -------------------------------- ### Start Development Server with Bun Source: https://github.com/loocor/mcpmate/blob/main/board/AGENTS.md Run the development server using 'bun run dev'. This starts Vite on default ports and proxies API requests to http://localhost:8080. ```bash bun run dev ``` -------------------------------- ### Install Dependencies with Bun or npm Source: https://github.com/loocor/mcpmate/blob/main/board/README.md Installs project dependencies using either Bun or npm. Ensure you have Node.js 18+ or Bun installed. ```bash bun install ``` ```bash npm install ``` -------------------------------- ### Run Development Server Source: https://github.com/loocor/mcpmate/blob/main/backend/README.md Starts the MCPMate backend in development mode. Use `RUST_LOG=debug` for detailed logging. ```bash cargo run ``` ```bash RUST_LOG=debug cargo run ``` -------------------------------- ### Start Board Development Server Manually Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Manually start the board development server before running the Tauri development command. Ensure the host and port match the Tauri configuration. ```bash bun --cwd ../../board run dev -- --host 127.0.0.1 --port 5173 ``` -------------------------------- ### Start Backend and Board Development Server Source: https://github.com/loocor/mcpmate/blob/main/README.md Launches both the backend and the board components of the application for development purposes. Ensure you are in the project's root directory to run this command. ```bash ./scripts/dev-all ``` -------------------------------- ### Get Client Configuration Details Source: https://context7.com/loocor/mcpmate/llms.txt Fetches the configuration details for a specific AI client. ```bash # Get configuration details for a client curl -s "http://localhost:8080/api/client/config/details?id=claude_desktop" ``` -------------------------------- ### Build and Run MCPMate Backend Source: https://github.com/loocor/mcpmate/blob/main/README.md Instructions for cloning the repository, building the Rust backend in release mode, and running the proxy. The proxy starts with a REST API on http://localhost:8080 and an MCP endpoint on http://localhost:8000. ```bash # Clone the repository git clone https://github.com/loocor/MCPMate.git cd MCPMate # Build the backend cd backend cargo build --release # Run the proxy cargo run --release ``` -------------------------------- ### Runtime Manager CLI - Install MCP Runtimes Source: https://context7.com/loocor/mcpmate/llms.txt Installs Node.js, uv (Python), and Bun.js environments for stdio MCP servers. This can also be done via the REST API. ```APIDOC ## Runtime Manager CLI ### Install Node.js runtime ```bash runtime install node ``` ### Install uv runtime ```bash runtime install uv ``` ### List installed runtimes ```bash runtime list ``` ### Install via REST API #### POST /api/runtime/install ##### Description Installs a specified runtime environment. ##### Request Body - **runtime** (string) - Required - The name of the runtime to install (e.g., "uv"). ##### Request Example ```json { "runtime": "uv" } ``` ##### Success Response (200) - **ok** (boolean) - Indicates if the operation was successful. - **data** (object) - Contains details about the installed runtime. - **runtime** (string) - The name of the installed runtime. - **status** (string) - The installation status. - **version** (string) - The installed version of the runtime. ##### Response Example ```json { "ok": true, "data": { "runtime": "uv", "status": "installed", "version": "0.4.0" } } ``` ## Runtime Status ### GET /api/runtime/status #### Description Checks the status of installed runtimes. #### Response ##### Success Response (200) - **ok** (boolean) - Indicates if the operation was successful. - **data** (object) - Contains the status of various runtimes. - **uv** (object) - Status of the uv runtime. - **installed** (boolean) - Whether uv is installed. - **version** (string) - The installed version of uv. - **bun** (object) - Status of the Bun.js runtime. - **installed** (boolean) - Whether Bun.js is installed. #### Response Example ```json { "ok": true, "data": { "uv": { "installed": true, "version": "0.4.0" }, "bun": { "installed": false } } } ``` ## Runtime Cache Reset ### POST /api/runtime/cache/reset #### Description Resets the cache for specified runtime types. #### Parameters ##### Request Body - **cache_type** (string) - Required - The type of cache to reset (e.g., "all"). #### Request Example ```json { "cache_type": "all" } ``` ``` -------------------------------- ### Quick Start: Manage MCP Servers Source: https://github.com/loocor/mcpmate/blob/main/extension/cherry/README.md Demonstrates basic usage of CherryDbManager to read, list, and add MCP servers. Ensure the database path is correct. ```rust use cherry_db_manager::{CherryDbManager, DefaultCherryDbManager, ServerRequest}; fn main() -> Result<(), Box> { let manager = DefaultCherryDbManager::new(); let db_path = "./path/to/cherry/studio/leveldb"; // Read current server configuration let config = manager.read_mcp_config(db_path)?; println!("Found {} MCP servers", config.servers.len()); // List all servers let servers = manager.list_servers(db_path)?; for server in servers.servers { println!("Server: {} ({})", server.id, server.name); } // Add a new server let new_server = ServerRequest { id: "my-server".to_string(), is_active: true, args: vec!["--config".to_string(), "config.json".to_string()], command: "node".to_string(), server_type: "stdio".to_string(), name: "My Custom Server".to_string(), }; manager.add_server(db_path, &new_server)?; Ok(()) } ``` -------------------------------- ### DXT User Configuration Array Expansion Example Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md Illustrates how array expansion works for DXT user configuration fields when `multiple: true` is set. Shows the user selection and the resulting expansion in the `args` array. ```json // User selection: ["/home/user/docs", "/home/user/projects"] "args": ["${user_config.allowed_directories}"] // Expands to: ["/home/user/docs", "/home/user/projects"] ``` -------------------------------- ### DXT User Configuration Field Types (File System) Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md JSON schema examples for file system related user configuration field types in DXT extensions, including 'directory' and 'file' types. Shows usage of `multiple`, `required`, and `default` properties with path examples. ```json { "allowed_directories": { "type": "directory", "title": "Allowed Directories", "description": "Directories the server can access", "multiple": true, "required": true, "default": ["${HOME}/Desktop", "${HOME}/Documents"] }, "database_path": { "type": "file", "title": "Database File", "description": "Path to your SQLite database file", "required": true } } ``` -------------------------------- ### Run Dashboard Development Server with Bun Source: https://github.com/loocor/mcpmate/blob/main/desktop/README.md Start the dashboard development server using Bun, specifying host and port. This is useful during development to see live changes. ```bash bun --cwd ../board run dev -- --host 127.0.0.1 --port 5173 ``` -------------------------------- ### Claude Desktop Client Configuration Template Source: https://context7.com/loocor/mcpmate/llms.txt Example client template in JSON5 format for Claude Desktop. This defines how MCPMate manages the client's configuration file. ```json5 // backend/config/client/claude_desktop.json5 { identifier: "claude_desktop", display_name: "Claude Desktop", format: "json", protocol_revision: "2025-06-18", storage: { kind: "file", path_strategy: "config_path", }, detection: { macos: [ { method: "config_path", value: "~/Library/Application Support/Claude/claude_desktop_config.json", }, ], }, config_mapping: { container_keys: ["mcpServers"], container_type: "object_map", merge_strategy: "replace", keep_original_config: true, managed_source: "profile", format_rules: { stdio: { template: { command: "{{command}}", args: "{{{json args}}}", env: "{{{json env}}}", }, requires_type_field: false, }, }, }, } // Other supported identifiers: cursor, zed, codex, vscode, windsurf, kiro, trae, codebuddy, qoder ``` -------------------------------- ### Get a prompt with arguments Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves a prompt with specified arguments. ```APIDOC ## POST /api/mcp/inspector/prompt/get ### Description Retrieves a prompt with specified arguments. ### Method POST ### Endpoint /api/mcp/inspector/prompt/get ### Request Body - **name** (string) - Required - The name of the prompt. - **arguments** (object) - Required - The arguments for the prompt. ``` -------------------------------- ### Manage Client Default Mode Source: https://context7.com/loocor/mcpmate/llms.txt Use these commands to get or set the default client management mode (unify, hosted, or transparent). ```bash curl -s "http://localhost:8080/api/system/client-default-mode" ``` ```bash curl -s -X POST http://localhost:8080/api/system/client-default-mode \ -H "Content-Type: application/json" \ -d '{"default_config_mode": "unify"}' ``` -------------------------------- ### Get client configuration details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves the configuration details for a specific client. ```APIDOC ## GET /api/client/config/details ### Description Gets the configuration details for a specific client. ### Method GET ### Endpoint /api/client/config/details ### Query Parameters - **id** (string) - Required - The ID of the client. ``` -------------------------------- ### Configure macOS Signing Environment Source: https://github.com/loocor/mcpmate/blob/main/desktop/README.md Set up the environment variables required for macOS DMG distribution and Apple ID notarization. Copy the example file and fill in your credentials. ```bash cp .env.example .env # Fill these four values: # - APPLE_SIGNING_IDENTITY # - APPLE_ID # - APPLE_PASSWORD (app-specific) # - APPLE_TEAM_ID ``` -------------------------------- ### Run MCPMate Dashboard Source: https://github.com/loocor/mcpmate/blob/main/README.md Steps to install dependencies and run the React + Vite dashboard from the repository root. The dashboard will be accessible at http://localhost:5173. ```bash # From the repository root cd board bun install bun run dev ``` -------------------------------- ### Extension Cherry Development Commands Source: https://github.com/loocor/mcpmate/blob/main/AGENTS.md Commands for testing, linting, and running examples for the Cherry extension. Ensures LevelDB integration is working correctly. ```bash cargo test ``` ```bash cargo clippy -D warnings ``` ```bash cargo run --example basic_usage ``` -------------------------------- ### Get Client Capability Configuration Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves the capability configuration for a specific client. ```bash # Get capability configuration for a client curl -s "http://localhost:8080/api/client/capability-config?id=claude_desktop" ``` -------------------------------- ### Get Detailed System Metrics Source: https://context7.com/loocor/mcpmate/llms.txt Fetch detailed system metrics such as CPU and memory usage, instance states, and tool counts. ```bash curl -s "http://localhost:8080/api/system/metrics" ``` -------------------------------- ### List MCP Servers via Management API Source: https://context7.com/loocor/mcpmate/llms.txt Example of listing all MCP servers using the management API, with optional filters for enabled status and server type. Shows the structure of the returned server data. ```bash # List all servers (with optional filters) curl -s "http://localhost:8080/api/mcp/servers/list?enabled=true&server_type=stdio&limit=20&offset=0" # {"ok":true,"data":{"servers":[{"id":"abc123","name":"Context7","server_type":"stdio","enabled":true,"globally_enabled":true,"instances":[{"id":"i1","status":"ready"}],"capability":{"tools_count":5,"supports_tools":true,...}}]}} ``` -------------------------------- ### Codesign and Notarize macOS Application (API Key) Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Example command for signing and notarizing the macOS application using an Apple API key. ```bash ../packaging/desktop/macos-build-tauri-release.sh --targets aarch64-apple-darwin,x86_64-apple-darwin --sign-identity "Developer ID Application: Your Org (TEAMID)" --apple-api-key ABCDE12345 --apple-api-issuer 00112233-4455-6677-8899-aabbccddeeff --apple-api-key-path ~/AuthKeys/AuthKey_ABCD12345.p8 ``` -------------------------------- ### DXT Manager Implementation Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md Provides methods for importing DXT files and configuring extensions within the MCPMate backend. This includes unpacking, parsing, validation, and installation of DXT packages. ```rust pub struct DxtManager { db: Arc, install_dir: PathBuf, runtime_manager: Arc, } impl DxtManager { /// Import DXT file pub async fn import_dxt_file(&self, file_path: &Path) -> Result { // 1. Unpack .dxt // 2. Parse manifest.json // 3. Validate format and compatibility // 4. Choose runtime strategy // 5. Install to target dir // 6. Register in DB } /// Configure extension pub async fn configure_extension(&self, ext_id: &str, config: UserConfig) -> Result<()> { // 1. Validate config // 2. Encrypt and store sensitive values // 3. Build runtime config // 4. Select runtime strategy // 5. Start extension service } } ``` -------------------------------- ### Codesign and Notarize macOS Application (Apple ID) Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Example command for signing and notarizing the macOS application using Apple ID credentials. ```bash ../packaging/desktop/macos-build-tauri-release.sh --targets aarch64-apple-darwin,x86_64-apple-darwin --sign-identity "Developer ID Application: Your Org (TEAMID)" --apple-id you@example.com --apple-password abcd-efgh-ijkl-mnop --apple-team-id TEAMID ``` -------------------------------- ### Start a tool call asynchronously Source: https://context7.com/loocor/mcpmate/llms.txt Starts a tool call asynchronously, returning a call_id for event streaming. ```APIDOC ## POST /api/mcp/inspector/tool/call/start ### Description Starts a tool call asynchronously, returning a call_id for event streaming. ### Method POST ### Endpoint /api/mcp/inspector/tool/call/start ### Request Body - **tool** (string) - Required - The name of the tool to call. - **arguments** (object) - Required - The arguments for the tool. - **mode** (string) - Required - The mode of operation (e.g., 'proxy'). ``` -------------------------------- ### Runtime Management API Source: https://github.com/loocor/mcpmate/blob/main/backend/README.md Endpoints for managing runtimes, including listing installed runtimes, installing new runtimes, and checking runtime status. ```APIDOC ## GET /api/runtime/list ### Description List all installed runtimes. ### Method GET ### Endpoint /api/runtime/list ## POST /api/runtime/install ### Description Install a new runtime. ### Method POST ### Endpoint /api/runtime/install ## GET /api/runtime/check/{name} ### Description Check the status of a specific runtime by name. ### Method GET ### Endpoint /api/runtime/check/{name} ``` -------------------------------- ### Preview Production Build with Bun Source: https://github.com/loocor/mcpmate/blob/main/board/AGENTS.md Preview the production build using 'bun run preview'. ```bash bun run preview ``` -------------------------------- ### SQL Schema for DXT Extensions Table Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md Defines the SQL schema for the `dxt_extensions` table, used to store information about installed DXT extensions. It includes fields for extension identification, metadata, installation path, and status. ```sql CREATE TABLE dxt_extensions ( id TEXT PRIMARY KEY, name TEXT NOT NULL, display_name TEXT, version TEXT NOT NULL, author_name TEXT NOT NULL, description TEXT, manifest_json TEXT NOT NULL, install_path TEXT NOT NULL, installed_at DATETIME DEFAULT CURRENT_TIMESTAMP, enabled BOOLEAN DEFAULT TRUE, signature_verified BOOLEAN DEFAULT FALSE ); ``` -------------------------------- ### Build and Run MCPMate Backend and Dashboard Source: https://context7.com/loocor/mcpmate/llms.txt Instructions for cloning, building, and running the MCPMate backend and its React/Vite dashboard. Environment variables can override default data directories and ports. ```bash git clone https://github.com/loocor/MCPMate.git cd MCPMate/backend cargo build --release cargo run --release # REST API: http://localhost:8080 # MCP endpoint: http://localhost:8000 # Start dashboard (in a second terminal) cd ../board bun install bun run dev # Dashboard: http://localhost:5173 # Override data directory or ports via environment MCPMATE_DATA_DIR=/custom/path \ MCPMATE_API_PORT=8080 \ MCPMATE_MCP_PORT=8000 \ MCPMATE_LOG=debug \ cargo run --release ``` -------------------------------- ### Build Windows Production Application Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Build a Windows application for x86_64 architecture with MSI bundle. ```bash cargo tauri build --target x86_64-pc-windows-msvc --bundles msi ``` -------------------------------- ### mcpmate_ucan_details tool Source: https://context7.com/loocor/mcpmate/llms.txt Inspects a selected capability to get detailed information. ```APIDOC ## Tool: mcpmate_ucan_details ### Description Inspects a selected capability to get detailed information. ### Parameters - **capability_kind** (string) - Required - The type of capability (tool, prompt, resource). - **capability_name** (string) - Required - The name of the capability. - **detail_level** (string) - Optional - The level of detail ('summary' or 'full'). Defaults to 'summary'. ### Returns - **workflow_hints** (array) - Hints for the capability's workflow. - **call_requirements** (object) - Requirements for calling the capability. - **required_arguments** (array) - List of required arguments for the capability. ``` -------------------------------- ### Build for Production with Bun or npm Source: https://github.com/loocor/mcpmate/blob/main/board/README.md Builds the project for production using Bun or npm. The output will be placed in the dist/ directory. ```bash bun run build ``` ```bash npm run build ``` -------------------------------- ### MCP Registry API Source: https://context7.com/loocor/mcpmate/llms.txt Browse and install servers from the official MCP registry. ```APIDOC ## MCP Registry API ### Description Browse and install servers from the official MCP registry directly within MCPMate. ### Method GET ### Endpoint /api/mcp/registry/servers ### Description Lists all available servers from the official MCP registry by performing a live fetch. --- ### Method GET ### Endpoint /api/mcp/registry/servers/cached ### Description Lists all available servers from the locally cached MCP registry. This is a fast, network-free operation. --- ### Method POST ### Endpoint /api/mcp/registry/sync ### Description Synchronizes the local registry cache with the upstream official registry, refreshing the available server list. --- ### Method POST ### Endpoint /api/mcp/registry/install ### Parameters #### Request Body - **server_id** (string) - Required - The unique identifier of the server to install from the registry. ### Request Example ```json { "server_id": "github.com/modelcontextprotocol/servers/tree/main/src/brave-search" } ``` ### Description Installs a server from the MCP registry into the local MCPMate environment. --- ### Method POST ### Endpoint /api/mcp/registry/servers/refresh ### Parameters #### Request Body - **id** (string) - Required - The ID of the managed server whose metadata needs to be refreshed from the official registry. ### Request Example ```json { "id": "abc123" } ``` ### Description Refreshes the metadata for a specific managed server by fetching the latest information from the official MCP registry. ``` -------------------------------- ### Get capability configuration for a client Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves the capability configuration for a specific client. ```APIDOC ## GET /api/client/capability-config ### Description Gets the capability configuration for a specific client. ### Method GET ### Endpoint /api/client/capability-config ### Query Parameters - **id** (string) - Required - The ID of the client. ``` -------------------------------- ### Preview Production Build with Bun or npm Source: https://github.com/loocor/mcpmate/blob/main/board/README.md Previews the production build of the project using Bun or npm. This command is useful for testing the production output locally. ```bash bun run preview ``` ```bash npm run preview ``` -------------------------------- ### Get Server Details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves the details of a specific MCP server by its ID. ```APIDOC ## GET /api/mcp/servers/details ### Description Retrieves the details of a specific MCP server. ### Method GET ### Endpoint /api/mcp/servers/details ### Query Parameters - **id** (string) - Required - The ID of the server to retrieve. ``` -------------------------------- ### Build Production Release Source: https://github.com/loocor/mcpmate/blob/main/backend/README.md Compiles the MCPMate backend for production deployment. ```bash cargo build --release ``` -------------------------------- ### DXT Extension Configuration Source: https://github.com/loocor/mcpmate/blob/main/backend/src/dxtake/readme.md Endpoints for getting and updating the configuration of DXT extensions. ```APIDOC ## GET /api/dxt/extensions/{id}/config ### Description Get the current configuration for a specific DXT extension. ### Method GET ### Endpoint /api/dxt/extensions/{id}/config ## PUT /api/dxt/extensions/{id}/config ### Description Update the configuration for a specific DXT extension. ### Method PUT ### Endpoint /api/dxt/extensions/{id}/config ## GET /api/dxt/extensions/{id}/config/schema ### Description Get the configuration schema for a specific DXT extension. ### Method GET ### Endpoint /api/dxt/extensions/{id}/config/schema ``` -------------------------------- ### Website Build Commands Source: https://github.com/loocor/mcpmate/blob/main/website/AGENTS.md Common commands for developing, building, and previewing the website. ```bash bun run dev bun run build bun run preview ``` -------------------------------- ### Get capability token ledger Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves per-capability JSON payloads for client-side tokenizers. ```APIDOC ## GET /api/mcp/profile/capability-token-ledger ### Description Gets per-capability JSON payloads for client-side tokenizers. ### Method GET ### Endpoint /api/mcp/profile/capability-token-ledger ### Query Parameters - **profile_id** (string) - Required - The ID of the profile. ``` -------------------------------- ### Board and Website Development Commands Source: https://github.com/loocor/mcpmate/blob/main/AGENTS.md Commands for managing dependencies, developing, linting, and building the React-based dashboard and website. Bun is preferred, with npm as a fallback. ```bash bun install ``` ```bash bun run dev ``` ```bash bun run lint ``` ```bash bun run build ``` -------------------------------- ### Get profile details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves detailed information about a specific profile, including component counts. ```APIDOC ## GET /api/mcp/profile/details ### Description Gets detailed information for a specific profile, including counts of associated servers, tools, and resources. ### Method GET ### Endpoint /api/mcp/profile/details ### Query Parameters - **id** (string) - Required - The ID of the profile to retrieve details for. ``` -------------------------------- ### Get Capability Token Ledger Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves per-capability JSON payloads, useful for client-side tokenizers. ```bash # Get per-capability JSON payloads for client-side tokenizer curl -s "http://localhost:8080/api/mcp/profile/capability-token-ledger?profile_id=p1" ``` -------------------------------- ### Set Optional Preview Configuration Source: https://github.com/loocor/mcpmate/blob/main/website/README.md Optionally configure the preview version, expiration date, and other download URLs. ```dotenv VITE_MAC_ARM64_SHA256=your_sha256_checksum_here VITE_MAC_X64_SHA256=your_sha256_checksum_here VITE_PREVIEW_VERSION=your_preview_version VITE_PREVIEW_EXPIRES_AT=2025-11-01 VITE_DOCS_URL=your_docs_url VITE_INSTALL_URL=your_install_url VITE_WIN_URL=your_win_url VITE_LINUX_URL=your_linux_url ``` -------------------------------- ### Get MCP server details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve detailed information about a specific MCP server by its ID. ```bash curl -s "http://localhost:8080/api/mcp/servers/details?id=abc123" ``` -------------------------------- ### Get Profile by ID Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Retrieves detailed information about a specific profile using its unique identifier. ```APIDOC ## GET /api/mcp/profile/{id} ### Description Get detailed information about a specific profile. ### Method GET ### Endpoint /api/mcp/profile/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The unique identifier of the profile. ``` -------------------------------- ### Create Profile Source: https://context7.com/loocor/mcpmate/llms.txt Creates a new scenario profile with specified details. Ensure 'name' and 'profile_type' are provided. ```bash # Create a profile curl -s -X POST http://localhost:8080/api/mcp/profile/create \ -H "Content-Type: application/json" \ -d '{ "name": "Development", "description": "Coding, debugging, and testing tools", "profile_type": "scenario", "is_active": true, "priority": 10 }' ``` -------------------------------- ### Manage Client Onboarding Policy Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve or update the client onboarding policy. The policy can be set to 'auto_approve'. ```bash curl -s "http://localhost:8080/api/system/settings/onboarding-policy" ``` ```bash curl -s -X POST http://localhost:8080/api/system/settings/onboarding-policy \ -H "Content-Type: application/json" \ -d '{"policy": "auto_approve"}' ``` -------------------------------- ### Get Server Instance Details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves detailed metrics (CPU, memory) for a specific server instance. ```APIDOC ## GET /api/mcp/servers/instances/details ### Description Retrieves detailed metrics for a specific server instance, including CPU and memory usage. ### Method GET ### Endpoint /api/mcp/servers/instances/details ### Query Parameters - **server** (string) - Required - The ID of the server. - **instance** (string) - Required - The ID of the instance. ``` -------------------------------- ### Build and Run Bridge Binary Source: https://github.com/loocor/mcpmate/blob/main/backend/README.md Builds the standalone bridge binary and runs it, connecting stdio clients to the HTTP proxy. The proxy URL can be configured via an environment variable. ```bash cargo build --release --bin bridge ``` ```bash MCPMATE_PROXY_URL=http://localhost:8000 ./bridge ``` -------------------------------- ### Get system metrics Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Fetches performance metrics for the MCPMate system, such as CPU utilization and memory usage. ```APIDOC ## GET /api/system/metrics ### Description Get system metrics. ### Method GET ### Endpoint /api/system/metrics ### Response #### Success Response (200) - System performance metrics, such as CPU usage, memory usage, etc. ``` -------------------------------- ### Create New stdio Server Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Use this endpoint to create a new server of type 'stdio'. It requires the server name, command to execute, and optional arguments and environment variables. ```bash curl -X POST http://localhost:8000/api/mcp/servers \ -H "Content-Type: application/json" \ -d '{ "name": "python-server", "kind": "stdio", "command": "python", "args": ["-m", "mcp_server"], "env": { "DEBUG": "true" }, "enabled": true }' ``` -------------------------------- ### Error Handling Example Source: https://github.com/loocor/mcpmate/blob/main/extension/cherry/README.md Demonstrates how to handle potential errors when interacting with the Cherry DB Manager API. ```APIDOC ## Error Handling Example of handling `CherryDbError`: ```rust use cherry_db_manager::{CherryDbManager, DefaultCherryDbManager, CherryDbError, Result}; let manager = DefaultCherryDbManager::new(); let db_path = "./path/to/db"; match manager.read_mcp_config(db_path) { Ok(config) => println!("Successfully read config with {} servers.", config.servers.len()), Err(CherryDbError::ConfigNotFound) => println!("Error: MCP configuration not found."), Err(CherryDbError::InvalidPath(path)) => println!("Error: Invalid database path provided: {}", path), Err(CherryDbError::DatabaseError(msg)) => println!("Error: LevelDB operation failed: {}", msg), Err(e) => println!("An unexpected error occurred: {}", e), } ``` ``` -------------------------------- ### Get System Status Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve the overall system status of the MCPMate proxy, including uptime and server counts. ```bash curl -s "http://localhost:8080/api/system/status" ``` -------------------------------- ### Build for Production with Bun Source: https://github.com/loocor/mcpmate/blob/main/board/AGENTS.md Generate a production build with 'bun run build'. The output will be placed in the 'dist/' directory. ```bash bun run build ``` -------------------------------- ### Get Specific Audit Event Details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve detailed information for a single audit event by its unique ID. ```bash curl -s "http://localhost:8080/api/audit/events/details?id=42" ``` -------------------------------- ### Desktop Application Build Commands Source: https://github.com/loocor/mcpmate/blob/main/AGENTS.md Commands for developing and building the Tauri desktop application. Refer to desktop/README.md for detailed build options and platform-specific instructions. ```bash cargo tauri dev ``` ```bash cargo tauri build ``` -------------------------------- ### Get Runtime Ports Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve the ports used by MCPMate for its REST API and MCP communication, along with their corresponding URLs. ```bash curl -s "http://localhost:8080/api/system/ports" ``` -------------------------------- ### Build macOS Production Application (ARM64) Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Build a macOS application for ARM64 architecture with DMG bundle. Set CI=true for continuous integration environments. ```bash CI=true cargo tauri build --target aarch64-apple-darwin --bundles dmg ``` -------------------------------- ### Get Audit Retention Policy Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve the current audit log retention policy, which specifies how long events are stored. ```bash curl -s "http://localhost:8080/api/audit/policy" ``` -------------------------------- ### Get a Prompt with Arguments Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve a specific prompt by name and provide arguments for its execution. This is useful for parameterized prompt retrieval. ```bash # Get a prompt with arguments curl -s -X POST http://localhost:8080/api/mcp/inspector/prompt/get \ -H "Content-Type: application/json" \ -d '{"name": "summarize", "arguments": {"text": "hello world"}}' ``` -------------------------------- ### Get Profile Details Source: https://context7.com/loocor/mcpmate/llms.txt Fetches detailed information about a specific profile, including counts of associated servers, tools, and resources. ```bash # Get profile details (with component counts) curl -s "http://localhost:8080/api/mcp/profile/details?id=p1" ``` -------------------------------- ### Apply Client Configuration Source: https://context7.com/loocor/mcpmate/llms.txt Applies MCPMate proxy configuration to a client's configuration file. Requires 'client_id', 'config_mode', and 'profile_id'. ```bash # Apply client configuration (write MCPMate proxy config to client's config file) curl -s -X POST http://localhost:8080/api/client/config/apply \ -H "Content-Type: application/json" \ -d '{"client_id": "claude_desktop", "config_mode": "unify", "profile_id": "p1"}' ``` -------------------------------- ### Conditional Integration Code Source: https://github.com/loocor/mcpmate/blob/main/extension/cherry/README.md Example of how to use the cherry-db-manager within a conditional compilation block enabled by the 'cherry-integration' feature flag. ```rust #[cfg(feature = "cherry-integration")] mod cherry_integration { use cherry_db_manager::*; pub fn sync_mcp_servers(db_path: &str) -> Result, Box> { let manager = DefaultCherryDbManager::new(); let servers = manager.list_servers(db_path)?; Ok(servers.servers.into_iter().map(|s| s.id).collect()) } } ``` -------------------------------- ### List Tools for a Specific Server (Native Mode) Source: https://context7.com/loocor/mcpmate/llms.txt Fetch tools for a particular server using native upstream mode. Requires a `server_id` to target the specific server. ```bash # List tools for a specific server in native (direct upstream) mode curl -s "http://localhost:8080/api/mcp/inspector/tool/list?server_id=abc123&mode=native" ``` -------------------------------- ### List Client Backups Source: https://context7.com/loocor/mcpmate/llms.txt Retrieves a list of configuration backups for a specified client. Requires 'client_id'. ```bash # List configuration backups for a client curl -s "http://localhost:8080/api/client/backups/list?client_id=claude_desktop" ``` -------------------------------- ### Preview MCP server capabilities Source: https://context7.com/loocor/mcpmate/llms.txt Preview the capabilities (tools, resources) for a set of server configurations without actually importing them. This is useful for validation and testing. ```bash curl -s -X POST http://localhost:8080/api/mcp/servers/preview \ -H "Content-Type: application/json" \ -d '{ "servers": [ {"name":"TestServer","kind":"stdio","command":"npx","args":["-y","some-mcp@latest"]} ], "include_details": true, "timeout_ms": 10000 }' ``` -------------------------------- ### Get system status Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Retrieves the current status of the MCPMate system, including operational metrics like uptime and version information. ```APIDOC ## GET /api/system/status ### Description Get system status. ### Method GET ### Endpoint /api/system/status ### Response #### Success Response (200) - System status information, including uptime, version, etc. ``` -------------------------------- ### Build macOS Production Application (x86_64) Source: https://github.com/loocor/mcpmate/blob/main/desktop/AGENTS.md Build a macOS application for x86_64 architecture with DMG bundle. Set CI=true for continuous integration environments. ```bash CI=true cargo tauri build --target x86_64-apple-darwin --bundles dmg ``` -------------------------------- ### Import Existing Servers via Client Config Source: https://context7.com/loocor/mcpmate/llms.txt Use this endpoint to import servers from a client's MCP configuration. Set `dry_run` to true for a test import. ```bash curl -s -X POST http://localhost:8080/api/client/config/import \ -H "Content-Type: application/json" \ -d '{"client_id": "claude_desktop", "dry_run": true}' ``` -------------------------------- ### Get MCP server instance details Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve detailed metrics, including CPU and memory usage, for a specific MCP server instance. ```bash curl -s "http://localhost:8080/api/mcp/servers/instances/details?server=abc123&instance=i1" ``` -------------------------------- ### Get detailed information about a specific tool Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Fetches detailed information for a specific tool on a given server, adhering to the MCP specification format. ```APIDOC ## GET /api/mcp/specs/tools/{server_name}/{tool_name} ### Description Get detailed information about a specific tool. ### Method GET ### Endpoint /api/mcp/specs/tools/{server_name}/{tool_name} ### Parameters #### Path Parameters - **server_name** (string) - Required - The name of the server. - **tool_name** (string) - Required - The name of the tool. ``` -------------------------------- ### MCPMate Development Commands Source: https://context7.com/loocor/mcpmate/llms.txt Common commands for developing and testing MCPMate, including running the server, linting, formatting, and running tests. ```bash # Development commands car go run # Start with default settings RUST_LOG=debug cargo run # Start with debug logging car go clippy --all-targets --all-features -- -D warnings # Lint car go fmt --all # Format car go test # Unit tests car go test --features interop # Integration tests (requires running server) ``` -------------------------------- ### List All Tools via Proxy Aggregate View Source: https://context7.com/loocor/mcpmate/llms.txt Retrieve a list of all available tools through the proxy aggregate view. This is useful for discovering capabilities across multiple servers. ```bash # List all tools via the proxy aggregate view curl -s "http://localhost:8080/api/mcp/inspector/tool/list?mode=proxy" # {"ok":true,"data":{"mode":"proxy","tools":[{"name":"search","description":"...","inputSchema":{...}}],"total":15,"elapsed_ms":32}} ``` -------------------------------- ### Backend Development Commands Source: https://github.com/loocor/mcpmate/blob/main/AGENTS.md Commands for checking, linting, formatting, and running the Rust backend. Use `--release` for production builds and `--features interop` for interoperability. ```bash cargo check ``` ```bash cargo clippy --all-targets --all-features -D warnings ``` ```bash cargo fmt --all ``` ```bash cargo run -- --help ``` ```bash cargo run RUST_LOG=debug ``` ```bash cargo test ``` ```bash cargo test --features interop ``` ```bash cargo build --release --features interop ``` -------------------------------- ### Import Servers from JSON Configuration Source: https://github.com/loocor/mcpmate/blob/main/backend/src/api/README.md Import multiple servers defined in a JSON object. The 'mcpServers' key should contain server configurations, including their type, command, and URL if applicable. ```bash curl -X POST http://localhost:8000/api/mcp/servers/import \ -H "Content-Type: application/json" \ -d '{ "mcpServers": { "node-server": { "type": "stdio", "command": "node", "args": ["server.js"] }, "openai-server": { "type": "streamable_http", "url": "https://api.openai.com/v1/mcp" } } }' ``` -------------------------------- ### Start a Tool Call Asynchronously Source: https://context7.com/loocor/mcpmate/llms.txt Initiate a tool call without waiting for completion. This returns a `call_id` that can be used for event streaming to track progress. ```bash # Start a tool call asynchronously (returns call_id for event streaming) curl -s -X POST http://localhost:8080/api/mcp/inspector/tool/call/start \ -H "Content-Type: application/json" \ -d '{"tool": "long_running_tool", "arguments": {}, "mode": "proxy"}' # {"ok":true,"data":{"call_id":"call-uuid","server_id":"abc123","request_id":"req-uuid","progress_token":"tok-1"}} ```