Skip to main content
Glama
mcp.nu5.36 kB
#!/usr/bin/env nu # Creates the MCP servers configuration file. # # Usage: # > main apply mcp # > main apply mcp --location my-custom-path.json # > main apply mcp --location [ my-custom-path.json, another-path.json ] # > main apply mcp --memory-file-path /custom/memory.json --anthropic-api-key XYZ --github-token ABC # > main apply mcp --enable-playwright # > main apply mcp --enable-context7 # > main apply mcp --enable-git # > main apply mcp --enable-dot-ai --kubeconfig /path/to/kubeconfig # > main apply mcp --enable-dot-ai --dot-ai-version 1.2.3 # > main apply mcp --enable-taskmaster # > main apply mcp --enable-memory # > main apply mcp --enable-github # def --env "main apply mcp" [ --location: list<string> = [".mcp.json"], # Path(s) where the MCP servers configuration file will be created (e.g., `".cursor/mcp.json", ".roo/mcp.json", ".vscode/mcp.json", "mcp.json"`) --memory-file-path: string = "", # Path to the memory file for the memory MCP server. If empty, defaults to an absolute path for 'memory.json' in CWD. --anthropic-api-key: string = "", # Anthropic API key for the taskmaster-ai MCP server. If empty, $env.ANTHROPIC_API_KEY is used if set. --github-token: string = "", # GitHub Personal Access Token for the github MCP server. If empty, $env.GITHUB_TOKEN is used if set. --kubeconfig: string = "", # Path to kubeconfig file for dot-ai MCP server. If empty, $env.KUBECONFIG is used if set. --dot-ai-version: string = "latest", # Version of dot-ai MCP server to use. Defaults to 'latest' --enable-playwright = false, # Enable Playwright MCP server for browser automation --enable-context7 = false, # Enable Context7 MCP server --enable-git = false, # Enable Git MCP server --enable-dot-ai = false, # Enable dot-ai MCP server --enable-taskmaster = false, # Enable taskmaster-ai MCP server (requires Anthropic API key) --enable-memory = false, # Enable memory MCP server --enable-github = false # Enable GitHub MCP server (requires GitHub token) ] { let resolved_memory_file_path = if $memory_file_path == "" { (pwd) | path join "memory.json" | path expand } else { $memory_file_path } let resolved_anthropic_api_key = if $anthropic_api_key != "" { $anthropic_api_key } else if ("ANTHROPIC_API_KEY" in $env) { $env.ANTHROPIC_API_KEY } else { "" } let resolved_github_token = if $github_token != "" { $github_token } else if ("GITHUB_TOKEN" in $env) { $env.GITHUB_TOKEN } else { "" } let resolved_kubeconfig = if $kubeconfig != "" { $kubeconfig } else if ("KUBECONFIG" in $env) { $env.KUBECONFIG } else { "" } mut mcp_servers_map = {} if $enable_memory { $mcp_servers_map = $mcp_servers_map | upsert "memory" { command: "npx", args: ["-y", "@modelcontextprotocol/server-memory"], env: { MEMORY_FILE_PATH: $resolved_memory_file_path } } } if $enable_context7 { $mcp_servers_map = $mcp_servers_map | upsert "context7" { command: "npx", args: ["-y", "@upstash/context7-mcp"] } } if $enable_taskmaster and $resolved_anthropic_api_key != "" { $mcp_servers_map = $mcp_servers_map | upsert "taskmaster" { command: "npx", args: ["-y", "--package=task-master-ai", "task-master-ai"], env: { ANTHROPIC_API_KEY: $resolved_anthropic_api_key } } } if $enable_github and $resolved_github_token != "" { $mcp_servers_map = $mcp_servers_map | upsert "github" { command: "docker", args: ["run", "-i", "--rm", "-e", "GITHUB_PERSONAL_ACCESS_TOKEN", "ghcr.io/github/github-mcp-server"], env: { GITHUB_PERSONAL_ACCESS_TOKEN: $resolved_github_token } } } if $enable_playwright { $mcp_servers_map = $mcp_servers_map | upsert "playwright" { command: "npx", args: ["-y", "@playwright/mcp@latest"] } } if $enable_git { $mcp_servers_map = $mcp_servers_map | upsert "git" { command: "uvx", args: ["mcp-server-git"] } } if $enable_dot_ai and $resolved_anthropic_api_key != "" and $resolved_kubeconfig != "" { $mcp_servers_map = $mcp_servers_map | upsert "dot-ai" { command: "npx", args: ["-y", $"--package=@vfarcic/dot-ai@($dot_ai_version)", "dot-ai-mcp"], env: { KUBECONFIG: $resolved_kubeconfig, DOT_AI_SESSION_DIR: "./tmp/sessions" } } } let config_record = { mcpServers: $mcp_servers_map } for $output_location in $location { let parent_dir = $output_location | path dirname if not ($parent_dir | path exists) { mkdir $parent_dir print $"Created directory: ($parent_dir)" } $config_record | to json --indent 2 | save -f $output_location print $"MCP servers configuration file created at: ($output_location)" } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vfarcic/dot-ai'

If you have feedback or need assistance with the MCP directory API, please join our Discord server