diff --git a/.gitignore b/.gitignore index d334ac0..b9e7e47 100644 --- a/.gitignore +++ b/.gitignore @@ -48,4 +48,6 @@ __pycache__/ .cursor/ # cache dir -.mcphub_cache/ \ No newline at end of file +.mcphub_cache/ + +.coverage \ No newline at end of file diff --git a/README.md b/README.md index c61b2f5..96b8668 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,13 @@ MCPHub is an embeddable Model Context Protocol (MCP) solution for AI services. It enables seamless integration of MCP servers into any AI framework, allowing developers to easily configure, set up, and manage MCP servers within their applications. Whether you're using OpenAI Agents, LangChain, or Autogen, MCPHub provides a unified way to connect your AI services with MCP tools and resources. +## Documentation + +- [CLI Documentation](src/mcphub/cli/README.md) - Command-line interface for managing MCP servers +- [API Documentation](docs/api.md) - Python API reference +- [Configuration Guide](docs/configuration.md) - Server configuration details +- [Examples](docs/examples.md) - Usage examples and tutorials + ## Quick Start ### Prerequisites @@ -49,6 +56,33 @@ Create a `.mcphub.json` file in your project root: } ``` +### Adding New MCP Servers + +You can add new MCP servers in two ways: + +1. **Manual Configuration**: Add the server configuration directly to your `.mcphub.json` file. + +2. **Automatic Configuration from GitHub**: Use the `add_server_from_repo` method to automatically configure a server from its GitHub repository: + +```python +from mcphub import MCPHub + +# Initialize MCPHub +hub = MCPHub() + +# Add a new server from GitHub +hub.servers_params.add_server_from_repo( + server_name="my-server", + repo_url="https://github.com/username/repo" +) +``` + +The automatic configuration: +- Fetches the README from the GitHub repository +- Uses OpenAI to analyze the README and extract the server configuration +- Adds the configuration to your `.mcphub.json` file +- Requires an OpenAI API key (set via `OPENAI_API_KEY` environment variable) + ### Usage with OpenAI Agents ```python @@ -175,20 +209,66 @@ Configure your MCP servers in `.mcphub.json`: ### Transport Support - **stdio Transport**: Run MCP servers as local subprocesses +- **SSE Transport**: Run MCP servers with Server-Sent Events (SSE) support using supergateway - **Automatic Path Management**: Manages server paths and working directories - **Environment Variable Handling**: Configurable environment variables per server +#### Running Servers with SSE Support + +You can run MCP servers with SSE support using the `mcphub run` command: + +```bash +# Basic usage with default settings +mcphub run your-server-name --sse + +# Advanced usage with custom settings +mcphub run your-server-name --sse \ + --port 8000 \ + --base-url http://localhost:8000 \ + --sse-path /sse \ + --message-path /message +``` + +SSE support is useful when you need to: +- Connect to MCP servers from web applications +- Use real-time communication with MCP servers +- Integrate with clients that support SSE + +The SSE server provides two endpoints: +- `/sse`: SSE endpoint for real-time updates +- `/message`: HTTP endpoint for sending messages + +Example configuration in `.mcphub.json`: +```json +{ + "mcpServers": { + "sequential-thinking-mcp": { + "package_name": "smithery-ai/server-sequential-thinking", + "command": "npx", + "args": [ + "-y", + "@smithery/cli@latest", + "run", + "@smithery-ai/server-sequential-thinking", + "--key", + "your-api-key" + ] + } + } +} +``` + ### Framework Integration Provides adapters for popular AI frameworks: -- OpenAI Agents -- LangChain -- Autogen +- OpenAI Agents ([example](examples/with_openai.py)) +- LangChain ([example](examples/with_langchain.py)) +- Autogen ([example](examples/with_autogen.py)) ```python from mcphub import MCPHub -async def framework_examples(): +async def framework_quick_examples(): hub = MCPHub() # 1. OpenAI Agents Integration @@ -230,6 +310,9 @@ from mcphub import MCPHub async def tool_management(): hub = MCPHub() + # List all servers + servers = hub.list_servers() + # List all tools from a specific MCP server tools = await hub.list_tools(mcp_name="sequential-thinking-mcp") diff --git a/examples/with_autogen.py b/examples/with_autogen.py new file mode 100644 index 0000000..e0271ab --- /dev/null +++ b/examples/with_autogen.py @@ -0,0 +1,45 @@ +""" +Example of using MCPHub with Autogen Agents. +1. Initialize MCPHub to manage MCP servers +2. Fetch MCP tools and adapters for Autogen +3. Create and run an agent with MCP tools +""" + +import asyncio + +from autogen_agentchat.agents import AssistantAgent +from autogen_agentchat.ui import Console +from autogen_core import CancellationToken +from autogen_ext.models.openai import OpenAIChatCompletionClient +from mcphub import MCPHub + + +async def main(): + # Initialize MCPHub - automatically loads .mcphub.json and sets up servers + hub = MCPHub() + + # Fetch MCP tools adapted for Autogen + tool_adapters = await hub.fetch_autogen_mcp_adapters("azure-storage-mcp") + model_client = OpenAIChatCompletionClient(model="gpt-4") + + # Create and run agent with MCP tools + complex_task = """Please help me analyze the following complex problem: + We need to design a new feature for our product that balances user privacy + with data collection for improving the service. Consider the ethical implications, + technical feasibility, and business impact. Break down your thinking process + step by step, and provide a detailed recommendation with clear justification + for each decision point.""" + agent = AssistantAgent( + name="assistant", + model_client=model_client, + tools=tool_adapters, + system_message="You are a helpful assistant.", + ) + + await Console( + agent.run_stream(task=complex_task, cancellation_token=CancellationToken()) + ) + +if __name__ == "__main__": + # Run the async main function + asyncio.run(main()) \ No newline at end of file diff --git a/examples/with_langchain.py b/examples/with_langchain.py new file mode 100644 index 0000000..5b0945d --- /dev/null +++ b/examples/with_langchain.py @@ -0,0 +1,45 @@ +""" +Example of using MCPHub with LangChain Agents. +1. Initialize MCPHub to manage MCP servers +2. Fetch MCP tools for LangChain +3. Create and run an agent with MCP tools +""" + +import asyncio +import json + +from langchain_mcp_adapters.tools import load_mcp_tools +from langchain_openai import ChatOpenAI +from langgraph.prebuilt import create_react_agent +from mcp import ClientSession, StdioServerParameters +from mcp.client.stdio import stdio_client +from mcphub import MCPHub + +model = ChatOpenAI(model="gpt-4o") + +async def main(): + # Initialize MCPHub - automatically loads .mcphub.json and sets up servers + hub = MCPHub() + + # Fetch MCP tools for LangChain + tools = await hub.fetch_langchain_mcp_tools("azure-storage-mcp") + tools_dict = [ + {"name": tool.name, "description": tool.description, "args_schema": tool.args_schema} for tool in tools + ] + print("Available MCP Tools:") + print(json.dumps(tools_dict, indent=2)) + + # Create and run agent with MCP tools + complex_task = """Please help me analyze the following complex problem: + We need to design a new feature for our product that balances user privacy + with data collection for improving the service. Consider the ethical implications, + technical feasibility, and business impact. Break down your thinking process + step by step, and provide a detailed recommendation with clear justification + for each decision point.""" + agent = create_react_agent(model, tools) + agent_response = await agent.ainvoke({"messages": complex_task}) + print("\nAgent Response:") + print(agent_response.get("messages")[1].content) + +if __name__ == "__main__": + asyncio.run(main()) \ No newline at end of file diff --git a/examples/test.py b/examples/with_openai.py similarity index 51% rename from examples/test.py rename to examples/with_openai.py index 5ca75c9..6367c5e 100644 --- a/examples/test.py +++ b/examples/with_openai.py @@ -1,55 +1,41 @@ +""" +Example of using MCPHub with OpenAI Agents. +1. Initialize MCPHub to manage MCP servers +2. Fetch an MCP server with async context manager +3. List available tools from the server +4. Create and run an agent with MCP tools +""" + import asyncio import json from agents import Agent, Runner from mcphub import MCPHub async def main(): - """ - Example of using MCPHub to integrate MCP servers with OpenAI Agents. - - This example demonstrates: - 1. Initializing MCPHub - 2. Fetching and using an MCP server - 3. Listing available tools - 4. Creating and running an agent with MCP tools - """ - - # Step 1: Initialize MCPHub - # MCPHub will automatically: - # - Find .mcphub.json in your project - # - Load server configurations - # - Set up servers (clone repos, run setup scripts if needed) + # Initialize MCPHub - automatically loads .mcphub.json and sets up servers hub = MCPHub() - # Step 2: Create an MCP server instance using async context manager - # Parameters: - # - mcp_name: The name of the server from your .mcphub.json - # - cache_tools_list: Cache the tools list for better performance + # Fetch MCP server - handles server setup and tool caching async with hub.fetch_openai_mcp_server( mcp_name="sequential-thinking-mcp", cache_tools_list=True ) as server: - # Step 3: List available tools from the MCP server - # This shows what capabilities are available to your agent + # Get available tools from the server tools = await server.list_tools() - - # Pretty print the tools for better readability tools_dict = [ dict(tool) if hasattr(tool, "__dict__") else tool for tool in tools ] print("Available MCP Tools:") print(json.dumps(tools_dict, indent=2)) - # Step 4: Create an OpenAI Agent with MCP server - # The agent can now use all tools provided by the MCP server + # Create agent with MCP server integration agent = Agent( name="Assistant", instructions="Use the available tools to accomplish the given task", - mcp_servers=[server] # Provide the MCP server to the agent + mcp_servers=[server] ) - # Step 5: Run your agent with a complex task - # The agent will automatically have access to all MCP tools + # Run agent with a task complex_task = """Please help me analyze the following complex problem: We need to design a new feature for our product that balances user privacy with data collection for improving the service. Consider the ethical implications, @@ -57,11 +43,9 @@ async def main(): step by step, and provide a detailed recommendation with clear justification for each decision point.""" - # Execute the task and get the result result = await Runner.run(agent, complex_task) print("\nAgent Response:") print(result) if __name__ == "__main__": - # Run the async main function asyncio.run(main()) \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index 5728ee9..94168c2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "mcphub" -version = "0.1.8" +version = "0.1.9" description = "A Python package for managing and integrating Model Context Protocol (MCP) servers with AI frameworks like OpenAI Agents, LangChain, and Autogen" readme = "README.md" authors = [ @@ -21,7 +21,7 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", ] -dependencies = [] +dependencies = ["pydantic (>=2.11.4,<3.0.0)", "rich (>=14.0.0,<15.0.0)", "openai (>=1.78.0,<2.0.0)", "psutil (>=7.0.0,<8.0.0)"] requires-python = "<4.0,>=3.10" [project.optional-dependencies] @@ -54,4 +54,5 @@ mcphub = "mcphub.cli.commands:main" [tool.poetry.group.dev.dependencies] pytest = "^8.3.5" -pytest-asyncio = "^0.26.0" \ No newline at end of file +pytest-asyncio = "^0.26.0" +pytest-cov = "^6.1.1" diff --git a/src/mcphub/adapters/autogen.py b/src/mcphub/adapters/autogen.py index b1c2de1..fc96b4b 100644 --- a/src/mcphub/adapters/autogen.py +++ b/src/mcphub/adapters/autogen.py @@ -1,17 +1,25 @@ try: from typing import List - from autogen_ext.tools.mcp import StdioMcpToolAdapter + from autogen_ext.tools.mcp import StdioMcpToolAdapter, StdioServerParams from .base import MCPBaseAdapter class MCPAutogenAdapter(MCPBaseAdapter): async def create_adapters(self, mcp_name: str) -> List[StdioMcpToolAdapter]: server_params = self.get_server_params(mcp_name) + + autogen_mcp_server_params = StdioServerParams( + command=server_params.command, + args=server_params.args, + env=server_params.env, + cwd=server_params.cwd + ) + async with self.create_session(mcp_name) as session: tools = await session.list_tools() return [ - await StdioMcpToolAdapter.from_server_params(server_params, tool.name) + await StdioMcpToolAdapter.from_server_params(autogen_mcp_server_params, tool.name) for tool in tools.tools ] diff --git a/src/mcphub/cli/README.md b/src/mcphub/cli/README.md new file mode 100644 index 0000000..03d01d0 --- /dev/null +++ b/src/mcphub/cli/README.md @@ -0,0 +1,144 @@ +# MCPHub CLI + +The MCPHub CLI is a command-line interface tool for managing Model Context Protocol (MCP) server configurations. It provides a user-friendly way to add, remove, monitor, and run MCP servers. + +## Installation + +The CLI is included with the MCPHub package. Install it using pip: + +```bash +pip install mcphub +``` + +## Available Commands + +### 1. Add a Server (`add`) +Add a new MCP server from a GitHub repository to your local configuration. + +```bash +mcphub add [mcp_name] +``` + +Options: +- `repo_url`: GitHub repository URL of the MCP server +- `mcp_name` (optional): Custom name for the MCP server +- `-n, --non-interactive`: Skip environment variable prompts + +Example: +```bash +mcphub add https://github.com/username/repo my-server +``` + +### 2. Remove a Server (`remove`) +Remove an MCP server configuration from your local config. + +```bash +mcphub remove +``` + +Example: +```bash +mcphub remove my-server +``` + +### 3. List Servers (`ps`) +List all configured MCP servers with detailed process information. + +```bash +mcphub ps +``` + +Shows: +- Server name +- Status (running/not running) +- Ports +- Command +- Creation time +- Uptime + +### 4. Check Server Status (`status`) +Show detailed status information for a specific MCP server. + +```bash +mcphub status +``` + +Example: +```bash +mcphub status my-server +``` + +### 5. Run a Server (`run`) +Run a configured MCP server with optional SSE support. + +```bash +mcphub run [options] +``` + +Options: +- `--sse`: Enable Server-Sent Events support +- `--port`: Port for SSE server (default: 3000) +- `--base-url`: Base URL for SSE server (default: http://localhost:3000) +- `--sse-path`: Path for SSE endpoint (default: /sse) +- `--message-path`: Path for message endpoint (default: /message) + +Example: +```bash +mcphub run my-server --sse --port 3001 +``` + +## Configuration File + +The CLI uses a `.mcphub.json` configuration file in your project directory. Here's an example structure: + +```json +{ + "mcpServers": { + "server-name": { + "package_name": "package-name", + "command": "command-to-run", + "args": ["arg1", "arg2"], + "env": { + "ENV_VAR": "value" + }, + "description": "Server description", + "tags": ["tag1", "tag2"], + "last_run": "timestamp" + } + } +} +``` + +## Features + +- Rich terminal interface with progress bars and colored output +- Interactive prompts for configuration +- Process management and monitoring +- Server-Sent Events (SSE) support +- Environment variable management +- GitHub repository integration +- Detailed status reporting +- Process monitoring and management + +## Error Handling + +The CLI provides clear error messages and helpful suggestions when something goes wrong. Common error scenarios include: + +- Invalid GitHub repository URLs +- Missing environment variables +- Server configuration issues +- Process management errors + +## Contributing + +To contribute to the CLI development: + +1. Fork the repository +2. Create a feature branch +3. Make your changes +4. Add tests for new functionality +5. Submit a pull request + +## License + +This project is licensed under the MIT License - see the LICENSE file for details. \ No newline at end of file diff --git a/src/mcphub/cli/commands.py b/src/mcphub/cli/commands.py index f855c5a..ff64858 100644 --- a/src/mcphub/cli/commands.py +++ b/src/mcphub/cli/commands.py @@ -2,116 +2,485 @@ import argparse import json import sys +import subprocess from pathlib import Path from typing import Dict, Any, List, Optional +import os +from urllib.parse import urlparse +from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, TaskProgressColumn +from rich.table import Table +import time +from rich.prompt import Confirm +import psutil +from datetime import datetime from .utils import ( load_config, save_config, DEFAULT_CONFIG, get_config_path, - add_server_config, remove_server_config, - list_available_servers, - list_configured_servers + list_configured_servers, + console, + show_error, + show_warning, + show_success, + show_animated_checklist, + show_help_text, + show_status, + show_code_block, + get_server_status ) +from .process_manager import ProcessManager -def init_command(args): - """Initialize a new .mcphub.json configuration file in the current directory.""" - config_path = get_config_path() - if config_path.exists(): - print(f"Configuration file already exists at: {config_path}") - return - - save_config(DEFAULT_CONFIG) - print(f"Created new configuration file at: {config_path}") +def check_env_var(var: str) -> Optional[str]: + """Check if an environment variable exists and return its value.""" + try: + result = subprocess.run( + f"echo ${var}", + shell=True, + capture_output=True, + text=True + ) + value = result.stdout.strip() + if not value or value == f"${var}": + return None + return value + except Exception: + return None def add_command(args): - """Add a preconfigured MCP server to the local config.""" - server_name = args.mcp_name - non_interactive = args.non_interactive if hasattr(args, 'non_interactive') else False + """Add an MCP server from a GitHub repository to the local config.""" + steps = [ + "Validating repository URL", + "Fetching repository README", + "Parsing MCP configuration", + "Adding server configuration" + ] - success, missing_env_vars = add_server_config(server_name, interactive=not non_interactive) + repo_url = args.repo_url + # Extract server name from repo URL if not provided + if args.mcp_name: + server_name = args.mcp_name + else: + # Extract username/repo from GitHub URL + parsed_url = urlparse(repo_url) + if parsed_url.netloc != "github.com": + show_error( + "Only GitHub repositories are supported", + help_text="Please provide a valid GitHub repository URL" + ) + sys.exit(1) + path_parts = parsed_url.path.strip("/").split("/") + if len(path_parts) != 2: + show_error( + "Invalid GitHub repository URL", + help_text="URL should be in the format: https://github.com/username/repo" + ) + sys.exit(1) + server_name = "/".join(path_parts) - if not success: - print(f"Error: MCP server '{server_name}' not found in preconfigured servers") - # Show available options - print("\nAvailable preconfigured servers:") - available_servers = list_available_servers() - for name in available_servers: - print(f"- {name}") + try: + with Progress( + SpinnerColumn(), + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + console=console + ) as progress: + task = progress.add_task("[cyan]Adding MCP Server", total=100) + + # Step 1: Validating repository URL + progress.update(task, description="[cyan]Validating repository URL") + time.sleep(0.5) # Simulate work + progress.update(task, advance=25) + + # Step 2: Fetching repository README + progress.update(task, description="[cyan]Fetching repository README") + config_path = get_config_path() + + # Create config file if it doesn't exist + if not config_path.exists(): + console.print("[info]Creating new configuration file...[/]") + save_config(DEFAULT_CONFIG) + + config = load_config() + time.sleep(0.5) # Simulate work + progress.update(task, advance=25) + + # Step 3: Parsing MCP configuration + progress.update(task, description="[cyan]Parsing MCP configuration") + from ..mcp_servers.params import MCPServersParams + servers_params = MCPServersParams(str(config_path)) + time.sleep(0.5) # Simulate work + progress.update(task, advance=25) + + # Step 4: Adding server configuration + progress.update(task, description="[cyan]Adding server configuration") + servers_params.add_server_from_repo(server_name, repo_url) + time.sleep(0.5) # Simulate work + progress.update(task, advance=25) + + show_success( + f"Successfully added configuration for '{server_name}' from {repo_url}", + "You can now run the server using 'mcphub run'" + ) + + # Check required environment variables + server_config = servers_params.retrieve_server_params(server_name) + if hasattr(server_config, 'env') and server_config.env is not None: + console.print("\n[info]Checking Environment Variables[/]") + + # Initialize config for this server if needed + if "mcpServers" not in config: + config["mcpServers"] = {} + if server_name not in config["mcpServers"]: + config["mcpServers"][server_name] = {} + if "env" not in config["mcpServers"][server_name]: + config["mcpServers"][server_name]["env"] = {} + + # Check each environment variable + found_vars = {} + missing_vars = [] + + for var in server_config.env: + value = check_env_var(var) + if value: + console.print(f"[success]✓ Found {var} in environment[/]") + found_vars[var] = value + else: + console.print(f"[warning]✗ {var} not found in environment[/]") + missing_vars.append(var) + + # Add found variables to config + if found_vars: + config["mcpServers"][server_name]["env"].update(found_vars) + save_config(config) + console.print("\n[success]Added existing environment variables to config[/]") + + # Handle missing variables + if missing_vars: + console.print("\n[info]The following environment variables must be added to .mcphub.json:[/]") + for var in missing_vars: + console.print(f"\n[info]Add to .mcphub.json under mcpServers.{server_name}.env:[/]") + console.print(f"[code]\"{var}\": \"your-value-here\"[/]") + + if not Confirm.ask("\nDo you want to continue without setting these variables?"): + show_warning( + "Required environment variables are missing", + "Please add them to .mcphub.json before running the server" + ) + sys.exit(1) + + except ValueError as e: + show_error("Failed to add server", e) + sys.exit(1) + except Exception as e: + show_error("Failed to add server", e) sys.exit(1) - - print(f"Added configuration for '{server_name}' to .mcphub.json") - - # Notify about missing environment variables - if missing_env_vars: - print("\nWarning: The following environment variables are required but not set:") - for var in missing_env_vars: - print(f"- {var}") - print("\nYou can either:") - print("1. Set them in your environment before using this server") - print("2. Run 'mcphub add-env' to add them to your configuration") - print("3. Edit .mcphub.json manually to set the values") def remove_command(args): """Remove an MCP server configuration from the local config.""" + steps = [ + "Checking server configuration", + "Removing server settings", + "Updating configuration file" + ] + server_name = args.mcp_name - if remove_server_config(server_name): - print(f"Removed configuration for '{server_name}' from .mcphub.json") - else: - print(f"Error: MCP server '{server_name}' not found in current configuration") - # Show what's currently configured - configured = list_configured_servers() - if configured: - print("\nCurrently configured servers:") - for name in configured: - print(f"- {name}") - sys.exit(1) + with Progress( + SpinnerColumn(), + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + console=console + ) as progress: + task = progress.add_task("[cyan]Removing MCP Server", total=100) + + # Step 1: Check server config + progress.update(task, description="[cyan]Checking server configuration") + time.sleep(0.5) # Simulate work + progress.update(task, advance=33) + + # Step 2: Remove server settings + progress.update(task, description="[cyan]Removing server settings") + if remove_server_config(server_name): + progress.update(task, advance=33) + + # Step 3: Update config file + progress.update(task, description="[cyan]Updating configuration file") + time.sleep(0.5) # Simulate work + progress.update(task, advance=34) + + show_success( + f"Removed configuration for '{server_name}' from .mcphub.json", + "The server has been removed from your configuration" + ) + else: + show_error( + f"MCP server '{server_name}' not found in current configuration", + help_text="Use 'mcphub list' to see available servers" + ) + # Show what's currently configured + configured = list_configured_servers() + if configured: + console.print("\n[info]Currently configured servers:[/]") + for name in configured: + console.print(f"[info]- {name}[/]") + sys.exit(1) -def list_command(args): - """List all configured and available MCP servers.""" - show_all = args.all if hasattr(args, 'all') else False +def ps_command(args): + """List all configured MCP servers with process details.""" + steps = [ + "Loading configuration", + "Retrieving server list", + "Displaying results" + ] + + with Progress( + SpinnerColumn(), + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + console=console + ) as progress: + task = progress.add_task("[cyan]Listing MCP Servers", total=100) + + # Step 1: Load config + progress.update(task, description="[cyan]Loading configuration") + time.sleep(0.5) # Simulate work + progress.update(task, advance=33) + + # Step 2: Get server list + progress.update(task, description="[cyan]Retrieving server list") + configured = list_configured_servers() + time.sleep(0.5) # Simulate work + progress.update(task, advance=33) + + # Step 3: Display results + progress.update(task, description="[cyan]Displaying results") + time.sleep(0.5) # Simulate work + progress.update(task, advance=34) - configured = list_configured_servers() - print("Configured MCP servers:") if configured: - for name in configured: - print(f"- {name}") + # Create a table similar to docker ps + table = Table(title="MCP Servers") + table.add_column("NAME", style="cyan") + table.add_column("STATUS", style="status") + table.add_column("PORTS", style="cyan") + table.add_column("COMMAND", style="cyan", no_wrap=False) + table.add_column("CREATED", style="cyan") + table.add_column("UPTIME", style="cyan") + + # Get process information from ProcessManager + process_manager = ProcessManager() + processes = process_manager.list_processes() + + # Create a map of process info by name + process_map = {p["name"]: p for p in processes} + + for name, server_config in configured.items(): + # Get process info if running + process_info = process_map.get(name, {}) + + # Format status with color + status = process_info.get("status", "Not Running") + if status == "running": + status = f"[green]{status}[/]" + else: + status = f"[red]{status}[/]" + + # Format ports + ports = ", ".join(map(str, process_info.get("ports", []))) or "N/A" + + # Format command (truncate if too long) + command = process_info.get("command", server_config.get("command", "N/A")) + if len(command) > 50: + command = command[:47] + "..." + + # Format created time + created = process_info.get("start_time", "N/A") + if created != "N/A": + created = datetime.fromisoformat(created).strftime("%Y-%m-%d %H:%M:%S") + + # Format uptime + uptime = process_info.get("uptime", "N/A") + + table.add_row( + name, + status, + ports, + command, + created, + uptime + ) + + # Show warnings if any + warnings = process_info.get("warnings", []) + if warnings: + for warning in warnings: + console.print(f"[warning]⚠ {warning}[/]") + + console.print(table) + + # Show summary + running = sum(1 for p in processes if p["status"] == "running") + total = len(configured) + console.print(f"\n[info]Running: {running}, Total: {total}[/]") else: - print(" No servers configured in local .mcphub.json") - - if show_all: - available = list_available_servers() - print("\nAvailable preconfigured MCP servers:") - if available: - for name in available: - print(f"- {name}") + show_warning( + "No servers configured in local .mcphub.json", + "Use 'mcphub add' to add a new server" + ) + +def status_command(args): + """Show detailed status of an MCP server.""" + server_name = args.mcp_name + config = load_config() + + if server_name not in config.get("mcpServers", {}): + show_error( + f"MCP server '{server_name}' not found in configuration", + help_text="Use 'mcphub list' to see available servers" + ) + sys.exit(1) + + server_config = config["mcpServers"][server_name] + + # TODO: Add actual status check + status = "Not Running" + details = { + "Command": server_config.get("command", "N/A"), + "Working Directory": server_config.get("cwd", "N/A"), + "Package": server_config.get("package_name", "N/A"), + "Repository": server_config.get("repo_url", "N/A") + } + + show_status(server_name, status, details) + +def run_command(args): + """Run an MCP server with optional SSE support.""" + steps = [ + "Loading server configuration", + "Preparing command", + "Starting server" + ] + + server_name = args.mcp_name + config = load_config() + + if server_name not in config.get("mcpServers", {}): + show_error( + f"MCP server '{server_name}' not found in configuration", + help_text="Use 'mcphub list' to see available servers" + ) + sys.exit(1) + + server_config = config["mcpServers"][server_name] + + with Progress( + SpinnerColumn(), + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + console=console + ) as progress: + task = progress.add_task("[cyan]Running MCP Server", total=100) + + # Step 1: Load config + progress.update(task, description="[cyan]Loading server configuration") + time.sleep(0.5) # Simulate work + progress.update(task, advance=33) + + # Step 2: Prepare command + progress.update(task, description="[cyan]Preparing command") + cmd = [] + + # Add SSE support if requested + if args.sse: + # Construct the stdio command based on server configuration + stdio_cmd = [] + if "command" in server_config: + stdio_cmd.append(server_config["command"]) + if "args" in server_config: + stdio_cmd.extend(server_config["args"]) + + # If no command specified, use package_name with npx + if not stdio_cmd and "package_name" in server_config: + stdio_cmd = ["npx", "-y", server_config["package_name"]] + + # Join the stdio command parts + stdio_str = " ".join(stdio_cmd) + + cmd.extend([ + "npx", "-y", "supergateway", + "--stdio", stdio_str, + "--port", str(args.port), + "--baseUrl", args.base_url, + "--ssePath", args.sse_path, + "--messagePath", args.message_path + ]) else: - print(" No preconfigured servers available") + # Use the server's configured command + if "command" in server_config: + cmd.append(server_config["command"]) + if "args" in server_config: + cmd.extend(server_config["args"]) + + time.sleep(0.5) # Simulate work + progress.update(task, advance=33) + + # Step 3: Start server + progress.update(task, description="[cyan]Starting server") + time.sleep(0.5) # Simulate work + progress.update(task, advance=34) + + try: + show_code_block(" ".join(cmd)) + console.print("[info]Server is running...[/]") + + # Set up environment variables from config + env = os.environ.copy() + if "env" in server_config: + env.update(server_config["env"]) + + # Start process using ProcessManager + process_manager = ProcessManager() + pid = process_manager.start_process(server_name, cmd, env) + + # Wait for process to complete + process = psutil.Process(pid) + process.wait() + + except KeyboardInterrupt: + show_success("Server stopped") + except Exception as e: + show_error("Error running server", e) + sys.exit(1) def parse_args(args=None): """Parse command line arguments.""" parser = argparse.ArgumentParser( - description="MCPHub CLI tool for managing MCP server configurations" + description="MCPHub CLI tool for managing MCP server configurations", + formatter_class=argparse.RawDescriptionHelpFormatter ) subparsers = parser.add_subparsers(dest="command", help="Commands") - # Init command - init_parser = subparsers.add_parser( - "init", - help="Create a new .mcphub.json file in the current directory" - ) - # Add command add_parser = subparsers.add_parser( "add", - help="Add a preconfigured MCP server to your local config" + help="Add an MCP server from a GitHub repository to your local config", + description="Add a new MCP server from a GitHub repository to your local configuration." + ) + add_parser.add_argument( + "repo_url", + help="GitHub repository URL of the MCP server" ) add_parser.add_argument( "mcp_name", - help="Name of the preconfigured MCP server to add" + nargs="?", + help="Name to give to the MCP server (defaults to username/repo from the GitHub URL)" ) add_parser.add_argument( "-n", "--non-interactive", @@ -122,22 +491,67 @@ def parse_args(args=None): # Remove command remove_parser = subparsers.add_parser( "remove", - help="Remove an MCP server from your local config" + help="Remove an MCP server configuration from your local config", + description="Remove an MCP server configuration from your local configuration." ) remove_parser.add_argument( - "mcp_name", + "mcp_name", help="Name of the MCP server to remove" ) - # List command - list_parser = subparsers.add_parser( - "list", - help="List configured MCP servers" + # PS command (replaces list command) + ps_parser = subparsers.add_parser( + "ps", + help="List all configured MCP servers with process details", + description="List all MCP servers configured in your local configuration with detailed process information." + ) + + # Status command + status_parser = subparsers.add_parser( + "status", + help="Show detailed status of an MCP server", + description="Show detailed status information for a configured MCP server." ) - list_parser.add_argument( - "-a", "--all", - action="store_true", - help="Show all available preconfigured servers" + status_parser.add_argument( + "mcp_name", + help="Name of the MCP server to check" + ) + + # Run command + run_parser = subparsers.add_parser( + "run", + help="Run an MCP server with optional SSE support", + description="Run a configured MCP server with optional Server-Sent Events (SSE) support." + ) + run_parser.add_argument( + "mcp_name", + help="Name of the MCP server to run" + ) + run_parser.add_argument( + "--sse", + action="store_true", + help="Enable Server-Sent Events support" + ) + run_parser.add_argument( + "--port", + type=int, + default=3000, + help="Port for SSE server (default: 3000)" + ) + run_parser.add_argument( + "--base-url", + default="http://localhost:3000", + help="Base URL for SSE server (default: http://localhost:3000)" + ) + run_parser.add_argument( + "--sse-path", + default="/sse", + help="Path for SSE endpoint (default: /sse)" + ) + run_parser.add_argument( + "--message-path", + default="/message", + help="Path for message endpoint (default: /message)" ) return parser.parse_args(args) @@ -146,17 +560,28 @@ def main(): """Main entry point for the CLI.""" args = parse_args() - if args.command == "init": - init_command(args) - elif args.command == "add": + if args.command == "add": add_command(args) elif args.command == "remove": remove_command(args) - elif args.command == "list": - list_command(args) + elif args.command == "ps": + ps_command(args) + elif args.command == "status": + status_command(args) + elif args.command == "run": + run_command(args) else: - # Show help if no command is provided - parse_args(["-h"]) + show_help_text( + "mcphub", + "MCPHub CLI tool for managing MCP server configurations", + [ + "mcphub add https://github.com/username/repo", + "mcphub ps", + "mcphub run server-name", + "mcphub status server-name" + ] + ) + sys.exit(1) if __name__ == "__main__": main() \ No newline at end of file diff --git a/src/mcphub/cli/process_manager.py b/src/mcphub/cli/process_manager.py new file mode 100644 index 0000000..9424bf9 --- /dev/null +++ b/src/mcphub/cli/process_manager.py @@ -0,0 +1,405 @@ +"""Process manager for MCP servers.""" +import os +import json +import psutil +import subprocess +import signal +from pathlib import Path +from typing import Dict, Any, Optional, List +from datetime import datetime +import logging +import socket + +logger = logging.getLogger("mcphub") + +class ProcessManager: + """Manages MCP server processes and their metadata.""" + + def __init__(self, data_dir: Optional[Path] = None): + """Initialize the process manager. + + Args: + data_dir: Directory to store process metadata (defaults to ~/.mcphub) + """ + if data_dir is None: + self.data_dir = Path.home() / ".mcphub" + else: + self.data_dir = data_dir + + self.processes_file = self.data_dir / "processes.json" + self._ensure_data_dir() + self._load_processes() + + def _ensure_data_dir(self): + """Ensure the data directory exists.""" + self.data_dir.mkdir(parents=True, exist_ok=True) + + def _load_processes(self): + """Load process metadata from file.""" + if self.processes_file.exists(): + with open(self.processes_file, "r") as f: + self.processes = json.load(f) + else: + self.processes = {} + self._save_processes() + + def _save_processes(self): + """Save process metadata to file.""" + with open(self.processes_file, "w") as f: + json.dump(self.processes, f, indent=2) + + def _check_port_conflict(self, port: int) -> Optional[Dict[str, Any]]: + """Check if a port is already in use by another process. + + Args: + port: Port to check + + Returns: + Process info dict if port is in use, None otherwise + """ + for pid_str, info in self.processes.items(): + try: + pid = int(pid_str) + process = psutil.Process(pid) + if process.is_running(): + ports = self._get_process_ports(process) + if port in ports: + return { + "pid": pid, + "name": info.get("name", "Unknown"), + "command": info.get("command", "Unknown") + } + except (psutil.NoSuchProcess, psutil.AccessDenied, ValueError): + continue + return None + + def _find_available_port(self, start_port: int = 3000, max_attempts: int = 100) -> int: + """Find an available port starting from start_port. + + Args: + start_port: Port to start checking from + max_attempts: Maximum number of ports to check + + Returns: + Available port number + """ + for port in range(start_port, start_port + max_attempts): + try: + # Try to bind to the port + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + s.bind(('localhost', port)) + return port + except OSError: + continue + + raise RuntimeError(f"Could not find an available port after {max_attempts} attempts") + + def start_process(self, name: str, command: List[str], env: Dict[str, str] = None) -> int: + """Start a new MCP server process. + + Args: + name: Name of the MCP server + command: Command to run + env: Environment variables + + Returns: + Process ID of the started process + """ + # Extract port from command if present + port = None + port_index = -1 + for i, arg in enumerate(command): + if arg == "--port" and i + 1 < len(command): + try: + port = int(command[i + 1]) + port_index = i + 1 + except ValueError: + pass + break + + # If no port specified, find an available one + if port is None: + try: + port = self._find_available_port() + # Add port to command + command.extend(["--port", str(port)]) + logger.info(f"Automatically selected port {port}") + except RuntimeError as e: + logger.error(f"Failed to find available port: {e}") + raise + + # Check for port conflicts + if port: + conflict = self._check_port_conflict(port) + if conflict: + logger.warning( + f"Port {port} is already in use by process {conflict['pid']} " + f"({conflict['name']}): {conflict['command']}" + ) + # Try to find another available port + try: + new_port = self._find_available_port(port + 1) + if port_index >= 0: + command[port_index] = str(new_port) + else: + command.extend(["--port", str(new_port)]) + logger.info(f"Automatically switched to port {new_port}") + port = new_port + except RuntimeError as e: + logger.error(f"Failed to find alternative port: {e}") + raise + + # Create process metadata + process_info = { + "name": name, + "command": " ".join(command), + "start_time": datetime.now().isoformat(), + "env": env or {}, + "pid": None, + "ports": [], + "status": "starting", + "warnings": [] + } + + try: + # Start the process + process = subprocess.Popen( + command, + env={**os.environ, **(env or {})}, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True + ) + + # Update process info + process_info["pid"] = process.pid + process_info["status"] = "running" + + # Check for port conflicts after process starts + if port: + # Wait a moment for the process to start + import time + time.sleep(1) + + # Check if our process got the port + try: + our_ports = self._get_process_ports(process) + if port not in our_ports: + process_info["warnings"].append( + f"Port {port} is not available. The process may not be running correctly." + ) + except Exception as e: + logger.debug(f"Failed to check process ports: {e}") + + # Store process info + self.processes[str(process.pid)] = process_info + self._save_processes() + + return process.pid + + except Exception as e: + logger.error(f"Failed to start process: {e}") + process_info["status"] = "failed" + process_info["error"] = str(e) + self.processes[str(process.pid)] = process_info + self._save_processes() + raise + + def stop_process(self, pid: int) -> bool: + """Stop a running MCP server process. + + Args: + pid: Process ID to stop + + Returns: + True if process was stopped, False otherwise + """ + pid_str = str(pid) + if pid_str not in self.processes: + return False + + try: + # Try graceful shutdown first + os.kill(pid, signal.SIGTERM) + + # Wait for process to terminate + try: + process = psutil.Process(pid) + process.wait(timeout=5) + except psutil.TimeoutExpired: + # Force kill if process doesn't terminate + os.kill(pid, signal.SIGKILL) + + # Update process info + self.processes[pid_str]["status"] = "stopped" + self.processes[pid_str]["stop_time"] = datetime.now().isoformat() + self._save_processes() + + return True + + except ProcessLookupError: + # Process already gone + self.processes[pid_str]["status"] = "stopped" + self.processes[pid_str]["stop_time"] = datetime.now().isoformat() + self._save_processes() + return True + except Exception as e: + logger.error(f"Failed to stop process {pid}: {e}") + return False + + def get_process_info(self, pid: int) -> Optional[Dict[str, Any]]: + """Get information about a process. + + Args: + pid: Process ID + + Returns: + Process information dictionary or None if not found + """ + pid_str = str(pid) + if pid_str not in self.processes: + return None + + info = self.processes[pid_str].copy() + + try: + process = psutil.Process(pid) + + # Update runtime info + info["status"] = "running" if process.is_running() else "stopped" + info["uptime"] = self._get_uptime(process) + + # Get ports with retry for Docker containers + ports = self._get_process_ports(process) + if not ports and "docker" in info.get("command", "").lower(): + # Retry after a short delay for Docker containers + import time + time.sleep(1) + ports = self._get_process_ports(process) + + info["ports"] = ports + + # Check for port conflicts + if ports: + for port in ports: + conflict = self._check_port_conflict(port) + if conflict and conflict["pid"] != pid: + warning = ( + f"Port {port} is also in use by process {conflict['pid']} " + f"({conflict['name']}): {conflict['command']}" + ) + if warning not in info.get("warnings", []): + if "warnings" not in info: + info["warnings"] = [] + info["warnings"].append(warning) + + # Update process info + self.processes[pid_str].update(info) + self._save_processes() + + except psutil.NoSuchProcess: + info["status"] = "stopped" + info["stop_time"] = datetime.now().isoformat() + self.processes[pid_str].update(info) + self._save_processes() + + return info + + def list_processes(self) -> List[Dict[str, Any]]: + """List all managed processes with their current status. + + Returns: + List of process information dictionaries + """ + processes = [] + for pid_str, info in self.processes.items(): + try: + pid = int(pid_str) + process_info = self.get_process_info(pid) + if process_info: + processes.append(process_info) + except ValueError: + continue + return processes + + def _get_uptime(self, process: psutil.Process) -> str: + """Get process uptime in human readable format.""" + try: + create_time = datetime.fromtimestamp(process.create_time()) + uptime = datetime.now() - create_time + + days = uptime.days + hours = uptime.seconds // 3600 + minutes = (uptime.seconds % 3600) // 60 + + if days > 0: + return f"{days}d {hours}h {minutes}m" + elif hours > 0: + return f"{hours}h {minutes}m" + else: + return f"{minutes}m" + except (psutil.NoSuchProcess, psutil.AccessDenied): + return "N/A" + + def _get_process_ports(self, process: psutil.Process) -> List[int]: + """Get list of ports used by a process and its children. + + Args: + process: Process to check + + Returns: + List of ports in use + """ + ports = set() + + try: + # Check the main process + for conn in process.connections(): + if conn.laddr and conn.status == 'LISTEN': + ports.add(conn.laddr.port) + + # Check child processes + for child in process.children(recursive=True): + try: + for conn in child.connections(): + if conn.laddr and conn.status == 'LISTEN': + ports.add(conn.laddr.port) + except (psutil.NoSuchProcess, psutil.AccessDenied): + continue + + # Check for Docker containers + if "docker" in process.name().lower(): + try: + # Get container ID from process command line + cmdline = " ".join(process.cmdline()) + if "docker" in cmdline: + # Extract container ID or name + container_id = None + for arg in process.cmdline(): + if arg.startswith("--name="): + container_id = arg.split("=")[1] + break + elif arg.startswith("--cidfile="): + with open(arg.split("=")[1], "r") as f: + container_id = f.read().strip() + break + + if container_id: + # Get container ports using docker inspect + result = subprocess.run( + ["docker", "inspect", "-f", "{{range $p, $conf := .NetworkSettings.Ports}}{{$p}} {{end}}", container_id], + capture_output=True, + text=True + ) + if result.returncode == 0: + for port_mapping in result.stdout.split(): + if "->" in port_mapping: + host_port = port_mapping.split("->")[0].split(":")[-1] + ports.add(int(host_port)) + except Exception as e: + logger.debug(f"Failed to get Docker container ports: {e}") + + return sorted(list(ports)) + + except (psutil.NoSuchProcess, psutil.AccessDenied): + return [] \ No newline at end of file diff --git a/src/mcphub/cli/utils.py b/src/mcphub/cli/utils.py index 279a29c..cb871e9 100644 --- a/src/mcphub/cli/utils.py +++ b/src/mcphub/cli/utils.py @@ -4,6 +4,176 @@ import re from pathlib import Path from typing import Dict, Any, Optional, List, Tuple +from rich.console import Console +from rich.theme import Theme +from rich.logging import RichHandler +from rich.panel import Panel +from rich.live import Live +from rich.table import Table +from rich.prompt import Prompt, Confirm +from rich.progress import Progress, SpinnerColumn, TextColumn, BarColumn, TaskProgressColumn +from rich.syntax import Syntax +from rich.live import Live +from rich.text import Text +import time +import logging +import sys +import subprocess +import psutil +import socket +from datetime import datetime + +# Initialize rich console with custom theme +console = Console(theme=Theme({ + "info": "cyan", + "warning": "yellow", + "error": "red bold", + "success": "green", + "command": "blue", + "step": "magenta", + "input": "bright_blue", + "help": "dim", + "status": "bright_green", + "code": "bright_black", + "check": "green", + "pending": "yellow", + "current": "cyan", +})) + +# Configure logging +logging.basicConfig( + level=logging.INFO, + format="%(message)s", + datefmt="[%X]", + handlers=[RichHandler(console=console, rich_tracebacks=True)] +) + +logger = logging.getLogger("mcphub") + +def show_animated_checklist(steps: List[str], title: str = "Progress"): + """Show an animated checklist of steps.""" + def generate_checklist(completed_steps: int) -> Table: + table = Table(show_header=False, box=None) + table.add_column("Status", style="check", width=3) + table.add_column("Step", style="step") + + for i, step in enumerate(steps): + if i < completed_steps: + status = "✓" + style = "check" + elif i == completed_steps: + status = "⟳" + style = "current" + else: + status = "○" + style = "pending" + table.add_row(status, step) + + return Panel(table, title=title, border_style="blue") + + with Live(generate_checklist(0), refresh_per_second=4) as live: + for i in range(len(steps) + 1): + live.update(generate_checklist(i)) + if i < len(steps): + time.sleep(0.5) # Simulate work being done + +def show_progress(steps: List[str], title: str = "Progress"): + """Show a progress bar with steps.""" + with Progress( + SpinnerColumn(), + TextColumn("[progress.description]{task.description}"), + BarColumn(), + TaskProgressColumn(), + console=console + ) as progress: + tasks = {} + for step in steps: + task = progress.add_task(f"[cyan]{step}", total=100) + tasks[step] = task + progress.update(task, completed=100) + progress.refresh() + +def show_steps(steps: List[str], title: str = "Progress"): + """Show a list of steps with checkmarks.""" + table = Table(show_header=False, box=None) + table.add_column("Status", style="green") + table.add_column("Step", style="step") + + for step in steps: + table.add_row("✓", step) + + console.print(Panel(table, title=title, border_style="blue")) + +def show_help_text(command: str, description: str, examples: List[str] = None): + """Show help text for a command.""" + console.print(f"\n[help]Command: {command}[/]") + console.print(f"[help]Description: {description}[/]") + + if examples: + console.print("\n[help]Examples:[/]") + for example in examples: + console.print(f"[code]$ {example}[/]") + +def show_error(message: str, error: Exception = None, help_text: str = None): + """Show an error message with optional exception details and help text.""" + console.print(f"\n[error]Error: {message}[/]") + if error: + console.print(f"[error]Details: {str(error)}[/]") + if help_text: + console.print(f"\n[help]{help_text}[/]") + +def show_warning(message: str, help_text: str = None): + """Show a warning message with optional help text.""" + console.print(f"\n[warning]Warning: {message}[/]") + if help_text: + console.print(f"\n[help]{help_text}[/]") + +def show_success(message: str, details: str = None): + """Show a success message with optional details.""" + console.print(f"\n[success]✓ {message}[/]") + if details: + console.print(f"[info]{details}[/]") + +def show_status(server_name: str, status: str, details: Dict[str, Any] = None): + """Show server status information.""" + table = Table(title=f"Server Status: {server_name}") + table.add_column("Property", style="cyan") + table.add_column("Value", style="status") + + table.add_row("Status", status) + if details: + for key, value in details.items(): + table.add_row(key, str(value)) + + console.print(table) + +def show_code_block(code: str, language: str = "bash"): + """Show a code block with syntax highlighting.""" + syntax = Syntax(code, language, theme="monokai") + console.print(syntax) + +def log_error(message: str, error: Exception = None): + """Log an error message with optional exception details.""" + if error: + logger.error(f"{message}: {str(error)}", exc_info=error) + else: + logger.error(message) + +def log_warning(message: str): + """Log a warning message.""" + logger.warning(message) + +def log_info(message: str): + """Log an info message.""" + logger.info(message) + +def log_success(message: str): + """Log a success message.""" + console.print(f"[success]✓ {message}[/]") + +def log_step(message: str): + """Log a step message.""" + console.print(f"[step]→ {message}[/]") DEFAULT_CONFIG = { "mcpServers": {} @@ -14,12 +184,12 @@ def get_config_path() -> Path: return Path.cwd() / ".mcphub.json" def load_config() -> Dict[str, Any]: - """Load the config file if it exists, otherwise return an empty config dict.""" + """Load the config file if it exists, otherwise create a new one.""" config_path = get_config_path() - if config_path.exists(): - with open(config_path, "r") as f: - return json.load(f) - return DEFAULT_CONFIG + if not config_path.exists(): + save_config(DEFAULT_CONFIG) + with open(config_path, "r") as f: + return json.load(f) def save_config(config: Dict[str, Any]) -> None: """Save the config to the .mcphub.json file.""" @@ -27,14 +197,6 @@ def save_config(config: Dict[str, Any]) -> None: with open(config_path, "w") as f: json.dump(config, f, indent=2) -def load_preconfigured_servers() -> Dict[str, Any]: - """Load the preconfigured servers from mcphub_preconfigured_servers.json.""" - preconfigured_path = Path(__file__).parent.parent / "mcphub_preconfigured_servers.json" - if preconfigured_path.exists(): - with open(preconfigured_path, "r") as f: - return json.load(f) - return {"mcpServers": {}} - def detect_env_vars(server_config: Dict[str, Any]) -> List[str]: """Detect environment variables in a server configuration. @@ -56,44 +218,89 @@ def detect_env_vars(server_config: Dict[str, Any]) -> List[str]: return env_vars +def check_env_var(var: str) -> Optional[str]: + """Check if an environment variable exists and return its value. + + Args: + var: Environment variable name + + Returns: + The value of the environment variable if it exists, None otherwise + """ + try: + # Use subprocess to run echo command and capture output + result = subprocess.run( + f"echo ${var}", + shell=True, + capture_output=True, + text=True + ) + value = result.stdout.strip() + # If echo returns empty or the variable name, the variable doesn't exist + if not value or value == f"${var}": + return None + return value + except Exception: + return None + def prompt_env_vars(env_vars: List[str]) -> Dict[str, str]: - """Prompt the user for environment variable values. + """Check and prompt for environment variables. Args: - env_vars: List of environment variable names to prompt for + env_vars: List of environment variable names to check Returns: - Dictionary mapping environment variable names to values + Dictionary of environment variable values that were found """ - values = {} + found_vars = {} + missing_vars = [] - print("\nThis MCP server requires environment variables to be set.") - print("You can either:") - print("1. Enter values now (they will be saved in your .mcphub.json)") - print("2. Set them in your environment and press Enter to skip") + console.print("\n[info]Checking Environment Variables[/]") for var in env_vars: - # Check if the environment variable is already set - existing_value = os.environ.get(var) - if existing_value: - prompt = f"Environment variable {var} found in environment. Press Enter to use it or provide a new value: " - else: - prompt = f"Enter value for {var} (or press Enter to skip): " - - value = input(prompt) - - # If user entered a value, save it + # Check if variable exists + value = check_env_var(var) if value: - values[var] = value + console.print(f"[success]✓ Found {var} in environment[/]") + found_vars[var] = value + else: + console.print(f"[warning]✗ {var} not found in environment[/]") + missing_vars.append(var) - return values + # If there are missing variables, prompt user to set them + if missing_vars: + console.print("\n[info]Please set the following environment variables:[/]") + for var in missing_vars: + console.print(f"\n[code]export {var}=[/]") + console.print(f"[code]echo ${var}[/]") + + # Prompt for confirmation + if not Confirm.ask(f"Have you set {var}?"): + show_warning( + f"Environment variable {var} is required", + "Please set it using export before continuing" + ) + sys.exit(1) + + # Check again after user confirmation + value = check_env_var(var) + if value: + console.print(f"[success]✓ Found {var} in environment[/]") + found_vars[var] = value + else: + show_error( + f"Environment variable {var} is still not set", + "Please make sure to set it correctly" + ) + sys.exit(1) + + return found_vars -def process_env_vars(server_config: Dict[str, Any], env_values: Dict[str, str]) -> Dict[str, Any]: +def process_env_vars(server_config: Dict[str, Any]) -> Dict[str, Any]: """Process environment variables in a server configuration. Args: server_config: Server configuration dict - env_values: Dictionary of environment variable values Returns: Updated server configuration with processed environment variables @@ -112,12 +319,16 @@ def process_env_vars(server_config: Dict[str, Any], env_values: Dict[str, str]) if isinstance(value, str) and value.startswith("${") and value.endswith("}"): env_var = value[2:-1] # Extract ENV_VAR from ${ENV_VAR} - # Use provided value or environment variable - if env_var in env_values: - new_env[key] = env_values[env_var] + # Check if variable exists in environment + env_value = check_env_var(env_var) + if env_value: + new_env[key] = env_value else: - # Keep the template if not provided - new_env[key] = value + show_error( + f"Required environment variable {env_var} is not set", + help_text=f"Please set it using: export {env_var}=" + ) + sys.exit(1) else: # Keep non-template values as is new_env[key] = value @@ -126,49 +337,6 @@ def process_env_vars(server_config: Dict[str, Any], env_values: Dict[str, str]) config["env"] = new_env return config -def add_server_config(name: str, interactive: bool = True) -> Tuple[bool, Optional[List[str]]]: - """Add a preconfigured server to the local config. - - Args: - name: Name of the preconfigured server to add - interactive: Whether to prompt for environment variables - - Returns: - Tuple of (success, missing_env_vars): - - success: True if the server was added, False if it wasn't found - - missing_env_vars: List of environment variables that weren't set (None if no env vars needed) - """ - preconfigured = load_preconfigured_servers() - if name not in preconfigured.get("mcpServers", {}): - return False, None - - # Get the server config - server_config = preconfigured["mcpServers"][name] - - # Detect environment variables - env_vars = detect_env_vars(server_config) - missing_env_vars = [] - - # Process environment variables if needed - if env_vars and interactive: - env_values = prompt_env_vars(env_vars) - server_config = process_env_vars(server_config, env_values) - - # Check for missing environment variables - for var in env_vars: - if var not in env_values and var not in os.environ: - missing_env_vars.append(var) - - # Save to config - config = load_config() - if "mcpServers" not in config: - config["mcpServers"] = {} - - config["mcpServers"][name] = server_config - save_config(config) - - return True, missing_env_vars if missing_env_vars else None - def remove_server_config(name: str) -> bool: """Remove a server config from the local .mcphub.json file. @@ -185,12 +353,163 @@ def remove_server_config(name: str) -> bool: return True return False -def list_available_servers() -> Dict[str, Any]: - """List all available preconfigured servers.""" - preconfigured = load_preconfigured_servers() - return preconfigured.get("mcpServers", {}) - def list_configured_servers() -> Dict[str, Any]: """List all servers in the local config.""" config = load_config() - return config.get("mcpServers", {}) \ No newline at end of file + return config.get("mcpServers", {}) + +def is_port_in_use(port: int) -> bool: + """Check if a port is in use. + + Args: + port: Port number to check + + Returns: + bool: True if port is in use, False otherwise + """ + with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s: + return s.connect_ex(('localhost', port)) == 0 + +def get_process_uptime(pid: int) -> Optional[str]: + """Get the uptime of a process. + + Args: + pid: Process ID + + Returns: + str: Uptime in human readable format, or None if process not found + """ + try: + process = psutil.Process(pid) + create_time = datetime.fromtimestamp(process.create_time()) + uptime = datetime.now() - create_time + + # Format uptime + days = uptime.days + hours = uptime.seconds // 3600 + minutes = (uptime.seconds % 3600) // 60 + + if days > 0: + return f"{days}d {hours}h {minutes}m" + elif hours > 0: + return f"{hours}h {minutes}m" + else: + return f"{minutes}m" + except (psutil.NoSuchProcess, psutil.AccessDenied): + return None + +def get_server_status(server_config: Dict[str, Any]) -> Dict[str, Any]: + """Get the status of a server including process details. + + Args: + server_config: Server configuration dict + + Returns: + Dict with status information: + { + "status": "Running" or "Not Running", + "pid": process ID or None, + "name": process name or None, + "command": full command or None, + "created": creation time or None, + "ports": list of ports or None, + "uptime": uptime string or None + } + """ + status = { + "status": "Not Running", + "pid": None, + "name": None, + "command": None, + "created": None, + "ports": None, + "uptime": None + } + + # Get expected command and package name from config + expected_command = server_config.get("command", "") + expected_package = server_config.get("package_name", "") + expected_port = server_config.get("port", 3000) + + # First check for Docker containers + try: + result = subprocess.run( + ["docker", "ps", "--format", "{{.Names}} {{.Ports}}"], + capture_output=True, + text=True + ) + for line in result.stdout.splitlines(): + if line.strip(): + name, ports = line.split(" ", 1) + # Check if this container matches our server + if expected_command and expected_command in name: + # Get container details + inspect = subprocess.run( + ["docker", "inspect", name], + capture_output=True, + text=True + ) + if inspect.returncode == 0: + status["status"] = "Running" + status["name"] = f"docker:{name}" + status["command"] = expected_command + # Extract ports from docker ps output + port_list = [] + for port in ports.split(", "): + if "->" in port: + host_port = port.split("->")[0].split(":")[-1] + port_list.append(int(host_port)) + status["ports"] = port_list + return status + except Exception: + pass + + # If no Docker match, check regular processes + for proc in psutil.process_iter(['pid', 'name', 'cmdline', 'create_time']): + try: + cmdline = " ".join(proc.cmdline()) + + # Check if this process matches our server + is_match = False + + # Check by command (exact match or contains) + if expected_command: + if expected_command in cmdline or cmdline in expected_command: + is_match = True + + # Check by package name (for npm/npx processes) + if not is_match and expected_package: + # Check for npx or npm running the package + if f"npx {expected_package}" in cmdline or f"npm {expected_package}" in cmdline: + is_match = True + # Check for direct package execution + elif expected_package in cmdline: + is_match = True + + # Check by port + if not is_match: + try: + for conn in proc.connections(): + if conn.laddr.port == expected_port: + is_match = True + break + except (psutil.AccessDenied, psutil.NoSuchProcess): + pass + + if is_match: + status["status"] = "Running" + status["pid"] = proc.pid + status["name"] = proc.name() + status["command"] = cmdline + status["created"] = datetime.fromtimestamp(proc.create_time()).strftime("%Y-%m-%d %H:%M:%S") + try: + status["ports"] = [conn.laddr.port for conn in proc.connections()] + except (psutil.AccessDenied, psutil.NoSuchProcess): + status["ports"] = [expected_port] + status["uptime"] = get_process_uptime(proc.pid) + break + + except (psutil.NoSuchProcess, psutil.AccessDenied): + continue + + return status \ No newline at end of file diff --git a/src/mcphub/mcp_servers/params.py b/src/mcphub/mcp_servers/params.py index 2f315d9..663e98a 100644 --- a/src/mcphub/mcp_servers/params.py +++ b/src/mcphub/mcp_servers/params.py @@ -1,12 +1,16 @@ import json +import os from dataclasses import dataclass from pathlib import Path from typing import Dict, List, Optional +import openai +import requests +from urllib.parse import urlparse from mcp import StdioServerParameters from .exceptions import ServerConfigNotFoundError - +from .schemas import MCPServerConfigSchema @dataclass class MCPServerConfig: @@ -25,6 +29,10 @@ class MCPServersParams: def __init__(self, config_path: Optional[str]): self.config_path = config_path self._servers_params = self._load_servers_params() + # Initialize OpenAI client if API key is available + self.openai_client = None + if os.getenv("OPENAI_API_KEY"): + self.openai_client = openai.OpenAI() @property def servers_params(self) -> List[MCPServerConfig]: @@ -52,53 +60,147 @@ def _load_user_config(self) -> Dict: except json.JSONDecodeError as e: raise ValueError(f"Invalid JSON in configuration file: {e}") - def _load_predefined_servers_params(self) -> Dict: - """Load predefined server parameters from JSON file.""" - commands_path = Path(__file__).parent.parent / "mcphub_preconfigured_servers.json" - if commands_path.exists(): - with open(commands_path, "r") as f: - return json.load(f) - return {} + def _get_github_readme(self, repo_url: str) -> str: + """Fetch README content from GitHub repository.""" + parsed_url = urlparse(repo_url) + if parsed_url.netloc != "github.com": + raise ValueError("Only GitHub repositories are supported") + + # Convert github.com URL to raw content URL + path_parts = parsed_url.path.strip("/").split("/") + if len(path_parts) != 2: + raise ValueError("Invalid GitHub repository URL") + + owner, repo = path_parts + raw_url = f"https://raw.githubusercontent.com/{owner}/{repo}/main/README.md" + + response = requests.get(raw_url) + if response.status_code == 200: + return response.text + else: + # Try master branch if main doesn't exist + raw_url = f"https://raw.githubusercontent.com/{owner}/{repo}/master/README.md" + response = requests.get(raw_url) + if response.status_code == 200: + return response.text + raise ValueError(f"Could not fetch README from {repo_url}") + + def _parse_readme_with_openai(self, readme_content: str) -> Dict: + """Use OpenAI to parse README and extract MCP server configuration.""" + if not self.openai_client: + raise ValueError("OpenAI API key not configured. Set OPENAI_API_KEY environment variable.") + + prompt = f"""Please analyze this MCP server README and extract the configuration in JSON format. + The configuration should include: + - command: The command to run the server + - args: List of command line arguments + - env: Environment variables (if any) + - setup_script: Any setup script needed (if any) + + README content: + {readme_content} + + Return only the JSON configuration, nothing else.""" + + try: + response = self.openai_client.responses.parse( + model="gpt-4o-mini", + input=[ + {"role": "system", "content": "You are a helpful assistant that extracts MCP server configuration from READMEs."}, + {"role": "user", "content": prompt} + ], + text_format=MCPServerConfigSchema + ) + # Validate response structure + if not hasattr(response, "output_parsed") or not hasattr(response.output_parsed, "model_dump"): + raise ValueError("Unexpected OpenAI API response format") + config = response.output_parsed.model_dump() + return config + except json.JSONDecodeError as e: + # Log the problematic response content for debugging + raise ValueError(f"Failed to parse OpenAI response as JSON: {e}") + except openai.error.OpenAIError as e: + # Log OpenAI-specific errors + raise RuntimeError(f"OpenAI API error: {e}") + except Exception as e: + # Catch-all for any other unexpected exceptions + raise RuntimeError(f"Unexpected error while parsing OpenAI response: {e}") + + def add_server_from_repo(self, server_name: str, repo_url: str) -> None: + """Add a new server configuration by analyzing its GitHub repository README.""" + try: + # Fetch README content + readme_content = self._get_github_readme(repo_url) + + # Parse README with OpenAI + config = self._parse_readme_with_openai(readme_content) + + # Create server configuration + server_config = MCPServerConfig( + package_name=server_name, + command=config["command"], + args=config["args"], + env=config.get("env", {}), + repo_url=repo_url, + setup_script=config.get("setup_script") + ) + + # Add to existing configuration + self._servers_params[server_name] = server_config + + # Save to .mcphub.json + self._save_config() + + except Exception as e: + raise ValueError(f"Failed to add server from repository: {str(e)}") + + def _save_config(self) -> None: + """Save current configuration to .mcphub.json.""" + if not self.config_path: + raise ValueError("No configuration path specified") + + config = {"mcpServers": {}} + for server_name, server_params in self._servers_params.items(): + config["mcpServers"][server_name] = { + "package_name": server_params.package_name, + "command": server_params.command, + "args": server_params.args, + "env": server_params.env, + "repo_url": server_params.repo_url, + "setup_script": server_params.setup_script + } + + with open(self.config_path, "w") as f: + json.dump(config, f, indent=4) def _load_servers_params(self) -> Dict[str, MCPServerConfig]: config = self._load_user_config() - predefined_servers_params = self._load_predefined_servers_params() servers = {} for mcp_name, server_config in config.items(): package_name = server_config.get("package_name") - # Check if command and args are configured in user config - if "command" in server_config and "args" in server_config: - # Use configuration directly from .mcphub.json - servers[mcp_name] = MCPServerConfig( - package_name=package_name, - command=server_config["command"], - args=server_config["args"], - env=server_config.get("env", {}), - description=server_config.get("description"), - tags=server_config.get("tags"), - repo_url=server_config.get("repo_url"), - setup_script=server_config.get("setup_script") - ) - # Fallback to predefined configuration - elif package_name and predefined_servers_params.get("mcpServers", {}).get(package_name): - cmd_info = predefined_servers_params["mcpServers"][package_name] - servers[mcp_name] = MCPServerConfig( - package_name=package_name, - command=cmd_info.get("command"), - args=cmd_info.get("args", []), - env=server_config.get("env", {}), - description=cmd_info.get("description"), - tags=cmd_info.get("tags"), - repo_url=cmd_info.get("repo_url"), - setup_script=cmd_info.get("setup_script") - ) - else: - raise ServerConfigNotFoundError( - f"Server '{package_name}' must either have command and args configured in .mcphub.json " - f"or be defined in mcphub_preconfigured_servers.json" + if not package_name: + raise ValueError( + f"Configuration for server '{mcp_name}' is missing the required 'package_name' field. " + "As of the latest update, all server configurations must explicitly include a 'package_name'. " + "Please update your configuration file to include this field." ) + + # Get command and args with defaults + command = server_config.get("command", "npx") + args = server_config.get("args", ["-y", package_name]) + + servers[mcp_name] = MCPServerConfig( + package_name=package_name, + command=command, + args=args, + env=server_config.get("env", {}), + description=server_config.get("description"), + tags=server_config.get("tags"), + repo_url=server_config.get("repo_url"), + setup_script=server_config.get("setup_script") + ) return servers diff --git a/src/mcphub/mcp_servers/schemas.py b/src/mcphub/mcp_servers/schemas.py new file mode 100644 index 0000000..3940b0a --- /dev/null +++ b/src/mcphub/mcp_servers/schemas.py @@ -0,0 +1,15 @@ +from typing import Dict, List, Optional +from pydantic import BaseModel, Field + + +class MCPServerConfigSchema(BaseModel): + """Pydantic model for MCP server configuration.""" + command: str = Field(..., description="The command to run the server") + args: List[str] = Field(default_factory=list, description="List of command line arguments") + env: Optional[Dict[str, str]] = Field(default_factory=dict, description="Environment variables") + setup_script: Optional[str] = Field(None, description="Setup script to run before starting the server") + package_name: Optional[str] = Field(None, description="Package name or identifier") + repo_url: Optional[str] = Field(None, description="GitHub repository URL") + description: Optional[str] = Field(None, description="Server description") + tags: Optional[List[str]] = Field(None, description="List of tags for the server") + cwd: Optional[str] = Field(None, description="Working directory for the server") \ No newline at end of file diff --git a/src/mcphub/mcphub_preconfigured_servers.json b/src/mcphub/mcphub_preconfigured_servers.json deleted file mode 100644 index 9c67075..0000000 --- a/src/mcphub/mcphub_preconfigured_servers.json +++ /dev/null @@ -1,17598 +0,0 @@ -{ - "mcpServers": { - "Gloomysunday28/mcp-server": { - "package_name": "Gloomysunday28/mcp-server", - "repo_url": "https://github.com/Gloomysunday28/mcp-server", - "command": "/path/to/weather-server/build/index.js" - }, - "block/vscode-mcp": { - "package_name": "block/vscode-mcp", - "repo_url": "https://github.com/block/vscode-mcp", - "command": "npx", - "args": [ - "vscode-mcp-server" - ] - }, - "MCP-Mirror/hekmon8_Homeassistant-server-mcp": { - "package_name": "MCP-Mirror/hekmon8_Homeassistant-server-mcp", - "repo_url": "https://github.com/MCP-Mirror/hekmon8_Homeassistant-server-mcp", - "command": "node", - "args": [ - "/path/to/homeassistant-mcp/homeassistant-server/build/index.js" - ], - "env": { - "HA_URL": "${HA_URL}", - "HA_TOKEN": "${HA_TOKEN}" - } - }, - "MxIris-Reverse-Engineering/ida-mcp-server": { - "package_name": "MxIris-Reverse-Engineering/ida-mcp-server", - "repo_url": "https://github.com/MxIris-Reverse-Engineering/ida-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/", - "run", - "mcp-server-ida" - ] - }, - "mixelpixx/Google-Search-MCP-Server": { - "package_name": "mixelpixx/Google-Search-MCP-Server", - "repo_url": "https://github.com/mixelpixx/Google-Search-MCP-Server", - "command": "C:\\Program Files\\odejs\\ode.exe", - "args": [ - "C:\\path\\to\\google-search-mcp\\dist\\google-search.js" - ], - "env": { - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}", - "GOOGLE_SEARCH_ENGINE_ID": "${GOOGLE_SEARCH_ENGINE_ID}" - } - }, - "alexatnordnet/mcp-google-custom-search-server": { - "package_name": "alexatnordnet/mcp-google-custom-search-server", - "repo_url": "https://github.com/alexatnordnet/mcp-google-custom-search-server", - "command": "node", - "args": [ - "/absolute/path/to/mcp-google-custom-search-server/build/index.js" - ], - "env": { - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}", - "GOOGLE_SEARCH_ENGINE_ID": "${GOOGLE_SEARCH_ENGINE_ID}" - } - }, - "imiborbas/pocketbase-mcp-server": { - "package_name": "imiborbas/pocketbase-mcp-server", - "repo_url": "https://github.com/imiborbas/pocketbase-mcp-server", - "command": "/path/to/pocketbase-mcp-server/build/index.js --pb-url=http://localhost:8090 --pb-admin-email=admin@example.com --pb-admin-password=your-secure-password" - }, - "MCP-Mirror/f4ww4z_mcp-mysql-server": { - "package_name": "MCP-Mirror/f4ww4z_mcp-mysql-server", - "repo_url": "https://github.com/MCP-Mirror/f4ww4z_mcp-mysql-server", - "command": "npx", - "args": [ - "-y", - "@f4ww4z/mcp-mysql-server" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "exoticknight/mcp-file-merger": { - "package_name": "exoticknight/mcp-file-merger", - "repo_url": "https://github.com/exoticknight/mcp-file-merger", - "command": "npx", - "args": [ - "-y", - "@exoticknight/mcp-file-merger", - "/path/to/allowed/dir" - ] - }, - "RyoJerryYu/mcp-server-memos-py": { - "package_name": "RyoJerryYu/mcp-server-memos-py", - "repo_url": "https://github.com/RyoJerryYu/mcp-server-memos-py", - "command": "uvx", - "args": [ - "mcp-server-fetch" - ] - }, - "Zelaron/Pandoras-Shell": { - "package_name": "Zelaron/Pandoras-Shell", - "repo_url": "https://github.com/Zelaron/Pandoras-Shell", - "command": "/path/to/cloned/Pandoras-Shell/venv/bin/python", - "args": [ - "/path/to/cloned/Pandoras-Shell/src/pandoras_shell/executor.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "dragon1086/kospi-kosdaq-stock-server": { - "package_name": "dragon1086/kospi-kosdaq-stock-server", - "repo_url": "https://github.com/dragon1086/kospi-kosdaq-stock-server", - "command": "uvx" - }, - "JoshuaRileyDev/app-store-connect-mcp-server": { - "package_name": "JoshuaRileyDev/app-store-connect-mcp-server", - "repo_url": "https://github.com/JoshuaRileyDev/app-store-connect-mcp-server", - "command": "npx", - "args": [ - "-y", - "@your-org/app-store-connect-mcp-server" - ], - "env": { - "APP_STORE_CONNECT_KEY_ID": "${APP_STORE_CONNECT_KEY_ID}", - "APP_STORE_CONNECT_ISSUER_ID": "${APP_STORE_CONNECT_ISSUER_ID}", - "APP_STORE_CONNECT_P8_PATH": "${APP_STORE_CONNECT_P8_PATH}" - } - }, - "GuoAccount/notepad-server": { - "package_name": "GuoAccount/notepad-server", - "repo_url": "https://github.com/GuoAccount/notepad-server", - "command": "/path/to/notepad-server/build/index.js" - }, - "gnuhpc/rtc-mcp-server": { - "package_name": "gnuhpc/rtc-mcp-server", - "repo_url": "https://github.com/gnuhpc/rtc-mcp-server", - "command": "java", - "args": [ - "-Dtransport.mode=stdio", - "-Dspring.main.web-application-type=none", - "-Dspring.main.banner-mode=off", - "-Dlogging.file.name=/path/to/rtc-mcp-server/mcpserver.log", - "-jar", - "/path/to/rtc-mcp-server/target/rtc-mcp-server-1.0-SNAPSHOT.jar" - ], - "env": { - "ALIYUN_ACCESS_KEY_ID": "${ALIYUN_ACCESS_KEY_ID}", - "ALIYUN_ACCESS_KEY_SECRET": "${ALIYUN_ACCESS_KEY_SECRET}" - } - }, - "0xshellming/mcp-summarizer-server": { - "package_name": "0xshellming/mcp-summarizer-server", - "repo_url": "https://github.com/0xshellming/mcp-summarizer-server", - "command": "npx", - "args": [ - "-y", - "firecrawl-mcp" - ], - "env": { - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}", - "FIRECRAWL_RETRY_MAX_ATTEMPTS": "${FIRECRAWL_RETRY_MAX_ATTEMPTS}", - "FIRECRAWL_RETRY_INITIAL_DELAY": "${FIRECRAWL_RETRY_INITIAL_DELAY}", - "FIRECRAWL_RETRY_MAX_DELAY": "${FIRECRAWL_RETRY_MAX_DELAY}", - "FIRECRAWL_RETRY_BACKOFF_FACTOR": "${FIRECRAWL_RETRY_BACKOFF_FACTOR}", - "FIRECRAWL_CREDIT_WARNING_THRESHOLD": "${FIRECRAWL_CREDIT_WARNING_THRESHOLD}", - "FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "${FIRECRAWL_CREDIT_CRITICAL_THRESHOLD}" - } - }, - "databutton/databutton-mcp": { - "package_name": "databutton/databutton-mcp", - "repo_url": "https://github.com/databutton/databutton-mcp", - "command": "/path/to/databutton/build/index.js" - }, - "RossH121/perplexity-mcp": { - "package_name": "RossH121/perplexity-mcp", - "repo_url": "https://github.com/RossH121/perplexity-mcp", - "command": "node", - "args": [ - "/absolute/path/to/perplexity-mcp/build/index.js" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}", - "PERPLEXITY_MODEL": "${PERPLEXITY_MODEL}" - } - }, - "MammothGrowth/dbt-cli-mcp": { - "package_name": "MammothGrowth/dbt-cli-mcp", - "repo_url": "https://github.com/MammothGrowth/dbt-cli-mcp", - "command": "uv", - "args": [ - "--directory", - "/path/to/dbt-cli-mcp", - "run", - "src/server.py" - ], - "env": { - "DBT_PATH": "${DBT_PATH}", - "ENV_FILE": "${ENV_FILE}" - } - }, - "MCP-Mirror/rezapex_shopify-mcp-server-main": { - "package_name": "MCP-Mirror/rezapex_shopify-mcp-server-main", - "repo_url": "https://github.com/MCP-Mirror/rezapex_shopify-mcp-server-main", - "command": "npx", - "args": [ - "-y", - "shopify-mcp-server" - ], - "env": { - "SHOPIFY_ACCESS_TOKEN": "${SHOPIFY_ACCESS_TOKEN}", - "MYSHOPIFY_DOMAIN": "${MYSHOPIFY_DOMAIN}" - } - }, - "ben4mn/amadeus-mcp": { - "package_name": "ben4mn/amadeus-mcp", - "repo_url": "https://github.com/ben4mn/amadeus-mcp", - "command": "python", - "args": [ - "path/to/amadeus/server.py" - ], - "env": { - "AMADEUS_API_KEY": "${AMADEUS_API_KEY}", - "AMADEUS_API_SECRET": "${AMADEUS_API_SECRET}", - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "aliargun/mcp-server-gemini": { - "package_name": "aliargun/mcp-server-gemini", - "repo_url": "https://github.com/aliargun/mcp-server-gemini", - "command": "npx", - "args": [ - "-y", - "github:aliargun/mcp-server-gemini" - ], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}" - } - }, - "ucesys/minio-python-mcp": { - "package_name": "ucesys/minio-python-mcp", - "repo_url": "https://github.com/ucesys/minio-python-mcp", - "command": "python", - "args": [ - "path/to/minio-mcp/src/minio_mcp_server/server.py" - ] - }, - "MarcusJellinghaus/mcp_server_code_checker_python": { - "package_name": "MarcusJellinghaus/mcp_server_code_checker_python", - "repo_url": "https://github.com/MarcusJellinghaus/mcp_server_code_checker_python", - "command": "C:\\path\\to\\mcp_code_checker\\.venv\\Scripts\\python.exe", - "args": [ - "C:\\path\\to\\mcp_code_checker\\src\\main.py", - "--project-dir", - "C:\\path\\to\\your\\project" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "kaichen/mcp-local-router": { - "package_name": "kaichen/mcp-local-router", - "repo_url": "https://github.com/kaichen/mcp-local-router", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/Users/username/Desktop" - ], - "env": { - "LINEAR_ACCESS_TOKEN": "${LINEAR_ACCESS_TOKEN}" - } - }, - "bmorphism/krep-mcp-server": { - "package_name": "bmorphism/krep-mcp-server", - "repo_url": "https://github.com/bmorphism/krep-mcp-server", - "command": "node", - "args": [ - "/path/to/krep-mcp-server/src/index.js" - ], - "env": { - "CLAUDE_MCP": "${CLAUDE_MCP}", - "KREP_PATH": "${KREP_PATH}", - "DEBUG": "${DEBUG}" - } - }, - "T0UGH/mcp_server_my_lark_doc": { - "package_name": "T0UGH/mcp_server_my_lark_doc", - "repo_url": "https://github.com/T0UGH/mcp_server_my_lark_doc", - "command": "uvx", - "args": [ - "mcp-server-my-lark-doc" - ], - "env": { - "LARK_APP_ID": "${LARK_APP_ID}", - "LARK_APP_SECRET": "${LARK_APP_SECRET}", - "OAUTH_HOST": "${OAUTH_HOST}", - "OAUTH_PORT": "${OAUTH_PORT}" - } - }, - "MCP-Mirror/tanevanwifferen_usescraper-mcp-server": { - "package_name": "MCP-Mirror/tanevanwifferen_usescraper-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/tanevanwifferen_usescraper-mcp-server", - "command": "node", - "args": [ - "/path/to/usescraper-server/build/index.js" - ], - "env": { - "USESCRAPER_API_KEY": "${USESCRAPER_API_KEY}" - } - }, - "apifox/apifox-mcp-server": { - "package_name": "apifox/apifox-mcp-server", - "repo_url": "https://github.com/apifox/apifox-mcp-server", - "command": "cmd", - "args": [ - "/c", - "npx", - "-y", - "apifox-mcp-server@latest", - "--project-id=" - ], - "env": { - "APIFOX_ACCESS_TOKEN": "${APIFOX_ACCESS_TOKEN}" - } - }, - "situ2001/unplugin-mcp": { - "package_name": "situ2001/unplugin-mcp", - "repo_url": "https://github.com/situ2001/unplugin-mcp" - }, - "aindreyway/mcp-neurolora": { - "package_name": "aindreyway/mcp-neurolora", - "repo_url": "https://github.com/aindreyway/mcp-neurolora", - "command": "npx", - "args": [ - "-y", - "@aindreyway/mcp-neurolora@latest" - ], - "env": { - "NODE_OPTIONS": "${NODE_OPTIONS}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "MCP-Mirror/philgei_mcp_server_filesystem": { - "package_name": "MCP-Mirror/philgei_mcp_server_filesystem", - "repo_url": "https://github.com/MCP-Mirror/philgei_mcp_server_filesystem", - "command": "mcp-server-filesystem", - "args": [ - "D:/", - "C:/Users/YourUsername/Documents", - "~/Desktop" - ] - }, - "dwrtz/mcpterm": { - "package_name": "dwrtz/mcpterm", - "repo_url": "https://github.com/dwrtz/mcpterm", - "command": "mcpterm", - "args": [] - }, - "AntanasMisiunas/mcp-server-delay-doomsday": { - "package_name": "AntanasMisiunas/mcp-server-delay-doomsday", - "repo_url": "https://github.com/AntanasMisiunas/mcp-server-delay-doomsday", - "command": "node", - "args": [ - "/path/to/mcp-server-delay-doomsday/build/index.js" - ] - }, - "neka-nat/freecad-mcp": { - "package_name": "neka-nat/freecad-mcp", - "repo_url": "https://github.com/neka-nat/freecad-mcp", - "command": "uv", - "args": [ - "--directory", - "/path/to/freecad-mcp/", - "run", - "freecad-mcp" - ] - }, - "nahmanmate/better-auth-mcp-server": { - "package_name": "nahmanmate/better-auth-mcp-server", - "repo_url": "https://github.com/nahmanmate/better-auth-mcp-server", - "command": "node", - "args": [ - "/path/to/better-auth-mcp-server/build/index.js" - ] - }, - "ahujasid/blender-mcp": { - "package_name": "ahujasid/blender-mcp", - "repo_url": "https://github.com/ahujasid/blender-mcp", - "command": "uvx", - "args": [ - "blender-mcp" - ] - }, - "bmorphism/hypernym-mcp-server": { - "package_name": "bmorphism/hypernym-mcp-server", - "repo_url": "https://github.com/bmorphism/hypernym-mcp-server", - "command": "cd /path/to/hypernym-mcp-server && npm run start:stdio" - }, - "MissionSquad/mcp-github": { - "package_name": "MissionSquad/mcp-github", - "repo_url": "https://github.com/MissionSquad/mcp-github", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "cyanheads/ntfy-mcp-server": { - "package_name": "cyanheads/ntfy-mcp-server", - "repo_url": "https://github.com/cyanheads/ntfy-mcp-server", - "command": "node", - "args": [ - "/path/to/ntfy-mcp-server/dist/index.js" - ], - "env": { - "NTFY_BASE_URL": "${NTFY_BASE_URL}", - "NTFY_DEFAULT_TOPIC": "${NTFY_DEFAULT_TOPIC}", - "LOG_LEVEL": "${LOG_LEVEL}", - "NODE_ENV": "${NODE_ENV}" - } - }, - "Sunwood-ai-labs/github-kanban-mcp-server": { - "package_name": "Sunwood-ai-labs/github-kanban-mcp-server", - "repo_url": "https://github.com/Sunwood-ai-labs/github-kanban-mcp-server", - "command": "github-kanban-mcp-server", - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "GITHUB_OWNER": "${GITHUB_OWNER}", - "GITHUB_REPO": "${GITHUB_REPO}" - } - }, - "unctad-ai/eregulations-mcp-server": { - "package_name": "unctad-ai/eregulations-mcp-server", - "repo_url": "https://github.com/unctad-ai/eregulations-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "EREGULATIONS_API_URL", - "ghcr.io/unctad-ai/eregulations-mcp-server:latest" - ], - "env": { - "EREGULATIONS_API_URL": "${EREGULATIONS_API_URL}" - } - }, - "Alesion30/my-mcp-server": { - "package_name": "Alesion30/my-mcp-server", - "repo_url": "https://github.com/Alesion30/my-mcp-server", - "command": "node", - "args": [ - "xxx/my-mcp-server/build/main.js" - ] - }, - "MCP-Mirror/dillip285_mcp-dev-server": { - "package_name": "MCP-Mirror/dillip285_mcp-dev-server", - "repo_url": "https://github.com/MCP-Mirror/dillip285_mcp-dev-server", - "command": "mcp-dev-server", - "args": [] - }, - "kevinwatt/mcp-server-searxng": { - "package_name": "kevinwatt/mcp-server-searxng", - "repo_url": "https://github.com/kevinwatt/mcp-server-searxng", - "command": "npx", - "args": [ - "-y", - "@kevinwatt/mcp-server-searxng" - ], - "env": { - "SEARXNG_INSTANCES": "${SEARXNG_INSTANCES}", - "SEARXNG_USER_AGENT": "${SEARXNG_USER_AGENT}", - "NODE_TLS_REJECT_UNAUTHORIZED": "${NODE_TLS_REJECT_UNAUTHORIZED}" - } - }, - "Fewsats/fewsats-mcp": { - "package_name": "Fewsats/fewsats-mcp", - "repo_url": "https://github.com/Fewsats/fewsats-mcp", - "command": "uvx", - "args": [ - "fewsats-mcp" - ], - "env": { - "FEWSATS_API_KEY": "${FEWSATS_API_KEY}" - } - }, - "voska/hass-mcp": { - "package_name": "voska/hass-mcp", - "repo_url": "https://github.com/voska/hass-mcp", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "HA_URL", - "-e", - "HA_TOKEN", - "voska/hass-mcp" - ], - "env": { - "HA_URL": "${HA_URL}", - "HA_TOKEN": "${HA_TOKEN}" - } - }, - "apimatic/apimatic-validator-mcp": { - "package_name": "apimatic/apimatic-validator-mcp", - "repo_url": "https://github.com/apimatic/apimatic-validator-mcp", - "command": "node", - "args": [ - "C:\\PATH\\TO\\PARENT\\FOLDER\\build\\index.js" - ], - "env": { - "APIMATIC_API_KEY": "${APIMATIC_API_KEY}" - } - }, - "ckz/flux-schnell-mcp": { - "package_name": "ckz/flux-schnell-mcp", - "repo_url": "https://github.com/ckz/flux-schnell-mcp", - "command": "node", - "args": [ - "/path/to/flux-schnell-mcp/build/index.js" - ], - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "apappascs/tavily-search-mcp-server": { - "package_name": "apappascs/tavily-search-mcp-server", - "repo_url": "https://github.com/apappascs/tavily-search-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "TAVILY_API_KEY", - "-v", - "/Users///tavily-search-mcp-server:/app", - "tavily-search-mcp-server" - ], - "env": { - "TAVILY_API_KEY": "${TAVILY_API_KEY}" - } - }, - "kbyk004/playwright-lighthouse-mcp": { - "package_name": "kbyk004/playwright-lighthouse-mcp", - "repo_url": "https://github.com/kbyk004/playwright-lighthouse-mcp", - "command": "node", - "args": [ - "/path-to/playwright-lighthouse-mcp/build/index.js" - ] - }, - "FreePeak/db-mcp-server": { - "package_name": "FreePeak/db-mcp-server", - "repo_url": "https://github.com/FreePeak/db-mcp-server", - "command": "/path/to/db-mcp-server/server", - "args": [ - "-t", - "stdio", - "-c", - "/path/to/database_config.json" - ] - }, - "raw391/coin_daemon_mcp": { - "package_name": "raw391/coin_daemon_mcp", - "repo_url": "https://github.com/raw391/coin_daemon_mcp", - "command": "npx", - "args": [ - "-y", - "@raw391/coin-daemon-mcp" - ], - "env": { - "CONFIG_PATH": "${CONFIG_PATH}" - } - }, - "Msparihar/mcp-server-firecrawl": { - "package_name": "Msparihar/mcp-server-firecrawl", - "repo_url": "https://github.com/Msparihar/mcp-server-firecrawl", - "command": "mcp-server-firecrawl", - "env": { - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}" - } - }, - "r3-yamauchi/mcp-server-blastengine-mailer": { - "package_name": "r3-yamauchi/mcp-server-blastengine-mailer", - "repo_url": "https://github.com/r3-yamauchi/mcp-server-blastengine-mailer", - "command": "node", - "args": [ - "/path/to/blastengine-mailer/server.js" - ], - "env": { - "BLASTENGINE_USER_ID": "${BLASTENGINE_USER_ID}", - "BLASTENGINE_API_KEY": "${BLASTENGINE_API_KEY}" - } - }, - "ivo-toby/mcp-openapi-server": { - "package_name": "ivo-toby/mcp-openapi-server", - "repo_url": "https://github.com/ivo-toby/mcp-openapi-server", - "command": "npx", - "args": [ - "-y", - "@ivotoby/openapi-mcp-server" - ], - "env": { - "API_BASE_URL": "${API_BASE_URL}", - "OPENAPI_SPEC_PATH": "${OPENAPI_SPEC_PATH}", - "API_HEADERS": "${API_HEADERS}" - } - }, - "peakmojo/mcp-server-peakmojo": { - "package_name": "peakmojo/mcp-server-peakmojo", - "repo_url": "https://github.com/peakmojo/mcp-server-peakmojo", - "command": "python", - "args": [ - "-m", - "mcp_server_peakmojo", - "--api-key", - "your_api_key_here", - "--base-url", - "https://api.staging.readymojo.com" - ] - }, - "Cactusinhand/mcp_server_notify": { - "package_name": "Cactusinhand/mcp_server_notify", - "repo_url": "https://github.com/Cactusinhand/mcp_server_notify", - "command": "uv", - "args": [ - "--directory", - "path/to/your/mcp_server_notify project", - "run", - "mcp-server-notify" - ] - }, - "Fibery-inc/fibery-mcp-server": { - "package_name": "Fibery-inc/fibery-mcp-server", - "repo_url": "https://github.com/Fibery-inc/fibery-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/cloned/fibery-mcp-server", - "run", - "fibery-mcp-server", - "--fibery-host", - "your-domain.fibery.io", - "--fibery-api-token", - "your-api-token" - ] - }, - "hymnk/cline-mcp-server-sample": { - "package_name": "hymnk/cline-mcp-server-sample", - "repo_url": "https://github.com/hymnk/cline-mcp-server-sample", - "command": "/root/.bun/bin/bun", - "args": [ - "run", - "/workspace/mcp-server/index.ts" - ] - }, - "pab1it0/adx-mcp-server": { - "package_name": "pab1it0/adx-mcp-server", - "repo_url": "https://github.com/pab1it0/adx-mcp-server", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-e", - "ADX_CLUSTER_URL", - "-e", - "ADX_DATABASE", - "adx-mcp-server" - ], - "env": { - "ADX_CLUSTER_URL": "${ADX_CLUSTER_URL}", - "ADX_DATABASE": "${ADX_DATABASE}" - } - }, - "brianshin22/youtube-translate-mcp": { - "package_name": "brianshin22/youtube-translate-mcp", - "repo_url": "https://github.com/brianshin22/youtube-translate-mcp", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "YOUTUBE_TRANSLATE_API_KEY", - "youtube-translate-mcp" - ], - "env": { - "YOUTUBE_TRANSLATE_API_KEY": "${YOUTUBE_TRANSLATE_API_KEY}" - } - }, - "base/base-mcp": { - "package_name": "base/base-mcp", - "repo_url": "https://github.com/base/base-mcp", - "command": "npx", - "args": [ - "-y", - "base-mcp@latest" - ], - "env": { - "COINBASE_API_KEY_NAME": "${COINBASE_API_KEY_NAME}", - "COINBASE_API_PRIVATE_KEY": "${COINBASE_API_PRIVATE_KEY}", - "SEED_PHRASE": "${SEED_PHRASE}", - "COINBASE_PROJECT_ID": "${COINBASE_PROJECT_ID}", - "ALCHEMY_API_KEY": "${ALCHEMY_API_KEY}", - "PINATA_JWT": "${PINATA_JWT}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}", - "CHAIN_ID": "${CHAIN_ID}" - } - }, - "Garoth/wolframalpha-llm-mcp": { - "package_name": "Garoth/wolframalpha-llm-mcp", - "repo_url": "https://github.com/Garoth/wolframalpha-llm-mcp", - "command": "node", - "args": [ - "/path/to/wolframalpha-mcp-server/build/index.js" - ], - "env": { - "WOLFRAM_LLM_APP_ID": "${WOLFRAM_LLM_APP_ID}" - } - }, - "MCP-Mirror/cr7258_elasticsearch-mcp-server": { - "package_name": "MCP-Mirror/cr7258_elasticsearch-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/cr7258_elasticsearch-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/elasticsearch_mcp_server/src", - "run", - "server.py" - ], - "env": { - "ELASTIC_HOST": "${ELASTIC_HOST}", - "ELASTIC_USERNAME": "${ELASTIC_USERNAME}", - "ELASTIC_PASSWORD": "${ELASTIC_PASSWORD}" - } - }, - "MFYDev/ghost-mcp": { - "package_name": "MFYDev/ghost-mcp", - "repo_url": "https://github.com/MFYDev/ghost-mcp", - "command": "/Users/username/.local/bin/uv", - "args": [ - "--directory", - "/path/to/ghost-mcp", - "run", - "src/main.py" - ], - "env": { - "GHOST_API_URL": "${GHOST_API_URL}", - "GHOST_STAFF_API_KEY": "${GHOST_STAFF_API_KEY}" - } - }, - "open-strategy-partners/osp_marketing_tools": { - "package_name": "open-strategy-partners/osp_marketing_tools", - "repo_url": "https://github.com/open-strategy-partners/osp_marketing_tools", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/open-strategy-partners/osp_marketing_tools@main", - "osp_marketing_tools" - ] - }, - "QuantGeekDev/coincap-mcp": { - "package_name": "QuantGeekDev/coincap-mcp", - "repo_url": "https://github.com/QuantGeekDev/coincap-mcp", - "command": "/path/to/coincap-mcp/build/index.js" - }, - "MCP-Mirror/pythonpete32_mcp-server-template": { - "package_name": "MCP-Mirror/pythonpete32_mcp-server-template", - "repo_url": "https://github.com/MCP-Mirror/pythonpete32_mcp-server-template", - "command": "/path/to/evm-server/build/index.js" - }, - "y7ut/mcp-tavily-search": { - "package_name": "y7ut/mcp-tavily-search", - "repo_url": "https://github.com/y7ut/mcp-tavily-search", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "docker.ijiwei.com/mcp/mcp-tavily-search:latest", - "run", - "tvly-*******************" - ] - }, - "ethangillani/connectwise-mcp-server": { - "package_name": "ethangillani/connectwise-mcp-server", - "repo_url": "https://github.com/ethangillani/connectwise-mcp-server", - "command": "npx", - "args": [ - "-y", - "connectwise-mcp-server" - ], - "env": { - "CW_COMPANY_ID": "${CW_COMPANY_ID}", - "CW_PUBLIC_KEY": "${CW_PUBLIC_KEY}", - "CW_PRIVATE_KEY": "${CW_PRIVATE_KEY}", - "CW_URL": "${CW_URL}" - } - }, - "Tritlo/lsp-mcp": { - "package_name": "Tritlo/lsp-mcp", - "repo_url": "https://github.com/Tritlo/lsp-mcp", - "command": "npx", - "args": [ - "tritlo/lsp-mcp", - "", - "", - "" - ] - }, - "EnesCinr/market-fiyatlari-mcp-server": { - "package_name": "EnesCinr/market-fiyatlari-mcp-server", - "repo_url": "https://github.com/EnesCinr/market-fiyatlari-mcp-server", - "command": "npx", - "args": [ - "-y @enescinar/market-fiyati-mcp" - ] - }, - "Cleversoft-IT/drupal-tools-mcp": { - "package_name": "Cleversoft-IT/drupal-tools-mcp", - "repo_url": "https://github.com/Cleversoft-IT/drupal-tools-mcp", - "command": "/path/to/drupal-modules-mcp/build/index.js" - }, - "robertheadley/chrome-debug-mcp": { - "package_name": "robertheadley/chrome-debug-mcp", - "repo_url": "https://github.com/robertheadley/chrome-debug-mcp", - "command": "node", - "args": [ - "path/to/chrome-debug-mcp/build/index.js" - ] - }, - "xenoailimited/mcp-mavae": { - "package_name": "xenoailimited/mcp-mavae", - "repo_url": "https://github.com/xenoailimited/mcp-mavae", - "command": "node", - "args": [ - "***/dist/index.js" - ], - "env": { - "MAVAE_API_KEY": "${MAVAE_API_KEY}" - } - }, - "bjorndavidhansen/google-ads-mcp-server": { - "package_name": "bjorndavidhansen/google-ads-mcp-server", - "repo_url": "https://github.com/bjorndavidhansen/google-ads-mcp-server", - "command": "python", - "args": [ - "/absolute/path/to/server.py" - ] - }, - "Sjotie/notionMCP": { - "package_name": "Sjotie/notionMCP", - "repo_url": "https://github.com/Sjotie/notionMCP", - "command": "node", - "args": [ - "C:\\path\\to\\otion-mcp-server\\server.js" - ], - "env": { - "NOTION_API_KEY": "${NOTION_API_KEY}" - } - }, - "vignesh-codes/ai-agents-mcp-pg": { - "package_name": "vignesh-codes/ai-agents-mcp-pg", - "repo_url": "https://github.com/vignesh-codes/ai-agents-mcp-pg", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "mcp/postgres", - "postgresql://username:password@host.docker.internal:5432/mydatabase" - ] - }, - "philgei/mcp_server_filesystem": { - "package_name": "philgei/mcp_server_filesystem", - "repo_url": "https://github.com/philgei/mcp_server_filesystem", - "command": "mcp-server-filesystem", - "args": [ - "D:/", - "C:/Users/YourUsername/Documents", - "~/Desktop" - ] - }, - "mcollina/mcp-ripgrep": { - "package_name": "mcollina/mcp-ripgrep", - "repo_url": "https://github.com/mcollina/mcp-ripgrep", - "command": "npx", - "args": [ - "-y", - "mcp-ripgrep@latest" - ] - }, - "wangtsiao/mcp-weibohot-server": { - "package_name": "wangtsiao/mcp-weibohot-server", - "repo_url": "https://github.com/wangtsiao/mcp-weibohot-server", - "command": "npx", - "args": [ - "/path/to/tavily-mcp/build/index.js" - ], - "env": { - "TAVILY_API_KEY": "${TAVILY_API_KEY}" - } - }, - "magarcia/mcp-server-giphy": { - "package_name": "magarcia/mcp-server-giphy", - "repo_url": "https://github.com/magarcia/mcp-server-giphy", - "command": "npx", - "args": [ - "-y", - "mcp-server-giphy" - ], - "env": { - "GIPHY_API_KEY": "${GIPHY_API_KEY}" - } - }, - "thirdstrandstudio/mcp-tool-chainer": { - "package_name": "thirdstrandstudio/mcp-tool-chainer", - "repo_url": "https://github.com/thirdstrandstudio/mcp-tool-chainer", - "command": "node", - "args": [ - "/path/to/mcp-tool-chainer/index.js", - "`claude_desktop_config.json` or `mcp.json`" - ] - }, - "MCP-Mirror/integration-app_mcp-server": { - "package_name": "MCP-Mirror/integration-app_mcp-server", - "repo_url": "https://github.com/MCP-Mirror/integration-app_mcp-server", - "command": "npx", - "args": [ - "-y", - "@integration-app/mcp-server" - ], - "env": { - "INTEGRATION_APP_TOKEN": "${INTEGRATION_APP_TOKEN}", - "INTEGRATION_KEY": "${INTEGRATION_KEY}" - } - }, - "blake365/usgs-quakes-mcp": { - "package_name": "blake365/usgs-quakes-mcp", - "repo_url": "https://github.com/blake365/usgs-quakes-mcp", - "command": "node", - "args": [ - "/Full/Route/to/Folder/usgs-quakes/build/index.js" - ] - }, - "MCP-Mirror/tadasant_mcp-server-ssh-rails-runner": { - "package_name": "MCP-Mirror/tadasant_mcp-server-ssh-rails-runner", - "repo_url": "https://github.com/MCP-Mirror/tadasant_mcp-server-ssh-rails-runner", - "command": "npx", - "args": [ - "mcp-server-ssh-rails-runner" - ], - "env": { - "SSH_HOST": "${SSH_HOST}", - "SSH_USER": "${SSH_USER}", - "SSH_PRIVATE_KEY_PATH": "${SSH_PRIVATE_KEY_PATH}", - "RAILS_WORKING_DIR": "${RAILS_WORKING_DIR}" - } - }, - "bazinga012/mcp_code_executor": { - "package_name": "bazinga012/mcp_code_executor", - "repo_url": "https://github.com/bazinga012/mcp_code_executor", - "command": "node", - "args": [ - "/path/to/mcp_code_executor/build/index.js" - ], - "env": { - "CODE_STORAGE_DIR": "${CODE_STORAGE_DIR}", - "CONDA_ENV_NAME": "${CONDA_ENV_NAME}" - } - }, - "rusiaaman/wcgw": { - "package_name": "rusiaaman/wcgw", - "repo_url": "https://github.com/rusiaaman/wcgw", - "command": "wsl.exe", - "args": [ - "uv", - "tool", - "run", - "--from", - "wcgw@latest", - "--python", - "3.12", - "wcgw_mcp" - ] - }, - "hanweg/mcp-tool-builder": { - "package_name": "hanweg/mcp-tool-builder", - "repo_url": "https://github.com/hanweg/mcp-tool-builder", - "command": "uv", - "args": [ - "--directory", - "PATH_TO\\mcp-tool-builder", - "run", - "tool-builder" - ] - }, - "alxspiker/ai-meta-mcp-server": { - "package_name": "alxspiker/ai-meta-mcp-server", - "repo_url": "https://github.com/alxspiker/ai-meta-mcp-server", - "command": "npx", - "args": [ - "-y", - "ai-meta-mcp-server" - ], - "env": { - "ALLOW_JS_EXECUTION": "${ALLOW_JS_EXECUTION}", - "ALLOW_PYTHON_EXECUTION": "${ALLOW_PYTHON_EXECUTION}", - "ALLOW_SHELL_EXECUTION": "${ALLOW_SHELL_EXECUTION}" - } - }, - "bharathvaj-ganesan/whois-mcp": { - "package_name": "bharathvaj-ganesan/whois-mcp", - "repo_url": "https://github.com/bharathvaj-ganesan/whois-mcp", - "command": "npx", - "args": [ - "-y", - "@bharathvaj/whois-mcp@latest" - ] - }, - "MCP-Mirror/tatn_mcp-server-fetch-python": { - "package_name": "MCP-Mirror/tatn_mcp-server-fetch-python", - "repo_url": "https://github.com/MCP-Mirror/tatn_mcp-server-fetch-python", - "command": "uv", - "args": [ - "--directory", - "path\\to\\mcp-server-fetch-python", - "run", - "mcp-server-fetch-python" - ] - }, - "jagan-shanmugam/climatiq-mcp-server": { - "package_name": "jagan-shanmugam/climatiq-mcp-server", - "repo_url": "https://github.com/jagan-shanmugam/climatiq-mcp-server", - "command": "climatiq-mcp-server", - "env": { - "CLIMATIQ_API_KEY": "${CLIMATIQ_API_KEY}" - } - }, - "FradSer/mcp-server-apple-reminders": { - "package_name": "FradSer/mcp-server-apple-reminders", - "repo_url": "https://github.com/FradSer/mcp-server-apple-reminders", - "command": "mcp-server-apple-reminders", - "args": [] - }, - "MCP-Mirror/peterparker57_clarion-builder-mcp-server": { - "package_name": "MCP-Mirror/peterparker57_clarion-builder-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/peterparker57_clarion-builder-mcp-server", - "command": "node", - "args": [ - "path/to/clarion-builder-mcp-server/dist/index.js" - ] - }, - "y86/ex-mcp-test": { - "package_name": "y86/ex-mcp-test", - "repo_url": "https://github.com/y86/ex-mcp-test", - "command": "path/to/your/realease/bin/my_app", - "args": [ - "start" - ] - }, - "zhaoxin34/mcp-server-mysql": { - "package_name": "zhaoxin34/mcp-server-mysql", - "repo_url": "https://github.com/zhaoxin34/mcp-server-mysql", - "command": "/path/to/npx/binary/npx", - "args": [ - "-y", - "@benborla29/mcp-server-mysql" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASS": "${MYSQL_PASS}", - "MYSQL_DB": "${MYSQL_DB}", - "PATH": "${PATH}", - "MYSQL_POOL_SIZE": "${MYSQL_POOL_SIZE}", - "MYSQL_QUERY_TIMEOUT": "${MYSQL_QUERY_TIMEOUT}", - "MYSQL_CACHE_TTL": "${MYSQL_CACHE_TTL}", - "MYSQL_RATE_LIMIT": "${MYSQL_RATE_LIMIT}", - "MYSQL_MAX_QUERY_COMPLEXITY": "${MYSQL_MAX_QUERY_COMPLEXITY}", - "MYSQL_SSL": "${MYSQL_SSL}", - "MYSQL_ENABLE_LOGGING": "${MYSQL_ENABLE_LOGGING}", - "MYSQL_LOG_LEVEL": "${MYSQL_LOG_LEVEL}", - "MYSQL_METRICS_ENABLED": "${MYSQL_METRICS_ENABLED}" - } - }, - "qpd-v/mcp-delete": { - "package_name": "qpd-v/mcp-delete", - "repo_url": "https://github.com/qpd-v/mcp-delete", - "command": "npx", - "args": [ - "@qpd-v/mcp-delete" - ] - }, - "okooo5km/zipic-mcp-server": { - "package_name": "okooo5km/zipic-mcp-server", - "repo_url": "https://github.com/okooo5km/zipic-mcp-server", - "command": "zipic-mcp-server" - }, - "thrashr888/terraform-mcp-server": { - "package_name": "thrashr888/terraform-mcp-server", - "repo_url": "https://github.com/thrashr888/terraform-mcp-server", - "command": "npx", - "args": [ - "-y", - "terraform-mcp-server" - ] - }, - "yiGmMk/mcp-server": { - "package_name": "yiGmMk/mcp-server", - "repo_url": "https://github.com/yiGmMk/mcp-server", - "command": "uv", - "args": [ - "run", - "/path/to/your/mcp-server/main.py" - ], - "env": { - "VIRTUAL_ENV": "${VIRTUAL_ENV}", - "JINA_API_KEY": "${JINA_API_KEY}", - "PYTHONIOENCODING": "${PYTHONIOENCODING}" - } - }, - "arbuthnot-eth/PayPal-MCP": { - "package_name": "arbuthnot-eth/PayPal-MCP", - "repo_url": "https://github.com/arbuthnot-eth/PayPal-MCP", - "command": "node", - "args": [ - "path/to/paypal-mcp/build/index.js" - ], - "env": { - "PAYPAL_CLIENT_ID": "${PAYPAL_CLIENT_ID}", - "PAYPAL_CLIENT_SECRET": "${PAYPAL_CLIENT_SECRET}", - "PAYPAL_ENVIRONMENT": "${PAYPAL_ENVIRONMENT}" - } - }, - "speakeasy-api/mistral-mcp-server-example": { - "package_name": "speakeasy-api/mistral-mcp-server-example", - "repo_url": "https://github.com/speakeasy-api/mistral-mcp-server-example", - "command": "node", - "args": [ - "/Users/speakeasy/server-mistral/build/index.js" - ], - "env": { - "MISTRAL_API_KEY": "${MISTRAL_API_KEY}" - } - }, - "tadata-org/fastapi_mcp": { - "package_name": "tadata-org/fastapi_mcp", - "repo_url": "https://github.com/tadata-org/fastapi_mcp", - "command": "/Full/Path/To/Your/Executable/mcp-proxy", - "args": [ - "http://127.0.0.1:8000/mcp" - ] - }, - "nattyraz/youtube-mcp": { - "package_name": "nattyraz/youtube-mcp", - "repo_url": "https://github.com/nattyraz/youtube-mcp", - "command": "node", - "args": [ - "path/to/youtube-mcp/build/index.js" - ], - "env": { - "YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}", - "YOUTUBE_CLIENT_ID": "${YOUTUBE_CLIENT_ID}", - "YOUTUBE_CLIENT_SECRET": "${YOUTUBE_CLIENT_SECRET}" - } - }, - "memohib/Web_Search_MCP": { - "package_name": "memohib/Web_Search_MCP", - "repo_url": "https://github.com/memohib/Web_Search_MCP", - "command": "uv", - "args": [ - "--directory", - "path/Web_Search_MCP", - "run", - "main.py" - ] - }, - "ahonn/mcp-server-gsc": { - "package_name": "ahonn/mcp-server-gsc", - "repo_url": "https://github.com/ahonn/mcp-server-gsc", - "command": "npx", - "args": [ - "-y", - "mcp-server-gsc" - ], - "env": { - "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}" - } - }, - "Siddhant-K-code/mcp-apple-notes": { - "package_name": "Siddhant-K-code/mcp-apple-notes", - "repo_url": "https://github.com/Siddhant-K-code/mcp-apple-notes", - "command": "yarn", - "args": [ - "start" - ] - }, - "singlestore-labs/mcp-server-singlestore": { - "package_name": "singlestore-labs/mcp-server-singlestore", - "repo_url": "https://github.com/singlestore-labs/mcp-server-singlestore", - "command": "pipx", - "args": [ - "run", - "singlestore-mcp-server" - ], - "env": { - "SINGLESTORE_DB_USERNAME": "${SINGLESTORE_DB_USERNAME}", - "SINGLESTORE_DB_PASSWORD": "${SINGLESTORE_DB_PASSWORD}", - "SINGLESTORE_API_KEY": "${SINGLESTORE_API_KEY}" - } - }, - "mixelpixx/GoogleSearch_McpServer": { - "package_name": "mixelpixx/GoogleSearch_McpServer", - "repo_url": "https://github.com/mixelpixx/GoogleSearch_McpServer", - "command": "npm", - "args": [ - "run", - "start:all" - ] - }, - "Cam10001110101/mcp-server-obsidian-jsoncanvas": { - "package_name": "Cam10001110101/mcp-server-obsidian-jsoncanvas", - "repo_url": "https://github.com/Cam10001110101/mcp-server-obsidian-jsoncanvas", - "command": "uv", - "args": [ - "--directory", - "/path/to/jsoncanvas", - "run", - "mcp-server-jsoncanvas" - ], - "env": { - "OUTPUT_PATH": "${OUTPUT_PATH}" - } - }, - "mcpagents-ai/mcpagentai": { - "package_name": "mcpagents-ai/mcpagentai", - "repo_url": "https://github.com/mcpagents-ai/mcpagentai", - "command": "docker", - "args": [ - "run", - "-i", - "-v", - "/path/to/local/eliza:/app/eliza", - "--rm", - "mcpagentai" - ] - }, - "kj455/mcp-kibela": { - "package_name": "kj455/mcp-kibela", - "repo_url": "https://github.com/kj455/mcp-kibela", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "KIBELA_TEAM", - "-e", - "KIBELA_TOKEN", - "ghcr.io/kj455/mcp-kibela:latest" - ], - "env": { - "KIBELA_TEAM": "${KIBELA_TEAM}", - "KIBELA_TOKEN": "${KIBELA_TOKEN}" - } - }, - "AudienseCo/mcp-audiense-insights": { - "package_name": "AudienseCo/mcp-audiense-insights", - "repo_url": "https://github.com/AudienseCo/mcp-audiense-insights", - "command": "/opt/homebrew/bin/node", - "args": [ - "/ABSOLUTE/PATH/TO/YOUR/build/index.js" - ], - "env": { - "AUDIENSE_CLIENT_ID": "${AUDIENSE_CLIENT_ID}", - "AUDIENSE_CLIENT_SECRET": "${AUDIENSE_CLIENT_SECRET}", - "TWITTER_BEARER_TOKEN": "${TWITTER_BEARER_TOKEN}" - } - }, - "shaneholloman/mcp-knowledge-graph": { - "package_name": "shaneholloman/mcp-knowledge-graph", - "repo_url": "https://github.com/shaneholloman/mcp-knowledge-graph", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory", - "--memory-path", - "/path/to/your/memory.jsonl" - ] - }, - "xkiranj/linux-command-mcp": { - "package_name": "xkiranj/linux-command-mcp", - "repo_url": "https://github.com/xkiranj/linux-command-mcp", - "command": "node|npx|uvx", - "args": [ - "server-specific-arguments" - ], - "env": { - "OPTIONAL_ENVIRONMENT_VARIABLES": "${OPTIONAL_ENVIRONMENT_VARIABLES}" - } - }, - "isaacwasserman/mcp-snowflake-server": { - "package_name": "isaacwasserman/mcp-snowflake-server", - "repo_url": "https://github.com/isaacwasserman/mcp-snowflake-server", - "command": "/absolute/path/to/uv", - "args": [ - "--python=3.12", - "--directory", - "/absolute/path/to/mcp_snowflake_server", - "run", - "mcp_snowflake_server" - ] - }, - "MCP-Mirror/odysseus0_mcp-server-shell": { - "package_name": "MCP-Mirror/odysseus0_mcp-server-shell", - "repo_url": "https://github.com/MCP-Mirror/odysseus0_mcp-server-shell", - "command": "python", - "args": [ - "-m", - "mcp_server_shell" - ] - }, - "HarjjotSinghh/mcp-server-postgres-multi-schema": { - "package_name": "HarjjotSinghh/mcp-server-postgres-multi-schema", - "repo_url": "https://github.com/HarjjotSinghh/mcp-server-postgres-multi-schema", - "command": "npx", - "args": [ - "-y", - "mcp-server-postgres-multi-schema", - "postgresql://localhost/mydb", - "public,audit" - ] - }, - "66julienmartin/MCP-server-Deepseek_R1": { - "package_name": "66julienmartin/MCP-server-Deepseek_R1", - "repo_url": "https://github.com/66julienmartin/MCP-server-Deepseek_R1", - "command": "node", - "args": [ - "/path/to/deepseek-r1-mcp/build/index.js" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "hjfender/demo-mcp-server": { - "package_name": "hjfender/demo-mcp-server", - "repo_url": "https://github.com/hjfender/demo-mcp-server", - "command": "uvx", - "args": [ - "blender-mcp" - ] - }, - "MCP-Mirror/plurigrid_juvix-mcp-server": { - "package_name": "MCP-Mirror/plurigrid_juvix-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/plurigrid_juvix-mcp-server", - "command": "uvx", - "args": [ - "cli-mcp-server" - ], - "env": { - "ALLOWED_DIR": "${ALLOWED_DIR}", - "ALLOWED_COMMANDS": "${ALLOWED_COMMANDS}", - "ALLOWED_FLAGS": "${ALLOWED_FLAGS}", - "MAX_COMMAND_LENGTH": "${MAX_COMMAND_LENGTH}", - "COMMAND_TIMEOUT": "${COMMAND_TIMEOUT}" - } - }, - "win4r/browser-use-MCP-Server": { - "package_name": "win4r/browser-use-MCP-Server", - "repo_url": "https://github.com/win4r/browser-use-MCP-Server", - "command": "/path/to/browser-use/build/index.js" - }, - "landicefu/mcp-client-configuration-server": { - "package_name": "landicefu/mcp-client-configuration-server", - "repo_url": "https://github.com/landicefu/mcp-client-configuration-server", - "command": "npx", - "args": [ - "-y", - "@landicefu/mcp-client-configuration-server" - ] - }, - "MCP-Mirror/GongRzhe_TRAVEL-PLANNER-MCP-Server": { - "package_name": "MCP-Mirror/GongRzhe_TRAVEL-PLANNER-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/GongRzhe_TRAVEL-PLANNER-MCP-Server", - "command": "node", - "args": [ - "path/to/dist/index.js" - ], - "env": { - "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" - } - }, - "nwiizo/tfmcp": { - "package_name": "nwiizo/tfmcp", - "repo_url": "https://github.com/nwiizo/tfmcp", - "command": "/path/to/your/tfmcp", - "args": [ - "mcp" - ], - "env": { - "HOME": "${HOME}", - "PATH": "${PATH}", - "TERRAFORM_DIR": "${TERRAFORM_DIR}" - } - }, - "StuMason/get-mcp-keys": { - "package_name": "StuMason/get-mcp-keys", - "repo_url": "https://github.com/StuMason/get-mcp-keys", - "command": "npx", - "args": [ - "@masonator/get-mcp-keys", - "npx", - "-y", - "firecrawl-mcp" - ] - }, - "ghubnerr/Notion-MCP": { - "package_name": "ghubnerr/Notion-MCP", - "repo_url": "https://github.com/ghubnerr/Notion-MCP", - "command": "node", - "args": [ - "/path/to/notion-mcp-server/build/index.js" - ], - "env": { - "NOTION_API_KEY": "${NOTION_API_KEY}" - } - }, - "bmorphism/penumbra-mcp": { - "package_name": "bmorphism/penumbra-mcp", - "repo_url": "https://github.com/bmorphism/penumbra-mcp", - "command": "node", - "args": [ - "/Users/barton/infinity-topos/penumbra-mcp/build/index.js" - ], - "env": { - "PENUMBRA_NODE_URL": "${PENUMBRA_NODE_URL}", - "PENUMBRA_NETWORK": "${PENUMBRA_NETWORK}", - "PENUMBRA_CHAIN_ID": "${PENUMBRA_CHAIN_ID}", - "PENUMBRA_REQUEST_TIMEOUT": "${PENUMBRA_REQUEST_TIMEOUT}", - "PENUMBRA_REQUEST_RETRIES": "${PENUMBRA_REQUEST_RETRIES}", - "PENUMBRA_BLOCK_TIME": "${PENUMBRA_BLOCK_TIME}", - "PENUMBRA_EPOCH_DURATION": "${PENUMBRA_EPOCH_DURATION}", - "PENUMBRA_DEX_BATCH_INTERVAL": "${PENUMBRA_DEX_BATCH_INTERVAL}", - "PENUMBRA_DEX_MIN_LIQUIDITY": "${PENUMBRA_DEX_MIN_LIQUIDITY}", - "PENUMBRA_DEX_MAX_PRICE_IMPACT": "${PENUMBRA_DEX_MAX_PRICE_IMPACT}", - "PENUMBRA_GOVERNANCE_VOTING_PERIOD": "${PENUMBRA_GOVERNANCE_VOTING_PERIOD}", - "PENUMBRA_GOVERNANCE_MIN_DEPOSIT": "${PENUMBRA_GOVERNANCE_MIN_DEPOSIT}" - } - }, - "hyperbrowserai/mcp": { - "package_name": "hyperbrowserai/mcp", - "repo_url": "https://github.com/hyperbrowserai/mcp", - "command": "npx", - "args": [ - "--yes", - "hyperbrowser-mcp" - ], - "env": { - "HYPERBROWSER_API_KEY": "${HYPERBROWSER_API_KEY}" - } - }, - "g0t4/mcp-server-commands": { - "package_name": "g0t4/mcp-server-commands", - "repo_url": "https://github.com/g0t4/mcp-server-commands", - "command": "/path/to/mcp-server-commands/build/index.js" - }, - "Abiorh001/mcp_connect": { - "package_name": "Abiorh001/mcp_connect", - "repo_url": "https://github.com/Abiorh001/mcp_connect", - "command": "python", - "args": [ - "mcp-server.py" - ], - "env": { - "API_KEY": "${API_KEY}" - } - }, - "felores/placid-mcp-server": { - "package_name": "felores/placid-mcp-server", - "repo_url": "https://github.com/felores/placid-mcp-server", - "command": "node", - "args": [ - "path/to/placid-mcp-server/build/index.js" - ], - "env": { - "PLACID_API_TOKEN": "${PLACID_API_TOKEN}" - } - }, - "lugondev/bsc-testnet-mcp-servers": { - "package_name": "lugondev/bsc-testnet-mcp-servers", - "repo_url": "https://github.com/lugondev/bsc-testnet-mcp-servers" - }, - "lostintangent/gistpad-mcp": { - "package_name": "lostintangent/gistpad-mcp", - "repo_url": "https://github.com/lostintangent/gistpad-mcp", - "command": "npx", - "args": [ - "-y", - "gistpad-mcp" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "afshawnlotfi/mcp-configurable-puppeteer": { - "package_name": "afshawnlotfi/mcp-configurable-puppeteer", - "repo_url": "https://github.com/afshawnlotfi/mcp-configurable-puppeteer", - "command": "npx", - "args": [ - "-y", - "github:afshawnlotfi/mcp-configurable-puppeteer#main" - ] - }, - "olostep/olostep-mcp-server": { - "package_name": "olostep/olostep-mcp-server", - "repo_url": "https://github.com/olostep/olostep-mcp-server", - "command": "npx", - "args": [ - "-y", - "olostep-mcp" - ], - "env": { - "OLOSTEP_API_KEY": "${OLOSTEP_API_KEY}" - } - }, - "LaubPlusCo/mcp-webdav-server": { - "package_name": "LaubPlusCo/mcp-webdav-server", - "repo_url": "https://github.com/LaubPlusCo/mcp-webdav-server", - "command": "node", - "args": [ - "/dist/index.js" - ], - "env": { - "WEBDAV_ROOT_URL": "${WEBDAV_ROOT_URL}", - "WEBDAV_ROOT_PATH": "${WEBDAV_ROOT_PATH}", - "WEBDAV_USERNAME": "${WEBDAV_USERNAME}", - "WEBDAV_PASSWORD": "${WEBDAV_PASSWORD}", - "WEBDAV_AUTH_ENABLED": "${WEBDAV_AUTH_ENABLED}" - } - }, - "MCP-Mirror/metoro-io_metoro-mcp-server": { - "package_name": "MCP-Mirror/metoro-io_metoro-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/metoro-io_metoro-mcp-server", - "command": "/metoro-mcp-server", - "args": [], - "env": { - "METORO_AUTH_TOKEN": "${METORO_AUTH_TOKEN}", - "METORO_API_URL": "${METORO_API_URL}" - } - }, - "suekou/mcp-notion-server": { - "package_name": "suekou/mcp-notion-server", - "repo_url": "https://github.com/suekou/mcp-notion-server", - "command": "node", - "args": [ - "your-built-file-path" - ], - "env": { - "NOTION_API_TOKEN": "${NOTION_API_TOKEN}", - "NOTION_MARKDOWN_CONVERSION": "${NOTION_MARKDOWN_CONVERSION}" - } - }, - "Badhansen/notion-mcp": { - "package_name": "Badhansen/notion-mcp", - "repo_url": "https://github.com/Badhansen/notion-mcp", - "command": "uv", - "args": [ - "--directory", - "/Users/username/Projects/Python/notion-mcp/src", - "run", - "server.py" - ] - }, - "cristip73/MCP-email-server": { - "package_name": "cristip73/MCP-email-server", - "repo_url": "https://github.com/cristip73/MCP-email-server", - "command": "node", - "args": [ - "/path/to/email-server/build/index.js" - ], - "env": { - "TIME_ZONE": "${TIME_ZONE}", - "DEFAULT_ATTACHMENTS_FOLDER": "${DEFAULT_ATTACHMENTS_FOLDER}" - } - }, - "maoxiaoke/mcp-media-processor": { - "package_name": "maoxiaoke/mcp-media-processor", - "repo_url": "https://github.com/maoxiaoke/mcp-media-processor", - "command": "npx", - "args": [ - "-y", - "mcp-media-processor@latest" - ] - }, - "MCP-100/stock-market-server": { - "package_name": "MCP-100/stock-market-server", - "repo_url": "https://github.com/MCP-100/stock-market-server", - "command": "/path/to/stock-market-server/build/index.js" - }, - "lingster/mcp-llm": { - "package_name": "lingster/mcp-llm", - "repo_url": "https://github.com/lingster/mcp-llm", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-brave-search" - ], - "env": { - "BRAVE_API_KEY": "${BRAVE_API_KEY}" - } - }, - "felores/airtable-mcp-server": { - "package_name": "felores/airtable-mcp-server", - "repo_url": "https://github.com/felores/airtable-mcp-server", - "command": "node", - "args": [ - "/path/to/airtable-mcp-server/dist/index.js" - ], - "env": { - "AIRTABLE_API_KEY": "${AIRTABLE_API_KEY}" - } - }, - "mekanixms/MCPTimeServer": { - "package_name": "mekanixms/MCPTimeServer", - "repo_url": "https://github.com/mekanixms/MCPTimeServer", - "command": "/path/to/python", - "args": [ - "/path/to/timeserver.py" - ], - "env": { - "TIMEZONE": "${TIMEZONE}" - } - }, - "mashriram/azure_mcp_server": { - "package_name": "mashriram/azure_mcp_server", - "repo_url": "https://github.com/mashriram/azure_mcp_server", - "command": "uv", - "args": [ - "--directory", - "/path/to/repo/azure-mcp-server", - "run", - "azure-mcp-server" - ] - }, - "MCP-Mirror/PhialsBasement_mcp-github-server-plus": { - "package_name": "MCP-Mirror/PhialsBasement_mcp-github-server-plus", - "repo_url": "https://github.com/MCP-Mirror/PhialsBasement_mcp-github-server-plus", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "Taxuspt/garmin_mcp": { - "package_name": "Taxuspt/garmin_mcp", - "repo_url": "https://github.com/Taxuspt/garmin_mcp", - "command": "python", - "args": [ - "/garmin_mcp/garmin_mcp_server.py" - ] - }, - "usegranthq/mcp-server": { - "package_name": "usegranthq/mcp-server", - "repo_url": "https://github.com/usegranthq/mcp-server", - "command": "npx", - "args": [ - "-y", - "@usegrant/mcp-server" - ], - "env": { - "USEGRANT_API_KEY": "${USEGRANT_API_KEY}" - } - }, - "w-jeon/mcp-servers": { - "package_name": "w-jeon/mcp-servers", - "repo_url": "https://github.com/w-jeon/mcp-servers", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/path/to/allowed/files" - ] - }, - "charles-adedotun/notifications-mcp-server": { - "package_name": "charles-adedotun/notifications-mcp-server", - "repo_url": "https://github.com/charles-adedotun/notifications-mcp-server" - }, - "psalzman/mcp-openfec": { - "package_name": "psalzman/mcp-openfec", - "repo_url": "https://github.com/psalzman/mcp-openfec", - "command": "node", - "args": [ - "/absolute/path/to/mcp-openfec/build/server.js" - ], - "env": { - "OPENFEC_API_KEY": "${OPENFEC_API_KEY}" - } - }, - "yangkyeongmo/mcp-server-openmetadata": { - "package_name": "yangkyeongmo/mcp-server-openmetadata", - "repo_url": "https://github.com/yangkyeongmo/mcp-server-openmetadata", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-server-openmetadata", - "run", - "mcp-server-openmetadata" - ], - "env": { - "OPENMETADATA_HOST": "${OPENMETADATA_HOST}", - "OPENMETADATA_USERNAME": "${OPENMETADATA_USERNAME}", - "OPENMETADATA_PASSWORD": "${OPENMETADATA_PASSWORD}" - } - }, - "abel9851/mcp-server-mariadb": { - "package_name": "abel9851/mcp-server-mariadb", - "repo_url": "https://github.com/abel9851/mcp-server-mariadb", - "command": "/PATH/TO/uv", - "args": [ - "--directory", - "/YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", - "run", - "server.py" - ], - "env": { - "MARIADB_HOST": "${MARIADB_HOST}", - "MARIADB_USER": "${MARIADB_USER}", - "MARIADB_PASSWORD": "${MARIADB_PASSWORD}", - "MARIADB_DATABASE": "${MARIADB_DATABASE}", - "MARIADB_PORT": "${MARIADB_PORT}" - } - }, - "theposch/gmail-mcp": { - "package_name": "theposch/gmail-mcp", - "repo_url": "https://github.com/theposch/gmail-mcp", - "command": "uv", - "args": [ - "--directory", - "/absolute/path/to/gmail-mcp", - "run", - "gmail", - "--creds-file-path", - "/absolute/path/to/credentials.json", - "--token-path", - "/absolute/path/to/tokens.json" - ] - }, - "nacgarg/bazel-mcp-server": { - "package_name": "nacgarg/bazel-mcp-server", - "repo_url": "https://github.com/nacgarg/bazel-mcp-server", - "command": "npx", - "args": [ - "-y", - "github:nacgarg/bazel-mcp-server", - "--bazel_path", - "/absolute/path/to/your/bazel/binary", - "--workspace_path", - "/absolute/path/to/your/bazel/workspace" - ] - }, - "c0h1b4/mssql-mcp-server": { - "package_name": "c0h1b4/mssql-mcp-server", - "repo_url": "https://github.com/c0h1b4/mssql-mcp-server", - "command": "mssql-mcp-server", - "env": { - "MSSQL_CONNECTION_STRING": "${MSSQL_CONNECTION_STRING}", - "MSSQL_HOST": "${MSSQL_HOST}", - "MSSQL_PORT": "${MSSQL_PORT}", - "MSSQL_DATABASE": "${MSSQL_DATABASE}", - "MSSQL_USER": "${MSSQL_USER}", - "MSSQL_PASSWORD": "${MSSQL_PASSWORD}", - "MSSQL_ENCRYPT": "${MSSQL_ENCRYPT}", - "MSSQL_TRUST_SERVER_CERTIFICATE": "${MSSQL_TRUST_SERVER_CERTIFICATE}" - } - }, - "kunjanshah0811/MCP-Terminal-Server": { - "package_name": "kunjanshah0811/MCP-Terminal-Server", - "repo_url": "https://github.com/kunjanshah0811/MCP-Terminal-Server", - "command": "C:\\path\\to\\uv.exe", - "args": [ - "--directory", - "D:\\path\\to\\mcp\\servers\\terminal_server", - "run", - "terminal_server.py" - ] - }, - "tuberrabbit/mcp-server-notifier": { - "package_name": "tuberrabbit/mcp-server-notifier", - "repo_url": "https://github.com/tuberrabbit/mcp-server-notifier", - "command": "npx", - "args": [ - "-y", - "mcp-server-notifier" - ], - "env": { - "WEBHOOK_URL": "${WEBHOOK_URL}", - "WEBHOOK_TYPE": "${WEBHOOK_TYPE}" - } - }, - "okooo5km/unsplash-mcp-server-swift": { - "package_name": "okooo5km/unsplash-mcp-server-swift", - "repo_url": "https://github.com/okooo5km/unsplash-mcp-server-swift", - "command": "unsplash-mcp-server", - "env": { - "UNSPLASH_ACCESS_KEY": "${UNSPLASH_ACCESS_KEY}" - } - }, - "kukapay/uniswap-trader-mcp": { - "package_name": "kukapay/uniswap-trader-mcp", - "repo_url": "https://github.com/kukapay/uniswap-trader-mcp", - "command": "node", - "args": [ - "path/to/uniswap-trader-mcp/server/index.js" - ], - "env": { - "INFURA_KEY": "${INFURA_KEY}", - "WALLET_PRIVATE_KEY": "${WALLET_PRIVATE_KEY}" - } - }, - "MCP-Mirror/aallsbury_qb-time-mcp-server": { - "package_name": "MCP-Mirror/aallsbury_qb-time-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/aallsbury_qb-time-mcp-server", - "command": "python", - "args": [ - "./qb-time-mcp-server/main.py" - ], - "env": { - "QB_TIME_ACCESS_TOKEN": "${QB_TIME_ACCESS_TOKEN}" - } - }, - "SouravKumarBarman/twitter-mcp-server": { - "package_name": "SouravKumarBarman/twitter-mcp-server", - "repo_url": "https://github.com/SouravKumarBarman/twitter-mcp-server", - "command": "npm", - "args": [ - "--prefix", - "dist/twitter-mcp-server.js", - "start" - ] - }, - "dandeliongold/mcp-decent-sampler-drums": { - "package_name": "dandeliongold/mcp-decent-sampler-drums", - "repo_url": "https://github.com/dandeliongold/mcp-decent-sampler-drums", - "command": "npx", - "args": [ - "-y", - "@dandeliongold/mcp-decent-sampler-drums" - ] - }, - "winor30/mcp-server-datadog": { - "package_name": "winor30/mcp-server-datadog", - "repo_url": "https://github.com/winor30/mcp-server-datadog", - "command": "npx", - "args": [ - "-y", - "@winor30/mcp-server-datadog" - ], - "env": { - "DATADOG_API_KEY": "${DATADOG_API_KEY}", - "DATADOG_APP_KEY": "${DATADOG_APP_KEY}", - "DATADOG_SITE": "${DATADOG_SITE}" - } - }, - "katsuhirohonda/mcp-backlog-server": { - "package_name": "katsuhirohonda/mcp-backlog-server", - "repo_url": "https://github.com/katsuhirohonda/mcp-backlog-server", - "command": "/path/to/mcp-backlog-server/build/index.js", - "env": { - "BACKLOG_API_KEY": "${BACKLOG_API_KEY}", - "BACKLOG_SPACE_URL": "${BACKLOG_SPACE_URL}" - } - }, - "isaacphi/mcp-filesystem": { - "package_name": "isaacphi/mcp-filesystem", - "repo_url": "https://github.com/isaacphi/mcp-filesystem", - "command": "/full/path/to/your/mcp-filesystem/mcp-filesystem", - "args": [ - "--workspace", - "/path/to/repository" - ], - "env": { - "DEBUG": "${DEBUG}" - } - }, - "modelcontextprotocol/servers": { - "package_name": "modelcontextprotocol/servers", - "repo_url": "https://github.com/modelcontextprotocol/servers", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-postgres", - "postgresql://localhost/mydb" - ] - }, - "Arenukvern/mcp_flutter": { - "package_name": "Arenukvern/mcp_flutter", - "repo_url": "https://github.com/Arenukvern/mcp_flutter", - "command": "node", - "args": [ - "/path/to/your/cloned/flutter-inspector/mcp_server/build/index.js" - ], - "env": { - "PORT": "${PORT}", - "LOG_LEVEL": "${LOG_LEVEL}" - } - }, - "ian-cowley/MCPSqlServer": { - "package_name": "ian-cowley/MCPSqlServer", - "repo_url": "https://github.com/ian-cowley/MCPSqlServer", - "command": "path/to/your/MCPSqlServer.exe", - "args": [] - }, - "fatwang2/search1api-mcp": { - "package_name": "fatwang2/search1api-mcp", - "repo_url": "https://github.com/fatwang2/search1api-mcp", - "command": "npx", - "args": [ - "-y", - "search1api-mcp" - ], - "env": { - "SEARCH1API_KEY": "${SEARCH1API_KEY}" - } - }, - "carterlasalle/mac_messages_mcp": { - "package_name": "carterlasalle/mac_messages_mcp", - "repo_url": "https://github.com/carterlasalle/mac_messages_mcp", - "command": "uvx", - "args": [ - "mac-messages-mcp" - ] - }, - "hiromitsusasaki/raindrop-io-mcp-server": { - "package_name": "hiromitsusasaki/raindrop-io-mcp-server", - "repo_url": "https://github.com/hiromitsusasaki/raindrop-io-mcp-server", - "command": "node", - "args": [ - "PATH_TO_BUILD/index.js" - ], - "env": { - "RAINDROP_TOKEN": "${RAINDROP_TOKEN}" - } - }, - "blazickjp/shell-mcp-server": { - "package_name": "blazickjp/shell-mcp-server", - "repo_url": "https://github.com/blazickjp/shell-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/shell-mcp-server", - "run", - "shell-mcp-server", - "/path/to/allowed/dir1", - "/path/to/allowed/dir2", - "--shell", - "bash", - "/bin/bash", - "--shell", - "zsh", - "/bin/zsh" - ] - }, - "ravenwits/mcp-server-arangodb": { - "package_name": "ravenwits/mcp-server-arangodb", - "repo_url": "https://github.com/ravenwits/mcp-server-arangodb", - "command": "node", - "args": [ - "/path/to/arango-server/build/index.js" - ], - "env": { - "ARANGO_URL": "${ARANGO_URL}", - "ARANGO_DATABASE": "${ARANGO_DATABASE}", - "ARANGO_USERNAME": "${ARANGO_USERNAME}", - "ARANGO_PASSWORD": "${ARANGO_PASSWORD}" - } - }, - "MCP-Mirror/Nazruden_clickup-mcp-server": { - "package_name": "MCP-Mirror/Nazruden_clickup-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Nazruden_clickup-mcp-server", - "command": "npx", - "args": [ - "@mcp/clickup-server" - ], - "env": { - "CLICKUP_CLIENT_ID": "${CLICKUP_CLIENT_ID}", - "CLICKUP_CLIENT_SECRET": "${CLICKUP_CLIENT_SECRET}", - "CLICKUP_REDIRECT_URI": "${CLICKUP_REDIRECT_URI}" - } - }, - "amurata/MCPServer": { - "package_name": "amurata/MCPServer", - "repo_url": "https://github.com/amurata/MCPServer", - "command": "/Users/username/.volta/bin/npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "JayArrowz/mcp-figma": { - "package_name": "JayArrowz/mcp-figma", - "repo_url": "https://github.com/JayArrowz/mcp-figma", - "command": "node", - "args": [ - "/path/to/mcp-figma/dist/index.js", - "--figma-token", - "your_figma_api_key" - ] - }, - "gabrimatic/mcp-web-search-tool": { - "package_name": "gabrimatic/mcp-web-search-tool", - "repo_url": "https://github.com/gabrimatic/mcp-web-search-tool", - "command": "node", - "args": [ - "/path/to/your/mcp-web-search-tool/build/index.js" - ] - }, - "MCP-Mirror/ZubeidHendricks_youtube-mcp-server": { - "package_name": "MCP-Mirror/ZubeidHendricks_youtube-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/ZubeidHendricks_youtube-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-youtube" - ], - "env": { - "YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}" - } - }, - "GreptimeTeam/greptimedb-mcp-server": { - "package_name": "GreptimeTeam/greptimedb-mcp-server", - "repo_url": "https://github.com/GreptimeTeam/greptimedb-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/greptimedb-mcp-server", - "run", - "-m", - "greptimedb_mcp_server.server" - ], - "env": { - "GREPTIMEDB_HOST": "${GREPTIMEDB_HOST}", - "GREPTIMEDB_PORT": "${GREPTIMEDB_PORT}", - "GREPTIMEDB_USER": "${GREPTIMEDB_USER}", - "GREPTIMEDB_PASSWORD": "${GREPTIMEDB_PASSWORD}", - "GREPTIMEDB_DATABASE": "${GREPTIMEDB_DATABASE}" - } - }, - "MCP-Mirror/T1nker-1220_memories-with-lessons-mcp-server": { - "package_name": "MCP-Mirror/T1nker-1220_memories-with-lessons-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/T1nker-1220_memories-with-lessons-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ], - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "xiangma9712/mysql-mcp-server": { - "package_name": "xiangma9712/mysql-mcp-server", - "repo_url": "https://github.com/xiangma9712/mysql-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "--add-host=host.docker.internal:host-gateway", - "--env-file", - "/Users/username/.mcp/.env", - "ghcr.io/xiangma9712/mcp/mysql" - ] - }, - "msaelices/ultimate-team-mcp-server": { - "package_name": "msaelices/ultimate-team-mcp-server", - "repo_url": "https://github.com/msaelices/ultimate-team-mcp-server", - "command": "ultimate-team-mcp-server" - }, - "insecurepla/code-sandbox-mcp": { - "package_name": "insecurepla/code-sandbox-mcp", - "repo_url": "https://github.com/insecurepla/code-sandbox-mcp", - "command": "C:\\path\\to\\code-sandbox-mcp.exe", - "args": [] - }, - "KS-GEN-AI/confluence-mcp-server": { - "package_name": "KS-GEN-AI/confluence-mcp-server", - "repo_url": "https://github.com/KS-GEN-AI/confluence-mcp-server", - "command": "node", - "args": [ - "/PATH_TO_THE_PROJECT/build/index.js" - ], - "env": { - "CONFLUENCE_URL": "${CONFLUENCE_URL}", - "CONFLUENCE_API_MAIL": "${CONFLUENCE_API_MAIL}", - "CONFLUENCE_API_KEY": "${CONFLUENCE_API_KEY}" - } - }, - "DocNR/repo-analyzer-mcp": { - "package_name": "DocNR/repo-analyzer-mcp", - "repo_url": "https://github.com/DocNR/repo-analyzer-mcp", - "command": "node", - "args": [ - "/absolute/path/to/repo-analyzer-mcp/dist/index.js" - ], - "env": { - "NODE_ENV": "${NODE_ENV}", - "DEFAULT_REPO_PATH": "${DEFAULT_REPO_PATH}" - } - }, - "m4s1t4/webSearch-Tools": { - "package_name": "m4s1t4/webSearch-Tools", - "repo_url": "https://github.com/m4s1t4/webSearch-Tools", - "command": "uv", - "args": [ - "--directory", - "D:\\ABSOLUTE\\PATH\\TO\\WebSearch", - "run", - "main.py" - ] - }, - "shimayuz/note-mcp-server": { - "package_name": "shimayuz/note-mcp-server", - "repo_url": "https://github.com/shimayuz/note-mcp-server", - "command": "node", - "args": [ - "/Users/heavenlykiss0820/noteMCP/build/note-mcp-server.js" - ] - }, - "badger3000/okx-mcp-server": { - "package_name": "badger3000/okx-mcp-server", - "repo_url": "https://github.com/badger3000/okx-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/okx-mcp-server/build/index.js" - ] - }, - "Cam10001110101/mcp-server-outlook-email": { - "package_name": "Cam10001110101/mcp-server-outlook-email", - "repo_url": "https://github.com/Cam10001110101/mcp-server-outlook-email", - "command": "C:/Users/username/path/to/mcp-server-outlook-email/.venv/Scripts/python", - "args": [ - "C:/Users/username/path/to/mcp-server-outlook-email/src/mcp_server.py" - ], - "env": { - "MONGODB_URI": "${MONGODB_URI}", - "SQLITE_DB_PATH": "${SQLITE_DB_PATH}", - "EMBEDDING_BASE_URL": "${EMBEDDING_BASE_URL}", - "EMBEDDING_MODEL": "${EMBEDDING_MODEL}", - "COLLECTION_NAME": "${COLLECTION_NAME}", - "PROCESS_DELETED_ITEMS": "${PROCESS_DELETED_ITEMS}" - } - }, - "MCP-Mirror/bmorphism_anti-bullshit-mcp-server": { - "package_name": "MCP-Mirror/bmorphism_anti-bullshit-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/bmorphism_anti-bullshit-mcp-server", - "command": "node", - "args": [ - "/path/to/anti-bullshit-mcp-server/build/index.js" - ] - }, - "mcollina/mcp-github-notifications": { - "package_name": "mcollina/mcp-github-notifications", - "repo_url": "https://github.com/mcollina/mcp-github-notifications", - "command": "node", - "args": [ - "/absolute/path/to/github-notifications-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "crazyrabbitLTC/mcp-coingecko-server": { - "package_name": "crazyrabbitLTC/mcp-coingecko-server", - "repo_url": "https://github.com/crazyrabbitLTC/mcp-coingecko-server", - "command": "node", - "args": [ - "/path/to/coingecko-server/build/index.js" - ], - "env": { - "COINGECKO_API_KEY": "${COINGECKO_API_KEY}" - } - }, - "cohnen/mcp-google-ads": { - "package_name": "cohnen/mcp-google-ads", - "repo_url": "https://github.com/cohnen/mcp-google-ads", - "command": "/FULL/PATH/TO/mcp-google-ads-main/.venv/bin/python", - "args": [ - "/FULL/PATH/TO/mcp-google-ads-main/google_ads_server.py" - ], - "env": { - "GOOGLE_ADS_CREDENTIALS_PATH": "${GOOGLE_ADS_CREDENTIALS_PATH}", - "GOOGLE_ADS_DEVELOPER_TOKEN": "${GOOGLE_ADS_DEVELOPER_TOKEN}", - "GOOGLE_ADS_LOGIN_CUSTOMER_ID": "${GOOGLE_ADS_LOGIN_CUSTOMER_ID}" - } - }, - "qiangge2008/weather-mcp-server": { - "package_name": "qiangge2008/weather-mcp-server", - "repo_url": "https://github.com/qiangge2008/weather-mcp-server", - "command": "node", - "args": [ - "\u00e4\u00bd\u00a0\u00e7\u009a\u0084\u00e5\u00ae\u008c\u00e6\u0095\u00b4\u00e8\u00b7\u00af\u00e5\u00be\u0084/weather-mcp-server/build/index.js" - ], - "env": { - "QWEATHER_API_KEY": "${QWEATHER_API_KEY}", - "SENIVERSE_API_KEY": "${SENIVERSE_API_KEY}" - } - }, - "MCP-Mirror/Laksh-star_mcp-server-tmdb": { - "package_name": "MCP-Mirror/Laksh-star_mcp-server-tmdb", - "repo_url": "https://github.com/MCP-Mirror/Laksh-star_mcp-server-tmdb", - "command": "/full/path/to/dist/index.js", - "env": { - "TMDB_API_KEY": "${TMDB_API_KEY}" - } - }, - "ysfscream/mqttx-mcp-sse-server": { - "package_name": "ysfscream/mqttx-mcp-sse-server", - "repo_url": "https://github.com/ysfscream/mqttx-mcp-sse-server" - }, - "severity1/terraform-cloud-mcp": { - "package_name": "severity1/terraform-cloud-mcp", - "repo_url": "https://github.com/severity1/terraform-cloud-mcp", - "command": "/path/to/uv", - "args": [ - "--directory", - "/path/to/your/terraform-cloud-mcp", - "run", - "terraform-cloud-mcp" - ], - "env": { - "TFC_TOKEN": "${TFC_TOKEN}" - } - }, - "HundunOnline/mcp-dingdingbot-server": { - "package_name": "HundunOnline/mcp-dingdingbot-server", - "repo_url": "https://github.com/HundunOnline/mcp-dingdingbot-server", - "command": "mcp-dingdingbot-server", - "env": { - "DINGDING_BOT_WEBHOOK_KEY": "${DINGDING_BOT_WEBHOOK_KEY}", - "DINGDING_BOT_SIGN_KEY": "${DINGDING_BOT_SIGN_KEY}" - } - }, - "jango-blockchained/personal-mcp-server": { - "package_name": "jango-blockchained/personal-mcp-server", - "repo_url": "https://github.com/jango-blockchained/personal-mcp-server", - "command": "npx", - "args": [ - "-y", - "aashari/boilerplate-mcp-server" - ] - }, - "nlinhvu/spring-boot-bitcoin-mcp-server-2025": { - "package_name": "nlinhvu/spring-boot-bitcoin-mcp-server-2025", - "repo_url": "https://github.com/nlinhvu/spring-boot-bitcoin-mcp-server-2025", - "command": "java", - "args": [ - "-jar", - "/absolute/path/to/bitcoin-mcp-server-0.0.1-SNAPSHOT.jar" - ] - }, - "yhzion/comment-stripper-mcp": { - "package_name": "yhzion/comment-stripper-mcp", - "repo_url": "https://github.com/yhzion/comment-stripper-mcp", - "command": "/\u00ec\u00a0\u0088\u00eb\u008c\u0080/\u00ea\u00b2\u00bd\u00eb\u00a1\u009c/node", - "args": [ - "/\u00ec\u00a0\u0088\u00eb\u008c\u0080/\u00ea\u00b2\u00bd\u00eb\u00a1\u009c/comment-stripper-mcp/build/index.js" - ] - }, - "recallnet/trading-simulator-mcp": { - "package_name": "recallnet/trading-simulator-mcp", - "repo_url": "https://github.com/recallnet/trading-simulator-mcp", - "command": "node", - "args": [ - "/path/to/trading-simulator-mcp/dist/index.js" - ], - "env": { - "TRADING_SIM_API_KEY": "${TRADING_SIM_API_KEY}", - "TRADING_SIM_API_URL": "${TRADING_SIM_API_URL}", - "DEBUG": "${DEBUG}" - } - }, - "agentience/tribal_mcp_server": { - "package_name": "agentience/tribal_mcp_server", - "repo_url": "https://github.com/agentience/tribal_mcp_server" - }, - "descope-sample-apps/descope-mcp-server": { - "package_name": "descope-sample-apps/descope-mcp-server", - "repo_url": "https://github.com/descope-sample-apps/descope-mcp-server", - "command": "node", - "args": [ - "/path/to/descope-mcp-server/build/index.js" - ], - "env": { - "DESCOPE_PROJECT_ID": "${DESCOPE_PROJECT_ID}", - "DESCOPE_MANAGEMENT_KEY": "${DESCOPE_MANAGEMENT_KEY}" - } - }, - "andybrandt/mcp-simple-openai-assistant": { - "package_name": "andybrandt/mcp-simple-openai-assistant", - "repo_url": "https://github.com/andybrandt/mcp-simple-openai-assistant", - "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe", - "args": [ - "-m", - "mcp_simple_openai_assistant" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "abutbul/gatherings-mcp": { - "package_name": "abutbul/gatherings-mcp", - "repo_url": "https://github.com/abutbul/gatherings-mcp", - "command": "node", - "args": [ - "/path/to/gatherings-server/build/index.js" - ], - "env": { - "GATHERINGS_DB_PATH": "${GATHERINGS_DB_PATH}", - "GATHERINGS_SCRIPT": "${GATHERINGS_SCRIPT}" - } - }, - "MCP-Mirror/ergut_mcp-bigquery-server": { - "package_name": "MCP-Mirror/ergut_mcp-bigquery-server", - "repo_url": "https://github.com/MCP-Mirror/ergut_mcp-bigquery-server", - "command": "node", - "args": [ - "/path/to/your/clone/mcp-bigquery-server/dist/index.js", - "--project-id", - "your-project-id", - "--location", - "us-central1", - "--key-file", - "/path/to/service-account-key.json" - ] - }, - "irvinebroque/remote-mcp-server-f": { - "package_name": "irvinebroque/remote-mcp-server-f", - "repo_url": "https://github.com/irvinebroque/remote-mcp-server-f", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "scorzeth/anki-mcp-server": { - "package_name": "scorzeth/anki-mcp-server", - "repo_url": "https://github.com/scorzeth/anki-mcp-server", - "command": "/path/to/anki-server/build/index.js" - }, - "tomekkorbak/oura-mcp-server": { - "package_name": "tomekkorbak/oura-mcp-server", - "repo_url": "https://github.com/tomekkorbak/oura-mcp-server", - "command": "uvx", - "args": [ - "oura-mcp-server" - ], - "env": { - "OURA_API_TOKEN": "${OURA_API_TOKEN}" - } - }, - "amidabuddha/unichat-mcp-server": { - "package_name": "amidabuddha/unichat-mcp-server", - "repo_url": "https://github.com/amidabuddha/unichat-mcp-server", - "command": "uvx", - "args": [ - "unichat-mcp-server" - ], - "env": { - "UNICHAT_MODEL": "${UNICHAT_MODEL}", - "UNICHAT_API_KEY": "${UNICHAT_API_KEY}" - } - }, - "Sunwood-ai-labs/duckduckgo-web-search": { - "package_name": "Sunwood-ai-labs/duckduckgo-web-search", - "repo_url": "https://github.com/Sunwood-ai-labs/duckduckgo-web-search", - "command": "/path/to/duckduckgo-web-search/build/index.js" - }, - "MCP-Mirror/alexwohletz_language-server-mcp": { - "package_name": "MCP-Mirror/alexwohletz_language-server-mcp", - "repo_url": "https://github.com/MCP-Mirror/alexwohletz_language-server-mcp", - "command": "/path/to/language-server-mcp/build/index.js" - }, - "MCP-Mirror/anpigon_mcp-server-obsidian-omnisearch": { - "package_name": "MCP-Mirror/anpigon_mcp-server-obsidian-omnisearch", - "repo_url": "https://github.com/MCP-Mirror/anpigon_mcp-server-obsidian-omnisearch", - "command": "uvx", - "args": [ - "mcp-server-obsidian-omnisearch", - "/path/to/your/obsidian/vault" - ] - }, - "dsomel21/weather-mcp-server": { - "package_name": "dsomel21/weather-mcp-server", - "repo_url": "https://github.com/dsomel21/weather-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather", - "run", - "weather.py" - ] - }, - "saptechengineer/mcp": { - "package_name": "saptechengineer/mcp", - "repo_url": "https://github.com/saptechengineer/mcp", - "command": "C:/Users/yourusername/AppData/Local/Programs/Python/Python311/Scripts/uv", - "args": [ - "--directory", - "C:/path/to/your/MCP/weather", - "run", - "weather.py" - ] - }, - "tinyfish-io/agentql-mcp": { - "package_name": "tinyfish-io/agentql-mcp", - "repo_url": "https://github.com/tinyfish-io/agentql-mcp", - "command": "/path/to/agentql-mcp/dist/index.js", - "env": { - "AGENTQL_API_KEY": "${AGENTQL_API_KEY}" - } - }, - "tedlikeskix/alpaca-mcp-server": { - "package_name": "tedlikeskix/alpaca-mcp-server", - "repo_url": "https://github.com/tedlikeskix/alpaca-mcp-server", - "command": "python", - "args": [ - "/path/to/alpaca_mcp_server.py" - ], - "env": { - "API_KEY_ID": "${API_KEY_ID}", - "API_SECRET_KEY": "${API_SECRET_KEY}" - } - }, - "QuantGeekDev/mcp-filesystem": { - "package_name": "QuantGeekDev/mcp-filesystem", - "repo_url": "https://github.com/QuantGeekDev/mcp-filesystem", - "command": "npx", - "args": [ - "filesystem" - ] - }, - "LukePrior/mcp-sondehub": { - "package_name": "LukePrior/mcp-sondehub", - "repo_url": "https://github.com/LukePrior/mcp-sondehub", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "punkpeye/fastmcp": { - "package_name": "punkpeye/fastmcp", - "repo_url": "https://github.com/punkpeye/fastmcp", - "command": "npx", - "args": [ - "tsx", - "/PATH/TO/YOUR_PROJECT/src/index.ts" - ], - "env": { - "YOUR_ENV_VAR": "${YOUR_ENV_VAR}" - } - }, - "sawa-zen/vrchat-mcp": { - "package_name": "sawa-zen/vrchat-mcp", - "repo_url": "https://github.com/sawa-zen/vrchat-mcp", - "command": "npx", - "args": [ - "vrchat-mcp" - ], - "env": { - "VRCHAT_USERNAME": "${VRCHAT_USERNAME}", - "VRCHAT_PASSWORD": "${VRCHAT_PASSWORD}", - "VRCHAT_TOTP_SECRET": "${VRCHAT_TOTP_SECRET}", - "VRCHAT_EMAIL": "${VRCHAT_EMAIL}" - } - }, - "andybrandt/mcp-simple-pubmed": { - "package_name": "andybrandt/mcp-simple-pubmed", - "repo_url": "https://github.com/andybrandt/mcp-simple-pubmed", - "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe", - "args": [ - "-m", - "mcp_simple_pubmed" - ], - "env": { - "PUBMED_EMAIL": "${PUBMED_EMAIL}", - "PUBMED_API_KEY": "${PUBMED_API_KEY}" - } - }, - "vrknetha/aisdk-mcp-bridge": { - "package_name": "vrknetha/aisdk-mcp-bridge", - "repo_url": "https://github.com/vrknetha/aisdk-mcp-bridge", - "command": "node", - "args": [ - "./server.js" - ] - }, - "azure-ai-foundry/mcp-foundry": { - "package_name": "azure-ai-foundry/mcp-foundry", - "repo_url": "https://github.com/azure-ai-foundry/mcp-foundry", - "command": "python", - "args": [ - "-m", - "azure_agent_mcp_server" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}", - "PROJECT_CONNECTION_STRING": "${PROJECT_CONNECTION_STRING}", - "DEFAULT_AGENT_ID": "${DEFAULT_AGENT_ID}" - } - }, - "Swayingleaves/uml-mcp-server": { - "package_name": "Swayingleaves/uml-mcp-server", - "repo_url": "https://github.com/Swayingleaves/uml-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/yourpath/UML-MCP-Server", - "run", - "uml_mcp_server.py" - ] - }, - "MushroomFleet/DeepLucid3D-MCP": { - "package_name": "MushroomFleet/DeepLucid3D-MCP", - "repo_url": "https://github.com/MushroomFleet/DeepLucid3D-MCP", - "command": "node", - "args": [ - "path/to/DeepLucid3D-MCP/build/index.js" - ] - }, - "MCP-Mirror/epaproditus_google-workspace-mcp-server": { - "package_name": "MCP-Mirror/epaproditus_google-workspace-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/epaproditus_google-workspace-mcp-server", - "command": "node", - "args": [ - "/path/to/google-workspace-server/build/index.js" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}", - "GOOGLE_REFRESH_TOKEN": "${GOOGLE_REFRESH_TOKEN}" - } - }, - "identimoji/mcp-server-emojikey": { - "package_name": "identimoji/mcp-server-emojikey", - "repo_url": "https://github.com/identimoji/mcp-server-emojikey", - "command": "npx", - "args": [ - "@identimoji/mcp-server-emojikey" - ], - "env": { - "EMOJIKEYIO_API_KEY": "${EMOJIKEYIO_API_KEY}", - "MODEL_ID": "${MODEL_ID}" - } - }, - "run-llama/mcp-server-llamacloud": { - "package_name": "run-llama/mcp-server-llamacloud", - "repo_url": "https://github.com/run-llama/mcp-server-llamacloud", - "command": "npx", - "args": [ - "-y", - "@llamaindex/mcp-server-llamacloud", - "--index", - "10k-SEC-Tesla", - "--description", - "10k SEC documents from 2023 for Tesla", - "--index", - "10k-SEC-Apple", - "--description", - "10k SEC documents from 2023 for Apple" - ], - "env": { - "LLAMA_CLOUD_PROJECT_NAME": "${LLAMA_CLOUD_PROJECT_NAME}", - "LLAMA_CLOUD_API_KEY": "${LLAMA_CLOUD_API_KEY}" - } - }, - "amitdeshmukh/stdout-mcp-server": { - "package_name": "amitdeshmukh/stdout-mcp-server", - "repo_url": "https://github.com/amitdeshmukh/stdout-mcp-server", - "command": "cmd.exe", - "args": [ - "/c", - "npx", - "stdio-mcp-server" - ] - }, - "NakaokaRei/swift-mcp-gui": { - "package_name": "NakaokaRei/swift-mcp-gui", - "repo_url": "https://github.com/NakaokaRei/swift-mcp-gui", - "command": "/Users/USERNAME/.swiftpm/bin/swift-mcp-gui" - }, - "RafalWilinski/mcp-apple-notes": { - "package_name": "RafalWilinski/mcp-apple-notes", - "repo_url": "https://github.com/RafalWilinski/mcp-apple-notes", - "command": "/Users//.bun/bin/bun", - "args": [ - "/Users//apple-notes-mcp/index.ts" - ] - }, - "ParasSolanki/github-mcp-server": { - "package_name": "ParasSolanki/github-mcp-server", - "repo_url": "https://github.com/ParasSolanki/github-mcp-server", - "command": "npx", - "args": [ - "-y", - "github-mcp-server" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "ualUsham/mcp-github": { - "package_name": "ualUsham/mcp-github", - "repo_url": "https://github.com/ualUsham/mcp-github", - "command": "node", - "args": [ - "absolute\\path\\to\\your\\index.js\\file" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "box-community/mcp-server-box": { - "package_name": "box-community/mcp-server-box", - "repo_url": "https://github.com/box-community/mcp-server-box", - "command": "uv", - "args": [ - "--directory", - "/Users/anovotny/Desktop/mcp-server-box", - "run", - "src/mcp_server_box.py" - ] - }, - "youngsu5582/mcp-server-mysql": { - "package_name": "youngsu5582/mcp-server-mysql", - "repo_url": "https://github.com/youngsu5582/mcp-server-mysql", - "command": "uv", - "args": [ - "--directory", - "path/to/mysql_mcp_server", - "run", - "mysql_mcp_server" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "alejandro-ao/mcp-server-example": { - "package_name": "alejandro-ao/mcp-server-example", - "repo_url": "https://github.com/alejandro-ao/mcp-server-example", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/YOUR/mcp-server", - "run", - "main.py" - ] - }, - "honey-guard/anchor-mcp": { - "package_name": "honey-guard/anchor-mcp", - "repo_url": "https://github.com/honey-guard/anchor-mcp", - "command": "security_check_program", - "args": [ - "--mcp" - ] - }, - "WillDent/pipedrive-mcp-server": { - "package_name": "WillDent/pipedrive-mcp-server", - "repo_url": "https://github.com/WillDent/pipedrive-mcp-server", - "command": "npx", - "args": [ - "-y", - "@smithery/cli@latest", - "run", - "@your-org/pipedrive-mcp-server", - "--config", - "{\"pipedriveApiToken\":\"your_api_token_here\"}" - ] - }, - "MCP-Mirror/cyanheads_atlas-mcp-server": { - "package_name": "MCP-Mirror/cyanheads_atlas-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/cyanheads_atlas-mcp-server", - "command": "node", - "args": [ - "/path/to/atlas-mcp-server/build/index.js" - ], - "env": { - "ATLAS_STORAGE_DIR": "${ATLAS_STORAGE_DIR}", - "ATLAS_STORAGE_NAME": "${ATLAS_STORAGE_NAME}", - "NODE_ENV": "${NODE_ENV}" - } - }, - "jonrad/lsp-mcp": { - "package_name": "jonrad/lsp-mcp", - "repo_url": "https://github.com/jonrad/lsp-mcp", - "command": "npx", - "args": [ - "-y", - "--silent", - "git+https://github.com/jonrad/lsp-mcp", - "--lsp", - "npx -y --silent -p 'typescript@5.7.3' -p 'typescript-language-server@4.3.3' typescript-language-server --stdio" - ] - }, - "Szowesgad/mcp-server-semgrep": { - "package_name": "Szowesgad/mcp-server-semgrep", - "repo_url": "https://github.com/Szowesgad/mcp-server-semgrep", - "command": "node", - "args": [ - "/your_path/mcp-server-semgrep/build/index.js" - ], - "env": { - "SEMGREP_APP_TOKEN": "${SEMGREP_APP_TOKEN}" - } - }, - "peterparker57/cpp-builder-mcp-server": { - "package_name": "peterparker57/cpp-builder-mcp-server", - "repo_url": "https://github.com/peterparker57/cpp-builder-mcp-server", - "command": "node", - "args": [ - "path/to/cpp-builder-mcp-server/dist/index.js" - ] - }, - "kukapay/whoami-mcp": { - "package_name": "kukapay/whoami-mcp", - "repo_url": "https://github.com/kukapay/whoami-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/whoami_mcp", - "run", - "main.py" - ] - }, - "shivam-singhal/mcp-weather-server": { - "package_name": "shivam-singhal/mcp-weather-server", - "repo_url": "https://github.com/shivam-singhal/mcp-weather-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "ZbigniewTomanek/my-mcp-server": { - "package_name": "ZbigniewTomanek/my-mcp-server", - "repo_url": "https://github.com/ZbigniewTomanek/my-mcp-server", - "command": "/Users/zbigniewtomanek/.local/bin/uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "--with", - "marker-pdf", - "mcp", - "run", - "/Users/zbigniewtomanek/PycharmProjects/my-mcp-tools/server.py" - ] - }, - "berlinbra/alpha-vantage-mcp": { - "package_name": "berlinbra/alpha-vantage-mcp", - "repo_url": "https://github.com/berlinbra/alpha-vantage-mcp", - "command": "uv", - "args": [ - "--directory", - "/Users/{INSERT_USER}/YOUR/PATH/TO/alpha-vantage-mcp", - "run", - "alpha-vantage-mcp" - ], - "env": { - "ALPHA_VANTAGE_API_KEY": "${ALPHA_VANTAGE_API_KEY}" - } - }, - "OctagonAI/octagon-mcp-server": { - "package_name": "OctagonAI/octagon-mcp-server", - "repo_url": "https://github.com/OctagonAI/octagon-mcp-server", - "command": "npx", - "args": [ - "-y", - "octagon-mcp" - ], - "env": { - "OCTAGON_API_KEY": "${OCTAGON_API_KEY}" - } - }, - "elliottlawson/kagi-mcp-server": { - "package_name": "elliottlawson/kagi-mcp-server", - "repo_url": "https://github.com/elliottlawson/kagi-mcp-server", - "command": "node", - "args": [ - "ABSOLUTE_PATH_TO_REPO/build/index.js" - ], - "env": { - "KAGI_API_KEY": "${KAGI_API_KEY}" - } - }, - "Flux159/mcp-server-kubernetes": { - "package_name": "Flux159/mcp-server-kubernetes", - "repo_url": "https://github.com/Flux159/mcp-server-kubernetes", - "command": "node", - "args": [ - "/path/to/your/mcp-server-kubernetes/dist/index.js" - ] - }, - "MCP-Mirror/skydeckai_mcp-server-aidd": { - "package_name": "MCP-Mirror/skydeckai_mcp-server-aidd", - "repo_url": "https://github.com/MCP-Mirror/skydeckai_mcp-server-aidd", - "command": "uvx", - "args": [ - "mcp-server-aidd" - ] - }, - "rhnvrm/kite-mcp-server": { - "package_name": "rhnvrm/kite-mcp-server", - "repo_url": "https://github.com/rhnvrm/kite-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-perplexity-ask" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "dazeb/wikipedia-mcp-image-crawler": { - "package_name": "dazeb/wikipedia-mcp-image-crawler", - "repo_url": "https://github.com/dazeb/wikipedia-mcp-image-crawler", - "command": "node", - "args": [ - "/absolute/path/to/wikipedia-mcp-image-crawler/build/index.js" - ] - }, - "ayeletstudioindia/unreal-analyzer-mcp": { - "package_name": "ayeletstudioindia/unreal-analyzer-mcp", - "repo_url": "https://github.com/ayeletstudioindia/unreal-analyzer-mcp", - "command": "node", - "args": [ - "path/to/unreal-analyzer/build/index.js" - ] - }, - "MCP-Mirror/geelen_workers-mcp-server": { - "package_name": "MCP-Mirror/geelen_workers-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/geelen_workers-mcp-server", - "command": "/node", - "args": [ - "/node_modules/tsx/dist/cli.mjs", - "/scripts/local-proxy.ts", - "", - "", - "" - ] - }, - "gxjansen/Transistor-MCP": { - "package_name": "gxjansen/Transistor-MCP", - "repo_url": "https://github.com/gxjansen/Transistor-MCP", - "command": "node", - "args": [ - "path/to/Transistor-MCP/build/index.js" - ], - "env": { - "TRANSISTOR_API_KEY": "${TRANSISTOR_API_KEY}" - } - }, - "QuantGeekDev/fiscal-data-mcp": { - "package_name": "QuantGeekDev/fiscal-data-mcp", - "repo_url": "https://github.com/QuantGeekDev/fiscal-data-mcp", - "command": "npx", - "args": [ - "fiscal-data-mcp" - ] - }, - "MaxWeeden/mcp-server-template-python": { - "package_name": "MaxWeeden/mcp-server-template-python", - "repo_url": "https://github.com/MaxWeeden/mcp-server-template-python", - "command": "uvx", - "args": [ - "mcp-dnsdumpster" - ], - "env": { - "DNSDUMPSTER_API_KEY": "${DNSDUMPSTER_API_KEY}" - } - }, - "MCP-Mirror/nahmanmate_postgresql-mcp-server": { - "package_name": "MCP-Mirror/nahmanmate_postgresql-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/nahmanmate_postgresql-mcp-server", - "command": "node", - "args": [ - "/path/to/postgresql-mcp-server/build/index.js" - ] - }, - "krzko/google-cloud-mcp": { - "package_name": "krzko/google-cloud-mcp", - "repo_url": "https://github.com/krzko/google-cloud-mcp", - "command": "node", - "args": [ - "/Users/foo/code/google-cloud-mcp/dist/index.js" - ], - "env": { - "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}" - } - }, - "GreatAuk/mcp-weather": { - "package_name": "GreatAuk/mcp-weather", - "repo_url": "https://github.com/GreatAuk/mcp-weather", - "command": "node", - "args": [ - "/path/to/your/project/dist/main.js", - "some_argument" - ] - }, - "jae-jae/fetcher-mcp": { - "package_name": "jae-jae/fetcher-mcp", - "repo_url": "https://github.com/jae-jae/fetcher-mcp", - "command": "npx", - "args": [ - "-y", - "fetcher-mcp" - ] - }, - "adamwattis/mcp-proxy-server": { - "package_name": "adamwattis/mcp-proxy-server", - "repo_url": "https://github.com/adamwattis/mcp-proxy-server", - "command": "/path/to/mcp-proxy-server/build/index.js", - "env": { - "MCP_CONFIG_PATH": "${MCP_CONFIG_PATH}", - "KEEP_SERVER_OPEN": "${KEEP_SERVER_OPEN}" - } - }, - "evansims/openfga-mcp": { - "package_name": "evansims/openfga-mcp", - "repo_url": "https://github.com/evansims/openfga-mcp", - "command": "uvx", - "args": [ - "openfga-mcp@latest" - ] - }, - "haltakov/meme-mcp": { - "package_name": "haltakov/meme-mcp", - "repo_url": "https://github.com/haltakov/meme-mcp", - "command": "/Users//.nvm/versions/node/v20.18.2/bin/node", - "args": [ - "/Users//.nvm/versions/node/v20.18.2/lib/node_modules/meme-mcp/dist/index.js" - ], - "env": { - "IMGFLIP_USERNAME": "${IMGFLIP_USERNAME}", - "IMGFLIP_PASSWORD": "${IMGFLIP_PASSWORD}" - } - }, - "l3wi/mcp-lighthouse": { - "package_name": "l3wi/mcp-lighthouse", - "repo_url": "https://github.com/l3wi/mcp-lighthouse", - "command": "path/to/node/installation", - "args": [ - "path/to/this/folder/mcp-lighthouse/dist/index.js" - ] - }, - "lalanikarim/comfy-mcp-server": { - "package_name": "lalanikarim/comfy-mcp-server", - "repo_url": "https://github.com/lalanikarim/comfy-mcp-server", - "command": "/path/to/uvx", - "args": [ - "comfy-mcp-server" - ], - "env": { - "COMFY_URL": "${COMFY_URL}", - "COMFY_WORKFLOW_JSON_FILE": "${COMFY_WORKFLOW_JSON_FILE}", - "PROMPT_NODE_ID": "${PROMPT_NODE_ID}", - "OUTPUT_NODE_ID": "${OUTPUT_NODE_ID}", - "OUTPUT_MODE": "${OUTPUT_MODE}" - } - }, - "biegehydra/BifrostMCP": { - "package_name": "biegehydra/BifrostMCP", - "repo_url": "https://github.com/biegehydra/BifrostMCP" - }, - "JESwaim/OpenAI-MCP-Server": { - "package_name": "JESwaim/OpenAI-MCP-Server", - "repo_url": "https://github.com/JESwaim/OpenAI-MCP-Server", - "command": "flux-server", - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "amgadabdelhafez/DBX-MCP-Server": { - "package_name": "amgadabdelhafez/DBX-MCP-Server", - "repo_url": "https://github.com/amgadabdelhafez/DBX-MCP-Server", - "command": "node", - "args": [ - "/path/to/dbx-mcp-server/build/index.js" - ] - }, - "MCP-Mirror/peterparker57_project-hub-mcp-server": { - "package_name": "MCP-Mirror/peterparker57_project-hub-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/peterparker57_project-hub-mcp-server", - "command": "node", - "args": [ - "path/to/project-hub-mcp-server/dist/index.js" - ], - "env": { - "DEFAULT_OWNER": "${DEFAULT_OWNER}", - "GITHUB_TOKEN_your-github-username": "${GITHUB_TOKEN_your-github-username}" - } - }, - "MCP-Mirror/adamwattis_mcp-proxy-server": { - "package_name": "MCP-Mirror/adamwattis_mcp-proxy-server", - "repo_url": "https://github.com/MCP-Mirror/adamwattis_mcp-proxy-server", - "command": "/path/to/mcp-proxy-server/build/index.js", - "env": { - "MCP_CONFIG_PATH": "${MCP_CONFIG_PATH}" - } - }, - "zoomeye-ai/mcp_zoomeye": { - "package_name": "zoomeye-ai/mcp_zoomeye", - "repo_url": "https://github.com/zoomeye-ai/mcp_zoomeye", - "command": "python", - "args": [ - "-m", - "mcp_server_zoomeye" - ], - "env": { - "ZOOMEYE_API_KEY": "${ZOOMEYE_API_KEY}" - } - }, - "LiMing1459276281/test-demo.git": { - "package_name": "LiMing1459276281/test-demo.git", - "repo_url": "https://github.com/LiMing1459276281/test-demo.git", - "command": "npx", - "args": [ - "/path/to/tavi" - ], - "env": { - "TAVILY_API_KEY": "${TAVILY_API_KEY}" - } - }, - "MCP-Mirror/MladenSU_cli-mcp-server": { - "package_name": "MCP-Mirror/MladenSU_cli-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/MladenSU_cli-mcp-server", - "command": "uvx", - "args": [ - "cli-mcp-server" - ], - "env": { - "ALLOWED_DIR": "${ALLOWED_DIR}", - "ALLOWED_COMMANDS": "${ALLOWED_COMMANDS}", - "ALLOWED_FLAGS": "${ALLOWED_FLAGS}", - "MAX_COMMAND_LENGTH": "${MAX_COMMAND_LENGTH}", - "COMMAND_TIMEOUT": "${COMMAND_TIMEOUT}" - } - }, - "metoro-io/mcp-golang": { - "package_name": "metoro-io/mcp-golang", - "repo_url": "https://github.com/metoro-io/mcp-golang", - "command": "", - "args": [] - }, - "Aiven-Open/mcp-aiven": { - "package_name": "Aiven-Open/mcp-aiven", - "repo_url": "https://github.com/Aiven-Open/mcp-aiven", - "command": "uv", - "args": [ - "--directory", - "$REPOSITORY_DIRECTORY", - "run", - "--with-editable", - "$REPOSITORY_DIRECTORY", - "--python", - "3.13", - "mcp-aiven" - ], - "env": { - "AIVEN_BASE_URL": "${AIVEN_BASE_URL}", - "AIVEN_TOKEN": "${AIVEN_TOKEN}" - } - }, - "cmsparks/remote-mcp-server": { - "package_name": "cmsparks/remote-mcp-server", - "repo_url": "https://github.com/cmsparks/remote-mcp-server", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "sammcj/mcp-package-docs": { - "package_name": "sammcj/mcp-package-docs", - "repo_url": "https://github.com/sammcj/mcp-package-docs", - "command": "npx", - "args": [ - "-y", - "mcp-package-docs" - ], - "env": { - "ENABLE_LSP": "${ENABLE_LSP}" - } - }, - "MaartenSmeets/mcp-server-fetch": { - "package_name": "MaartenSmeets/mcp-server-fetch", - "repo_url": "https://github.com/MaartenSmeets/mcp-server-fetch", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp-server-fetch" - ] - }, - "kei0440/dice-mcp-server": { - "package_name": "kei0440/dice-mcp-server", - "repo_url": "https://github.com/kei0440/dice-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "crewAIInc/enterprise-mcp-server": { - "package_name": "crewAIInc/enterprise-mcp-server", - "repo_url": "https://github.com/crewAIInc/enterprise-mcp-server", - "command": "uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "mcp", - "run", - "", - "/crewai_enterprise_server.py" - ], - "env": { - "MCP_CREWAI_ENTERPRISE_SERVER_URL": "${MCP_CREWAI_ENTERPRISE_SERVER_URL}", - "MCP_CREWAI_ENTERPRISE_BEARER_TOKEN": "${MCP_CREWAI_ENTERPRISE_BEARER_TOKEN}" - } - }, - "AgentWong/iac-memory-mcp-server-project": { - "package_name": "AgentWong/iac-memory-mcp-server-project", - "repo_url": "https://github.com/AgentWong/iac-memory-mcp-server-project", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/AgentWong/iac-memory-mcp-server.git", - "python", - "-m", - "iac_memory_mcp_server" - ], - "env": { - "DATABASE_URL": "${DATABASE_URL}" - } - }, - "bash0C7/mcp-ruby-skeleton": { - "package_name": "bash0C7/mcp-ruby-skeleton", - "repo_url": "https://github.com/bash0C7/mcp-ruby-skeleton", - "command": "ruby", - "args": [ - "/Users/bash/src/mcp-ruby-skeleton/bin/run_server.rb" - ] - }, - "springwq/jampp_mcp_server": { - "package_name": "springwq/jampp_mcp_server", - "repo_url": "https://github.com/springwq/jampp_mcp_server", - "command": "python", - "args": [ - "path/to/jampp_mcp_server.py" - ], - "env": { - "JAMPP_CLIENT_ID": "${JAMPP_CLIENT_ID}", - "JAMPP_CLIENT_SECRET": "${JAMPP_CLIENT_SECRET}" - } - }, - "jiantao88/android-mcp-server": { - "package_name": "jiantao88/android-mcp-server", - "repo_url": "https://github.com/jiantao88/android-mcp-server", - "command": "node", - "args": [ - "/path/to/android-mcp-server/build/index.js", - "/usr/local/bin/adb" - ] - }, - "SecretiveShell/MCP-llms-txt": { - "package_name": "SecretiveShell/MCP-llms-txt", - "repo_url": "https://github.com/SecretiveShell/MCP-llms-txt", - "command": "uvx", - "args": [ - "mcp-llms-txt" - ], - "env": { - "PYTHONUTF8": "${PYTHONUTF8}" - } - }, - "sooperset/mcp-atlassian": { - "package_name": "sooperset/mcp-atlassian", - "repo_url": "https://github.com/sooperset/mcp-atlassian", - "command": "uv", - "args": [ - "--directory", - "/path/to/your/mcp-atlassian", - "run", - "mcp-atlassian", - "--confluence-url=https://your-domain.atlassian.net/wiki", - "--confluence-username=your.email@domain.com", - "--confluence-token=your_api_token", - "--jira-url=https://your-domain.atlassian.net", - "--jira-username=your.email@domain.com", - "--jira-token=your_api_token" - ] - }, - "learnwithcc/mcp-directus": { - "package_name": "learnwithcc/mcp-directus", - "repo_url": "https://github.com/learnwithcc/mcp-directus" - }, - "MCP-Mirror/amir-bengherbi_shopify-mcp-server": { - "package_name": "MCP-Mirror/amir-bengherbi_shopify-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/amir-bengherbi_shopify-mcp-server", - "command": "npx", - "args": [ - "-y", - "shopify-mcp-server" - ], - "env": { - "SHOPIFY_ACCESS_TOKEN": "${SHOPIFY_ACCESS_TOKEN}", - "MYSHOPIFY_DOMAIN": "${MYSHOPIFY_DOMAIN}" - } - }, - "dheerajoruganty/aws-bedrock-logs-mcp-server": { - "package_name": "dheerajoruganty/aws-bedrock-logs-mcp-server", - "repo_url": "https://github.com/dheerajoruganty/aws-bedrock-logs-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/aws-bedrock-logs-mcp", - "run", - "cloudwatch_mcp_server.py" - ] - }, - "MCP-Mirror/AI-FE_dify-mcp-server": { - "package_name": "MCP-Mirror/AI-FE_dify-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/AI-FE_dify-mcp-server", - "command": "node", - "args": [ - "your/path/dify-server/build/index.js" - ], - "env": { - "DIFY_API_KEY": "${DIFY_API_KEY}" - } - }, - "JustaName-id/ens-mcp-server": { - "package_name": "JustaName-id/ens-mcp-server", - "repo_url": "https://github.com/JustaName-id/ens-mcp-server", - "command": "node", - "args": [ - "/path/to/your/server.js" - ], - "env": { - "PROVIDER_URL": "${PROVIDER_URL}" - } - }, - "MCP-Mirror/SimonB97_win-cli-mcp-server": { - "package_name": "MCP-Mirror/SimonB97_win-cli-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/SimonB97_win-cli-mcp-server", - "command": "npx", - "args": [ - "-y", - "@simonb97/server-win-cli", - "--config", - "path/to/your/config.json" - ] - }, - "truss44/mcp-crypto-price": { - "package_name": "truss44/mcp-crypto-price", - "repo_url": "https://github.com/truss44/mcp-crypto-price", - "command": "npx", - "args": [ - "-y", - "mcp-crypto-price" - ], - "env": { - "COINCAP_API_KEY": "${COINCAP_API_KEY}" - } - }, - "privetin/dataset-viewer": { - "package_name": "privetin/dataset-viewer", - "repo_url": "https://github.com/privetin/dataset-viewer", - "command": "uv", - "args": [ - "run", - "dataset-viewer" - ] - }, - "yuru-sha/mcp-server-mysql": { - "package_name": "yuru-sha/mcp-server-mysql", - "repo_url": "https://github.com/yuru-sha/mcp-server-mysql", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "mcp/mysql", - "mysql://host:port/dbname" - ] - }, - "bkataru-workshop/mcp-duckduckresearch": { - "package_name": "bkataru-workshop/mcp-duckduckresearch", - "repo_url": "https://github.com/bkataru-workshop/mcp-duckduckresearch", - "command": "node", - "args": [ - "path/to/mcp-duckduckresearch/build/index.js" - ] - }, - "waystation-ai/mcp": { - "package_name": "waystation-ai/mcp", - "repo_url": "https://github.com/waystation-ai/mcp" - }, - "YiyangLi/sms-mcp-server": { - "package_name": "YiyangLi/sms-mcp-server", - "repo_url": "https://github.com/YiyangLi/sms-mcp-server", - "command": "npx", - "args": [ - "-y", - "@yiyang.1i/sms-mcp-server" - ], - "env": { - "ACCOUNT_SID": "${ACCOUNT_SID}", - "AUTH_TOKEN": "${AUTH_TOKEN}", - "FROM_NUMBER": "${FROM_NUMBER}" - } - }, - "non-dirty/mcp-server-restart": { - "package_name": "non-dirty/mcp-server-restart", - "repo_url": "https://github.com/non-dirty/mcp-server-restart", - "command": "uvx", - "args": [ - "mcp-server-restart" - ] - }, - "MCP-Mirror/GongRzhe_REDIS-MCP-Server": { - "package_name": "MCP-Mirror/GongRzhe_REDIS-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/GongRzhe_REDIS-MCP-Server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "mcp/redis", - "redis://host.docker.internal:6379" - ] - }, - "irvinebroque/remote-mcp-server": { - "package_name": "irvinebroque/remote-mcp-server", - "repo_url": "https://github.com/irvinebroque/remote-mcp-server", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "riemannzeta/patent_mcp_server": { - "package_name": "riemannzeta/patent_mcp_server", - "repo_url": "https://github.com/riemannzeta/patent_mcp_server", - "command": "uv", - "args": [ - "--directory", - "/Users/username/patent_mcp_server", - "run", - "patent-mcp-server" - ] - }, - "chris-miaskowski/custom-gitlab-mcp-server": { - "package_name": "chris-miaskowski/custom-gitlab-mcp-server", - "repo_url": "https://github.com/chris-miaskowski/custom-gitlab-mcp-server", - "command": "node", - "args": [ - "/path/to/custom-gitlab-server/index.js" - ], - "env": { - "GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_PERSONAL_ACCESS_TOKEN}", - "GITLAB_API_URL": "${GITLAB_API_URL}" - } - }, - "ravitemer/mcp-hub": { - "package_name": "ravitemer/mcp-hub", - "repo_url": "https://github.com/ravitemer/mcp-hub", - "command": "npx", - "args": [ - "example-server" - ], - "env": { - "API_KEY": "${API_KEY}", - "DEBUG": "${DEBUG}" - } - }, - "bitibi/OpenAI-WebSearch-MCP-Server": { - "package_name": "bitibi/OpenAI-WebSearch-MCP-Server", - "repo_url": "https://github.com/bitibi/OpenAI-WebSearch-MCP-Server", - "command": "npx", - "args": [ - "-y", - "openai-websearch-mcp-server" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "port-experimental/port-mcp-server": { - "package_name": "port-experimental/port-mcp-server", - "repo_url": "https://github.com/port-experimental/port-mcp-server", - "command": "uvx", - "args": [ - "mcp-server-port@0.1.4", - "--client-id", - "YOUR_CLIENT_ID", - "--client-secret", - "YOUR_CLIENT_SECRET", - "--region", - "REGION" - ] - }, - "tayler-id/social-media-mcp": { - "package_name": "tayler-id/social-media-mcp", - "repo_url": "https://github.com/tayler-id/social-media-mcp", - "command": "node", - "args": [ - "path/to/social-media-mcp/build/index.js" - ], - "env": { - "TWITTER_API_KEY": "${TWITTER_API_KEY}", - "TWITTER_API_SECRET": "${TWITTER_API_SECRET}", - "TWITTER_BEARER_TOKEN": "${TWITTER_BEARER_TOKEN}", - "TWITTER_ACCESS_TOKEN": "${TWITTER_ACCESS_TOKEN}", - "TWITTER_ACCESS_SECRET": "${TWITTER_ACCESS_SECRET}", - "TWITTER_OAUTH_CLIENT": "${TWITTER_OAUTH_CLIENT}", - "TWITTER_CLIENT_SECRET": "${TWITTER_CLIENT_SECRET}", - "MASTODON_CLIENT_SECRET": "${MASTODON_CLIENT_SECRET}", - "MASTODON_CLIENT_KEY": "${MASTODON_CLIENT_KEY}", - "MASTODON_ACCESS_TOKEN": "${MASTODON_ACCESS_TOKEN}", - "LINKEDIN_CLIENT_ID": "${LINKEDIN_CLIENT_ID}", - "LINKEDIN_CLIENT_SECRET": "${LINKEDIN_CLIENT_SECRET}", - "LINKEDIN_ACCESS_TOKEN": "${LINKEDIN_ACCESS_TOKEN}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "BRAVE_API_KEY": "${BRAVE_API_KEY}" - } - }, - "MCP-Mirror/cyanheads_mentor-mcp-server": { - "package_name": "MCP-Mirror/cyanheads_mentor-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/cyanheads_mentor-mcp-server", - "command": "node", - "args": [ - "build/index.js" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}", - "DEEPSEEK_MODEL": "${DEEPSEEK_MODEL}", - "DEEPSEEK_MAX_TOKENS": "${DEEPSEEK_MAX_TOKENS}", - "DEEPSEEK_MAX_RETRIES": "${DEEPSEEK_MAX_RETRIES}", - "DEEPSEEK_TIMEOUT": "${DEEPSEEK_TIMEOUT}" - } - }, - "jae-jae/fetch-mcp": { - "package_name": "jae-jae/fetch-mcp", - "repo_url": "https://github.com/jae-jae/fetch-mcp", - "command": "npx", - "args": [ - "-y", - "github:jae-jae/fetch-mcp" - ] - }, - "benborla/mcp-server-mysql": { - "package_name": "benborla/mcp-server-mysql", - "repo_url": "https://github.com/benborla/mcp-server-mysql", - "command": "/full/path/to/node", - "args": [ - "/full/path/to/mcp-server-mysql/dist/index.js" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASS": "${MYSQL_PASS}", - "MYSQL_DB": "${MYSQL_DB}" - } - }, - "lowprofix/n8n-mcp-server": { - "package_name": "lowprofix/n8n-mcp-server", - "repo_url": "https://github.com/lowprofix/n8n-mcp-server", - "command": "node", - "args": [ - "/chemin/absolu/vers/mcp-n8n-server/dist/server.js" - ] - }, - "irvinebroque/remote-mcp-server-test-again": { - "package_name": "irvinebroque/remote-mcp-server-test-again", - "repo_url": "https://github.com/irvinebroque/remote-mcp-server-test-again", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "Simon-Kansara/ableton-live-mcp-server": { - "package_name": "Simon-Kansara/ableton-live-mcp-server", - "repo_url": "https://github.com/Simon-Kansara/ableton-live-mcp-server", - "command": "/path/to/your/project/.venv/bin/python", - "args": [ - "/path/to/your/project/mcp_ableton_server.py" - ] - }, - "icraft2170/youtube-data-mcp-server": { - "package_name": "icraft2170/youtube-data-mcp-server", - "repo_url": "https://github.com/icraft2170/youtube-data-mcp-server", - "command": "npx", - "args": [ - "-y", - "youtube-data-mcp-server" - ], - "env": { - "YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}", - "YOUTUBE_TRANSCRIPT_LANG": "${YOUTUBE_TRANSCRIPT_LANG}" - } - }, - "cnosuke/mcp-meilisearch": { - "package_name": "cnosuke/mcp-meilisearch", - "repo_url": "https://github.com/cnosuke/mcp-meilisearch", - "command": "./bin/mcp-meilisearch", - "args": [ - "server", - "--no-logs", - "--log", - "path_to_log_file" - ], - "env": { - "MEILISEARCH_HOST": "${MEILISEARCH_HOST}", - "MEILISEARCH_API_KEY": "${MEILISEARCH_API_KEY}" - } - }, - "edobez/mcp-memory-py": { - "package_name": "edobez/mcp-memory-py", - "repo_url": "https://github.com/edobez/mcp-memory-py", - "command": "uvx", - "args": [ - "--refresh", - "--quiet", - "mcp-memory-py" - ], - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "ahmad2x4/mcp-server-seq": { - "package_name": "ahmad2x4/mcp-server-seq", - "repo_url": "https://github.com/ahmad2x4/mcp-server-seq", - "command": "node", - "args": [ - "/Users/ahmadreza/source/ahmad2x4/mcp-server-seq/build/seq-server.js" - ], - "env": { - "SEQ_BASE_URL": "${SEQ_BASE_URL}", - "SEQ_API_KEY": "${SEQ_API_KEY}" - } - }, - "MCP-Mirror/ivo-toby_mcp-openapi-server": { - "package_name": "MCP-Mirror/ivo-toby_mcp-openapi-server", - "repo_url": "https://github.com/MCP-Mirror/ivo-toby_mcp-openapi-server", - "command": "npx", - "args": [ - "-y", - "@ivotoby/openapi-mcp-server" - ], - "env": { - "API_BASE_URL": "${API_BASE_URL}", - "OPENAPI_SPEC_PATH": "${OPENAPI_SPEC_PATH}", - "API_HEADERS": "${API_HEADERS}" - } - }, - "its-dart/dart-mcp-server": { - "package_name": "its-dart/dart-mcp-server", - "repo_url": "https://github.com/its-dart/dart-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "DART_TOKEN", - "mcp/dart" - ], - "env": { - "DART_TOKEN": "${DART_TOKEN}" - } - }, - "elitau/mcp-server-make-dot-com": { - "package_name": "elitau/mcp-server-make-dot-com", - "repo_url": "https://github.com/elitau/mcp-server-make-dot-com", - "command": "node", - "args": [ - "/full/absolute/path/to/mcp-server-make-dot-com/dist/index.js" - ], - "env": { - "MAKE_DOT_COM_API_KEY": "${MAKE_DOT_COM_API_KEY}", - "MAKE_DOT_COM_BASE_URL": "${MAKE_DOT_COM_BASE_URL}" - } - }, - "dillip285/mcp-dev-server": { - "package_name": "dillip285/mcp-dev-server", - "repo_url": "https://github.com/dillip285/mcp-dev-server", - "command": "mcp-dev-server", - "args": [] - }, - "yoda-digital/mcp-gitlab-server": { - "package_name": "yoda-digital/mcp-gitlab-server", - "repo_url": "https://github.com/yoda-digital/mcp-gitlab-server", - "command": "npx", - "args": [ - "-y", - "@yoda.digital/gitlab-mcp-server" - ], - "env": { - "GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_PERSONAL_ACCESS_TOKEN}", - "GITLAB_API_URL": "${GITLAB_API_URL}", - "GITLAB_READ_ONLY_MODE": "${GITLAB_READ_ONLY_MODE}" - } - }, - "MCP-Mirror/twolven_mcp-server-puppeteer-py": { - "package_name": "MCP-Mirror/twolven_mcp-server-puppeteer-py", - "repo_url": "https://github.com/MCP-Mirror/twolven_mcp-server-puppeteer-py", - "command": "python", - "args": [ - "path/to/puppeteer.py" - ] - }, - "jagan-shanmugam/mattermost-mcp-client": { - "package_name": "jagan-shanmugam/mattermost-mcp-client", - "repo_url": "https://github.com/jagan-shanmugam/mattermost-mcp-client", - "command": "python", - "args": [ - "ollama-mcp-server/src/ollama_mcp_server/main.py" - ] - }, - "screenshotone/mcp": { - "package_name": "screenshotone/mcp", - "repo_url": "https://github.com/screenshotone/mcp", - "command": "node", - "args": [ - "path/to/screenshotone/mcp/build/index.js" - ], - "env": { - "SCREENSHOTONE_API_KEY": "${SCREENSHOTONE_API_KEY}" - } - }, - "GongRzhe/REDIS-MCP-Server": { - "package_name": "GongRzhe/REDIS-MCP-Server", - "repo_url": "https://github.com/GongRzhe/REDIS-MCP-Server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "mcp/redis", - "redis://host.docker.internal:6379" - ] - }, - "nicozumarraga/light-mcp-agents": { - "package_name": "nicozumarraga/light-mcp-agents", - "repo_url": "https://github.com/nicozumarraga/light-mcp-agents", - "command": "/bin/bash", - "args": [ - "-c", - "/path/to/your/venv/bin/python /path/to/your/agent_runner.py --config=/path/to/your/agent_config.json --server-mode" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}", - "PATH": "${PATH}" - } - }, - "aws-samples/sample-mcp-server-s3": { - "package_name": "aws-samples/sample-mcp-server-s3", - "repo_url": "https://github.com/aws-samples/sample-mcp-server-s3", - "command": "uvx", - "args": [ - "s3-mcp-server" - ] - }, - "Sheshiyer/framer-plugin-mcp": { - "package_name": "Sheshiyer/framer-plugin-mcp", - "repo_url": "https://github.com/Sheshiyer/framer-plugin-mcp", - "command": "node", - "args": [ - "/path/to/framer-plugin-mcp/build/index.js" - ] - }, - "GobinFan/python-mcp-server-client": { - "package_name": "GobinFan/python-mcp-server-client", - "repo_url": "https://github.com/GobinFan/python-mcp-server-client", - "command": "uv", - "args": [ - "--directory", - "<\u00e4\u00bd\u00a0\u00e7\u009a\u0084\u00e9\u00a1\u00b9\u00e7\u009b\u00ae\u00e8\u00b7\u00af\u00e5\u00be\u0084>", - "run", - "main.py" - ] - }, - "sammcj/mcp-package-version": { - "package_name": "sammcj/mcp-package-version", - "repo_url": "https://github.com/sammcj/mcp-package-version" - }, - "sammcj/mcp-github-issue": { - "package_name": "sammcj/mcp-github-issue", - "repo_url": "https://github.com/sammcj/mcp-github-issue", - "command": "npx", - "args": [ - "mcp-github-issue" - ] - }, - "Ejb503/systemprompt-mcp-notion": { - "package_name": "Ejb503/systemprompt-mcp-notion", - "repo_url": "https://github.com/Ejb503/systemprompt-mcp-notion", - "command": "node", - "args": [ - "./node_modules/systemprompt-mcp-notion/build/index.js" - ], - "env": { - "SYSTEMPROMPT_API_KEY": "${SYSTEMPROMPT_API_KEY}", - "NOTION_API_KEY": "${NOTION_API_KEY}" - } - }, - "stat-guy/chain-of-draft": { - "package_name": "stat-guy/chain-of-draft", - "repo_url": "https://github.com/stat-guy/chain-of-draft", - "command": "node", - "args": [ - "/absolute/path/to/cod/index.js" - ], - "env": { - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}" - } - }, - "tomekkorbak/strava-mcp-server": { - "package_name": "tomekkorbak/strava-mcp-server", - "repo_url": "https://github.com/tomekkorbak/strava-mcp-server", - "command": "uvx", - "args": [ - "strava-mcp-server" - ], - "env": { - "STRAVA_CLIENT_ID": "${STRAVA_CLIENT_ID}", - "STRAVA_CLIENT_SECRET": "${STRAVA_CLIENT_SECRET}", - "STRAVA_REFRESH_TOKEN": "${STRAVA_REFRESH_TOKEN}" - } - }, - "MCP-Mirror/crazyrabbitLTC_mcp-expert-server": { - "package_name": "MCP-Mirror/crazyrabbitLTC_mcp-expert-server", - "repo_url": "https://github.com/MCP-Mirror/crazyrabbitLTC_mcp-expert-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/expert-server/build/index.js" - ], - "env": { - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}" - } - }, - "random-robbie/mcp-web-browser": { - "package_name": "random-robbie/mcp-web-browser", - "repo_url": "https://github.com/random-robbie/mcp-web-browser", - "command": "python", - "args": [ - "/path/to/your/server.py" - ] - }, - "yokingma/time-mcp": { - "package_name": "yokingma/time-mcp", - "repo_url": "https://github.com/yokingma/time-mcp", - "command": "npx", - "args": [ - "-y", - "time-mcp" - ] - }, - "CaptainCrouton89/planner": { - "package_name": "CaptainCrouton89/planner", - "repo_url": "https://github.com/CaptainCrouton89/planner", - "command": "node", - "args": [ - "/absolute/path/to/task-planner-mcp/dist/index.js" - ] - }, - "MCP-Mirror/r-huijts_ns-mcp-server": { - "package_name": "MCP-Mirror/r-huijts_ns-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/r-huijts_ns-mcp-server", - "command": "node", - "args": [ - "/path/to/ns-server/build/index.js" - ], - "env": { - "NS_API_KEY": "${NS_API_KEY}" - } - }, - "billster45/mcp-chatgpt-responses": { - "package_name": "billster45/mcp-chatgpt-responses", - "repo_url": "https://github.com/billster45/mcp-chatgpt-responses", - "command": "uv", - "args": [ - "--directory", - "\\path\\to\\mcp-chatgpt-responses", - "run", - "chatgpt_server.py" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "DEFAULT_MODEL": "${DEFAULT_MODEL}", - "DEFAULT_TEMPERATURE": "${DEFAULT_TEMPERATURE}", - "MAX_TOKENS": "${MAX_TOKENS}" - } - }, - "jimpick/mcp-json-db-collection-server": { - "package_name": "jimpick/mcp-json-db-collection-server", - "repo_url": "https://github.com/jimpick/mcp-json-db-collection-server", - "command": "npx", - "args": [ - "-y", - "@jimpick/mcp-json-db-collection-server" - ] - }, - "dested/factorio-mcp-server": { - "package_name": "dested/factorio-mcp-server", - "repo_url": "https://github.com/dested/factorio-mcp-server", - "command": "node", - "args": [ - "/Users/matt/code/mcp-starter/dist/index.cjs" - ] - }, - "ognis1205/mcp-server-unitycatalog": { - "package_name": "ognis1205/mcp-server-unitycatalog", - "repo_url": "https://github.com/ognis1205/mcp-server-unitycatalog", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/unitycatalog", - "--uc_server", - "", - "--uc_catalog", - "", - "--uc_schema", - "" - ] - }, - "MCP-Mirror/tumf_mcp-shell-server": { - "package_name": "MCP-Mirror/tumf_mcp-shell-server", - "repo_url": "https://github.com/MCP-Mirror/tumf_mcp-shell-server", - "command": "uv", - "args": [ - "--directory", - ".", - "run", - "mcp-shell-server" - ], - "env": { - "ALLOW_COMMANDS": "${ALLOW_COMMANDS}" - } - }, - "QuantGeekDev/mcp-framework": { - "package_name": "QuantGeekDev/mcp-framework", - "repo_url": "https://github.com/QuantGeekDev/mcp-framework", - "command": "npx", - "args": [ - "${projectName}" - ] - }, - "shreyaskarnik/mcpet": { - "package_name": "shreyaskarnik/mcpet", - "repo_url": "https://github.com/shreyaskarnik/mcpet", - "command": "node", - "args": [ - "/path/to/mcpet/build/index.js" - ], - "env": { - "PET_DATA_DIR": "${PET_DATA_DIR}" - } - }, - "Jacck/mcp-ortools": { - "package_name": "Jacck/mcp-ortools", - "repo_url": "https://github.com/Jacck/mcp-ortools", - "command": "python", - "args": [ - "-m", - "mcp_ortools.server" - ] - }, - "prasanthmj/primitive-go-mcp-server": { - "package_name": "prasanthmj/primitive-go-mcp-server", - "repo_url": "https://github.com/prasanthmj/primitive-go-mcp-server", - "command": "/path/to/imagegen-go/bin/imagegen-go", - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "DEFAULT_DOWNLOAD_PATH": "${DEFAULT_DOWNLOAD_PATH}" - } - }, - "githejie/mcp-server-calculator": { - "package_name": "githejie/mcp-server-calculator", - "repo_url": "https://github.com/githejie/mcp-server-calculator", - "command": "python", - "args": [ - "-m", - "mcp_server_calculator" - ] - }, - "arcaputo3/mcp-server-whisper": { - "package_name": "arcaputo3/mcp-server-whisper", - "repo_url": "https://github.com/arcaputo3/mcp-server-whisper", - "command": "uvx", - "args": [ - "--with", - "aiofiles", - "--with", - "mcp[cli]", - "--with", - "openai", - "--with", - "pydub", - "mcp-server-whisper" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "AUDIO_FILES_PATH": "${AUDIO_FILES_PATH}" - } - }, - "melaodoidao/datagov-mcp-server": { - "package_name": "melaodoidao/datagov-mcp-server", - "repo_url": "https://github.com/melaodoidao/datagov-mcp-server", - "command": "datagov-mcp-server", - "args": [] - }, - "syedazharmbnr1/ClaudeMCPServer": { - "package_name": "syedazharmbnr1/ClaudeMCPServer", - "repo_url": "https://github.com/syedazharmbnr1/ClaudeMCPServer", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "" - ] - }, - "JackKuo666/mcp-server-bioRxiv": { - "package_name": "JackKuo666/mcp-server-bioRxiv", - "repo_url": "https://github.com/JackKuo666/mcp-server-bioRxiv", - "command": "bash", - "args": [ - "-c", - "source /home/YOUR/PATH/mcp-server-bioRxiv/.venv/bin/activate && python /home/YOUR/PATH/mcp-server-bioRxiv/medrxiv_server.py" - ] - }, - "Dienvm/mcp-servers": { - "package_name": "Dienvm/mcp-servers", - "repo_url": "https://github.com/Dienvm/mcp-servers", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "giovannicocco/mcp-server-postman-tool-generation": { - "package_name": "giovannicocco/mcp-server-postman-tool-generation", - "repo_url": "https://github.com/giovannicocco/mcp-server-postman-tool-generation", - "command": "node", - "args": [ - "/path/to/postman-tool-generation-server/build/index.js" - ], - "env": { - "POSTMAN_API_KEY": "${POSTMAN_API_KEY}" - } - }, - "wesnermichel/nexus-mcp-claude-desktop-server": { - "package_name": "wesnermichel/nexus-mcp-claude-desktop-server", - "repo_url": "https://github.com/wesnermichel/nexus-mcp-claude-desktop-server" - }, - "MCP-Mirror/Automata-Labs-team_MCP-Server-Playwright": { - "package_name": "MCP-Mirror/Automata-Labs-team_MCP-Server-Playwright", - "repo_url": "https://github.com/MCP-Mirror/Automata-Labs-team_MCP-Server-Playwright", - "command": "npx", - "args": [ - "-y", - "@automatalabs/mcp-server-playwright" - ] - }, - "shanejonas/openrpc-mpc-server": { - "package_name": "shanejonas/openrpc-mpc-server", - "repo_url": "https://github.com/shanejonas/openrpc-mpc-server", - "command": "npx", - "args": [ - "-y", - "openrpc-mcp-server" - ] - }, - "MCP-Mirror/toolhouse-community_mcp-server-toolhouse": { - "package_name": "MCP-Mirror/toolhouse-community_mcp-server-toolhouse", - "repo_url": "https://github.com/MCP-Mirror/toolhouse-community_mcp-server-toolhouse", - "command": "uv", - "args": [ - "--directory", - "/path/to/this/folder/mcp-server-toolhouse", - "run", - "mcp-server-toolhouse" - ], - "env": { - "TOOLHOUSE_API_KEY": "${TOOLHOUSE_API_KEY}", - "GROQ_API_KEY": "${GROQ_API_KEY}", - "TOOLHOUSE_BUNDLE_NAME": "${TOOLHOUSE_BUNDLE_NAME}" - } - }, - "pinkpixel-dev/mem0-mcp": { - "package_name": "pinkpixel-dev/mem0-mcp", - "repo_url": "https://github.com/pinkpixel-dev/mem0-mcp", - "command": "node", - "args": [ - "path/to/mem0-mcp/build/index.js" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "DEFAULT_USER_ID": "${DEFAULT_USER_ID}" - } - }, - "yuna0x0/hackmd-mcp": { - "package_name": "yuna0x0/hackmd-mcp", - "repo_url": "https://github.com/yuna0x0/hackmd-mcp", - "command": "npx", - "args": [ - "-y", - "hackmd-mcp" - ], - "env": { - "HACKMD_API_TOKEN": "${HACKMD_API_TOKEN}" - } - }, - "gamalan/mcp-email-client": { - "package_name": "gamalan/mcp-email-client", - "repo_url": "https://github.com/gamalan/mcp-email-client", - "command": "uv", - "args": [ - "run", - "--directory", - "D:\\Project\\replace-with-repo-folder-location", - "mcp_email_client" - ] - }, - "hannesrudolph/mcp-ragdocs": { - "package_name": "hannesrudolph/mcp-ragdocs", - "repo_url": "https://github.com/hannesrudolph/mcp-ragdocs", - "command": "npx", - "args": [ - "-y", - "@hannesrudolph/mcp-ragdo" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "QDRANT_URL": "${QDRANT_URL}", - "QDRANT_API_KEY": "${QDRANT_API_KEY}" - } - }, - "dazeb/cline-mcp-memory-bank": { - "package_name": "dazeb/cline-mcp-memory-bank", - "repo_url": "https://github.com/dazeb/cline-mcp-memory-bank", - "command": "node", - "args": [ - "/path/to/cline-memory-bank/build/index.js" - ] - }, - "integromat/make-mcp-server": { - "package_name": "integromat/make-mcp-server", - "repo_url": "https://github.com/integromat/make-mcp-server", - "command": "npx", - "args": [ - "-y", - "@makehq/mcp-server" - ], - "env": { - "MAKE_API_KEY": "${MAKE_API_KEY}", - "MAKE_ZONE": "${MAKE_ZONE}", - "MAKE_TEAM": "${MAKE_TEAM}" - } - }, - "wshobson/mcp-trader": { - "package_name": "wshobson/mcp-trader", - "repo_url": "https://github.com/wshobson/mcp-trader", - "command": "uv", - "args": [ - "--directory", - "/absolute/path/to/mcp-trader", - "run", - "mcp-trader" - ], - "env": { - "TIINGO_API_KEY": "${TIINGO_API_KEY}" - } - }, - "Jacck/mcp-reasoner": { - "package_name": "Jacck/mcp-reasoner", - "repo_url": "https://github.com/Jacck/mcp-reasoner", - "command": "node", - "args": [ - "path/to/mcp-reasoner/dist/index.js" - ] - }, - "aashari/rag-browser": { - "package_name": "aashari/rag-browser", - "repo_url": "https://github.com/aashari/rag-browser" - }, - "danishjsheikh/swagger-mcp": { - "package_name": "danishjsheikh/swagger-mcp", - "repo_url": "https://github.com/danishjsheikh/swagger-mcp", - "command": "swagger-mcp", - "args": [ - "" - ] - }, - "jatinsandilya/mcp-server-template": { - "package_name": "jatinsandilya/mcp-server-template", - "repo_url": "https://github.com/jatinsandilya/mcp-server-template", - "command": "node", - "args": [ - "ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js" - ] - }, - "pskill9/hn-server": { - "package_name": "pskill9/hn-server", - "repo_url": "https://github.com/pskill9/hn-server", - "command": "node", - "args": [ - "/path/to/hn-server/build/index.js" - ] - }, - "ivelin-web/tempo-mcp-server": { - "package_name": "ivelin-web/tempo-mcp-server", - "repo_url": "https://github.com/ivelin-web/tempo-mcp-server", - "command": "/bin/bash", - "args": [ - "/ABSOLUTE/PATH/TO/tempo-mcp-wrapper.sh" - ] - }, - "Ai-Quill/scraperis-mcp": { - "package_name": "Ai-Quill/scraperis-mcp", - "repo_url": "https://github.com/Ai-Quill/scraperis-mcp", - "command": "scraperis-mcp", - "args": [], - "env": { - "SCRAPERIS_API_KEY": "${SCRAPERIS_API_KEY}", - "DEBUG": "${DEBUG}" - } - }, - "HeatherFlux/github-issue-mcp-server": { - "package_name": "HeatherFlux/github-issue-mcp-server", - "repo_url": "https://github.com/HeatherFlux/github-issue-mcp-server", - "command": "/path/to/github-server/build/index.js" - }, - "loglmhq/mcp-server-github-repo": { - "package_name": "loglmhq/mcp-server-github-repo", - "repo_url": "https://github.com/loglmhq/mcp-server-github-repo", - "command": "/path/to/mcp-server-github-repo/build/index.js" - }, - "JavOrraca/tidymodels-mcp": { - "package_name": "JavOrraca/tidymodels-mcp", - "repo_url": "https://github.com/JavOrraca/tidymodels-mcp", - "command": "node", - "args": [ - "/path/to/tidymodels-mcp/js/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "MCP-Mirror/GongRzhe_Calendar-Autoauth-MCP-Server": { - "package_name": "MCP-Mirror/GongRzhe_Calendar-Autoauth-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/GongRzhe_Calendar-Autoauth-MCP-Server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-v", - "mcp-calendar:/calendar-server", - "-e", - "CALENDAR_CREDENTIALS_PATH=/calendar-server/credentials.json", - "mcp/calendar" - ] - }, - "vivalalova/mcp_practice": { - "package_name": "vivalalova/mcp_practice", - "repo_url": "https://github.com/vivalalova/mcp_practice", - "command": "/path/to/my-server/build/index.js" - }, - "johnnyoshika/mcp-server-sqlite-npx": { - "package_name": "johnnyoshika/mcp-server-sqlite-npx", - "repo_url": "https://github.com/johnnyoshika/mcp-server-sqlite-npx", - "command": "/absolute/path/to/node", - "args": [ - "/absolute/path/to/dist/index.js", - "/absolute/path/to/database.db" - ] - }, - "rikuson/mcp-qase": { - "package_name": "rikuson/mcp-qase", - "repo_url": "https://github.com/rikuson/mcp-qase", - "command": "/path/to/mcp-qase/build/index.js", - "env": { - "QASE_API_TOKEN": "${QASE_API_TOKEN}" - } - }, - "kiwamizamurai/mcp-kibela-server": { - "package_name": "kiwamizamurai/mcp-kibela-server", - "repo_url": "https://github.com/kiwamizamurai/mcp-kibela-server", - "command": "npx", - "args": [ - "-y", - "@kiwamizamurai/mcp-kibela-server" - ], - "env": { - "KIBELA_TEAM": "${KIBELA_TEAM}", - "KIBELA_TOKEN": "${KIBELA_TOKEN}" - } - }, - "ryaker/mongodb-mcp-server": { - "package_name": "ryaker/mongodb-mcp-server", - "repo_url": "https://github.com/ryaker/mongodb-mcp-server", - "command": "node", - "args": [ - "/path/to/mongo-mcp-server.js" - ], - "env": { - "MONGODB_URI": "${MONGODB_URI}", - "DEFAULT_DATABASE": "${DEFAULT_DATABASE}" - } - }, - "pvev/mattermost-mcp": { - "package_name": "pvev/mattermost-mcp", - "repo_url": "https://github.com/pvev/mattermost-mcp", - "command": "node", - "args": [ - "/path/to/mattermost-mcp/build/index.js" - ] - }, - "malloryai/mallory-mcp-server": { - "package_name": "malloryai/mallory-mcp-server", - "repo_url": "https://github.com/malloryai/mallory-mcp-server", - "command": "/path/to/uv", - "args": [ - "run", - "--python", - "/path/to/mcp-server/.venv/bin/python", - "--with", - "fastmcp", - "fastmcp", - "run", - "/path/to/mcp-server/malloryai/mcp/app.py" - ], - "env": { - "APP_ENV": "${APP_ENV}", - "MALLORY_API_KEY": "${MALLORY_API_KEY}" - } - }, - "zueai/frontend-review-mcp": { - "package_name": "zueai/frontend-review-mcp", - "repo_url": "https://github.com/zueai/frontend-review-mcp", - "command": "npx", - "args": [ - "frontend-review-mcp HYPERBOLIC_API_KEY=" - ] - }, - "bmorphism/manifold-mcp-server": { - "package_name": "bmorphism/manifold-mcp-server", - "repo_url": "https://github.com/bmorphism/manifold-mcp-server", - "command": "node", - "args": [ - "/path/to/manifold-mcp-server/build/index.js" - ], - "env": { - "MANIFOLD_API_KEY": "${MANIFOLD_API_KEY}" - } - }, - "aiyogg/tinypng-mcp-server": { - "package_name": "aiyogg/tinypng-mcp-server", - "repo_url": "https://github.com/aiyogg/tinypng-mcp-server", - "command": "bun", - "args": [ - "/path/to/tinypng-mcp-server/src/index.ts" - ], - "env": { - "TINYPNG_API_KEY": "${TINYPNG_API_KEY}" - } - }, - "rezapex/shopify-mcp-server-main": { - "package_name": "rezapex/shopify-mcp-server-main", - "repo_url": "https://github.com/rezapex/shopify-mcp-server-main", - "command": "npx", - "args": [ - "-y", - "shopify-mcp-server" - ], - "env": { - "SHOPIFY_ACCESS_TOKEN": "${SHOPIFY_ACCESS_TOKEN}", - "MYSHOPIFY_DOMAIN": "${MYSHOPIFY_DOMAIN}" - } - }, - "hanweg/mcp-sqlexpress": { - "package_name": "hanweg/mcp-sqlexpress", - "repo_url": "https://github.com/hanweg/mcp-sqlexpress", - "command": "uv", - "args": [ - "--directory", - "PATH\\TO\\PROJECT\\mcp-sqlexpress", - "run", - "mcp-server-sqlexpress", - "--server", - "server\\instance", - "--auth", - "windows", - "--trusted-connection", - "yes", - "--trust-server-certificate", - "yes", - "--allowed-databases", - "database1,database2" - ] - }, - "mcpdotdirect/evm-mcp-server": { - "package_name": "mcpdotdirect/evm-mcp-server", - "repo_url": "https://github.com/mcpdotdirect/evm-mcp-server" - }, - "TheApeMachine/mcp-server-devops-bridge": { - "package_name": "TheApeMachine/mcp-server-devops-bridge", - "repo_url": "https://github.com/TheApeMachine/mcp-server-devops-bridge", - "command": "/full/path/to/mcp-server-devops-bridge/mcp-server-devops-bridge", - "args": [], - "env": { - "AZURE_DEVOPS_ORG": "${AZURE_DEVOPS_ORG}", - "AZDO_PAT": "${AZDO_PAT}", - "AZURE_DEVOPS_PROJECT": "${AZURE_DEVOPS_PROJECT}", - "SLACK_DEFAULT_CHANNEL": "${SLACK_DEFAULT_CHANNEL}", - "SLACK_BOT_TOKEN": "${SLACK_BOT_TOKEN}", - "GITHUB_PAT": "${GITHUB_PAT}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "QDRANT_URL": "${QDRANT_URL}", - "QDRANT_API_KEY": "${QDRANT_API_KEY}", - "NEO4J_URL": "${NEO4J_URL}", - "NEO4J_USER": "${NEO4J_USER}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}" - } - }, - "mkusaka/mcp-notify-server": { - "package_name": "mkusaka/mcp-notify-server", - "repo_url": "https://github.com/mkusaka/mcp-notify-server", - "command": "npx", - "args": [ - "-y", - "@mkusaka/mcp-notify-server" - ] - }, - "dopehunter/n8n_MCP_server_complete": { - "package_name": "dopehunter/n8n_MCP_server_complete", - "repo_url": "https://github.com/dopehunter/n8n_MCP_server_complete", - "command": "npx", - "args": [ - "-y", - "@dopehunter/n8n-mcp-server" - ] - }, - "supercorp-ai/supergateway": { - "package_name": "supercorp-ai/supergateway", - "repo_url": "https://github.com/supercorp-ai/supergateway", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "supercorp/supergateway", - "--sse", - "https://mcp-server-ab71a6b2-cd55-49d0-adba-562bc85956e3.supermachine.app" - ] - }, - "landicefu/temp-notes-mcp-server": { - "package_name": "landicefu/temp-notes-mcp-server", - "repo_url": "https://github.com/landicefu/temp-notes-mcp-server", - "command": "node", - "args": [ - "/path/to/temp-notes-mcp-server/build/index.js" - ] - }, - "TarcisioPhilips/mcp-server-poc": { - "package_name": "TarcisioPhilips/mcp-server-poc", - "repo_url": "https://github.com/TarcisioPhilips/mcp-server-poc", - "command": "python", - "args": [ - "ABSOLUTE/PATH/TO/main.py" - ] - }, - "hrs-asano/claude-mcp-trello": { - "package_name": "hrs-asano/claude-mcp-trello", - "repo_url": "https://github.com/hrs-asano/claude-mcp-trello", - "command": "{YOUR_NODE_PATH}", - "args": [ - "{YOUR_PATH}/claude-mcp-trello/build/index.js" - ], - "env": { - "TRELLO_API_KEY": "${TRELLO_API_KEY}", - "TRELLO_TOKEN": "${TRELLO_TOKEN}", - "TRELLO_BOARD_ID": "${TRELLO_BOARD_ID}" - } - }, - "yogi-miraje/mcp-us-city-weather": { - "package_name": "yogi-miraje/mcp-us-city-weather", - "repo_url": "https://github.com/yogi-miraje/mcp-us-city-weather", - "command": "/Users//.local/bin/uv", - "args": [ - "--directory", - "/Users//", - "run", - "weather.py" - ] - }, - "steel-dev/steel-mcp-server": { - "package_name": "steel-dev/steel-mcp-server", - "repo_url": "https://github.com/steel-dev/steel-mcp-server", - "command": "node", - "args": [ - "path/to/steel-puppeteer/dist/index.js" - ], - "env": { - "STEEL_LOCAL": "${STEEL_LOCAL}", - "STEEL_API_KEY": "${STEEL_API_KEY}" - } - }, - "MushroomFleet/TranscriptionTools-MCP": { - "package_name": "MushroomFleet/TranscriptionTools-MCP", - "repo_url": "https://github.com/MushroomFleet/TranscriptionTools-MCP", - "command": "node", - "args": [ - "/path/to/TranscriptionTools-MCP/build/index.js" - ] - }, - "sirmews/mcp-pinecone": { - "package_name": "sirmews/mcp-pinecone", - "repo_url": "https://github.com/sirmews/mcp-pinecone", - "command": "uvx", - "args": [ - "--index-name", - "{your-index-name}", - "--api-key", - "{your-secret-api-key}", - "mcp-pinecone" - ] - }, - "bonninr/freecad_mcp": { - "package_name": "bonninr/freecad_mcp", - "repo_url": "https://github.com/bonninr/freecad_mcp", - "command": "/usr/local/bin/python3", - "args": [ - "/Users/USER/Library/Preferences/FreeCAD/Mod/freecad_mcp/src/freecad_bridge.py" - ] - }, - "cyberchitta/scrapling-fetch-mcp": { - "package_name": "cyberchitta/scrapling-fetch-mcp", - "repo_url": "https://github.com/cyberchitta/scrapling-fetch-mcp", - "command": "uvx", - "args": [ - "scrapling-fetch-mcp" - ] - }, - "lucasmontano/mcp-montano-server": { - "package_name": "lucasmontano/mcp-montano-server", - "repo_url": "https://github.com/lucasmontano/mcp-montano-server", - "command": "node", - "args": [ - "path/to/mcp-montano-server/build/index.js" - ] - }, - "notorious-d-e-v/payai-mcp-server": { - "package_name": "notorious-d-e-v/payai-mcp-server", - "repo_url": "https://github.com/notorious-d-e-v/payai-mcp-server", - "command": "npx", - "args": [ - "-y", - "payai-mcp-server@latest", - "https://mcp.payai.network" - ] - }, - "miles990/MyMcpServer": { - "package_name": "miles990/MyMcpServer", - "repo_url": "https://github.com/miles990/MyMcpServer", - "command": "/path/to/MyMcpServer/build/index.js" - }, - "elliotxx/favicon-mcp-server": { - "package_name": "elliotxx/favicon-mcp-server", - "repo_url": "https://github.com/elliotxx/favicon-mcp-server", - "command": "go", - "args": [ - "run", - "main.go" - ] - }, - "block/code-mcp": { - "package_name": "block/code-mcp", - "repo_url": "https://github.com/block/code-mcp", - "command": "npx", - "args": [ - "code-mcp-server" - ] - }, - "bartwisch/MCPRules": { - "package_name": "bartwisch/MCPRules", - "repo_url": "https://github.com/bartwisch/MCPRules", - "command": "node", - "args": [ - "/path/to/rules-server/build/index.js" - ] - }, - "co-browser/browser-use-mcp-server": { - "package_name": "co-browser/browser-use-mcp-server", - "repo_url": "https://github.com/co-browser/browser-use-mcp-server", - "command": "browser-use-mcp-server", - "args": [ - "run", - "server", - "--port", - "8000", - "--stdio", - "--proxy-port", - "9000" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "punkpeye/file-edit-check-server": { - "package_name": "punkpeye/file-edit-check-server", - "repo_url": "https://github.com/punkpeye/file-edit-check-server", - "command": "node", - "args": [ - "/path/to/file-edit-check-server/build/index.js" - ] - }, - "MediFinderBot/medifinder-mcp": { - "package_name": "MediFinderBot/medifinder-mcp", - "repo_url": "https://github.com/MediFinderBot/medifinder-mcp", - "command": "C:\\path\\to\\project\\venv\\Scripts\\python.exe", - "args": [ - "C:\\path\\to\\project\\main.py" - ], - "env": { - "DB_HOST": "${DB_HOST}", - "DB_PORT": "${DB_PORT}", - "DB_NAME": "${DB_NAME}", - "DB_USER": "${DB_USER}", - "DB_PASSWORD": "${DB_PASSWORD}", - "DEBUG": "${DEBUG}", - "ENV": "${ENV}", - "SERVER_NAME": "${SERVER_NAME}", - "SERVER_VERSION": "${SERVER_VERSION}", - "MCP_SERVER_NAME": "${MCP_SERVER_NAME}", - "MCP_SERVER_DESCRIPTION": "${MCP_SERVER_DESCRIPTION}", - "MAX_SEARCH_RESULTS": "${MAX_SEARCH_RESULTS}", - "SEARCH_SIMILARITY_THRESHOLD": "${SEARCH_SIMILARITY_THRESHOLD}" - } - }, - "StarRocks/mcp-server-starrocks": { - "package_name": "StarRocks/mcp-server-starrocks", - "repo_url": "https://github.com/StarRocks/mcp-server-starrocks", - "command": "uv", - "args": [ - "--directory", - "path/to/mcp-server-starrocks", - "run", - "mcp-server-starrocks" - ], - "env": { - "STARROCKS_HOST": "${STARROCKS_HOST}", - "STARROCKS_PORT": "${STARROCKS_PORT}", - "STARROCKS_USER": "${STARROCKS_USER}", - "STARROCKS_PASSWORD": "${STARROCKS_PASSWORD}" - } - }, - "sarankrishna/wheather-mcp": { - "package_name": "sarankrishna/wheather-mcp", - "repo_url": "https://github.com/sarankrishna/wheather-mcp", - "command": "uvx", - "args": [ - "blender-mcp" - ] - }, - "mikegehard/isolated-commands-mcp-server": { - "package_name": "mikegehard/isolated-commands-mcp-server", - "repo_url": "https://github.com/mikegehard/isolated-commands-mcp-server", - "command": "/path/to/isolated-commands-mcp-server/build/index.js" - }, - "MCP-Mirror/ccc0168_modes-mcp-server": { - "package_name": "MCP-Mirror/ccc0168_modes-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/ccc0168_modes-mcp-server", - "command": "node", - "args": [ - "/path/to/modes-mcp-server/build/index.js" - ], - "env": { - "MODES_CONFIG_PATH": "${MODES_CONFIG_PATH}" - } - }, - "Funmula-Corp/BigGo-MCP-Server": { - "package_name": "Funmula-Corp/BigGo-MCP-Server", - "repo_url": "https://github.com/Funmula-Corp/BigGo-MCP-Server", - "command": "uvx", - "args": [ - "BigGo-MCP-Server@latest" - ], - "env": { - "BIGGO_MCP_SERVER_CLIENT_ID": "${BIGGO_MCP_SERVER_CLIENT_ID}", - "BIGGO_MCP_SERVER_CLIENT_SECRET": "${BIGGO_MCP_SERVER_CLIENT_SECRET}", - "BIGGO_MCP_SERVER_REGION": "${BIGGO_MCP_SERVER_REGION}" - } - }, - "zhangzhongnan928/mcp-coinbase-commerce": { - "package_name": "zhangzhongnan928/mcp-coinbase-commerce", - "repo_url": "https://github.com/zhangzhongnan928/mcp-coinbase-commerce", - "command": "node", - "args": [ - "/path/to/mcp-coinbase-commerce/dist/index.js" - ], - "env": { - "COINBASE_COMMERCE_API_KEY": "${COINBASE_COMMERCE_API_KEY}" - } - }, - "NishizukaKoichi/fastapi-mcp-server": { - "package_name": "NishizukaKoichi/fastapi-mcp-server", - "repo_url": "https://github.com/NishizukaKoichi/fastapi-mcp-server", - "command": "python", - "args": [ - "-m", - "fastapi_mcp_server.server" - ] - }, - "okooo5km/time-mcp-server": { - "package_name": "okooo5km/time-mcp-server", - "repo_url": "https://github.com/okooo5km/time-mcp-server", - "command": "time-mcp-server" - }, - "KyrieTangSheng/mcp-server-nationalparks": { - "package_name": "KyrieTangSheng/mcp-server-nationalparks", - "repo_url": "https://github.com/KyrieTangSheng/mcp-server-nationalparks", - "command": "npx", - "args": [ - "-y", - "mcp-server-nationalparks" - ], - "env": { - "NPS_API_KEY": "${NPS_API_KEY}" - } - }, - "21st-dev/magic-mcp": { - "package_name": "21st-dev/magic-mcp", - "repo_url": "https://github.com/21st-dev/magic-mcp", - "command": "npx", - "args": [ - "-y", - "@21st-dev/magic@latest", - "API_KEY=your-api-key" - ] - }, - "AnuragRai017/python-docs-server-MCP-Server": { - "package_name": "AnuragRai017/python-docs-server-MCP-Server", - "repo_url": "https://github.com/AnuragRai017/python-docs-server-MCP-Server", - "command": "/path/to/python-docs-server/build/index.js" - }, - "FradSer/mcp-server-to-markdown": { - "package_name": "FradSer/mcp-server-to-markdown", - "repo_url": "https://github.com/FradSer/mcp-server-to-markdown", - "command": "mcp-server-to-markdown" - }, - "Akira-Papa/akirapapa-mcp-notion-server": { - "package_name": "Akira-Papa/akirapapa-mcp-notion-server", - "repo_url": "https://github.com/Akira-Papa/akirapapa-mcp-notion-server", - "command": "node", - "args": [ - "your-built-file-path" - ], - "env": { - "NOTION_API_TOKEN": "${NOTION_API_TOKEN}" - } - }, - "burningion/video-editing-mcp": { - "package_name": "burningion/video-editing-mcp", - "repo_url": "https://github.com/burningion/video-editing-mcp", - "command": "uv", - "args": [ - "--directory", - "/Users/YOURDIRECTORY/video-editor-mcp", - "run", - "video-editor-mcp", - "YOURAPIKEY" - ] - }, - "AgentWong/iac-memory-mcp-server": { - "package_name": "AgentWong/iac-memory-mcp-server", - "repo_url": "https://github.com/AgentWong/iac-memory-mcp-server", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/AgentWong/iac-memory-mcp-server.git", - "python", - "-m", - "iac_memory_mcp_server" - ], - "env": { - "DATABASE_URL": "${DATABASE_URL}" - } - }, - "privetin/wikimedia": { - "package_name": "privetin/wikimedia", - "repo_url": "https://github.com/privetin/wikimedia", - "command": "uvx", - "args": [ - "wikimedia" - ] - }, - "ibraheem4/eventbrite-mcp": { - "package_name": "ibraheem4/eventbrite-mcp", - "repo_url": "https://github.com/ibraheem4/eventbrite-mcp", - "command": "npx", - "args": [ - "-y", - "@ibraheem4/eventbrite-mcp" - ], - "env": { - "EVENTBRITE_API_KEY": "${EVENTBRITE_API_KEY}" - } - }, - "ppl-ai/modelcontextprotocol": { - "package_name": "ppl-ai/modelcontextprotocol", - "repo_url": "https://github.com/ppl-ai/modelcontextprotocol", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-perplexity-ask" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "dubin555/clickhouse_mcp_server": { - "package_name": "dubin555/clickhouse_mcp_server", - "repo_url": "https://github.com/dubin555/clickhouse_mcp_server", - "command": "uv", - "args": [ - "--directory", - "/path/to/clickhouse_mcp_server", - "run", - "-m", - "clickhouse_mcp_server.server" - ], - "env": { - "CLICKHOUSE_HOST": "${CLICKHOUSE_HOST}", - "CLICKHOUSE_PORT": "${CLICKHOUSE_PORT}", - "CLICKHOUSE_USER": "${CLICKHOUSE_USER}", - "CLICKHOUSE_PASSWORD": "${CLICKHOUSE_PASSWORD}", - "CLICKHOUSE_DATABASE": "${CLICKHOUSE_DATABASE}" - } - }, - "PoliTwit1984/second-opinion-mcp-server": { - "package_name": "PoliTwit1984/second-opinion-mcp-server", - "repo_url": "https://github.com/PoliTwit1984/second-opinion-mcp-server", - "command": "node", - "args": [ - "/path/to/second-opinion-server/build/index.js" - ], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}", - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}", - "STACK_EXCHANGE_KEY": "${STACK_EXCHANGE_KEY}" - } - }, - "MCP-Mirror/trevorwilkerson_Windows-MCP-Server-Installation-Verification-Guide": { - "package_name": "MCP-Mirror/trevorwilkerson_Windows-MCP-Server-Installation-Verification-Guide", - "repo_url": "https://github.com/MCP-Mirror/trevorwilkerson_Windows-MCP-Server-Installation-Verification-Guide", - "command": "C:\\Program Files\\odejs\\ode.exe", - "args": [ - "C:\\Users\\Username\\AppData\\Roaming\\pm\\ode_modules\\@modelcontextprotocol\\server-sequential-thinking\\dist\\index.js" - ] - }, - "nexon33/search-fetch-server-mcp": { - "package_name": "nexon33/search-fetch-server-mcp", - "repo_url": "https://github.com/nexon33/search-fetch-server-mcp", - "command": "node", - "args": [ - "/path/to/search-fetch-server/build/index.js" - ] - }, - "wazzan/mcp-coincap-jj": { - "package_name": "wazzan/mcp-coincap-jj", - "repo_url": "https://github.com/wazzan/mcp-coincap-jj", - "command": "cmd.exe", - "args": [ - "/c", - "C:\\Program Files\\odejs\\px.cmd", - "C:\\Users\\YOUR-WINDOWS-USERNAME\\repos\\github\\mcp-coincap-jj" - ], - "env": { - "COINCAP_API_KEY": "${COINCAP_API_KEY}" - } - }, - "bmorphism/marginalia-mcp-server": { - "package_name": "bmorphism/marginalia-mcp-server", - "repo_url": "https://github.com/bmorphism/marginalia-mcp-server", - "command": "node", - "args": [ - "/Users/barton/worlds/servers/src/say-mcp-server/build/index.js" - ] - }, - "MubarakHAlketbi/game-asset-mcp": { - "package_name": "MubarakHAlketbi/game-asset-mcp", - "repo_url": "https://github.com/MubarakHAlketbi/game-asset-mcp", - "command": "node", - "args": [ - "/full/path/to/game-asset-mcp/src/index.js" - ] - }, - "zueai/vercel-api-mcp": { - "package_name": "zueai/vercel-api-mcp", - "repo_url": "https://github.com/zueai/vercel-api-mcp", - "command": "npx", - "args": [ - "vercel-mcp VERCEL_API_KEY=" - ] - }, - "madhukarkumar/mcp-ts-starter": { - "package_name": "madhukarkumar/mcp-ts-starter", - "repo_url": "https://github.com/madhukarkumar/mcp-ts-starter", - "command": "node", - "args": [ - "/build/stdio.js" - ] - }, - "justjoehere/mcp_gradio_client": { - "package_name": "justjoehere/mcp_gradio_client", - "repo_url": "https://github.com/justjoehere/mcp_gradio_client", - "command": "uvx", - "args": [] - }, - "burakdirin/mysqldb-mcp-server": { - "package_name": "burakdirin/mysqldb-mcp-server", - "repo_url": "https://github.com/burakdirin/mysqldb-mcp-server", - "command": "uvx", - "args": [ - "mysqldb-mcp-server" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}", - "MYSQL_READONLY": "${MYSQL_READONLY}" - } - }, - "mrchi/caiyun-weather-mcp-server": { - "package_name": "mrchi/caiyun-weather-mcp-server", - "repo_url": "https://github.com/mrchi/caiyun-weather-mcp-server", - "command": "uv", - "args": [ - "--directory", - "", - "run", - "--env-file", - ".env", - "servers/caiyun_weather.py" - ] - }, - "JackKuo666/Google-Scholar-MCP-Server": { - "package_name": "JackKuo666/Google-Scholar-MCP-Server", - "repo_url": "https://github.com/JackKuo666/Google-Scholar-MCP-Server", - "command": "bash", - "args": [ - "-c", - "source /home/YOUR/PATH/.venv/bin/activate && python /home/YOUR/PATH/google_scholar_mcp_server.py" - ] - }, - "ctvidic/strava-mcp-server": { - "package_name": "ctvidic/strava-mcp-server", - "repo_url": "https://github.com/ctvidic/strava-mcp-server", - "command": "python", - "args": [ - "src/strava_server.py" - ], - "env": { - "STRAVA_CLIENT_ID": "${STRAVA_CLIENT_ID}", - "STRAVA_CLIENT_SECRET": "${STRAVA_CLIENT_SECRET}", - "STRAVA_REFRESH_TOKEN": "${STRAVA_REFRESH_TOKEN}" - } - }, - "nbbaier/mcp-turso": { - "package_name": "nbbaier/mcp-turso", - "repo_url": "https://github.com/nbbaier/mcp-turso", - "command": "npx", - "args": [ - "-y", - "mcp-turso", - "--logs", - "/Users//path/to/dir/mcp-logs.log" - ], - "env": { - "TURSO_DATABASE_URL": "${TURSO_DATABASE_URL}", - "TURSO_AUTH_TOKEN": "${TURSO_AUTH_TOKEN}" - } - }, - "amgadabdelhafez/dbx-mcp-server": { - "package_name": "amgadabdelhafez/dbx-mcp-server", - "repo_url": "https://github.com/amgadabdelhafez/dbx-mcp-server", - "command": "node", - "args": [ - "/path/to/dbx-mcp-server/build/index.js" - ] - }, - "metatool-ai/mcp-server-metamcp": { - "package_name": "metatool-ai/mcp-server-metamcp", - "repo_url": "https://github.com/metatool-ai/mcp-server-metamcp", - "command": "npx", - "args": [ - "-y", - "@metamcp/mcp-server-metamcp@latest" - ], - "env": { - "METAMCP_API_KEY": "${METAMCP_API_KEY}" - } - }, - "davidteren/claude-server": { - "package_name": "davidteren/claude-server", - "repo_url": "https://github.com/davidteren/claude-server", - "command": "node", - "args": [ - "/path/to/claude-server/build/index.js" - ] - }, - "yuru-sha/mcp-server-dify": { - "package_name": "yuru-sha/mcp-server-dify", - "repo_url": "https://github.com/yuru-sha/mcp-server-dify", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-dify", - "https://your-dify-api-endpoint", - "your-dify-api-key" - ] - }, - "loonghao/wecom-bot-mcp-server": { - "package_name": "loonghao/wecom-bot-mcp-server", - "repo_url": "https://github.com/loonghao/wecom-bot-mcp-server", - "command": "uvx", - "args": [ - "wecom-bot-mcp-server" - ], - "env": { - "WECOM_WEBHOOK_URL": "${WECOM_WEBHOOK_URL}" - } - }, - "getfounded/mcp-tool-kit": { - "package_name": "getfounded/mcp-tool-kit", - "repo_url": "https://github.com/getfounded/mcp-tool-kit", - "command": "docker", - "args": [ - "exec", - "-i", - "mcp-tool-kit-mcp-server-1", - "python", - "-u", - "mcp_unified_server.py" - ] - }, - "kazuph/mcp-pocket": { - "package_name": "kazuph/mcp-pocket", - "repo_url": "https://github.com/kazuph/mcp-pocket", - "command": "npx", - "args": [ - "tsx", - "/path/to/mcp-pocket/index.ts" - ], - "env": { - "POCKET_CONSUMER_KEY": "${POCKET_CONSUMER_KEY}", - "POCKET_ACCESS_TOKEN": "${POCKET_ACCESS_TOKEN}" - } - }, - "akseyh/bear-mcp-server": { - "package_name": "akseyh/bear-mcp-server", - "repo_url": "https://github.com/akseyh/bear-mcp-server", - "command": "node", - "args": [ - ".../build/index.js" - ] - }, - "twolven/mcp-optionsflow": { - "package_name": "twolven/mcp-optionsflow", - "repo_url": "https://github.com/twolven/mcp-optionsflow", - "command": "python", - "args": [ - "path/to/optionsflow.py" - ] - }, - "garc33/js-sandbox-mcp-server": { - "package_name": "garc33/js-sandbox-mcp-server", - "repo_url": "https://github.com/garc33/js-sandbox-mcp-server", - "command": "/path/to/js-sandbox/build/index.js" - }, - "MCP-Mirror/Sunwood-ai-labs_github-kanban-mcp-server": { - "package_name": "MCP-Mirror/Sunwood-ai-labs_github-kanban-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Sunwood-ai-labs_github-kanban-mcp-server", - "command": "github-kanban-mcp-server" - }, - "Garblesnarff/gemini-mcp-server": { - "package_name": "Garblesnarff/gemini-mcp-server", - "repo_url": "https://github.com/Garblesnarff/gemini-mcp-server", - "command": "/bin/bash", - "args": [ - "-c", - "/path/to/your/gemini-mcp-wrapper.sh" - ], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}", - "DEBUG": "${DEBUG}" - } - }, - "ZZZHDW/mcp-server-kusto": { - "package_name": "ZZZHDW/mcp-server-kusto", - "repo_url": "https://github.com/ZZZHDW/mcp-server-kusto", - "command": "uv", - "args": [ - "--directory", - "{{PATH_TO_PROJECT}}\\mcp-server-kusto\\src\\mcp_server_kusto", - "run", - "mcp-server-kusto", - "--cluster", - "{{ADX_CLUSTER_URL}}" - ] - }, - "adamwattis/resource-hub-server": { - "package_name": "adamwattis/resource-hub-server", - "repo_url": "https://github.com/adamwattis/resource-hub-server", - "command": "npx @adamwattis/resource-hub-server" - }, - "Asphere-xyz/aapi-mcp-server": { - "package_name": "Asphere-xyz/aapi-mcp-server", - "repo_url": "https://github.com/Asphere-xyz/aapi-mcp-server", - "command": "npx", - "args": [ - "-y", - "@asphere/aapi-mcp-server" - ], - "env": { - "ANKR_API_KEY": "${ANKR_API_KEY}" - } - }, - "noahlozevski/mcp-idb": { - "package_name": "noahlozevski/mcp-idb", - "repo_url": "https://github.com/noahlozevski/mcp-idb", - "command": "npx", - "args": [ - "-y", - "@noahlozevski/idb" - ] - }, - "ruibaby/1panel-mcp": { - "package_name": "ruibaby/1panel-mcp", - "repo_url": "https://github.com/ruibaby/1panel-mcp" - }, - "kiliczsh/mcp-mongo-server": { - "package_name": "kiliczsh/mcp-mongo-server", - "repo_url": "https://github.com/kiliczsh/mcp-mongo-server", - "command": "npx", - "args": [ - "-y", - "mcp-mongo-server", - "mongodb://muhammed:kilic@mongodb.localhost/sample_namespace" - ] - }, - "ctoouli/mcp-stock-market": { - "package_name": "ctoouli/mcp-stock-market", - "repo_url": "https://github.com/ctoouli/mcp-stock-market", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-stock-market/build/index.js" - ] - }, - "angrysky56/mcp-logic": { - "package_name": "angrysky56/mcp-logic", - "repo_url": "https://github.com/angrysky56/mcp-logic", - "command": "uv", - "args": [ - "--directory", - "path/to/mcp-logic/src/mcp_logic", - "run", - "mcp_logic", - "--prover-path", - "path/to/Prover9-Mace4/bin-win32" - ] - }, - "tumf/mcp-text-editor": { - "package_name": "tumf/mcp-text-editor", - "repo_url": "https://github.com/tumf/mcp-text-editor", - "command": "uvx", - "args": [ - "mcp-text-editor" - ] - }, - "SAhmadUmass/notion-mcp-server": { - "package_name": "SAhmadUmass/notion-mcp-server", - "repo_url": "https://github.com/SAhmadUmass/notion-mcp-server", - "command": "node", - "args": [ - "/Users/shaheerahmad/Documents/notion-mcp-server/dist/index.js", - "--notion-api-key=YOUR_ACTUAL_API_KEY_HERE" - ] - }, - "HubbleVision/hubble-ai-mcp": { - "package_name": "HubbleVision/hubble-ai-mcp", - "repo_url": "https://github.com/HubbleVision/hubble-ai-mcp", - "command": "npx", - "args": [ - "-y", - "hubble-mcp-tool" - ], - "env": { - "HUBBLE_API_KEY": "${HUBBLE_API_KEY}" - } - }, - "pavelanni/mcp-server-minio-go": { - "package_name": "pavelanni/mcp-server-minio-go", - "repo_url": "https://github.com/pavelanni/mcp-server-minio-go", - "command": "/PATH/TO/YOUR/mcp-server-minio-go", - "args": [ - "--allow-write", - "--allow-delete", - "--allow-admin", - "--allowed-directories", - "~/Desktop", - "~/Documents" - ], - "env": { - "MINIO_ENDPOINT": "${MINIO_ENDPOINT}", - "MINIO_ACCESS_KEY": "${MINIO_ACCESS_KEY}", - "MINIO_SECRET_KEY": "${MINIO_SECRET_KEY}", - "MINIO_USE_SSL": "${MINIO_USE_SSL}" - } - }, - "MCP-Mirror/datalayer_jupyter-mcp-server": { - "package_name": "MCP-Mirror/datalayer_jupyter-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/datalayer_jupyter-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "SERVER_URL", - "-e", - "TOKEN", - "-e", - "NOTEBOOK_PATH", - "--network=host", - "datalayer/jupyter-mcp-server:latest" - ], - "env": { - "SERVER_URL": "${SERVER_URL}", - "TOKEN": "${TOKEN}", - "NOTEBOOK_PATH": "${NOTEBOOK_PATH}" - } - }, - "PoliTwit1984/mcp-perplexity-server": { - "package_name": "PoliTwit1984/mcp-perplexity-server", - "repo_url": "https://github.com/PoliTwit1984/mcp-perplexity-server", - "command": "node", - "args": [ - "/absolute/path/to/perplexity-server/build/index.js" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "MCP-Mirror/blazickjp_arxiv-mcp-server": { - "package_name": "MCP-Mirror/blazickjp_arxiv-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/blazickjp_arxiv-mcp-server", - "command": "uv", - "args": [ - "run", - "arxiv-mcp-server", - "--storage-path", - "/path/to/paper/storage" - ] - }, - "MCP-Mirror/loglmhq_mcp-server-github-repo": { - "package_name": "MCP-Mirror/loglmhq_mcp-server-github-repo", - "repo_url": "https://github.com/MCP-Mirror/loglmhq_mcp-server-github-repo", - "command": "/path/to/mcp-server-github-repo/build/index.js" - }, - "Swayingleaves/cockroachdb-mcp-server": { - "package_name": "Swayingleaves/cockroachdb-mcp-server", - "repo_url": "https://github.com/Swayingleaves/cockroachdb-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/local/cockroachdb-mcp", - "run", - "server.py" - ] - }, - "mcpdotdirect/template-mcp-server": { - "package_name": "mcpdotdirect/template-mcp-server", - "repo_url": "https://github.com/mcpdotdirect/template-mcp-server", - "command": "npm", - "args": [ - "start" - ], - "env": { - "NODE_ENV": "${NODE_ENV}" - } - }, - "MCP-Mirror/ruchernchong_mcp-server-google-analytics": { - "package_name": "MCP-Mirror/ruchernchong_mcp-server-google-analytics", - "repo_url": "https://github.com/MCP-Mirror/ruchernchong_mcp-server-google-analytics", - "command": "npx", - "args": [ - "-y", - "mcp-server-google-analytics" - ], - "env": { - "GOOGLE_CLIENT_EMAIL": "${GOOGLE_CLIENT_EMAIL}", - "GOOGLE_PRIVATE_KEY": "${GOOGLE_PRIVATE_KEY}", - "GA_PROPERTY_ID": "${GA_PROPERTY_ID}" - } - }, - "lloydzhou/bitable-mcp": { - "package_name": "lloydzhou/bitable-mcp", - "repo_url": "https://github.com/lloydzhou/bitable-mcp", - "command": "python", - "args": [ - "-m", - "bitable_mcp" - ], - "env": { - "PERSONAL_BASE_TOKEN": "${PERSONAL_BASE_TOKEN}", - "APP_TOKEN": "${APP_TOKEN}" - } - }, - "BurtTheCoder/mcp-shodan": { - "package_name": "BurtTheCoder/mcp-shodan", - "repo_url": "https://github.com/BurtTheCoder/mcp-shodan", - "command": "mcp-shodan", - "env": { - "SHODAN_API_KEY": "${SHODAN_API_KEY}" - } - }, - "oschina/mcp-gitee": { - "package_name": "oschina/mcp-gitee", - "repo_url": "https://github.com/oschina/mcp-gitee", - "command": "mcp-gitee", - "env": { - "GITEE_API_BASE": "${GITEE_API_BASE}", - "GITEE_ACCESS_TOKEN": "${GITEE_ACCESS_TOKEN}" - } - }, - "jonemo/openpyxl-mcp-server": { - "package_name": "jonemo/openpyxl-mcp-server", - "repo_url": "https://github.com/jonemo/openpyxl-mcp-server", - "command": "/Users/jonas/repos/openpyxl_mcp_server/venv/bin/python", - "args": [ - "/Users/jonas/repos/openpyxl_mcp_server/openpyxl_mcp_server.py" - ] - }, - "financial-datasets/mcp-server": { - "package_name": "financial-datasets/mcp-server", - "repo_url": "https://github.com/financial-datasets/mcp-server", - "command": "/path/to/uv", - "args": [ - "--directory", - "/absolute/path/to/financial-datasets-mcp", - "run", - "server.py" - ] - }, - "f440/docbase-mcp-server": { - "package_name": "f440/docbase-mcp-server", - "repo_url": "https://github.com/f440/docbase-mcp-server", - "command": "cmd", - "args": [ - "/c", - "npx", - "-y", - "figma-developer-mcp", - "--figma-api-key=YOUR-KEY", - "--stdio" - ] - }, - "arpitbatra123/mcp-googletasks": { - "package_name": "arpitbatra123/mcp-googletasks", - "repo_url": "https://github.com/arpitbatra123/mcp-googletasks", - "command": "node", - "args": [ - "/path/to/google-tasks-mcp/build/index.js" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}", - "GOOGLE_REDIRECT_URI": "${GOOGLE_REDIRECT_URI}" - } - }, - "aaronsb/google-workspace-mcp": { - "package_name": "aaronsb/google-workspace-mcp", - "repo_url": "https://github.com/aaronsb/google-workspace-mcp", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-v", - "/home/aaron/.mcp/google-workspace-mcp:/app/config", - "-e", - "GOOGLE_CLIENT_ID", - "-e", - "GOOGLE_CLIENT_SECRET", - "-e", - "LOG_MODE=strict", - "ghcr.io/aaronsb/google-workspace-mcp:latest" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}" - } - }, - "apify/actors-mcp-server": { - "package_name": "apify/actors-mcp-server", - "repo_url": "https://github.com/apify/actors-mcp-server", - "command": "npx", - "args": [ - "-y", - "@apify/actors-mcp-server", - "--actors", - "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper" - ], - "env": { - "APIFY_TOKEN": "${APIFY_TOKEN}" - } - }, - "tembo-io/mcp-server-tembo": { - "package_name": "tembo-io/mcp-server-tembo", - "repo_url": "https://github.com/tembo-io/mcp-server-tembo", - "command": "node", - "args": [ - "/absolute/path/to/cloned/repo/mcp-server-tembo/dist/index.js" - ], - "env": { - "TEMBO_API_KEY": "${TEMBO_API_KEY}" - } - }, - "OwenQian/mcp-server-manager": { - "package_name": "OwenQian/mcp-server-manager", - "repo_url": "https://github.com/OwenQian/mcp-server-manager" - }, - "nickclyde/duckduckgo-mcp-server": { - "package_name": "nickclyde/duckduckgo-mcp-server", - "repo_url": "https://github.com/nickclyde/duckduckgo-mcp-server", - "command": "uvx", - "args": [ - "duckduckgo-mcp-server" - ] - }, - "explorium-ai/mcp-explorium": { - "package_name": "explorium-ai/mcp-explorium", - "repo_url": "https://github.com/explorium-ai/mcp-explorium", - "command": "", - "args": [ - "run", - "--directory", - "", - "mcp", - "run", - "local_dev_server.py" - ], - "env": { - "EXPLORIUM_API_KEY": "${EXPLORIUM_API_KEY}" - } - }, - "garc33/bitbucket-server-mcp-server": { - "package_name": "garc33/bitbucket-server-mcp-server", - "repo_url": "https://github.com/garc33/bitbucket-server-mcp-server", - "command": "node", - "args": [ - "/path/to/bitbucket-server/build/index.js" - ], - "env": { - "BITBUCKET_URL": "${BITBUCKET_URL}", - "BITBUCKET_TOKEN": "${BITBUCKET_TOKEN}", - "BITBUCKET_USERNAME": "${BITBUCKET_USERNAME}", - "BITBUCKET_PASSWORD": "${BITBUCKET_PASSWORD}", - "BITBUCKET_DEFAULT_PROJECT": "${BITBUCKET_DEFAULT_PROJECT}" - } - }, - "spences10/mcp-perplexity-search": { - "package_name": "spences10/mcp-perplexity-search", - "repo_url": "https://github.com/spences10/mcp-perplexity-search", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "source ~/.nvm/nvm.sh && PERPLEXITY_API_KEY=your-perplexity-api-key /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-perplexity-search" - ] - }, - "MCP-Mirror/crazyrabbitLTC_mcp-coingecko-server": { - "package_name": "MCP-Mirror/crazyrabbitLTC_mcp-coingecko-server", - "repo_url": "https://github.com/MCP-Mirror/crazyrabbitLTC_mcp-coingecko-server", - "command": "node", - "args": [ - "/path/to/coingecko-server/build/index.js" - ], - "env": { - "COINGECKO_API_KEY": "${COINGECKO_API_KEY}" - } - }, - "AnuragRai017/database-updater-MCP-Server": { - "package_name": "AnuragRai017/database-updater-MCP-Server", - "repo_url": "https://github.com/AnuragRai017/database-updater-MCP-Server", - "command": "/path/to/database-updater/build/index.js" - }, - "MCP-Mirror/hmk_attio-mcp-server": { - "package_name": "MCP-Mirror/hmk_attio-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/hmk_attio-mcp-server", - "command": "npx", - "args": [ - "attio-mcp-server" - ], - "env": { - "ATTIO_API_KEY": "${ATTIO_API_KEY}" - } - }, - "metoro-io/metoro-mcp-server": { - "package_name": "metoro-io/metoro-mcp-server", - "repo_url": "https://github.com/metoro-io/metoro-mcp-server", - "command": "/metoro-mcp-server", - "args": [], - "env": { - "METORO_AUTH_TOKEN": "${METORO_AUTH_TOKEN}", - "METORO_API_URL": "${METORO_API_URL}" - } - }, - "okto-hq/okto-mcp-server": { - "package_name": "okto-hq/okto-mcp-server", - "repo_url": "https://github.com/okto-hq/okto-mcp-server", - "command": "npx", - "args": [ - "@okto_web3/okto-mcp-server@latest" - ], - "env": { - "OKTO_ENVIRONMENT": "${OKTO_ENVIRONMENT}", - "OKTO_CLIENT_PRIVATE_KEY": "${OKTO_CLIENT_PRIVATE_KEY}", - "OKTO_CLIENT_SWA": "${OKTO_CLIENT_SWA}" - } - }, - "blurrah/mcp-graphql": { - "package_name": "blurrah/mcp-graphql", - "repo_url": "https://github.com/blurrah/mcp-graphql", - "command": "npx", - "args": [ - "mcp-graphql" - ], - "env": { - "ENDPOINT": "${ENDPOINT}" - } - }, - "samuraikun/aws-s3-mcp": { - "package_name": "samuraikun/aws-s3-mcp", - "repo_url": "https://github.com/samuraikun/aws-s3-mcp", - "command": "your-absolute-path-to-node", - "args": [ - "your-absolute-path-to-aws-s3-mcp/dist/index.js" - ], - "env": { - "AWS_REGION": "${AWS_REGION}", - "S3_BUCKETS": "${S3_BUCKETS}", - "S3_MAX_BUCKETS": "${S3_MAX_BUCKETS}", - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}" - } - }, - "siddheshutd/x-mcp-server": { - "package_name": "siddheshutd/x-mcp-server", - "repo_url": "https://github.com/siddheshutd/x-mcp-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/x-mcp-server/build/index.js" - ], - "env": { - "X_API_KEY": "${X_API_KEY}", - "X_API_KEY_SECRET": "${X_API_KEY_SECRET}", - "X_ACCESS_TOKEN": "${X_ACCESS_TOKEN}", - "X_ACCESS_TOKEN_SECRET": "${X_ACCESS_TOKEN_SECRET}" - } - }, - "jasondsmith72/CWM-MCP": { - "package_name": "jasondsmith72/CWM-MCP", - "repo_url": "https://github.com/jasondsmith72/CWM-MCP" - }, - "MCP-Mirror/tatn_mcp-server-diff-typescript": { - "package_name": "MCP-Mirror/tatn_mcp-server-diff-typescript", - "repo_url": "https://github.com/MCP-Mirror/tatn_mcp-server-diff-typescript", - "command": "node", - "args": [ - "/path/to/mcp-server-diff-typescript/build/index.js" - ] - }, - "CodifyAG/mcp-server-harvest-time-tracking": { - "package_name": "CodifyAG/mcp-server-harvest-time-tracking", - "repo_url": "https://github.com/CodifyAG/mcp-server-harvest-time-tracking", - "command": "python", - "args": [ - "-m", - "src.server" - ], - "env": { - "HARVEST_ACCOUNT_ID": "${HARVEST_ACCOUNT_ID}", - "HARVEST_ACCESS_TOKEN": "${HARVEST_ACCESS_TOKEN}" - } - }, - "zerubroberts/safetyculture-mcp-server": { - "package_name": "zerubroberts/safetyculture-mcp-server", - "repo_url": "https://github.com/zerubroberts/safetyculture-mcp-server", - "command": "python", - "args": [ - "/path/to/your/project/src/main.py" - ] - }, - "GongRzhe/Audio-MCP-Server": { - "package_name": "GongRzhe/Audio-MCP-Server", - "repo_url": "https://github.com/GongRzhe/Audio-MCP-Server", - "command": "/path/to/your/.venv/bin/python", - "args": [ - "/path/to/your/audio_server.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "xue160709/yt-mcp-server": { - "package_name": "xue160709/yt-mcp-server", - "repo_url": "https://github.com/xue160709/yt-mcp-server", - "command": "npx", - "args": [ - "yt-mcp-server" - ] - }, - "plapinski/PHPocalypse-MCP": { - "package_name": "plapinski/PHPocalypse-MCP", - "repo_url": "https://github.com/plapinski/PHPocalypse-MCP", - "command": "npx", - "args": [ - "tsx", - "/Absolute/Path/To/PHPocalypse-MCP/src/index.ts", - "--config", - "/Absolute/Path/To/Your/PHP/Based/Project/phpocalypse-mcp.yaml" - ] - }, - "qianwens/azure-deploy-mcp-server": { - "package_name": "qianwens/azure-deploy-mcp-server", - "repo_url": "https://github.com/qianwens/azure-deploy-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ], - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "heltonteixeira/ragdocs": { - "package_name": "heltonteixeira/ragdocs", - "repo_url": "https://github.com/heltonteixeira/ragdocs", - "command": "node", - "args": [ - "@mcpservers/ragdocs" - ], - "env": { - "QDRANT_URL": "${QDRANT_URL}", - "EMBEDDING_PROVIDER": "${EMBEDDING_PROVIDER}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "idyll/party-time-mcp": { - "package_name": "idyll/party-time-mcp", - "repo_url": "https://github.com/idyll/party-time-mcp", - "command": "/path/to/your/party_time_mcp", - "args": [] - }, - "GongRzhe/Quickchart-MCP-Server": { - "package_name": "GongRzhe/Quickchart-MCP-Server", - "repo_url": "https://github.com/GongRzhe/Quickchart-MCP-Server", - "command": "npx", - "args": [ - "-y", - "@gongrzhe/quickchart-mcp-server" - ] - }, - "MCP-Mirror/kentaro_mcp-local-command-server": { - "package_name": "MCP-Mirror/kentaro_mcp-local-command-server", - "repo_url": "https://github.com/MCP-Mirror/kentaro_mcp-local-command-server", - "command": "/path/to/mcp-local-command-server/build/index.js" - }, - "devabdultech/hn-mcp": { - "package_name": "devabdultech/hn-mcp", - "repo_url": "https://github.com/devabdultech/hn-mcp", - "command": "npx", - "args": [ - "-y", - "@devabdultech/hn-mcp-server" - ] - }, - "openledger/Open-Ledger-MCP-Server": { - "package_name": "openledger/Open-Ledger-MCP-Server", - "repo_url": "https://github.com/openledger/Open-Ledger-MCP-Server" - }, - "Greg-Swiftomatic/substack-mcp-server": { - "package_name": "Greg-Swiftomatic/substack-mcp-server", - "repo_url": "https://github.com/Greg-Swiftomatic/substack-mcp-server", - "command": "python", - "args": [ - "/ABSOLUTE/PATH/TO/substack-mcp-server/substack_mcp.py" - ] - }, - "secmate-ai/CyberSecurity-MCPs": { - "package_name": "secmate-ai/CyberSecurity-MCPs", - "repo_url": "https://github.com/secmate-ai/CyberSecurity-MCPs", - "command": "/path/to/sqlmap-mcp/build/index.js" - }, - "abhishekbhakat/mcp_server_code_assist": { - "package_name": "abhishekbhakat/mcp_server_code_assist", - "repo_url": "https://github.com/abhishekbhakat/mcp_server_code_assist", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "--mount", - "type=bind,src=/Users/username,dst=/Users/username", - "mcp/code-assist" - ] - }, - "obinopaul/nba-mcp-server": { - "package_name": "obinopaul/nba-mcp-server", - "repo_url": "https://github.com/obinopaul/nba-mcp-server", - "command": "/path/to/your/python", - "args": [ - "/path/to/nba_server.py" - ] - }, - "jootsuki/backlog-mcp-server": { - "package_name": "jootsuki/backlog-mcp-server", - "repo_url": "https://github.com/jootsuki/backlog-mcp-server", - "command": "docker", - "args": [ - "exec", - "-i", - "backlog-mcp-server", - "node", - "build/index.js" - ], - "env": { - "BACKLOG_SPACE_URL": "${BACKLOG_SPACE_URL}", - "BACKLOG_API_KEY": "${BACKLOG_API_KEY}" - } - }, - "Muralikrishankp/Twitter-MCP-Server-for-Claude": { - "package_name": "Muralikrishankp/Twitter-MCP-Server-for-Claude", - "repo_url": "https://github.com/Muralikrishankp/Twitter-MCP-Server-for-Claude", - "command": "C:\\Users\\YOUR_USERNAME\\twitter-trends-mcp\\.venv\\Scripts\\python.exe", - "args": [ - "C:\\Users\\YOUR_USERNAME\\twitter-trends-mcp\\twitter_server_run.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}", - "PYTHONUNBUFFERED": "${PYTHONUNBUFFERED}" - } - }, - "fabian1710/mcp-intercom": { - "package_name": "fabian1710/mcp-intercom", - "repo_url": "https://github.com/fabian1710/mcp-intercom", - "command": "node", - "args": [ - "/path/to/mcp-intercom/dist/index.js" - ], - "env": { - "INTERCOM_API_KEY": "${INTERCOM_API_KEY}" - } - }, - "leonardsellem/n8n-mcp-server": { - "package_name": "leonardsellem/n8n-mcp-server", - "repo_url": "https://github.com/leonardsellem/n8n-mcp-server", - "command": "node", - "args": [ - "/path/to/your/cloned/n8n-mcp-server/build/index.js" - ], - "env": { - "N8N_API_URL": "${N8N_API_URL}", - "N8N_API_KEY": "${N8N_API_KEY}" - } - }, - "davidamom/snowflake-mcp": { - "package_name": "davidamom/snowflake-mcp", - "repo_url": "https://github.com/davidamom/snowflake-mcp", - "command": "/usr/bin/python3", - "args": [ - "/path/to/snowflake-mcp/server.py" - ] - }, - "Dbillionaer/polygon-mcp": { - "package_name": "Dbillionaer/polygon-mcp", - "repo_url": "https://github.com/Dbillionaer/polygon-mcp", - "command": "node", - "args": [ - "path/to/polygon-mcp.js" - ], - "env": { - "POLYGON_MAINNET_RPC": "${POLYGON_MAINNET_RPC}", - "POLYGON_AMOY_RPC": "${POLYGON_AMOY_RPC}", - "ETHEREUM_RPC_URL": "${ETHEREUM_RPC_URL}", - "POLYGONSCAN_API_KEY": "${POLYGONSCAN_API_KEY}", - "PRIVATE_KEY": "${PRIVATE_KEY}", - "DEFAULT_NETWORK": "${DEFAULT_NETWORK}", - "DEFAULT_SLIPPAGE": "${DEFAULT_SLIPPAGE}", - "DEFAULT_DEADLINE_MINUTES": "${DEFAULT_DEADLINE_MINUTES}" - } - }, - "ScrapeGraphAI/scrapegraph-mcp": { - "package_name": "ScrapeGraphAI/scrapegraph-mcp", - "repo_url": "https://github.com/ScrapeGraphAI/scrapegraph-mcp", - "command": "npx", - "args": [ - "-y", - "@smithery/cli@latest", - "run", - "@ScrapeGraphAI/scrapegraph-mcp", - "--config", - "{\"scrapegraphApiKey\":\"YOUR-SGAI-API-KEY\"}" - ] - }, - "kmwebnet/MCP-Server-for-sensor-device": { - "package_name": "kmwebnet/MCP-Server-for-sensor-device", - "repo_url": "https://github.com/kmwebnet/MCP-Server-for-sensor-device", - "command": "node", - "args": [ - "...mcp-server-for-sensor-device/index.js" - ] - }, - "MCP-Mirror/nahmanmate_better-auth-mcp-server": { - "package_name": "MCP-Mirror/nahmanmate_better-auth-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/nahmanmate_better-auth-mcp-server", - "command": "node", - "args": [ - "/path/to/better-auth-mcp-server/build/index.js" - ] - }, - "MCP-Mirror/Nayshins_mcp-server-ccxt": { - "package_name": "MCP-Mirror/Nayshins_mcp-server-ccxt", - "repo_url": "https://github.com/MCP-Mirror/Nayshins_mcp-server-ccxt", - "command": "python", - "args": [ - "/path/to/crypto_server.py" - ] - }, - "ai-yliu/filesystem-mcp-server": { - "package_name": "ai-yliu/filesystem-mcp-server", - "repo_url": "https://github.com/ai-yliu/filesystem-mcp-server", - "command": "node", - "args": [ - "/path/to/filesystem-server/build/index.js", - "/path/to/allowed/dir1", - "/path/to/allowed/dir2" - ] - }, - "TomCools/twitch-mcp": { - "package_name": "TomCools/twitch-mcp", - "repo_url": "https://github.com/TomCools/twitch-mcp", - "command": "jbang", - "args": [ - "--quiet", - "-Dtwitch.channel=YOUR_CHANNEL_NAME", - "-Dtwitch.auth=YOUR_API_KEY", - "be.tomcools:twitch-mcp:1.0.0-SNAPSHOT:runner" - ] - }, - "StevenBtw/uv-docs-mcp": { - "package_name": "StevenBtw/uv-docs-mcp", - "repo_url": "https://github.com/StevenBtw/uv-docs-mcp", - "command": "uvx", - "args": [ - "uv-docs" - ] - }, - "blazickjp/arxiv-mcp-server": { - "package_name": "blazickjp/arxiv-mcp-server", - "repo_url": "https://github.com/blazickjp/arxiv-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/cloned/arxiv-mcp-server", - "run", - "arxiv-mcp-server", - "--storage-path", - "/path/to/paper/storage" - ] - }, - "reeeeemo/ancestry-mcp": { - "package_name": "reeeeemo/ancestry-mcp", - "repo_url": "https://github.com/reeeeemo/ancestry-mcp", - "command": "mcp-server-ancestry", - "args": [ - "--gedcom-path", - "path/to/your/gedcom/files" - ] - }, - "apinetwork/piapi-mcp-server": { - "package_name": "apinetwork/piapi-mcp-server", - "repo_url": "https://github.com/apinetwork/piapi-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/piapi-mcp-server/dist/index.js" - ], - "env": { - "PIAPI_API_KEY": "${PIAPI_API_KEY}" - } - }, - "danielma-tic/fillout-mcp-server": { - "package_name": "danielma-tic/fillout-mcp-server", - "repo_url": "https://github.com/danielma-tic/fillout-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-fillout" - ], - "env": { - "FILLOUT_API_KEY": "${FILLOUT_API_KEY}" - } - }, - "acryldata/mcp-server-datahub": { - "package_name": "acryldata/mcp-server-datahub", - "repo_url": "https://github.com/acryldata/mcp-server-datahub", - "command": "uvx", - "args": [ - "mcp-server-datahub" - ], - "env": { - "DATAHUB_GMS_URL": "${DATAHUB_GMS_URL}", - "DATAHUB_GMS_TOKEN": "${DATAHUB_GMS_TOKEN}" - } - }, - "RayanZaki/mcp-google-contacts-server": { - "package_name": "RayanZaki/mcp-google-contacts-server", - "repo_url": "https://github.com/RayanZaki/mcp-google-contacts-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-google-contacts-server", - "run", - "main.py" - ] - }, - "zenturacp/tavily-server": { - "package_name": "zenturacp/tavily-server", - "repo_url": "https://github.com/zenturacp/tavily-server", - "command": "/path/to/tavily-server/build/index.js" - }, - "spences10/mcp-sequentialthinking-tools": { - "package_name": "spences10/mcp-sequentialthinking-tools", - "repo_url": "https://github.com/spences10/mcp-sequentialthinking-tools", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "source ~/.nvm/nvm.sh && /home/username/.nvm/versions/node/v20.12.1/bin/npx mcp-sequentialthinking-tools" - ] - }, - "spolepaka/youtube-mcp": { - "package_name": "spolepaka/youtube-mcp", - "repo_url": "https://github.com/spolepaka/youtube-mcp", - "command": "node", - "args": [ - "/absolute/path/to/youtube-mcp/build/index.js" - ] - }, - "AshikNesin/pushover-mcp": { - "package_name": "AshikNesin/pushover-mcp", - "repo_url": "https://github.com/AshikNesin/pushover-mcp", - "command": "npx", - "args": [ - "-y", - "pushover-mcp@latest", - "start", - "--token", - "YOUR_TOKEN", - "--user", - "YOUR_USER" - ] - }, - "arturonaredo/mcp-server-simulator-ios-idb": { - "package_name": "arturonaredo/mcp-server-simulator-ios-idb", - "repo_url": "https://github.com/arturonaredo/mcp-server-simulator-ios-idb", - "command": "node", - "args": [ - "/path/to/mcp-server-simulator-ios-idb/dist/index.js" - ] - }, - "MCP-Mirror/Flux159_mcp-server-kubernetes": { - "package_name": "MCP-Mirror/Flux159_mcp-server-kubernetes", - "repo_url": "https://github.com/MCP-Mirror/Flux159_mcp-server-kubernetes", - "command": "npx", - "args": [ - "mcp-server-kubernetes" - ] - }, - "gleanwork/mcp-server": { - "package_name": "gleanwork/mcp-server", - "repo_url": "https://github.com/gleanwork/mcp-server", - "command": "npx", - "args": [ - "-y", - "@gleanwork/mcp-server" - ], - "env": { - "GLEAN_SUBDOMAIN": "${GLEAN_SUBDOMAIN}", - "GLEAN_API_TOKEN": "${GLEAN_API_TOKEN}" - } - }, - "seonglae/mcp-notion": { - "package_name": "seonglae/mcp-notion", - "repo_url": "https://github.com/seonglae/mcp-notion", - "command": "node", - "args": [ - "/path/to/mcp/build/index.js" - ], - "env": { - "ROOT_PAGE": "${ROOT_PAGE}" - } - }, - "bankless/onchain-mcp": { - "package_name": "bankless/onchain-mcp", - "repo_url": "https://github.com/bankless/onchain-mcp", - "command": "npx", - "args": [ - "@bankless/onchain-mcp" - ], - "env": { - "BANKLESS_API_TOKEN": "${BANKLESS_API_TOKEN}" - } - }, - "MCP-Mirror/aliargun_mcp-server-gemini": { - "package_name": "MCP-Mirror/aliargun_mcp-server-gemini", - "repo_url": "https://github.com/MCP-Mirror/aliargun_mcp-server-gemini", - "command": "npx", - "args": [ - "-y", - "github:aliargun/mcp-server-gemini" - ], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}" - } - }, - "samuelgursky/davinci-resolve-mcp": { - "package_name": "samuelgursky/davinci-resolve-mcp", - "repo_url": "https://github.com/samuelgursky/davinci-resolve-mcp", - "command": "/path/to/your/venv/bin/python", - "args": [ - "/path/to/your/davinci-resolve-mcp/src/main.py" - ] - }, - "RoryRedbox/gameanalytics-mcp-server": { - "package_name": "RoryRedbox/gameanalytics-mcp-server", - "repo_url": "https://github.com/RoryRedbox/gameanalytics-mcp-server", - "command": "/path/to/gameanalytics-server/build/index.js" - }, - "n0r1h/backlog-mcp-server": { - "package_name": "n0r1h/backlog-mcp-server", - "repo_url": "https://github.com/n0r1h/backlog-mcp-server", - "command": "/path/to/backlog-mcp-server/build/index.js" - }, - "lenwood/cfbd-mcp-server": { - "package_name": "lenwood/cfbd-mcp-server", - "repo_url": "https://github.com/lenwood/cfbd-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/full/path/to/cfbd-mcp-server", - "run", - "cfbd-mcp-server" - ], - "env": { - "CFB_API_KEY": "${CFB_API_KEY}", - "PATH": "${PATH}" - } - }, - "elizabethtrykin/8sleep-mcp": { - "package_name": "elizabethtrykin/8sleep-mcp", - "repo_url": "https://github.com/elizabethtrykin/8sleep-mcp", - "command": "node", - "args": [ - "/absolute/path/to/eight-sleep-mcp/build/index.js" - ], - "env": { - "EIGHT_SLEEP_EMAIL": "${EIGHT_SLEEP_EMAIL}", - "EIGHT_SLEEP_PASSWORD": "${EIGHT_SLEEP_PASSWORD}", - "EIGHT_SLEEP_USER_ID": "${EIGHT_SLEEP_USER_ID}", - "EIGHT_SLEEP_CLIENT_ID": "${EIGHT_SLEEP_CLIENT_ID}", - "EIGHT_SLEEP_CLIENT_SECRET": "${EIGHT_SLEEP_CLIENT_SECRET}" - } - }, - "pci-frontend/mcp-server-gitlab": { - "package_name": "pci-frontend/mcp-server-gitlab", - "repo_url": "https://github.com/pci-frontend/mcp-server-gitlab", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-gitlab" - ], - "env": { - "GITLAB_PERSONAL_ACCESS_TOKEN": "${GITLAB_PERSONAL_ACCESS_TOKEN}", - "GITLAB_API_URL": "${GITLAB_API_URL}" - } - }, - "RafaelCartenet/mcp-databricks-server": { - "package_name": "RafaelCartenet/mcp-databricks-server", - "repo_url": "https://github.com/RafaelCartenet/mcp-databricks-server", - "command": "python", - "args": [ - "/path/to/your/mcp-databricks-server/main.py" - ] - }, - "illuminaresolutions/n8n-mcp-server": { - "package_name": "illuminaresolutions/n8n-mcp-server", - "repo_url": "https://github.com/illuminaresolutions/n8n-mcp-server", - "command": "n8n-mcp-server", - "env": { - "N8N_HOST": "${N8N_HOST}", - "N8N_API_KEY": "${N8N_API_KEY}" - } - }, - "hexitex/MCP-Backup-Server": { - "package_name": "hexitex/MCP-Backup-Server", - "repo_url": "https://github.com/hexitex/MCP-Backup-Server", - "command": "node", - "args": [ - "./dist/index.js" - ], - "env": { - "BACKUP_DIR": "${BACKUP_DIR}", - "EMERGENCY_BACKUP_DIR": "${EMERGENCY_BACKUP_DIR}", - "MAX_VERSIONS": "${MAX_VERSIONS}" - } - }, - "wysh3/perplexity-mcp-zerver": { - "package_name": "wysh3/perplexity-mcp-zerver", - "repo_url": "https://github.com/wysh3/perplexity-mcp-zerver", - "command": "node", - "args": [ - "/path/to/perplexity-mcp-zerver/build/index.js" - ] - }, - "dkeesey/todoist-mcp-server": { - "package_name": "dkeesey/todoist-mcp-server", - "repo_url": "https://github.com/dkeesey/todoist-mcp-server", - "command": "/absolute/path/to/start-todoist-mcp.sh", - "args": [] - }, - "hmk/box-mcp-server": { - "package_name": "hmk/box-mcp-server", - "repo_url": "https://github.com/hmk/box-mcp-server", - "command": "npx", - "args": [ - "box-mcp-server" - ], - "env": { - "BOX_DEV_TOKEN": "${BOX_DEV_TOKEN}" - } - }, - "tmhr1850/backlog-mcp-server": { - "package_name": "tmhr1850/backlog-mcp-server", - "repo_url": "https://github.com/tmhr1850/backlog-mcp-server", - "command": "npx", - "args": [ - "-y", - "@tmhr1850/backlog-mcp-server" - ], - "env": { - "BACKLOG_DOMAIN": "${BACKLOG_DOMAIN}", - "BACKLOG_API_KEY": "${BACKLOG_API_KEY}" - } - }, - "MCP-Mirror/evangstav_python-memory-mcp-server": { - "package_name": "MCP-Mirror/evangstav_python-memory-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/evangstav_python-memory-mcp-server", - "command": "uvx", - "args": [ - "memory-mcp-server" - ] - }, - "MCP-Mirror/ravenwits_mcp-server-arangodb": { - "package_name": "MCP-Mirror/ravenwits_mcp-server-arangodb", - "repo_url": "https://github.com/MCP-Mirror/ravenwits_mcp-server-arangodb", - "command": "node", - "args": [ - "/path/to/arango-server/build/index.js" - ], - "env": { - "ARANGO_URL": "${ARANGO_URL}", - "ARANGO_DATABASE": "${ARANGO_DATABASE}", - "ARANGO_USERNAME": "${ARANGO_USERNAME}", - "ARANGO_PASSWORD": "${ARANGO_PASSWORD}" - } - }, - "marcopesani/mcp-server-serper": { - "package_name": "marcopesani/mcp-server-serper", - "repo_url": "https://github.com/marcopesani/mcp-server-serper", - "command": "npx", - "args": [ - "-y", - "serper-search-scrape-mcp-server" - ], - "env": { - "SERPER_API_KEY": "${SERPER_API_KEY}" - } - }, - "FrankGenGo/solana-web3js-mcp-server": { - "package_name": "FrankGenGo/solana-web3js-mcp-server", - "repo_url": "https://github.com/FrankGenGo/solana-web3js-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/solana-web3js-mcp-server/dist/index.js" - ] - }, - "MCP-Mirror/madhukarkumar_singlestore-mcp-server": { - "package_name": "MCP-Mirror/madhukarkumar_singlestore-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/madhukarkumar_singlestore-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/singlestore_mcp_server", - "run", - "singlestore_mcp_server" - ], - "env": { - "SINGLESTORE_HOST": "${SINGLESTORE_HOST}", - "SINGLESTORE_PORT": "${SINGLESTORE_PORT}", - "SINGLESTORE_USER": "${SINGLESTORE_USER}", - "SINGLESTORE_PASSWORD": "${SINGLESTORE_PASSWORD}", - "SINGLESTORE_DATABASE": "${SINGLESTORE_DATABASE}" - } - }, - "1broseidon/mcp-jira-server": { - "package_name": "1broseidon/mcp-jira-server", - "repo_url": "https://github.com/1broseidon/mcp-jira-server", - "command": "node", - "args": [ - "/path/to/jira-server/build/index.js" - ], - "env": { - "JIRA_EMAIL": "${JIRA_EMAIL}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}", - "JIRA_DOMAIN": "${JIRA_DOMAIN}" - } - }, - "kukapay/token-minter-mcp": { - "package_name": "kukapay/token-minter-mcp", - "repo_url": "https://github.com/kukapay/token-minter-mcp", - "command": "node", - "args": [ - "path/to/token-minter-mcp/server/index.js" - ], - "env": { - "INFURA_KEY": "${INFURA_KEY}", - "PRIVATE_KEY": "${PRIVATE_KEY}" - } - }, - "MCP-Mirror/TakumiY235_uniprot-mcp-server": { - "package_name": "MCP-Mirror/TakumiY235_uniprot-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/TakumiY235_uniprot-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/uniprot-mcp-server", - "run", - "uniprot-mcp-server" - ] - }, - "MCP-Mirror/jmonsellier_gmail-mcp-server": { - "package_name": "MCP-Mirror/jmonsellier_gmail-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/jmonsellier_gmail-mcp-server", - "command": "uv", - "args": [ - "--directory", - "[absolute-path-to-git-repo]", - "run", - "gmail", - "--creds-file-path", - "[absolute-path-to-credentials-file]", - "--token-path", - "[absolute-path-to-access-tokens-file]" - ] - }, - "manascb1344/together-mcp-server": { - "package_name": "manascb1344/together-mcp-server", - "repo_url": "https://github.com/manascb1344/together-mcp-server", - "command": "npx", - "args": [ - "together-mcp@latest -y" - ], - "env": { - "TOGETHER_API_KEY": "${TOGETHER_API_KEY}" - } - }, - "PhialsBasement/nmap-mcp-server": { - "package_name": "PhialsBasement/nmap-mcp-server", - "repo_url": "https://github.com/PhialsBasement/nmap-mcp-server", - "command": "node", - "args": [ - "C:\\Users\\YOUR_USERNAME\\Downloads\\mcp-nmap-server\\dist\\index.js" - ] - }, - "irvinebroque/remote-mcp-server-d2w": { - "package_name": "irvinebroque/remote-mcp-server-d2w", - "repo_url": "https://github.com/irvinebroque/remote-mcp-server-d2w", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "MCP-Mirror/Vic563_Memgpt-MCP-Server": { - "package_name": "MCP-Mirror/Vic563_Memgpt-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/Vic563_Memgpt-MCP-Server", - "command": "/path/to/memgpt-server/build/index.js", - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}" - } - }, - "gbti-network/mcp-basic-test": { - "package_name": "gbti-network/mcp-basic-test", - "repo_url": "https://github.com/gbti-network/mcp-basic-test", - "command": "npx", - "args": [ - "--yes", - "node", - "/index.js" - ] - }, - "aipotheosis-labs/aipolabs-mcp": { - "package_name": "aipotheosis-labs/aipolabs-mcp", - "repo_url": "https://github.com/aipotheosis-labs/aipolabs-mcp", - "command": "uvx", - "args": [ - "aipolabs-mcp", - "apps-server", - "--apps", - "BRAVE_SEARCH,GMAIL", - "--linked-account-owner-id", - "" - ], - "env": { - "AIPOLABS_ACI_API_KEY": "${AIPOLABS_ACI_API_KEY}" - } - }, - "MCP-Mirror/ZZZHDW_mcp-server-kusto": { - "package_name": "MCP-Mirror/ZZZHDW_mcp-server-kusto", - "repo_url": "https://github.com/MCP-Mirror/ZZZHDW_mcp-server-kusto", - "command": "uv", - "args": [ - "--directory", - "{{PATH_TO_PROJECT}}\\mcp-server-kusto\\src\\mcp_server_kusto", - "run", - "mcp-server-kusto", - "--cluster", - "{{ADX_CLUSTER_URL}}" - ] - }, - "dkmaker/mcp-azure-tablestorage": { - "package_name": "dkmaker/mcp-azure-tablestorage", - "repo_url": "https://github.com/dkmaker/mcp-azure-tablestorage", - "command": "node", - "args": [ - "C:/path/to/your/mcp-azure-tablestorage/build/index.js" - ], - "env": { - "AZURE_STORAGE_CONNECTION_STRING": "${AZURE_STORAGE_CONNECTION_STRING}" - } - }, - "GBA-BI/bioos-mcp-server": { - "package_name": "GBA-BI/bioos-mcp-server", - "repo_url": "https://github.com/GBA-BI/bioos-mcp-server", - "command": "path/to/uv", - "args": [ - "--directory", - "path/to/bioos-mcp-server", - "run", - "path/to/bioos-mcp-server/src/bioos_mcp/bioos_mcp_server.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "norisuke3/mcp-state-server": { - "package_name": "norisuke3/mcp-state-server", - "repo_url": "https://github.com/norisuke3/mcp-state-server", - "command": "/path/to/state-server/build/index.js" - }, - "datastax/astra-db-mcp": { - "package_name": "datastax/astra-db-mcp", - "repo_url": "https://github.com/datastax/astra-db-mcp", - "command": "npx", - "args": [ - "-y", - "@datastax/astra-db-mcp" - ], - "env": { - "ASTRA_DB_APPLICATION_TOKEN": "${ASTRA_DB_APPLICATION_TOKEN}", - "ASTRA_DB_API_ENDPOINT": "${ASTRA_DB_API_ENDPOINT}" - } - }, - "reminia/task-tracker": { - "package_name": "reminia/task-tracker", - "repo_url": "https://github.com/reminia/task-tracker", - "command": "uv", - "args": [ - "--directory", - "/path/to/task-tracker", - "run", - "task-tracker" - ] - }, - "edanyal/mcp-client": { - "package_name": "edanyal/mcp-client", - "repo_url": "https://github.com/edanyal/mcp-client", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ] - }, - "abshkbh/arrakis-mcp-server": { - "package_name": "abshkbh/arrakis-mcp-server", - "repo_url": "https://github.com/abshkbh/arrakis-mcp-server", - "command": "", - "args": [ - "--directory", - "", - "run", - "arrakis_mcp_server.py" - ] - }, - "Ejb503/systemprompt-mcp-core": { - "package_name": "Ejb503/systemprompt-mcp-core", - "repo_url": "https://github.com/Ejb503/systemprompt-mcp-core", - "command": "/path/to/systemprompt-agent-server/build/index.js" - }, - "xianzong85/mysql-server-MCP-Server": { - "package_name": "xianzong85/mysql-server-MCP-Server", - "repo_url": "https://github.com/xianzong85/mysql-server-MCP-Server", - "command": "/path/to/mysql-server/build/index.js", - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "akhidasTech/github-agentic-chat-mcp": { - "package_name": "akhidasTech/github-agentic-chat-mcp", - "repo_url": "https://github.com/akhidasTech/github-agentic-chat-mcp", - "command": "/absolute/path/to/bin/github-agentic-chat-mcp" - }, - "kapilduraphe/okta-mcp-server": { - "package_name": "kapilduraphe/okta-mcp-server", - "repo_url": "https://github.com/kapilduraphe/okta-mcp-server", - "command": "node", - "args": [ - "PATH_TO_PROJECT_DIRECTORY/dist/index.js" - ], - "env": { - "OKTA_ORG_URL": "${OKTA_ORG_URL}", - "OKTA_API_TOKEN": "${OKTA_API_TOKEN}" - } - }, - "sirmews/apple-notes-mcp": { - "package_name": "sirmews/apple-notes-mcp", - "repo_url": "https://github.com/sirmews/apple-notes-mcp", - "command": "uvx", - "args": [ - "apple-notes-mcp" - ] - }, - "bmorphism/say-mcp-server": { - "package_name": "bmorphism/say-mcp-server", - "repo_url": "https://github.com/bmorphism/say-mcp-server", - "command": "node", - "args": [ - "/path/to/say-mcp-server/build/index.js" - ] - }, - "fleagne/backlog-mcp-server": { - "package_name": "fleagne/backlog-mcp-server", - "repo_url": "https://github.com/fleagne/backlog-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "BACKLOG_API_KEY=YOUR_API_KEY_HERE", - "-e", - "BACKLOG_SPACE_ID=YOUR_SPACE_ID_HERE", - "mcp/backlog" - ], - "env": { - "BACKLOG_API_KEY": "${BACKLOG_API_KEY}", - "BACKLOG_SPACE_ID": "${BACKLOG_SPACE_ID}" - } - }, - "difybase/dify-connect-mcp": { - "package_name": "difybase/dify-connect-mcp", - "repo_url": "https://github.com/difybase/dify-connect-mcp", - "command": "/bin/bash", - "args": [ - "<\u00e3\u0083\u00aa\u00e3\u0083\u009d\u00e3\u0082\u00b8\u00e3\u0083\u0088\u00e3\u0083\u00aa\u00e3\u0081\u00ae\u00e3\u0083\u0091\u00e3\u0082\u00b9>/run-mcp.sh" - ] - }, - "manolaz/amoca-sendai-agent-kit-mcp-server": { - "package_name": "manolaz/amoca-sendai-agent-kit-mcp-server", - "repo_url": "https://github.com/manolaz/amoca-sendai-agent-kit-mcp-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/YOUR/PROJECT" - ], - "env": { - "RPC_URL": "${RPC_URL}", - "SOLANA_PRIVATE_KEY": "${SOLANA_PRIVATE_KEY}" - } - }, - "Warashi/mcp-server-pipecd": { - "package_name": "Warashi/mcp-server-pipecd", - "repo_url": "https://github.com/Warashi/mcp-server-pipecd", - "command": "/Users/sawada/go/bin/mcp-server-pipecd", - "args": [], - "env": { - "PIPECD_HOST": "${PIPECD_HOST}", - "PIPECD_API_KEY_FILE": "${PIPECD_API_KEY_FILE}", - "PIPECD_INSECURE": "${PIPECD_INSECURE}" - } - }, - "udaysy007/servers": { - "package_name": "udaysy007/servers", - "repo_url": "https://github.com/udaysy007/servers", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/path/to/allowed/files" - ] - }, - "tadasant/mcp-server-ssh-rails-runner": { - "package_name": "tadasant/mcp-server-ssh-rails-runner", - "repo_url": "https://github.com/tadasant/mcp-server-ssh-rails-runner", - "command": "npx", - "args": [ - "mcp-server-ssh-rails-runner" - ], - "env": { - "SSH_HOST": "${SSH_HOST}", - "SSH_USER": "${SSH_USER}", - "SSH_PRIVATE_KEY_PATH": "${SSH_PRIVATE_KEY_PATH}", - "RAILS_WORKING_DIR": "${RAILS_WORKING_DIR}" - } - }, - "osomai/servicenow-mcp": { - "package_name": "osomai/servicenow-mcp", - "repo_url": "https://github.com/osomai/servicenow-mcp", - "command": "/Users/yourusername/dev/servicenow-mcp/.venv/bin/python", - "args": [ - "-m", - "servicenow_mcp.cli" - ], - "env": { - "SERVICENOW_INSTANCE_URL": "${SERVICENOW_INSTANCE_URL}", - "SERVICENOW_USERNAME": "${SERVICENOW_USERNAME}", - "SERVICENOW_PASSWORD": "${SERVICENOW_PASSWORD}", - "SERVICENOW_AUTH_TYPE": "${SERVICENOW_AUTH_TYPE}" - } - }, - "MCP-Mirror/mikegehard_isolated-commands-mcp-server": { - "package_name": "MCP-Mirror/mikegehard_isolated-commands-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/mikegehard_isolated-commands-mcp-server", - "command": "/path/to/isolated-commands-mcp-server/build/index.js" - }, - "MCP-Mirror/tatn_mcp-server-diff-python": { - "package_name": "MCP-Mirror/tatn_mcp-server-diff-python", - "repo_url": "https://github.com/MCP-Mirror/tatn_mcp-server-diff-python", - "command": "uv", - "args": [ - "--directory", - "path\\to\\mcp-server-diff-python", - "run", - "mcp-server-diff-python" - ] - }, - "mackenly/mcp-fathom-analytics": { - "package_name": "mackenly/mcp-fathom-analytics", - "repo_url": "https://github.com/mackenly/mcp-fathom-analytics", - "command": "npx", - "args": [ - "-y", - "mcp-fathom-analytics" - ], - "env": { - "FATHOM_API_KEY": "${FATHOM_API_KEY}" - } - }, - "MCP-Mirror/bmorphism_marginalia-mcp-server": { - "package_name": "MCP-Mirror/bmorphism_marginalia-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/bmorphism_marginalia-mcp-server", - "command": "node", - "args": [ - "/path/to/marginalia-mcp-server/build/index.js" - ] - }, - "royshil/obs-mcp": { - "package_name": "royshil/obs-mcp", - "repo_url": "https://github.com/royshil/obs-mcp", - "command": "node", - "args": [ - "/build/index.js" - ], - "env": { - "OBS_WEBSOCKET_PASSWORD": "${OBS_WEBSOCKET_PASSWORD}" - } - }, - "mark3labs/mcphost": { - "package_name": "mark3labs/mcphost", - "repo_url": "https://github.com/mark3labs/mcphost", - "command": "uvx", - "args": [ - "mcp-server-sqlite", - "--db-path", - "/tmp/foo.db" - ] - }, - "MCP-Mirror/langfuse_mcp-server-langfuse": { - "package_name": "MCP-Mirror/langfuse_mcp-server-langfuse", - "repo_url": "https://github.com/MCP-Mirror/langfuse_mcp-server-langfuse", - "command": "node", - "args": [ - "/build/index.js" - ], - "env": { - "LANGFUSE_PUBLIC_KEY": "${LANGFUSE_PUBLIC_KEY}", - "LANGFUSE_SECRET_KEY": "${LANGFUSE_SECRET_KEY}", - "LANGFUSE_BASEURL": "${LANGFUSE_BASEURL}" - } - }, - "GarethCott/enhanced-postgres-mcp-server": { - "package_name": "GarethCott/enhanced-postgres-mcp-server", - "repo_url": "https://github.com/GarethCott/enhanced-postgres-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-postgres", - "postgresql://localhost/mydb" - ] - }, - "itay1542/brokers-mcp": { - "package_name": "itay1542/brokers-mcp", - "repo_url": "https://github.com/itay1542/brokers-mcp", - "command": "uv", - "args": [ - "--directory", - "", - "run", - "--package", - "brokerage_service", - "python", - "brokerage_service/src/server.py" - ], - "env": { - "IBKR_ACCOUNT_ID": "${IBKR_ACCOUNT_ID}", - "IBKR_CLIENT_ID": "${IBKR_CLIENT_ID}", - "IBKR_HOST": "${IBKR_HOST}", - "IBKR_PORT": "${IBKR_PORT}", - "TRADESTATION_API_KEY": "${TRADESTATION_API_KEY}", - "TRADESTATION_API_SECRET": "${TRADESTATION_API_SECRET}", - "TS_REFRESH_TOKEN": "${TS_REFRESH_TOKEN}", - "TS_ACCOUNT_ID": "${TS_ACCOUNT_ID}" - } - }, - "baryhuang/mcp-server-aws-resources-python": { - "package_name": "baryhuang/mcp-server-aws-resources-python", - "repo_url": "https://github.com/baryhuang/mcp-server-aws-resources-python", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "AWS_PROFILE=default", - "-v", - "~/.aws:/root/.aws", - "buryhuang/mcp-server-aws-resources:latest" - ] - }, - "Chakra-Network/mcp-server": { - "package_name": "Chakra-Network/mcp-server", - "repo_url": "https://github.com/Chakra-Network/mcp-server", - "command": "uvx", - "args": [ - "chakra-mcp" - ], - "env": { - "db_session_key": "${db_session_key}" - } - }, - "MCP-Mirror/handfuloflight_convex-mcp-server": { - "package_name": "MCP-Mirror/handfuloflight_convex-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/handfuloflight_convex-mcp-server", - "command": "/path/to/convex-mcp-server/build/index.js" - }, - "wrediam/coolify-mcp-server": { - "package_name": "wrediam/coolify-mcp-server", - "repo_url": "https://github.com/wrediam/coolify-mcp-server", - "command": "cmd", - "args": [ - "/c", - "npx", - "-y", - "coolify-mcp-server" - ], - "env": { - "COOLIFY_BASE_URL": "${COOLIFY_BASE_URL}", - "COOLIFY_TOKEN": "${COOLIFY_TOKEN}" - } - }, - "yuniko-software/minecraft-mcp-server": { - "package_name": "yuniko-software/minecraft-mcp-server", - "repo_url": "https://github.com/yuniko-software/minecraft-mcp-server", - "command": "npx", - "args": [ - "-y", - "github:yuniko-software/minecraft-mcp-server", - "--host", - "localhost", - "--port", - "25565", - "--username", - "ClaudeBot" - ] - }, - "5ajaki/veri5ight": { - "package_name": "5ajaki/veri5ight", - "repo_url": "https://github.com/5ajaki/veri5ight", - "command": "node", - "args": [ - "/absolute/path/to/veri5ight/dist/index.js" - ] - }, - "kortexa-ai/worker17": { - "package_name": "kortexa-ai/worker17", - "repo_url": "https://github.com/kortexa-ai/worker17", - "command": "mcp-proxy", - "args": [ - "http://localhost:4000/sse" - ] - }, - "ilyazub/serpapi-mcp-server": { - "package_name": "ilyazub/serpapi-mcp-server", - "repo_url": "https://github.com/ilyazub/serpapi-mcp-server", - "command": "python", - "args": [ - "path/to/server.py" - ] - }, - "OtotaO/unsloth-mcp-server": { - "package_name": "OtotaO/unsloth-mcp-server", - "repo_url": "https://github.com/OtotaO/unsloth-mcp-server", - "command": "node", - "args": [ - "/path/to/unsloth-server/build/index.js" - ], - "env": { - "HUGGINGFACE_TOKEN": "${HUGGINGFACE_TOKEN}" - } - }, - "rados10/youtube-watchlater-mcp": { - "package_name": "rados10/youtube-watchlater-mcp", - "repo_url": "https://github.com/rados10/youtube-watchlater-mcp", - "command": "node", - "args": [ - "/path/to/youtube-watchlater/build/index.js" - ], - "env": { - "OAUTH_CLIENT_ID": "${OAUTH_CLIENT_ID}", - "OAUTH_CLIENT_SECRET": "${OAUTH_CLIENT_SECRET}", - "OAUTH_REFRESH_TOKEN": "${OAUTH_REFRESH_TOKEN}" - } - }, - "fusedio/fused-mcp": { - "package_name": "fusedio/fused-mcp", - "repo_url": "https://github.com/fusedio/fused-mcp", - "command": "/Users//.local/bin/uv", - "args": [ - "..." - ] - }, - "petrbroz/aps-mcp-server": { - "package_name": "petrbroz/aps-mcp-server", - "repo_url": "https://github.com/petrbroz/aps-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/aps-mcp-server/build/server.js" - ] - }, - "nsxdavid/clickup-mcp-server": { - "package_name": "nsxdavid/clickup-mcp-server", - "repo_url": "https://github.com/nsxdavid/clickup-mcp-server", - "command": "npx", - "args": [ - "-y", - "clickup-mcp-server" - ], - "env": { - "CLICKUP_API_TOKEN": "${CLICKUP_API_TOKEN}" - } - }, - "abel9851/mariadb-mcp-server": { - "package_name": "abel9851/mariadb-mcp-server", - "repo_url": "https://github.com/abel9851/mariadb-mcp-server", - "command": "/PATH/TO/uv", - "args": [ - "--directory", - "/YOUR/SOURCE/PATH/mariadb-mcp-server/src/mariadb_mcp_server", - "run", - "server.py" - ], - "env": { - "MARIADB_HOST": "${MARIADB_HOST}", - "MARIADB_USER": "${MARIADB_USER}", - "MARIADB_PASSWORD": "${MARIADB_PASSWORD}", - "MARIADB_DATABASE": "${MARIADB_DATABASE}", - "MARIADB_PORT": "${MARIADB_PORT}" - } - }, - "landicefu/android-adb-mcp-server": { - "package_name": "landicefu/android-adb-mcp-server", - "repo_url": "https://github.com/landicefu/android-adb-mcp-server", - "command": "node", - "args": [ - "/path/to/android-adb-mcp-server/build/index.js" - ] - }, - "rickydata-indexer/notion_mcp_server": { - "package_name": "rickydata-indexer/notion_mcp_server", - "repo_url": "https://github.com/rickydata-indexer/notion_mcp_server", - "command": "uv", - "args": [ - "run", - "--with", - "fastmcp", - "--with", - "python-dotenv", - "--with", - "requests", - "fastmcp", - "run", - "/absolute/path/to/notion_mcp_server.py" - ], - "env": { - "DIFY_API_BACKEND_KEY": "${DIFY_API_BACKEND_KEY}" - } - }, - "dkpoulsen/flutter-tools": { - "package_name": "dkpoulsen/flutter-tools", - "repo_url": "https://github.com/dkpoulsen/flutter-tools", - "command": "node", - "args": [ - "/path/to/flutter-tools/build/index.js" - ] - }, - "avacx/hai-mcp-server": { - "package_name": "avacx/hai-mcp-server", - "repo_url": "https://github.com/avacx/hai-mcp-server", - "command": "C:\\Users\\\u4f60\u7684\u7528\u6237\u540d\\Documents\\Cline\\MCP\\hai-mcp-server\\venv\\Scripts\\python.exe", - "args": [ - "C:\\Users\\\u4f60\u7684\u7528\u6237\u540d\\Documents\\Cline\\MCP\\hai-mcp-server\\run.py" - ], - "env": { - "PYTHONUNBUFFERED": "${PYTHONUNBUFFERED}", - "TENCENTCLOUD_SECRET_ID": "${TENCENTCLOUD_SECRET_ID}", - "TENCENTCLOUD_SECRET_KEY": "${TENCENTCLOUD_SECRET_KEY}", - "TENCENTCLOUD_REGION": "${TENCENTCLOUD_REGION}" - } - }, - "MCP-Mirror/mamertofabian_elevenlabs-mcp-server": { - "package_name": "MCP-Mirror/mamertofabian_elevenlabs-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/mamertofabian_elevenlabs-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/elevenlabs-mcp-server", - "run", - "elevenlabs-mcp-server" - ], - "env": { - "ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}", - "ELEVENLABS_VOICE_ID": "${ELEVENLABS_VOICE_ID}", - "ELEVENLABS_MODEL_ID": "${ELEVENLABS_MODEL_ID}", - "ELEVENLABS_STABILITY": "${ELEVENLABS_STABILITY}", - "ELEVENLABS_SIMILARITY_BOOST": "${ELEVENLABS_SIMILARITY_BOOST}", - "ELEVENLABS_STYLE": "${ELEVENLABS_STYLE}", - "ELEVENLABS_OUTPUT_DIR": "${ELEVENLABS_OUTPUT_DIR}" - } - }, - "SeanLF/weather-mcp": { - "package_name": "SeanLF/weather-mcp", - "repo_url": "https://github.com/SeanLF/weather-mcp", - "command": "/path/to/python", - "args": [ - "/path/to/weather-mcp/weather.py" - ] - }, - "yuki-koma2/my-mcp-servers": { - "package_name": "yuki-koma2/my-mcp-servers", - "repo_url": "https://github.com/yuki-koma2/my-mcp-servers", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "GITHUB_PERSONAL_ACCESS_TOKEN", - "mcp/github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/splendasucks_webperfect-mcp-server": { - "package_name": "MCP-Mirror/splendasucks_webperfect-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/splendasucks_webperfect-mcp-server", - "command": "node", - "args": [ - "/path/to/webperfect-mcp-server/build/index.js" - ] - }, - "pydantic/logfire-mcp": { - "package_name": "pydantic/logfire-mcp", - "repo_url": "https://github.com/pydantic/logfire-mcp", - "command": "uvx", - "args": [ - "logfire-mcp" - ], - "env": { - "LOGFIRE_READ_TOKEN": "${LOGFIRE_READ_TOKEN}" - } - }, - "vlyl/mcpc": { - "package_name": "vlyl/mcpc", - "repo_url": "https://github.com/vlyl/mcpc", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PROJECT", - "run", - "server.py" - ] - }, - "delorenj/mcp-server-trello": { - "package_name": "delorenj/mcp-server-trello", - "repo_url": "https://github.com/delorenj/mcp-server-trello", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-trello" - ], - "env": { - "TRELLO_API_KEY": "${TRELLO_API_KEY}", - "TRELLO_TOKEN": "${TRELLO_TOKEN}", - "TRELLO_BOARD_ID": "${TRELLO_BOARD_ID}" - } - }, - "farzad528/mcp-server-azure-ai-search": { - "package_name": "farzad528/mcp-server-azure-ai-search", - "repo_url": "https://github.com/farzad528/mcp-server-azure-ai-search", - "command": "C:path\\tomcp-server-azure-ai-search.venvScriptspython.exe", - "args": [ - "C:path\\tomcp-server-azure-ai-searchazure_search_server.py" - ], - "env": { - "AZURE_SEARCH_SERVICE_ENDPOINT": "${AZURE_SEARCH_SERVICE_ENDPOINT}", - "AZURE_SEARCH_INDEX_NAME": "${AZURE_SEARCH_INDEX_NAME}", - "AZURE_SEARCH_API_KEY": "${AZURE_SEARCH_API_KEY}" - } - }, - "ProgramComputer/NASA-MCP-server": { - "package_name": "ProgramComputer/NASA-MCP-server", - "repo_url": "https://github.com/ProgramComputer/NASA-MCP-server", - "command": "npx", - "args": [ - "-y", - "@programcomputer/nasa-mcp-server" - ], - "env": { - "NASA_API_KEY": "${NASA_API_KEY}" - } - }, - "appwrite/mcp": { - "package_name": "appwrite/mcp", - "repo_url": "https://github.com/appwrite/mcp", - "command": "uvx", - "args": [ - "mcp-server-appwrite" - ], - "env": { - "APPWRITE_PROJECT_ID": "${APPWRITE_PROJECT_ID}", - "APPWRITE_API_KEY": "${APPWRITE_API_KEY}", - "APPWRITE_ENDPOINT": "${APPWRITE_ENDPOINT}" - } - }, - "oakenai/mcp-edit-file-lines": { - "package_name": "oakenai/mcp-edit-file-lines", - "repo_url": "https://github.com/oakenai/mcp-edit-file-lines", - "command": "node", - "args": [ - "/path/to/edit-file-lines/build/index.js", - "" - ], - "env": { - "MCP_EDIT_STATE_TTL": "${MCP_EDIT_STATE_TTL}" - } - }, - "solana-foundation/solana-dev-mcp": { - "package_name": "solana-foundation/solana-dev-mcp", - "repo_url": "https://github.com/solana-foundation/solana-dev-mcp", - "command": "node", - "args": [ - "/dist/index.js" - ] - }, - "amidabuddha/unichat-ts-mcp-server": { - "package_name": "amidabuddha/unichat-ts-mcp-server", - "repo_url": "https://github.com/amidabuddha/unichat-ts-mcp-server", - "command": "npx", - "args": [ - "-y", - "unichat-ts-mcp-server" - ], - "env": { - "UNICHAT_MODEL": "${UNICHAT_MODEL}", - "UNICHAT_API_KEY": "${UNICHAT_API_KEY}" - } - }, - "zengwenliang416/mcp-server-sequential-thinking": { - "package_name": "zengwenliang416/mcp-server-sequential-thinking", - "repo_url": "https://github.com/zengwenliang416/mcp-server-sequential-thinking", - "command": "node", - "args": [ - "/absolute/path/to/sequential-thinking/dist/index.js" - ] - }, - "Garoth/dalle-mcp": { - "package_name": "Garoth/dalle-mcp", - "repo_url": "https://github.com/Garoth/dalle-mcp", - "command": "node", - "args": [ - "/path/to/dalle-mcp-server/build/index.js" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "SAVE_DIR": "${SAVE_DIR}" - } - }, - "self-tech-labs/entscheidsuche-MCP-server": { - "package_name": "self-tech-labs/entscheidsuche-MCP-server", - "repo_url": "https://github.com/self-tech-labs/entscheidsuche-MCP-server", - "command": "node", - "args": [ - "/absolute/path/to/entscheidsuche-mcp-server/build/index.js" - ] - }, - "andybrandt/mcp-simple-arxiv": { - "package_name": "andybrandt/mcp-simple-arxiv", - "repo_url": "https://github.com/andybrandt/mcp-simple-arxiv", - "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe", - "args": [ - "-m", - "mcp_simple_arxiv" - ] - }, - "AlexKissiJr/unreal-mcp-server": { - "package_name": "AlexKissiJr/unreal-mcp-server", - "repo_url": "https://github.com/AlexKissiJr/unreal-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/cyanheads_obsidian-mcp-server": { - "package_name": "MCP-Mirror/cyanheads_obsidian-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/cyanheads_obsidian-mcp-server", - "command": "node", - "args": [ - "/path/to/obsidian-mcp-server/build/index.js" - ], - "env": { - "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}", - "VERIFY_SSL": "${VERIFY_SSL}", - "OBSIDIAN_PROTOCOL": "${OBSIDIAN_PROTOCOL}", - "OBSIDIAN_HOST": "${OBSIDIAN_HOST}", - "OBSIDIAN_PORT": "${OBSIDIAN_PORT}", - "REQUEST_TIMEOUT": "${REQUEST_TIMEOUT}", - "MAX_CONTENT_LENGTH": "${MAX_CONTENT_LENGTH}", - "MAX_BODY_LENGTH": "${MAX_BODY_LENGTH}", - "RATE_LIMIT_WINDOW_MS": "${RATE_LIMIT_WINDOW_MS}", - "RATE_LIMIT_MAX_REQUESTS": "${RATE_LIMIT_MAX_REQUESTS}", - "TOOL_TIMEOUT_MS": "${TOOL_TIMEOUT_MS}" - } - }, - "Cam10001110101/mcp-server-ollama-deep-researcher": { - "package_name": "Cam10001110101/mcp-server-ollama-deep-researcher", - "repo_url": "https://github.com/Cam10001110101/mcp-server-ollama-deep-researcher", - "command": "docker", - "args": [ - "exec", - "-i", - "ollama-deep-researcher-mcp", - "node", - "build/index.js" - ] - }, - "cyanheads/mcp-ts-template": { - "package_name": "cyanheads/mcp-ts-template", - "repo_url": "https://github.com/cyanheads/mcp-ts-template", - "command": "node", - "args": [ - "/path/to/mcp-ts-template/dist/index.js" - ] - }, - "JetBrains/mcp-jetbrains": { - "package_name": "JetBrains/mcp-jetbrains", - "repo_url": "https://github.com/JetBrains/mcp-jetbrains", - "command": "npx", - "args": [ - "-y", - "@jetbrains/mcp-proxy" - ] - }, - "TeglonLabs/coin-flip-mcp": { - "package_name": "TeglonLabs/coin-flip-mcp", - "repo_url": "https://github.com/TeglonLabs/coin-flip-mcp", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-coin-flip" - ] - }, - "anaisbetts/mcp-installer": { - "package_name": "anaisbetts/mcp-installer", - "repo_url": "https://github.com/anaisbetts/mcp-installer", - "command": "npx", - "args": [ - "@anaisbetts/mcp-installer" - ] - }, - "stat-guy/terminal": { - "package_name": "stat-guy/terminal", - "repo_url": "https://github.com/stat-guy/terminal", - "command": "node", - "args": [ - "[PATH_TO_REPO]/dist/index.js" - ], - "env": { - "PERMISSION_REQUIRED": "${PERMISSION_REQUIRED}" - } - }, - "jcdiv47/mcp-server-memory": { - "package_name": "jcdiv47/mcp-server-memory", - "repo_url": "https://github.com/jcdiv47/mcp-server-memory", - "command": "python", - "args": [ - "-m", - "mcp_server_memory" - ] - }, - "r-huijts/rijksmuseum-mcp": { - "package_name": "r-huijts/rijksmuseum-mcp", - "repo_url": "https://github.com/r-huijts/rijksmuseum-mcp", - "command": "node", - "args": [ - "/path/to/rijksmuseum-server/build/index.js" - ], - "env": { - "RIJKSMUSEUM_API_KEY": "${RIJKSMUSEUM_API_KEY}" - } - }, - "sunsetcoder/flightradar24-mcp-server": { - "package_name": "sunsetcoder/flightradar24-mcp-server", - "repo_url": "https://github.com/sunsetcoder/flightradar24-mcp-server", - "command": "node", - "args": [ - "/Users///flightradar24-mcp-server/dist/index.js" - ], - "env": { - "FR24_API_KEY": "${FR24_API_KEY}", - "FR24_API_URL": "${FR24_API_URL}" - } - }, - "Nocodeboy/youtube-mcp-server": { - "package_name": "Nocodeboy/youtube-mcp-server", - "repo_url": "https://github.com/Nocodeboy/youtube-mcp-server", - "command": "node", - "args": [ - "path/to/youtube-mcp-server/index.js" - ], - "env": { - "YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}" - } - }, - "gotoolkits/mcp-wecombot-server": { - "package_name": "gotoolkits/mcp-wecombot-server", - "repo_url": "https://github.com/gotoolkits/mcp-wecombot-server", - "command": "mcp-wecombot-server", - "env": { - "WECOM_BOT_WEBHOOK_KEY": "${WECOM_BOT_WEBHOOK_KEY}" - } - }, - "1Panel-dev/mcp-1panel": { - "package_name": "1Panel-dev/mcp-1panel", - "repo_url": "https://github.com/1Panel-dev/mcp-1panel" - }, - "dvcrn/mcp-server-siri-shortcuts": { - "package_name": "dvcrn/mcp-server-siri-shortcuts", - "repo_url": "https://github.com/dvcrn/mcp-server-siri-shortcuts", - "command": "npx", - "args": [ - "mcp-server-siri-shortcuts" - ] - }, - "tsmztech/mcp-server-salesforce": { - "package_name": "tsmztech/mcp-server-salesforce", - "repo_url": "https://github.com/tsmztech/mcp-server-salesforce", - "command": "npx", - "args": [ - "-y", - "@tsmztech/mcp-server-salesforce" - ], - "env": { - "SALESFORCE_CONNECTION_TYPE": "${SALESFORCE_CONNECTION_TYPE}", - "SALESFORCE_CLIENT_ID": "${SALESFORCE_CLIENT_ID}", - "SALESFORCE_CLIENT_SECRET": "${SALESFORCE_CLIENT_SECRET}", - "SALESFORCE_INSTANCE_URL": "${SALESFORCE_INSTANCE_URL}" - } - }, - "StrawHatAI/claude-dev-tools": { - "package_name": "StrawHatAI/claude-dev-tools", - "repo_url": "https://github.com/StrawHatAI/claude-dev-tools", - "command": "npx", - "args": [ - "-y", - "@wonderwhy-er/desktop-commander" - ] - }, - "meilisearch/meilisearch-mcp": { - "package_name": "meilisearch/meilisearch-mcp", - "repo_url": "https://github.com/meilisearch/meilisearch-mcp", - "command": "uvx", - "args": [ - "-n", - "meilisearch-mcp" - ] - }, - "Automata-Labs-team/MCP-Server-Playwright": { - "package_name": "Automata-Labs-team/MCP-Server-Playwright", - "repo_url": "https://github.com/Automata-Labs-team/MCP-Server-Playwright", - "command": "npx", - "args": [ - "-y", - "@automatalabs/mcp-server-playwright" - ] - }, - "mektigboy/server-hyperliquid": { - "package_name": "mektigboy/server-hyperliquid", - "repo_url": "https://github.com/mektigboy/server-hyperliquid", - "command": "npx", - "args": [ - "-y", - "@mektigboy/server-hyperliquid" - ] - }, - "ZubeidHendricks/azure-onenote-mcp-server": { - "package_name": "ZubeidHendricks/azure-onenote-mcp-server", - "repo_url": "https://github.com/ZubeidHendricks/azure-onenote-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-onenote" - ], - "env": { - "AZURE_TENANT_ID": "${AZURE_TENANT_ID}", - "AZURE_CLIENT_ID": "${AZURE_CLIENT_ID}", - "AZURE_CLIENT_SECRET": "${AZURE_CLIENT_SECRET}" - } - }, - "langfuse/mcp-server-langfuse": { - "package_name": "langfuse/mcp-server-langfuse", - "repo_url": "https://github.com/langfuse/mcp-server-langfuse", - "command": "node", - "args": [ - "/build/index.js" - ], - "env": { - "LANGFUSE_PUBLIC_KEY": "${LANGFUSE_PUBLIC_KEY}", - "LANGFUSE_SECRET_KEY": "${LANGFUSE_SECRET_KEY}", - "LANGFUSE_BASEURL": "${LANGFUSE_BASEURL}" - } - }, - "MCP-Mirror/felores_gdrive-mcp-server": { - "package_name": "MCP-Mirror/felores_gdrive-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/felores_gdrive-mcp-server", - "command": "node", - "args": [ - "path/to/gdrive-mcp-server/dist/index.js" - ], - "env": { - "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", - "MCP_GDRIVE_CREDENTIALS": "${MCP_GDRIVE_CREDENTIALS}" - } - }, - "nailuoGG/anki-mcp-server": { - "package_name": "nailuoGG/anki-mcp-server", - "repo_url": "https://github.com/nailuoGG/anki-mcp-server", - "command": "npx", - "args": [ - "--yes", - "anki-mcp-server" - ] - }, - "openSVM/zig-mcp-server": { - "package_name": "openSVM/zig-mcp-server", - "repo_url": "https://github.com/openSVM/zig-mcp-server", - "command": "node", - "args": [ - "/path/to/zig-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "NODE_OPTIONS": "${NODE_OPTIONS}" - } - }, - "frozenlib/mcp-attr-example-cargo-metadata": { - "package_name": "frozenlib/mcp-attr-example-cargo-metadata", - "repo_url": "https://github.com/frozenlib/mcp-attr-example-cargo-metadata", - "command": "path/to/mcp-attr-example-cargo-metadata" - }, - "netboxlabs/netbox-mcp-server": { - "package_name": "netboxlabs/netbox-mcp-server", - "repo_url": "https://github.com/netboxlabs/netbox-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/netbox-mcp-server", - "run", - "server.py" - ], - "env": { - "NETBOX_URL": "${NETBOX_URL}", - "NETBOX_TOKEN": "${NETBOX_TOKEN}" - } - }, - "QuantGeekDev/docker-mcp": { - "package_name": "QuantGeekDev/docker-mcp", - "repo_url": "https://github.com/QuantGeekDev/docker-mcp", - "command": "uvx", - "args": [ - "docker-mcp" - ] - }, - "MCP-Mirror/alexgoller_illumio-mcp-server": { - "package_name": "MCP-Mirror/alexgoller_illumio-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/alexgoller_illumio-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/alex.goller/git/illumio-mcp", - "run", - "illumio-mcp" - ], - "env": { - "PCE_HOST": "${PCE_HOST}", - "PCE_PORT": "${PCE_PORT}", - "PCE_ORG_ID": "${PCE_ORG_ID}", - "API_KEY": "${API_KEY}", - "API_SECRET": "${API_SECRET}" - } - }, - "MCP-Mirror/aldrin-labs_solana-docs-mcp-server": { - "package_name": "MCP-Mirror/aldrin-labs_solana-docs-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/aldrin-labs_solana-docs-mcp-server", - "command": "/path/to/solana-docs-server/build/index.js" - }, - "allenporter/mcp-server-home-assistant": { - "package_name": "allenporter/mcp-server-home-assistant", - "repo_url": "https://github.com/allenporter/mcp-server-home-assistant", - "command": "uv", - "args": [ - "--directory", - "/Users/allen/Development/mcp-server-home-assistant", - "run", - "mcp-server-home-assistant", - "-v", - "-v" - ], - "env": { - "HOME_ASSISTANT_WEB_SOCKET_URL": "${HOME_ASSISTANT_WEB_SOCKET_URL}", - "HOME_ASSISTANT_API_TOKEN": "${HOME_ASSISTANT_API_TOKEN}" - } - }, - "AI-FE/dify-mcp-server": { - "package_name": "AI-FE/dify-mcp-server", - "repo_url": "https://github.com/AI-FE/dify-mcp-server", - "command": "node", - "args": [ - "your/path/dify-server/build/index.js" - ], - "env": { - "DIFY_API_KEY": "${DIFY_API_KEY}" - } - }, - "WilliamCloudQi/matlab-mcp-server": { - "package_name": "WilliamCloudQi/matlab-mcp-server", - "repo_url": "https://github.com/WilliamCloudQi/matlab-mcp-server", - "command": "node", - "args": [ - "/path/to/matlab-server/build/index.js" - ], - "env": { - "MATLAB_PATH": "${MATLAB_PATH}" - } - }, - "ducthinh993/mcp-server-endoflife": { - "package_name": "ducthinh993/mcp-server-endoflife", - "repo_url": "https://github.com/ducthinh993/mcp-server-endoflife", - "command": "npx", - "args": [ - "/path/to/eol-mcp-server/build/index.js" - ] - }, - "kouui/web-search-duckduckgo": { - "package_name": "kouui/web-search-duckduckgo", - "repo_url": "https://github.com/kouui/web-search-duckduckgo", - "command": "uv", - "args": [ - "--directory", - "/path/to/web-search-duckduckgo", - "run", - "main.py" - ] - }, - "ryaker/MCP-JS-Server-Template": { - "package_name": "ryaker/MCP-JS-Server-Template", - "repo_url": "https://github.com/ryaker/MCP-JS-Server-Template", - "command": "node", - "args": [ - "/full/path/to/simplified-template-mcp-server.js" - ], - "env": { - "NODE_OPTIONS": "${NODE_OPTIONS}" - } - }, - "SailFish-Finance/educhain-ai-agent-kit": { - "package_name": "SailFish-Finance/educhain-ai-agent-kit", - "repo_url": "https://github.com/SailFish-Finance/educhain-ai-agent-kit", - "command": "node", - "args": [ - "/path/to/SubgraphMCP/build/index.js" - ], - "env": { - "RPC_URL": "${RPC_URL}" - } - }, - "browserbase/mcp-server-browserbase.git": { - "package_name": "browserbase/mcp-server-browserbase.git", - "repo_url": "https://github.com/browserbase/mcp-server-browserbase.git", - "command": "npx", - "args": [ - "-y", - "@baidumap/mcp-server-baidu-map" - ], - "env": { - "BAIDU_MAP_API_KEY": "${BAIDU_MAP_API_KEY}" - } - }, - "MCP-Mirror/allenporter_mcp-server-home-assistant": { - "package_name": "MCP-Mirror/allenporter_mcp-server-home-assistant", - "repo_url": "https://github.com/MCP-Mirror/allenporter_mcp-server-home-assistant", - "command": "uv", - "args": [ - "--directory", - "/Users/allen/Development/mcp-server-home-assistant", - "run", - "mcp-server-home-assistant", - "-v", - "-v" - ], - "env": { - "HOME_ASSISTANT_WEB_SOCKET_URL": "${HOME_ASSISTANT_WEB_SOCKET_URL}", - "HOME_ASSISTANT_API_TOKEN": "${HOME_ASSISTANT_API_TOKEN}" - } - }, - "MCP-Mirror/KBB99_mcp-registry-server": { - "package_name": "MCP-Mirror/KBB99_mcp-registry-server", - "repo_url": "https://github.com/MCP-Mirror/KBB99_mcp-registry-server", - "command": "node", - "args": [ - "./path/to/build/mcp-registry-server/dist/index.js" - ] - }, - "junjiem/dify-plugin-agent-mcp_sse": { - "package_name": "junjiem/dify-plugin-agent-mcp_sse", - "repo_url": "https://github.com/junjiem/dify-plugin-agent-mcp_sse" - }, - "suhail-ak-s/mcp-typesense-server": { - "package_name": "suhail-ak-s/mcp-typesense-server", - "repo_url": "https://github.com/suhail-ak-s/mcp-typesense-server", - "command": "npx", - "args": [ - "-y", - "typesense-mcp-server", - "--host", - "your-typesense-host", - "--port", - "8108", - "--protocol", - "http", - "--api-key", - "your-api-key" - ] - }, - "mohammeduvaiz/figma-mcp-server": { - "package_name": "mohammeduvaiz/figma-mcp-server", - "repo_url": "https://github.com/mohammeduvaiz/figma-mcp-server", - "env": { - "API_KEY": "${API_KEY}" - } - }, - "everaldo/mcp-mistral-ocr": { - "package_name": "everaldo/mcp-mistral-ocr", - "repo_url": "https://github.com/everaldo/mcp-mistral-ocr", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "MISTRAL_API_KEY", - "-e", - "OCR_DIR", - "-v", - "C:/path/to/your/files:/data/ocr", - "mcp-mistral-ocr:latest" - ], - "env": { - "MISTRAL_API_KEY": "${MISTRAL_API_KEY}", - "OCR_DIR": "${OCR_DIR}" - } - }, - "Sunwood-ai-labs/aira-mcp-server": { - "package_name": "Sunwood-ai-labs/aira-mcp-server", - "repo_url": "https://github.com/Sunwood-ai-labs/aira-mcp-server", - "command": "node", - "args": [ - "path/to/aira-mcp-server/build/index.js" - ] - }, - "trevorwilkerson/Windows-MCP-Server-Installation-Verification-Guide": { - "package_name": "trevorwilkerson/Windows-MCP-Server-Installation-Verification-Guide", - "repo_url": "https://github.com/trevorwilkerson/Windows-MCP-Server-Installation-Verification-Guide", - "command": "C:\\Program Files\\odejs\\ode.exe", - "args": [ - "C:\\Users\\Username\\AppData\\Roaming\\pm\\ode_modules\\@modelcontextprotocol\\server-sequential-thinking\\dist\\index.js" - ] - }, - "qianniuspace/mcp-security-audit": { - "package_name": "qianniuspace/mcp-security-audit", - "repo_url": "https://github.com/qianniuspace/mcp-security-audit", - "command": "npx", - "args": [ - "-y", - "/path/to/mcp-security-audit/build/index.js" - ] - }, - "imankamyabi/dynamodb-mcp-server": { - "package_name": "imankamyabi/dynamodb-mcp-server", - "repo_url": "https://github.com/imankamyabi/dynamodb-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "AWS_ACCESS_KEY_ID", - "-e", - "AWS_SECRET_ACCESS_KEY", - "-e", - "AWS_REGION", - "-e", - "AWS_SESSION_TOKEN", - "mcp/dynamodb-mcp-server" - ], - "env": { - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}", - "AWS_SESSION_TOKEN": "${AWS_SESSION_TOKEN}" - } - }, - "jzinno/biomart-mcp": { - "package_name": "jzinno/biomart-mcp", - "repo_url": "https://github.com/jzinno/biomart-mcp", - "command": "uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "--with", - "pybiomart", - "mcp", - "run", - "/your/path/to/biomart-mcp.py" - ] - }, - "piplabs/story-sdk-mcp": { - "package_name": "piplabs/story-sdk-mcp", - "repo_url": "https://github.com/piplabs/story-sdk-mcp", - "command": "uv", - "args": [ - "--directory", - "~/path/to/story-mcp-hub/storyscan-mcp", - "run", - "server.py" - ] - }, - "AzureCosmosDB/azure-cosmos-mcp-server": { - "package_name": "AzureCosmosDB/azure-cosmos-mcp-server", - "repo_url": "https://github.com/AzureCosmosDB/azure-cosmos-mcp-server", - "command": "node", - "args": [ - "C:/Cosmos/azure-cosmos-mcp/dist/index.js" - ], - "env": { - "COSMOSDB_URI": "${COSMOSDB_URI}", - "COSMOSDB_KEY": "${COSMOSDB_KEY}", - "COSMOS_DATABASE_ID": "${COSMOS_DATABASE_ID}", - "COSMOS_CONTAINER_ID": "${COSMOS_CONTAINER_ID}" - } - }, - "YanxingLiu/dify-mcp-server": { - "package_name": "YanxingLiu/dify-mcp-server", - "repo_url": "https://github.com/YanxingLiu/dify-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/lyx/Downloads/dify-mcp-server", - "run", - "dify_mcp_server" - ], - "env": { - "CONFIG_PATH": "${CONFIG_PATH}" - } - }, - "MCP-Mirror/DMontgomery40_deepseek-mcp-server": { - "package_name": "MCP-Mirror/DMontgomery40_deepseek-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/DMontgomery40_deepseek-mcp-server", - "command": "npx", - "args": [ - "-y", - "deepseek-mcp-server" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "techspawn/mcp-turboclient": { - "package_name": "techspawn/mcp-turboclient", - "repo_url": "https://github.com/techspawn/mcp-turboclient", - "command": "your_command", - "args": [ - "arg1", - "arg2" - ] - }, - "jjsantos01/qgis_mcp": { - "package_name": "jjsantos01/qgis_mcp", - "repo_url": "https://github.com/jjsantos01/qgis_mcp", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", - "run", - "qgis_mcp_server.py" - ] - }, - "MCP-Mirror/d-kimuson_esa-mcp-server": { - "package_name": "MCP-Mirror/d-kimuson_esa-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/d-kimuson_esa-mcp-server", - "command": "npx", - "args": [ - "-y", - "esa-mcp-server@latest" - ] - }, - "starbops/harvester-mcp-server": { - "package_name": "starbops/harvester-mcp-server", - "repo_url": "https://github.com/starbops/harvester-mcp-server", - "command": "/path/to/harvester-mcp-server", - "args": [ - "--kubeconfig", - "/path/to/kubeconfig.yaml", - "--log-level", - "info" - ] - }, - "comet-ml/opik-mcp": { - "package_name": "comet-ml/opik-mcp", - "repo_url": "https://github.com/comet-ml/opik-mcp", - "command": "/path/to/node", - "args": [ - "/path/to/opik-mcp/build/index.js", - "--apiUrl", - "https://www.comet.com/opik/api", - "--apiKey", - "YOUR_API_KEY", - "--workspace", - "default", - "--debug", - "true" - ], - "env": { - "OPIK_API_BASE_URL": "${OPIK_API_BASE_URL}", - "OPIK_API_KEY": "${OPIK_API_KEY}", - "OPIK_WORKSPACE_NAME": "${OPIK_WORKSPACE_NAME}" - } - }, - "ccc0168/modes-mcp-server": { - "package_name": "ccc0168/modes-mcp-server", - "repo_url": "https://github.com/ccc0168/modes-mcp-server", - "command": "node", - "args": [ - "/path/to/modes-mcp-server/build/index.js" - ], - "env": { - "MODES_CONFIG_PATH": "${MODES_CONFIG_PATH}" - } - }, - "ymadd/shadcn-ui-mcp-server": { - "package_name": "ymadd/shadcn-ui-mcp-server", - "repo_url": "https://github.com/ymadd/shadcn-ui-mcp-server", - "command": "/path/to/shadcn-ui-server/build/index.js" - }, - "MCP-Mirror/peterparker57_cpp-builder-mcp-server": { - "package_name": "MCP-Mirror/peterparker57_cpp-builder-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/peterparker57_cpp-builder-mcp-server", - "command": "node", - "args": [ - "path/to/cpp-builder-mcp-server/dist/index.js" - ] - }, - "openbnb-org/mcp-server-airbnb": { - "package_name": "openbnb-org/mcp-server-airbnb", - "repo_url": "https://github.com/openbnb-org/mcp-server-airbnb", - "command": "npx", - "args": [ - "-y", - "@openbnb/mcp-server-airbnb", - "--ignore-robots-txt" - ] - }, - "YuChenSSR/mindmap-mcp-server": { - "package_name": "YuChenSSR/mindmap-mcp-server", - "repo_url": "https://github.com/YuChenSSR/mindmap-mcp-server", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-v", - "/path/to/output/folder:/output", - "ychen94/mindmap-converter-mcp:latest" - ] - }, - "2b3pro/markdown2pdf-mcp": { - "package_name": "2b3pro/markdown2pdf-mcp", - "repo_url": "https://github.com/2b3pro/markdown2pdf-mcp", - "command": "node", - "args": [ - "path/to/markdown2pdf-mcp/build/index.js" - ], - "env": { - "M2P_OUTPUT_DIR": "${M2P_OUTPUT_DIR}" - } - }, - "anarcher/raindrop-io-mcp-server": { - "package_name": "anarcher/raindrop-io-mcp-server", - "repo_url": "https://github.com/anarcher/raindrop-io-mcp-server", - "command": "/path/to/raindrop-mcp-server", - "env": { - "RAINDROP_TOKEN": "${RAINDROP_TOKEN}" - } - }, - "MCP-Mirror/bmorphism_slowtime-mcp-server": { - "package_name": "MCP-Mirror/bmorphism_slowtime-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/bmorphism_slowtime-mcp-server", - "command": "node", - "args": [ - "/path/to/slowtime-mcp-server/build/index.js" - ] - }, - "c-cf/imf-data-mcp": { - "package_name": "c-cf/imf-data-mcp", - "repo_url": "https://github.com/c-cf/imf-data-mcp", - "command": "uvx", - "args": [ - "imf-data-mcp" - ] - }, - "MCP-Mirror/Msparihar_mcp-server-firecrawl": { - "package_name": "MCP-Mirror/Msparihar_mcp-server-firecrawl", - "repo_url": "https://github.com/MCP-Mirror/Msparihar_mcp-server-firecrawl", - "command": "mcp-server-firecrawl", - "env": { - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}" - } - }, - "aldrin-labs/solana-docs-mcp-server": { - "package_name": "aldrin-labs/solana-docs-mcp-server", - "repo_url": "https://github.com/aldrin-labs/solana-docs-mcp-server", - "command": "/path/to/solana-docs-server/build/index.js" - }, - "anpigon/mcp-server-obsidian-omnisearch": { - "package_name": "anpigon/mcp-server-obsidian-omnisearch", - "repo_url": "https://github.com/anpigon/mcp-server-obsidian-omnisearch", - "command": "uvx", - "args": [ - "mcp-server-obsidian-omnisearch", - "/path/to/your/obsidian/vault" - ] - }, - "d-kimuson/esa-mcp-server": { - "package_name": "d-kimuson/esa-mcp-server", - "repo_url": "https://github.com/d-kimuson/esa-mcp-server", - "command": "npx", - "args": [ - "-y", - "esa-mcp-server@latest" - ], - "env": { - "ESA_API_KEY": "${ESA_API_KEY}", - "DEFAULT_ESA_TEAM": "${DEFAULT_ESA_TEAM}" - } - }, - "MCP-Mirror/baryhuang_mcp-server-any-openapi": { - "package_name": "MCP-Mirror/baryhuang_mcp-server-any-openapi", - "repo_url": "https://github.com/MCP-Mirror/baryhuang_mcp-server-any-openapi", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", - "-e", - "MCP_API_PREFIX=finance", - "buryhuang/mcp-server-any-openapi:latest" - ] - }, - "zxkane/mcp-server-amazon-bedrock": { - "package_name": "zxkane/mcp-server-amazon-bedrock", - "repo_url": "https://github.com/zxkane/mcp-server-amazon-bedrock", - "command": "npx", - "args": [ - "-y", - "@zxkane/mcp-server-amazon-bedrock" - ], - "env": { - "AWS_PROFILE": "${AWS_PROFILE}", - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}" - } - }, - "andylee20014/mcp-replicate-flux": { - "package_name": "andylee20014/mcp-replicate-flux", - "repo_url": "https://github.com/andylee20014/mcp-replicate-flux", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-redis", - "redis://localhost:6379" - ] - }, - "wrale/mcp-server-make": { - "package_name": "wrale/mcp-server-make", - "repo_url": "https://github.com/wrale/mcp-server-make", - "command": "uvx", - "args": [ - "mcp-server-make", - "--make-path", - "/absolute/path/to/Makefile", - "--working-dir", - "/absolute/path/to/working/dir" - ] - }, - "formulahendry/mcp-server-code-runner": { - "package_name": "formulahendry/mcp-server-code-runner", - "repo_url": "https://github.com/formulahendry/mcp-server-code-runner", - "command": "npx", - "args": [ - "-y", - "mcp-server-code-runner@latest" - ] - }, - "MCP-Mirror/wopal-cn_mcp-hotnews-server": { - "package_name": "MCP-Mirror/wopal-cn_mcp-hotnews-server", - "repo_url": "https://github.com/MCP-Mirror/wopal-cn_mcp-hotnews-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "wopal/mcp-server-hotnews" - ] - }, - "MCP-Mirror/cyanheads_git-mcp-server": { - "package_name": "MCP-Mirror/cyanheads_git-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/cyanheads_git-mcp-server", - "command": "node", - "args": [ - "/path/to/git-mcp-server/build/index.js" - ], - "env": { - "GIT_DEFAULT_PATH": "${GIT_DEFAULT_PATH}" - } - }, - "MCP-Mirror/roychri_mcp-server-asana": { - "package_name": "MCP-Mirror/roychri_mcp-server-asana", - "repo_url": "https://github.com/MCP-Mirror/roychri_mcp-server-asana", - "command": "npx", - "args": [ - "-y", - "@roychri/mcp-server-asana" - ], - "env": { - "ASANA_ACCESS_TOKEN": "${ASANA_ACCESS_TOKEN}" - } - }, - "ThreatFlux/YaraFlux": { - "package_name": "ThreatFlux/YaraFlux", - "repo_url": "https://github.com/ThreatFlux/YaraFlux", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "--env", - "JWT_SECRET_KEY=your-secret-key", - "--env", - "ADMIN_PASSWORD=your-admin-password", - "--env", - "DEBUG=true", - "--env", - "PYTHONUNBUFFERED=1", - "threatflux/yaraflux-mcp-server:latest" - ] - }, - "MCP-Mirror/GongRzhe_Gmail-MCP-Server": { - "package_name": "MCP-Mirror/GongRzhe_Gmail-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/GongRzhe_Gmail-MCP-Server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-v", - "mcp-gmail:/gmail-server", - "-e", - "GMAIL_CREDENTIALS_PATH=/gmail-server/credentials.json", - "mcp/gmail" - ] - }, - "pnizer/wweb-mcp": { - "package_name": "pnizer/wweb-mcp", - "repo_url": "https://github.com/pnizer/wweb-mcp", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "wweb-mcp:latest", - "-m", - "mcp", - "-s", - "local", - "-c", - "api", - "-t", - "command", - "--api-base-url", - "http://host.docker.internal:3001/api", - "--api-key", - "1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef" - ] - }, - "maquina-app/rails-mcp-server": { - "package_name": "maquina-app/rails-mcp-server", - "repo_url": "https://github.com/maquina-app/rails-mcp-server", - "command": "ruby", - "args": [ - "/full/path/to/rails-mcp-server/exe/rails-mcp-server" - ] - }, - "delorenj/mcp-server-ticketmaster": { - "package_name": "delorenj/mcp-server-ticketmaster", - "repo_url": "https://github.com/delorenj/mcp-server-ticketmaster", - "command": "npx", - "args": [ - "-y", - "@delorenj/mcp-server-ticketmaster" - ], - "env": { - "TICKETMASTER_API_KEY": "${TICKETMASTER_API_KEY}" - } - }, - "MCP-Mirror/Alesion30_my-mcp-server": { - "package_name": "MCP-Mirror/Alesion30_my-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Alesion30_my-mcp-server", - "command": "node", - "args": [ - "xxx/my-mcp-server/build/main.js" - ] - }, - "ibraheem4/linear-mcp": { - "package_name": "ibraheem4/linear-mcp", - "repo_url": "https://github.com/ibraheem4/linear-mcp", - "command": "node", - "args": [ - "/path/to/linear-mcp/build/index.js" - ], - "env": { - "LINEAR_API_KEY": "${LINEAR_API_KEY}" - } - }, - "j4ckp0t85/Figma-Context-MCP-tokens": { - "package_name": "j4ckp0t85/Figma-Context-MCP-tokens", - "repo_url": "https://github.com/j4ckp0t85/Figma-Context-MCP-tokens", - "command": "npx", - "args": [ - "-y", - "figma-developer-mcp", - "--stdio" - ], - "env": { - "FIGMA_API_KEY": "${FIGMA_API_KEY}" - } - }, - "moyu6027/deepseek-MCP-server": { - "package_name": "moyu6027/deepseek-MCP-server", - "repo_url": "https://github.com/moyu6027/deepseek-MCP-server", - "command": "uv", - "args": [ - "--directory", - "PATH_TO_DEEPSEEK_MCP_SERVER", - "run", - "server.py" - ] - }, - "Dishant27/linkedin-mcp-server": { - "package_name": "Dishant27/linkedin-mcp-server", - "repo_url": "https://github.com/Dishant27/linkedin-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/linkedin-mcp-server/dist/index.js" - ], - "env": { - "LINKEDIN_CLIENT_ID": "${LINKEDIN_CLIENT_ID}", - "LINKEDIN_CLIENT_SECRET": "${LINKEDIN_CLIENT_SECRET}" - } - }, - "AudienseCo/mcp-tweetbinder": { - "package_name": "AudienseCo/mcp-tweetbinder", - "repo_url": "https://github.com/AudienseCo/mcp-tweetbinder", - "command": "node", - "args": [ - "/absolute/path/to/build/index.js" - ], - "env": { - "TWEETBINDER_API_TOKEN": "${TWEETBINDER_API_TOKEN}" - } - }, - "obinopaul/soccer-mcp-server": { - "package_name": "obinopaul/soccer-mcp-server", - "repo_url": "https://github.com/obinopaul/soccer-mcp-server", - "command": "/path/to/your/python", - "args": [ - "/path/to/soccer_server.py" - ], - "env": { - "RAPID_API_KEY_FOOTBALL": "${RAPID_API_KEY_FOOTBALL}" - } - }, - "yamaton/mcp-dice": { - "package_name": "yamaton/mcp-dice", - "repo_url": "https://github.com/yamaton/mcp-dice", - "command": "wsl", - "args": [ - "-e", - "zsh", - "-lc", - "uv run --directory path/to/mcp-dice-repo mcp-dice" - ] - }, - "orbit-logistics/notion-mcp-server": { - "package_name": "orbit-logistics/notion-mcp-server", - "repo_url": "https://github.com/orbit-logistics/notion-mcp-server", - "command": "npx", - "args": [ - "-y", - "mcp-sequential-thinking-test", - "-t", - "" - ] - }, - "Nazruden/clickup-mcp-server": { - "package_name": "Nazruden/clickup-mcp-server", - "repo_url": "https://github.com/Nazruden/clickup-mcp-server", - "command": "npx", - "args": [ - "@mcp/clickup-server" - ], - "env": { - "CLICKUP_CLIENT_ID": "${CLICKUP_CLIENT_ID}", - "CLICKUP_CLIENT_SECRET": "${CLICKUP_CLIENT_SECRET}", - "CLICKUP_REDIRECT_URI": "${CLICKUP_REDIRECT_URI}" - } - }, - "hanweg/mcp-pdf-tools": { - "package_name": "hanweg/mcp-pdf-tools", - "repo_url": "https://github.com/hanweg/mcp-pdf-tools", - "command": "uv", - "args": [ - "--directory", - "PATH_TO\\mcp-pdf-tools", - "run", - "pdf-tools" - ] - }, - "v-3/discordmcp": { - "package_name": "v-3/discordmcp", - "repo_url": "https://github.com/v-3/discordmcp", - "command": "node", - "args": [ - "path/to/discordmcp/build/index.js" - ], - "env": { - "DISCORD_TOKEN": "${DISCORD_TOKEN}" - } - }, - "weetime/prometheus-mcp-server": { - "package_name": "weetime/prometheus-mcp-server", - "repo_url": "https://github.com/weetime/prometheus-mcp-server", - "command": "npx prometheus-mcp-server", - "env": { - "PROMETHEUS_HOST": "${PROMETHEUS_HOST}" - } - }, - "MCP-Mirror/ducthinh993_mcp-server-endoflife": { - "package_name": "MCP-Mirror/ducthinh993_mcp-server-endoflife", - "repo_url": "https://github.com/MCP-Mirror/ducthinh993_mcp-server-endoflife", - "command": "npx", - "args": [ - "/path/to/eol-mcp-server/build/index.js" - ] - }, - "executeautomation/mcp-playwright": { - "package_name": "executeautomation/mcp-playwright", - "repo_url": "https://github.com/executeautomation/mcp-playwright", - "command": "npx", - "args": [ - "-y", - "@executeautomation/playwright-mcp-server" - ] - }, - "MCP-Mirror/ajbr0wn_gmail-mcp-server": { - "package_name": "MCP-Mirror/ajbr0wn_gmail-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/ajbr0wn_gmail-mcp-server", - "command": "/path/to/conda/envs/mcp-gmail/bin/python", - "args": [ - "-m", - "gmail_mcp_server.server" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}", - "GMAIL_CREDENTIALS_FILE": "${GMAIL_CREDENTIALS_FILE}", - "GMAIL_TOKEN_FILE": "${GMAIL_TOKEN_FILE}" - } - }, - "evalstate/mcp-miro": { - "package_name": "evalstate/mcp-miro", - "repo_url": "https://github.com/evalstate/mcp-miro", - "command": "/path/to/node-or-npx" - }, - "fred-em/headline-vibes": { - "package_name": "fred-em/headline-vibes", - "repo_url": "https://github.com/fred-em/headline-vibes", - "command": "node", - "args": [ - "/path/to/headline-vibes/build/index.mjs" - ], - "env": { - "NEWS_API_KEY": "${NEWS_API_KEY}" - } - }, - "delano/postman-mcp-server": { - "package_name": "delano/postman-mcp-server", - "repo_url": "https://github.com/delano/postman-mcp-server", - "command": "node", - "args": [ - "/path/to/postman-api-server/build/index.js" - ], - "env": { - "POSTMAN_API_KEY": "${POSTMAN_API_KEY}" - } - }, - "rahul-roy-glean/glean-mcp-server": { - "package_name": "rahul-roy-glean/glean-mcp-server", - "repo_url": "https://github.com/rahul-roy-glean/glean-mcp-server", - "command": "uv", - "args": [ - "--directory", - "", - "run", - "glean_server.py" - ] - }, - "cheqd/mcp-toolkit": { - "package_name": "cheqd/mcp-toolkit", - "repo_url": "https://github.com/cheqd/mcp-toolkit", - "command": "npx", - "args": [ - "-y", - "@cheqd/mcp-toolkit" - ], - "env": { - "TOOLS": "${TOOLS}" - } - }, - "dinghuazhou/sample-mcp-server-tos": { - "package_name": "dinghuazhou/sample-mcp-server-tos", - "repo_url": "https://github.com/dinghuazhou/sample-mcp-server-tos", - "command": "uvx", - "args": [ - "tos-mcp-server" - ] - }, - "MCP-Mirror/steel-dev_steel-mcp-server": { - "package_name": "MCP-Mirror/steel-dev_steel-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/steel-dev_steel-mcp-server", - "command": "node", - "args": [ - "path/to/steel-puppeteer/dist/index.js" - ], - "env": { - "STEEL_LOCAL": "${STEEL_LOCAL}", - "STEEL_API_KEY": "${STEEL_API_KEY}" - } - }, - "kevinwatt/mysql-mcp": { - "package_name": "kevinwatt/mysql-mcp", - "repo_url": "https://github.com/kevinwatt/mysql-mcp", - "command": "npx", - "args": [ - "-y", - "@kevinwatt/mysql-mcp" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASS": "${MYSQL_PASS}", - "MYSQL_DB": "${MYSQL_DB}" - } - }, - "aitiwari/weather": { - "package_name": "aitiwari/weather", - "repo_url": "https://github.com/aitiwari/weather", - "command": "npx", - "args": [ - "-y", - "@baidumap/mcp-server-baidu-map" - ], - "env": { - "BAIDU_MAP_API_KEY": "${BAIDU_MAP_API_KEY}" - } - }, - "win4r/arxiv-search-MCP-Server": { - "package_name": "win4r/arxiv-search-MCP-Server", - "repo_url": "https://github.com/win4r/arxiv-search-MCP-Server", - "command": "node", - "args": [ - "/path/to/arxiv-search/build/index.js" - ] - }, - "junyuan-qi/lark-mcp-server": { - "package_name": "junyuan-qi/lark-mcp-server", - "repo_url": "https://github.com/junyuan-qi/lark-mcp-server", - "command": "node", - "args": [ - "/path/to/lark-mcp-server/build/index.js" - ], - "env": { - "LARK_APP_ID": "${LARK_APP_ID}", - "LARK_APP_SECRET": "${LARK_APP_SECRET}", - "LARK_USER_ID": "${LARK_USER_ID}", - "LARK_CALENDAR_ID": "${LARK_CALENDAR_ID}", - "LARK_USER_ACCESS_TOKEN": "${LARK_USER_ACCESS_TOKEN}" - } - }, - "okooo5km/memory-mcp-server": { - "package_name": "okooo5km/memory-mcp-server", - "repo_url": "https://github.com/okooo5km/memory-mcp-server", - "command": "memory-mcp-server", - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "mshk/mcp-rss-crawler": { - "package_name": "mshk/mcp-rss-crawler", - "repo_url": "https://github.com/mshk/mcp-rss-crawler", - "command": "/path/to/bun", - "args": [ - "run", - "/path/to/mcp-rss-crawler/apps/mcp-server/src/mcp-cli.ts" - ], - "env": { - "PORT": "${PORT}", - "DB_DIR": "${DB_DIR}", - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}" - } - }, - "tekorex/mcp2http": { - "package_name": "tekorex/mcp2http", - "repo_url": "https://github.com/tekorex/mcp2http", - "command": "npx", - "args": [ - "-y", - "mcp2http", - "https://example.com/mcp", - "Authorization: Bearer token123" - ] - }, - "domdomegg/airtable-mcp-server": { - "package_name": "domdomegg/airtable-mcp-server", - "repo_url": "https://github.com/domdomegg/airtable-mcp-server", - "command": "npx", - "args": [ - "-y", - "airtable-mcp-server" - ], - "env": { - "AIRTABLE_API_KEY": "${AIRTABLE_API_KEY}" - } - }, - "robertredbox/apptweak-mcp": { - "package_name": "robertredbox/apptweak-mcp", - "repo_url": "https://github.com/robertredbox/apptweak-mcp", - "command": "node", - "args": [ - "/path/to/apptweak-mcp/build/index.js" - ], - "env": { - "APPTWEAK_API_KEY": "${APPTWEAK_API_KEY}" - } - }, - "DumoeDss/mcp-server-software": { - "package_name": "DumoeDss/mcp-server-software", - "repo_url": "https://github.com/DumoeDss/mcp-server-software", - "command": "python", - "args": [ - "path/to/mcp_server_software.py" - ] - }, - "phact/mcp-google-docs": { - "package_name": "phact/mcp-google-docs", - "repo_url": "https://github.com/phact/mcp-google-docs", - "command": "python", - "args": [ - "-m", - "mcp_server_time" - ] - }, - "ihor-sokoliuk/mcp-searxng": { - "package_name": "ihor-sokoliuk/mcp-searxng", - "repo_url": "https://github.com/ihor-sokoliuk/mcp-searxng", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "SEARXNG_URL", - "mcp-server-searxng:latest" - ], - "env": { - "SEARXNG_URL": "${SEARXNG_URL}" - } - }, - "ClickHouse/mcp-clickhouse": { - "package_name": "ClickHouse/mcp-clickhouse", - "repo_url": "https://github.com/ClickHouse/mcp-clickhouse", - "command": "uv", - "args": [ - "run", - "--with", - "mcp-clickhouse", - "--python", - "3.13", - "mcp-clickhouse" - ], - "env": { - "CLICKHOUSE_HOST": "${CLICKHOUSE_HOST}", - "CLICKHOUSE_USER": "${CLICKHOUSE_USER}", - "CLICKHOUSE_PASSWORD": "${CLICKHOUSE_PASSWORD}", - "CLICKHOUSE_DATABASE": "${CLICKHOUSE_DATABASE}" - } - }, - "MCP-Mirror/reminia_zendesk-mcp-server": { - "package_name": "MCP-Mirror/reminia_zendesk-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/reminia_zendesk-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/zendesk-mcp-server", - "run", - "zendesk" - ] - }, - "kimtaeyoon83/mcp-server-youtube-transcript": { - "package_name": "kimtaeyoon83/mcp-server-youtube-transcript", - "repo_url": "https://github.com/kimtaeyoon83/mcp-server-youtube-transcript", - "command": "npx", - "args": [ - "-y", - "@kimtaeyoon83/mcp-server-youtube-transcript" - ] - }, - "jakeyShakey/umami_mcp_server": { - "package_name": "jakeyShakey/umami_mcp_server", - "repo_url": "https://github.com/jakeyShakey/umami_mcp_server", - "command": "uv", - "args": [ - "--directory", - "/path/to/analytics_service", - "run", - "analytics-service" - ], - "env": { - "UMAMI_API_URL": "${UMAMI_API_URL}", - "UMAMI_USERNAME": "${UMAMI_USERNAME}", - "UMAMI_PASSWORD": "${UMAMI_PASSWORD}", - "UMAMI_TEAM_ID": "${UMAMI_TEAM_ID}" - } - }, - "baranwang/mcp-trends-hub": { - "package_name": "baranwang/mcp-trends-hub", - "repo_url": "https://github.com/baranwang/mcp-trends-hub", - "command": "npx", - "args": [ - "-y", - "mcp-trends-hub@latest" - ] - }, - "picahq/mcp-server": { - "package_name": "picahq/mcp-server", - "repo_url": "https://github.com/picahq/mcp-server", - "command": "node", - "args": [ - "/path/to/pica-mcp-server/build/index.js" - ], - "env": { - "PICA_SECRET": "${PICA_SECRET}" - } - }, - "mailgun/mailgun-mcp-server": { - "package_name": "mailgun/mailgun-mcp-server", - "repo_url": "https://github.com/mailgun/mailgun-mcp-server", - "command": "node", - "args": [ - "CHANGE/THIS/PATH/TO/mailgun-mcp-server/src/mailgun-mcp.js" - ], - "env": { - "MAILGUN_API_KEY": "${MAILGUN_API_KEY}" - } - }, - "ausboss/mcp-ollama-agent": { - "package_name": "ausboss/mcp-ollama-agent", - "repo_url": "https://github.com/ausboss/mcp-ollama-agent", - "command": "npx", - "args": [ - "@modelcontextprotocol/server-filesystem", - "./" - ] - }, - "rahgadda/openapi_mcp_server": { - "package_name": "rahgadda/openapi_mcp_server", - "repo_url": "https://github.com/rahgadda/openapi_mcp_server", - "command": "uv", - "args": [ - "run", - "openapi_mcp_server" - ], - "env": { - "DEBUG": "${DEBUG}", - "API_BASE_URL": "${API_BASE_URL}", - "OPENAPI_SPEC_PATH": "${OPENAPI_SPEC_PATH}", - "API_HEADERS": "${API_HEADERS}", - "API_WHITE_LIST": "${API_WHITE_LIST}" - } - }, - "stephen37/mcp-server-milvus": { - "package_name": "stephen37/mcp-server-milvus", - "repo_url": "https://github.com/stephen37/mcp-server-milvus", - "command": "/PATH/TO/uv", - "args": [ - "--directory", - "/path/to/mcp-server-milvus/src/mcp_server_milvus", - "run", - "server.py", - "--milvus-uri", - "http://127.0.0.1:19530" - ] - }, - "MCP-Mirror/gotoolkits_mcp-difyworkflow-server": { - "package_name": "MCP-Mirror/gotoolkits_mcp-difyworkflow-server", - "repo_url": "https://github.com/MCP-Mirror/gotoolkits_mcp-difyworkflow-server", - "command": "mcp-difyworkflow-server", - "args": [ - "-base-url", - "http://localhost/v1" - ], - "env": { - "DIFY_WORKFLOW_NAME": "${DIFY_WORKFLOW_NAME}", - "DIFY_API_KEYS": "${DIFY_API_KEYS}" - } - }, - "shuakami/mcp-download": { - "package_name": "shuakami/mcp-download", - "repo_url": "https://github.com/shuakami/mcp-download", - "command": "python3", - "args": [ - "/home/\u00e4\u00bd\u00a0\u00e7\u009a\u0084\u00e7\u0094\u00a8\u00e6\u0088\u00b7\u00e5\u0090\u008d/mcp-download/bridging_download_mcp.py" - ] - }, - "adhikasp/mcp-client-cli": { - "package_name": "adhikasp/mcp-client-cli", - "repo_url": "https://github.com/adhikasp/mcp-client-cli", - "command": "uvx", - "args": [ - "mcp-server-fetch" - ] - }, - "MCP-Mirror/abhiz123_todoist-mcp-server": { - "package_name": "MCP-Mirror/abhiz123_todoist-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/abhiz123_todoist-mcp-server", - "command": "npx", - "args": [ - "-y", - "@abhiz123/todoist-mcp-server" - ], - "env": { - "TODOIST_API_TOKEN": "${TODOIST_API_TOKEN}" - } - }, - "MCP-Mirror/hmk_box-mcp-server": { - "package_name": "MCP-Mirror/hmk_box-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/hmk_box-mcp-server", - "command": "npx", - "args": [ - "box-mcp-server" - ], - "env": { - "BOX_DEV_TOKEN": "${BOX_DEV_TOKEN}" - } - }, - "amekala/adspirer-mcp-server": { - "package_name": "amekala/adspirer-mcp-server", - "repo_url": "https://github.com/amekala/adspirer-mcp-server", - "command": "adspirer-mcp", - "args": [ - "start" - ], - "env": { - "API_KEY": "${API_KEY}" - } - }, - "nickgnd/tmux-mcp": { - "package_name": "nickgnd/tmux-mcp", - "repo_url": "https://github.com/nickgnd/tmux-mcp", - "command": "npx", - "args": [ - "-y", - "tmux-mcp", - "--shell-type=fish" - ] - }, - "seyhunak/agentcraft-mcp": { - "package_name": "seyhunak/agentcraft-mcp", - "repo_url": "https://github.com/seyhunak/agentcraft-mcp", - "command": "python", - "args": [ - "-m", - "agentcraft_mcp.server" - ], - "env": { - "AGENTCRAFT_BEARER_TOKEN": "${AGENTCRAFT_BEARER_TOKEN}", - "ENVIRONMENT": "${ENVIRONMENT}" - } - }, - "BigUncle/Fast-Whisper-MCP-Server": { - "package_name": "BigUncle/Fast-Whisper-MCP-Server", - "repo_url": "https://github.com/BigUncle/Fast-Whisper-MCP-Server", - "command": "python", - "args": [ - "D:/path/to/whisper_server.py" - ] - }, - "zenml-io/mcp-zenml": { - "package_name": "zenml-io/mcp-zenml", - "repo_url": "https://github.com/zenml-io/mcp-zenml", - "command": "/usr/local/bin/uv", - "args": [ - "run", - "path/to/zenml_server.py" - ], - "env": { - "LOGLEVEL": "${LOGLEVEL}", - "NO_COLOR": "${NO_COLOR}", - "PYTHONUNBUFFERED": "${PYTHONUNBUFFERED}", - "PYTHONIOENCODING": "${PYTHONIOENCODING}", - "ZENML_STORE_URL": "${ZENML_STORE_URL}", - "ZENML_STORE_API_KEY": "${ZENML_STORE_API_KEY}" - } - }, - "zhsama/duckduckgo-mcp-server": { - "package_name": "zhsama/duckduckgo-mcp-server", - "repo_url": "https://github.com/zhsama/duckduckgo-mcp-server" - }, - "jonator/osmosis-agent-toolkit": { - "package_name": "jonator/osmosis-agent-toolkit", - "repo_url": "https://github.com/jonator/osmosis-agent-toolkit", - "command": "npx", - "args": [ - "-y", - "@osmosis-agent-toolkit/mcp" - ], - "env": { - "OSMOSIS_MNEMONIC": "${OSMOSIS_MNEMONIC}" - } - }, - "mprokopov/ledger-mcp-server": { - "package_name": "mprokopov/ledger-mcp-server", - "repo_url": "https://github.com/mprokopov/ledger-mcp-server", - "command": "uvx", - "args": [ - "ledger-service" - ] - }, - "strowk/mcp-k8s-go": { - "package_name": "strowk/mcp-k8s-go", - "repo_url": "https://github.com/strowk/mcp-k8s-go", - "command": "docker", - "args": [ - "run", - "-i", - "-v", - "~/.kube/config:/home/nonroot/.kube/config", - "--rm", - "mcpk8s/server:latest" - ] - }, - "Lullabot/tugboat-mcp": { - "package_name": "Lullabot/tugboat-mcp", - "repo_url": "https://github.com/Lullabot/tugboat-mcp", - "command": "node", - "args": [ - "/path/to/tugboat-mcp/dist/index.js" - ], - "env": { - "TUGBOAT_API_KEY": "${TUGBOAT_API_KEY}" - } - }, - "puravparab/Gitingest-MCP": { - "package_name": "puravparab/Gitingest-MCP", - "repo_url": "https://github.com/puravparab/Gitingest-MCP", - "command": "/uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "--with-editable", - "/gitingest_mcp", - "mcp", - "run", - "/gitingest-mcp/src/gitingest_mcp/server.py" - ] - }, - "Heratiki/locallama-mcp": { - "package_name": "Heratiki/locallama-mcp", - "repo_url": "https://github.com/Heratiki/locallama-mcp", - "command": "node", - "args": [ - "/path/to/locallama-mcp" - ], - "env": { - "LM_STUDIO_ENDPOINT": "${LM_STUDIO_ENDPOINT}", - "OLLAMA_ENDPOINT": "${OLLAMA_ENDPOINT}", - "DEFAULT_LOCAL_MODEL": "${DEFAULT_LOCAL_MODEL}", - "TOKEN_THRESHOLD": "${TOKEN_THRESHOLD}", - "COST_THRESHOLD": "${COST_THRESHOLD}", - "QUALITY_THRESHOLD": "${QUALITY_THRESHOLD}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}" - } - }, - "jonfreeland/mongodb-mcp": { - "package_name": "jonfreeland/mongodb-mcp", - "repo_url": "https://github.com/jonfreeland/mongodb-mcp", - "command": "node", - "args": [ - "/path/to/mongodb-server/build/index.js" - ], - "env": { - "MONGODB_URI": "${MONGODB_URI}", - "MONGODB_DEFAULT_DATABASE": "${MONGODB_DEFAULT_DATABASE}" - } - }, - "wpnbos/buienradar-mcp-server": { - "package_name": "wpnbos/buienradar-mcp-server", - "repo_url": "https://github.com/wpnbos/buienradar-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/buienradar-mcp-server", - "run", - "server.py" - ] - }, - "TeamDman/mcp-server-hello": { - "package_name": "TeamDman/mcp-server-hello", - "repo_url": "https://github.com/TeamDman/mcp-server-hello", - "command": "mcp-rs-template", - "args": [ - "--mcp" - ], - "env": { - "API_KEY": "${API_KEY}" - } - }, - "zenturacp/perplexity-server": { - "package_name": "zenturacp/perplexity-server", - "repo_url": "https://github.com/zenturacp/perplexity-server", - "command": "/path/to/perplexity-server/build/index.js" - }, - "MCP-Mirror/jakedahn_deno2-playwright-mcp-server": { - "package_name": "MCP-Mirror/jakedahn_deno2-playwright-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/jakedahn_deno2-playwright-mcp-server", - "command": "/path/to/deno2-playwright-mcp-server/playwright-server" - }, - "lifinance/lifi-mcp": { - "package_name": "lifinance/lifi-mcp", - "repo_url": "https://github.com/lifinance/lifi-mcp", - "command": "lifi-mcp", - "args": [ - "server", - "--keystore", - "your-keystore", - "--password", - "your-password" - ] - }, - "idoru/influxdb-mcp-server": { - "package_name": "idoru/influxdb-mcp-server", - "repo_url": "https://github.com/idoru/influxdb-mcp-server", - "command": "node", - "args": [ - "/path/to/influxdb-mcp-server/src/index.js" - ], - "env": { - "INFLUXDB_TOKEN": "${INFLUXDB_TOKEN}", - "INFLUXDB_URL": "${INFLUXDB_URL}", - "INFLUXDB_ORG": "${INFLUXDB_ORG}" - } - }, - "MattMorgis/nuanced-mcp": { - "package_name": "MattMorgis/nuanced-mcp", - "repo_url": "https://github.com/MattMorgis/nuanced-mcp", - "command": "uv", - "args": [ - "--directory", - "/path/to/nuanced-mcp", - "run", - "nuanced_mcp_server.py" - ] - }, - "isaacphi/mcp-gdrive": { - "package_name": "isaacphi/mcp-gdrive", - "repo_url": "https://github.com/isaacphi/mcp-gdrive", - "command": "npx", - "args": [ - "-y", - "@isaacphi/mcp-gdrive" - ], - "env": { - "CLIENT_ID": "${CLIENT_ID}", - "CLIENT_SECRET": "${CLIENT_SECRET}", - "GDRIVE_CREDS_DIR": "${GDRIVE_CREDS_DIR}" - } - }, - "bitflower/mcp-servers": { - "package_name": "bitflower/mcp-servers", - "repo_url": "https://github.com/bitflower/mcp-servers", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/path/to/allowed/files" - ] - }, - "dhartunian/cockroachdb-mcp-server": { - "package_name": "dhartunian/cockroachdb-mcp-server", - "repo_url": "https://github.com/dhartunian/cockroachdb-mcp-server", - "command": "node", - "args": [ - "/path/to/cockroachdb-mcp-server/dist/server.js", - "postgres://root@127.0.0.1:26257/testdb", - "your_auth_token" - ] - }, - "MCP-Mirror/JoshuaRileyDev_app-store-connect-mcp-server": { - "package_name": "MCP-Mirror/JoshuaRileyDev_app-store-connect-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/JoshuaRileyDev_app-store-connect-mcp-server", - "command": "npx", - "args": [ - "-y", - "@your-org/app-store-connect-mcp-server" - ], - "env": { - "APP_STORE_CONNECT_KEY_ID": "${APP_STORE_CONNECT_KEY_ID}", - "APP_STORE_CONNECT_ISSUER_ID": "${APP_STORE_CONNECT_ISSUER_ID}", - "APP_STORE_CONNECT_P8_PATH": "${APP_STORE_CONNECT_P8_PATH}" - } - }, - "a-ssign/tech-mcp-server": { - "package_name": "a-ssign/tech-mcp-server", - "repo_url": "https://github.com/a-ssign/tech-mcp-server", - "command": "deno", - "args": [ - "run", - "--allow-net", - "--allow-env", - "--allow-read", - "/path/to/src/server.ts" - ] - }, - "da-okazaki/mcp-neo4j-server": { - "package_name": "da-okazaki/mcp-neo4j-server", - "repo_url": "https://github.com/da-okazaki/mcp-neo4j-server", - "command": "npx", - "args": [ - "@alanse/mcp-neo4j-server" - ], - "env": { - "NEO4J_URI": "${NEO4J_URI}", - "NEO4J_USERNAME": "${NEO4J_USERNAME}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}" - } - }, - "dstotijn/mcp-dutch-postal-codes": { - "package_name": "dstotijn/mcp-dutch-postal-codes", - "repo_url": "https://github.com/dstotijn/mcp-dutch-postal-codes", - "command": "go", - "args": [ - "run", - "github.com/dstotijn/mcp-dutch-postal-codes@main" - ] - }, - "T1nker-1220/memories-with-lessons-mcp-server": { - "package_name": "T1nker-1220/memories-with-lessons-mcp-server", - "repo_url": "https://github.com/T1nker-1220/memories-with-lessons-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ], - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "MCP-Mirror/fireproof-storage_mcp-database-server": { - "package_name": "MCP-Mirror/fireproof-storage_mcp-database-server", - "repo_url": "https://github.com/MCP-Mirror/fireproof-storage_mcp-database-server", - "command": "/path/to/fireproof-mcp/build/index.js" - }, - "MCP-Mirror/laodev1_perplexity-mcp-server": { - "package_name": "MCP-Mirror/laodev1_perplexity-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/laodev1_perplexity-mcp-server", - "command": "node", - "args": [ - "path\\to\\perplexity-mcp-server\\dist\\index.js" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "alxspiker/Windows-Command-Line-MCP-Server": { - "package_name": "alxspiker/Windows-Command-Line-MCP-Server", - "repo_url": "https://github.com/alxspiker/Windows-Command-Line-MCP-Server", - "command": "node", - "args": [ - "/path/to/dist/index.js" - ] - }, - "btwiuse/npm-search-mcp-server": { - "package_name": "btwiuse/npm-search-mcp-server", - "repo_url": "https://github.com/btwiuse/npm-search-mcp-server", - "command": "uvx", - "args": [ - "npm-search-mcp-server" - ] - }, - "kagisearch/kagimcp": { - "package_name": "kagisearch/kagimcp", - "repo_url": "https://github.com/kagisearch/kagimcp", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", - "run", - "kagimcp" - ], - "env": { - "KAGI_API_KEY": "${KAGI_API_KEY}", - "KAGI_SUMMARIZER_ENGINE": "${KAGI_SUMMARIZER_ENGINE}" - } - }, - "CamdenClark/anki-mcp-server": { - "package_name": "CamdenClark/anki-mcp-server", - "repo_url": "https://github.com/CamdenClark/anki-mcp-server", - "command": "node", - "args": [ - "d:\\anki-mcp-server\\build\\index.js" - ] - }, - "runekaagaard/mcp-alchemy": { - "package_name": "runekaagaard/mcp-alchemy", - "repo_url": "https://github.com/runekaagaard/mcp-alchemy", - "command": "uvx", - "args": [ - "--from", - "mcp-alchemy==2025.04.09.091234", - "--with", - "sqlalchemy-cratedb>=0.42.0.dev1", - "mcp-alchemy" - ], - "env": { - "DB_URL": "${DB_URL}" - } - }, - "hvkshetry/autocad-mcp": { - "package_name": "hvkshetry/autocad-mcp", - "repo_url": "https://github.com/hvkshetry/autocad-mcp", - "command": "path\\to\\autocad-mcp\\venv\\Scripts\\python.exe", - "args": [ - "path\\to\\autocad-mcp\\server_lisp.py" - ] - }, - "ibraheem4/clover-mcp": { - "package_name": "ibraheem4/clover-mcp", - "repo_url": "https://github.com/ibraheem4/clover-mcp", - "command": "npx", - "args": [ - "-y", - "@ibraheem4/clover-mcp" - ], - "env": { - "CLOVER_CLIENT_ID": "${CLOVER_CLIENT_ID}", - "CLOVER_CLIENT_SECRET": "${CLOVER_CLIENT_SECRET}", - "CLOVER_BASE_URL": "${CLOVER_BASE_URL}" - } - }, - "MCP-Mirror/HarshJ23_deepseek-claude-MCP-server": { - "package_name": "MCP-Mirror/HarshJ23_deepseek-claude-MCP-server", - "repo_url": "https://github.com/MCP-Mirror/HarshJ23_deepseek-claude-MCP-server", - "command": "uv", - "args": [ - "--directory", - "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\deepseek-claude", - "run", - "server.py" - ] - }, - "jagan-shanmugam/mattermost-mcp-bridge": { - "package_name": "jagan-shanmugam/mattermost-mcp-bridge", - "repo_url": "https://github.com/jagan-shanmugam/mattermost-mcp-bridge", - "command": "python", - "args": [ - "ollama-mcp-server/src/ollama_mcp_server/main.py" - ] - }, - "GMKR/mcp-imagegen": { - "package_name": "GMKR/mcp-imagegen", - "repo_url": "https://github.com/GMKR/mcp-imagegen", - "command": "pnpx", - "args": [ - "-y", - "tsx", - "/path/to/mcp-imagegen/src/index.ts" - ], - "env": { - "PROVIDER": "${PROVIDER}", - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "crazyrabbitLTC/mcp-snapshot-server": { - "package_name": "crazyrabbitLTC/mcp-snapshot-server", - "repo_url": "https://github.com/crazyrabbitLTC/mcp-snapshot-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/snapshot-server/build/index.js" - ] - }, - "bingal/FastDomainCheck-MCP-Server": { - "package_name": "bingal/FastDomainCheck-MCP-Server", - "repo_url": "https://github.com/bingal/FastDomainCheck-MCP-Server", - "command": "path/to/FastDomainCheck-MCP-Server.exe", - "args": [] - }, - "cardinalblue/prompt-book-mcp-server": { - "package_name": "cardinalblue/prompt-book-mcp-server", - "repo_url": "https://github.com/cardinalblue/prompt-book-mcp-server", - "command": "npx", - "args": [ - "-y", - "@piccollage/prompt-book-mcp-server" - ] - }, - "Tomocrystal/generate_image-mcp-server": { - "package_name": "Tomocrystal/generate_image-mcp-server", - "repo_url": "https://github.com/Tomocrystal/generate_image-mcp-server", - "command": "/path/to/genimg-mcp/dist/index.js", - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "OPENAI_MODEL_ID": "${OPENAI_MODEL_ID}" - } - }, - "GongRzhe/Image-Generation-MCP-Server": { - "package_name": "GongRzhe/Image-Generation-MCP-Server", - "repo_url": "https://github.com/GongRzhe/Image-Generation-MCP-Server", - "command": "node", - "args": [ - "/path/to/image-gen-server/build/index.js" - ], - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}", - "MODEL": "${MODEL}" - } - }, - "quazaai/UnityMCPIntegration": { - "package_name": "quazaai/UnityMCPIntegration", - "repo_url": "https://github.com/quazaai/UnityMCPIntegration", - "command": "node", - "args": [ - "/mcpServer/build/index.js" - ] - }, - "RafalWilinski/aws-mcp": { - "package_name": "RafalWilinski/aws-mcp", - "repo_url": "https://github.com/RafalWilinski/aws-mcp", - "command": "/Users//.nvm/versions/node/v20.10.0/bin/node", - "args": [ - "/aws-mcp/node_modules/tsx/dist/cli.mjs", - "/aws-mcp/index.ts", - "--prefix", - "/aws-mcp", - "start" - ] - }, - "MCP-Mirror/shaike1_mcp-server-ssh": { - "package_name": "MCP-Mirror/shaike1_mcp-server-ssh", - "repo_url": "https://github.com/MCP-Mirror/shaike1_mcp-server-ssh", - "command": "node", - "args": [ - "%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js" - ], - "env": { - "SSH_PORT": "${SSH_PORT}", - "SSH_LOG_LEVEL": "${SSH_LOG_LEVEL}" - } - }, - "simonberner/mcp-server-calculator": { - "package_name": "simonberner/mcp-server-calculator", - "repo_url": "https://github.com/simonberner/mcp-server-calculator", - "command": "python", - "args": [ - "/mcp-server-calculator/src/mcp_server_calculator/calculator.py" - ] - }, - "niledatabase/nile-mcp-server": { - "package_name": "niledatabase/nile-mcp-server", - "repo_url": "https://github.com/niledatabase/nile-mcp-server", - "command": "node", - "args": [ - "/path/to/your/nile-mcp-server/dist/index.js" - ], - "env": { - "NILE_API_KEY": "${NILE_API_KEY}", - "NILE_WORKSPACE_SLUG": "${NILE_WORKSPACE_SLUG}" - } - }, - "MCP-Mirror/yosider_cosense-mcp-server": { - "package_name": "MCP-Mirror/yosider_cosense-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/yosider_cosense-mcp-server", - "command": "node", - "args": [ - "/path/to/cosense-mcp-server/build/index.js" - ], - "env": { - "COSENSE_PROJECT_NAME": "${COSENSE_PROJECT_NAME}", - "COSENSE_SID": "${COSENSE_SID}" - } - }, - "haris-musa/excel-mcp-server": { - "package_name": "haris-musa/excel-mcp-server", - "repo_url": "https://github.com/haris-musa/excel-mcp-server", - "env": { - "EXCEL_FILES_PATH": "${EXCEL_FILES_PATH}" - } - }, - "xuezhijian/mcp_weather": { - "package_name": "xuezhijian/mcp_weather", - "repo_url": "https://github.com/xuezhijian/mcp_weather", - "command": "python", - "args": [ - "-m", - "mcp_server_weather" - ] - }, - "lightconetech/mcp-gateway": { - "package_name": "lightconetech/mcp-gateway", - "repo_url": "https://github.com/lightconetech/mcp-gateway", - "command": "node", - "args": [ - "/opt/homebrew/lib/node_modules/@mcphub/gateway/dist/src/mcphub-gateway.js" - ] - }, - "MCP-Mirror/recursechat_mcp-server-apple-shortcuts": { - "package_name": "MCP-Mirror/recursechat_mcp-server-apple-shortcuts", - "repo_url": "https://github.com/MCP-Mirror/recursechat_mcp-server-apple-shortcuts", - "command": "npx", - "args": [ - "-y", - "mcp-server-apple-shortcuts" - ] - }, - "tejpalvirk/contextmanager": { - "package_name": "tejpalvirk/contextmanager", - "repo_url": "https://github.com/tejpalvirk/contextmanager", - "command": "npx", - "args": [ - "-y", - "github:tejpalvirk/contextmanager" - ] - }, - "e2b-dev/mcp-server": { - "package_name": "e2b-dev/mcp-server", - "repo_url": "https://github.com/e2b-dev/mcp-server", - "command": "uvx", - "args": [ - "blender-mcp" - ] - }, - "isdaniel/mcp_weather_server": { - "package_name": "isdaniel/mcp_weather_server", - "repo_url": "https://github.com/isdaniel/mcp_weather_server", - "command": "python", - "args": [ - "mcp_weather_server.py" - ] - }, - "skydeckai/mcp-server-aidd": { - "package_name": "skydeckai/mcp-server-aidd", - "repo_url": "https://github.com/skydeckai/mcp-server-aidd", - "command": "uvx", - "args": [ - "mcp-server-aidd" - ] - }, - "Cheffromspace/MCPControl": { - "package_name": "Cheffromspace/MCPControl", - "repo_url": "https://github.com/Cheffromspace/MCPControl", - "command": "npx", - "args": [ - "--no-cache", - "-y", - "mcp-control" - ] - }, - "wonderwhy-er/ClaudeComputerCommander": { - "package_name": "wonderwhy-er/ClaudeComputerCommander", - "repo_url": "https://github.com/wonderwhy-er/ClaudeComputerCommander", - "command": "npx", - "args": [ - "-y", - "@wonderwhy-er/desktop-commander" - ] - }, - "justinpbarnett/unity-mcp": { - "package_name": "justinpbarnett/unity-mcp", - "repo_url": "https://github.com/justinpbarnett/unity-mcp", - "command": "uv", - "args": [ - "run", - "--directory", - "/usr/local/bin/UnityMCP/UnityMcpServer/src", - "server.py" - ] - }, - "samuelrizzo/jira-mcp-server": { - "package_name": "samuelrizzo/jira-mcp-server", - "repo_url": "https://github.com/samuelrizzo/jira-mcp-server", - "command": "node", - "args": [ - "./dist/index.js" - ], - "env": { - "JIRA_HOST": "${JIRA_HOST}", - "JIRA_EMAIL": "${JIRA_EMAIL}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}" - } - }, - "lmcc-dev/mult-fetch-mcp-server": { - "package_name": "lmcc-dev/mult-fetch-mcp-server", - "repo_url": "https://github.com/lmcc-dev/mult-fetch-mcp-server", - "command": "path-to/bin/node", - "args": [ - "path-to/@lmcc-dev/mult-fetch-mcp-server/dist/index.js" - ], - "env": { - "MCP_LANG": "${MCP_LANG}" - } - }, - "ChristophEnglisch/keycloak-model-context-protocol": { - "package_name": "ChristophEnglisch/keycloak-model-context-protocol", - "repo_url": "https://github.com/ChristophEnglisch/keycloak-model-context-protocol", - "command": "node", - "args": [ - "path/to/dist/index.js" - ], - "env": { - "KEYCLOAK_URL": "${KEYCLOAK_URL}", - "KEYCLOAK_ADMIN": "${KEYCLOAK_ADMIN}", - "KEYCLOAK_ADMIN_PASSWORD": "${KEYCLOAK_ADMIN_PASSWORD}" - } - }, - "danhilse/notion_mcp": { - "package_name": "danhilse/notion_mcp", - "repo_url": "https://github.com/danhilse/notion_mcp", - "command": "/path/to/your/.venv/bin/python", - "args": [ - "-m", - "notion_mcp" - ] - }, - "Shawyeok/mcp-dingding-bot": { - "package_name": "Shawyeok/mcp-dingding-bot", - "repo_url": "https://github.com/Shawyeok/mcp-dingding-bot", - "command": "npx", - "args": [ - "-y", - "mcp-dingding-bot" - ], - "env": { - "DINGTALK_BOT_ACCESS_TOKEN": "${DINGTALK_BOT_ACCESS_TOKEN}", - "DINGTALK_BOT_SECRET": "${DINGTALK_BOT_SECRET}" - } - }, - "ivo-toby/contentful-mcp": { - "package_name": "ivo-toby/contentful-mcp", - "repo_url": "https://github.com/ivo-toby/contentful-mcp", - "command": "npx", - "args": [ - "-y", - "@ivotoby/contentful-management-mcp-server" - ], - "env": { - "CONTENTFUL_MANAGEMENT_ACCESS_TOKEN": "${CONTENTFUL_MANAGEMENT_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/vrknetha_mcp-server-firecrawl": { - "package_name": "MCP-Mirror/vrknetha_mcp-server-firecrawl", - "repo_url": "https://github.com/MCP-Mirror/vrknetha_mcp-server-firecrawl", - "command": "npx", - "args": [ - "-y", - "mcp-server-firecrawl" - ], - "env": { - "FIRE_CRAWL_API_KEY": "${FIRE_CRAWL_API_KEY}" - } - }, - "rioriost/homebrew-age-mcp-server": { - "package_name": "rioriost/homebrew-age-mcp-server", - "repo_url": "https://github.com/rioriost/homebrew-age-mcp-server", - "command": "age-mcp-server", - "args": [ - "--pg-con-str", - "host=your_server.postgres.database.azure.com port=5432 dbname=postgres user=your_username password=your_password", - "--allow-write" - ] - }, - "MCP-Mirror/r-huijts_portkey-admin-mcp-server": { - "package_name": "MCP-Mirror/r-huijts_portkey-admin-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/r-huijts_portkey-admin-mcp-server", - "command": "node", - "args": [ - "/path/to/portkey-server/build/index.js" - ], - "env": { - "PORTKEY_API_KEY": "${PORTKEY_API_KEY}" - } - }, - "KBB99/mcp-registry-server": { - "package_name": "KBB99/mcp-registry-server", - "repo_url": "https://github.com/KBB99/mcp-registry-server", - "command": "node", - "args": [ - "./path/to/build/mcp-registry-server/dist/index.js" - ] - }, - "odysseus0/mcp-server-shell": { - "package_name": "odysseus0/mcp-server-shell", - "repo_url": "https://github.com/odysseus0/mcp-server-shell", - "command": "python", - "args": [ - "-m", - "mcp_server_shell" - ] - }, - "hithereiamaliff/mcp-servers": { - "package_name": "hithereiamaliff/mcp-servers", - "repo_url": "https://github.com/hithereiamaliff/mcp-servers", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "export PERPLEXITY_API_KEY='YOUR_API_KEY' && /home/username/.nvm/versions/node/version/bin/node /home/username/mcp-perplexity/index.js" - ] - }, - "xxxbrian/mcp-rquest": { - "package_name": "xxxbrian/mcp-rquest", - "repo_url": "https://github.com/xxxbrian/mcp-rquest", - "command": "pipx", - "args": [ - "run", - "mcp-rquest" - ] - }, - "kuvanov-2/mcp-server-jira": { - "package_name": "kuvanov-2/mcp-server-jira", - "repo_url": "https://github.com/kuvanov-2/mcp-server-jira", - "command": "/path/to/mcp-server-jira/start-server.sh", - "env": { - "JIRA_HOST": "${JIRA_HOST}", - "JIRA_EMAIL": "${JIRA_EMAIL}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}" - } - }, - "alfredatnycu/grasshopper-mcp": { - "package_name": "alfredatnycu/grasshopper-mcp", - "repo_url": "https://github.com/alfredatnycu/grasshopper-mcp", - "command": "/path/to/agentql-mcp/dist/index.js", - "env": { - "AGENTQL_API_KEY": "${AGENTQL_API_KEY}" - } - }, - "r-huijts/portkey-admin-mcp-server": { - "package_name": "r-huijts/portkey-admin-mcp-server", - "repo_url": "https://github.com/r-huijts/portkey-admin-mcp-server", - "command": "node", - "args": [ - "/path/to/portkey-server/build/index.js" - ], - "env": { - "PORTKEY_API_KEY": "${PORTKEY_API_KEY}" - } - }, - "jango-blockchained/advanced-homeassistant-mcp": { - "package_name": "jango-blockchained/advanced-homeassistant-mcp", - "repo_url": "https://github.com/jango-blockchained/advanced-homeassistant-mcp", - "command": "npx", - "args": [ - "homeassistant-mcp" - ], - "env": { - "HASS_TOKEN": "${HASS_TOKEN}", - "HASS_HOST": "${HASS_HOST}" - } - }, - "MCP-Mirror/non-dirty_mcp-server-restart": { - "package_name": "MCP-Mirror/non-dirty_mcp-server-restart", - "repo_url": "https://github.com/MCP-Mirror/non-dirty_mcp-server-restart", - "command": "uvx", - "args": [ - "mcp-server-restart" - ] - }, - "nguyenvanduocit/all-in-one-model-context-protocol": { - "package_name": "nguyenvanduocit/all-in-one-model-context-protocol", - "repo_url": "https://github.com/nguyenvanduocit/all-in-one-model-context-protocol", - "command": "all-in-one-model-context-protocol", - "args": [ - "-env", - "/path/to/.env" - ] - }, - "kentaro/mcp-local-command-server": { - "package_name": "kentaro/mcp-local-command-server", - "repo_url": "https://github.com/kentaro/mcp-local-command-server", - "command": "/path/to/mcp-local-command-server/build/index.js" - }, - "athapong/aio-mcp": { - "package_name": "athapong/aio-mcp", - "repo_url": "https://github.com/athapong/aio-mcp", - "command": "aio-mcp", - "env": { - "ENABLE_TOOLS": "${ENABLE_TOOLS}", - "OPENAI_BASE_URL": "${OPENAI_BASE_URL}", - "GOOGLE_AI_API_KEY": "${GOOGLE_AI_API_KEY}", - "GITLAB_TOKEN": "${GITLAB_TOKEN}", - "GITLAB_HOST": "${GITLAB_HOST}", - "QDRANT_HOST": "${QDRANT_HOST}", - "QDRANT_API_KEY": "${QDRANT_API_KEY}", - "PROXY_URL": "${PROXY_URL}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "GOOGLE_TOKEN_FILE": "${GOOGLE_TOKEN_FILE}", - "GOOGLE_CREDENTIALS_FILE": "${GOOGLE_CREDENTIALS_FILE}", - "ATLASSIAN_TOKEN": "${ATLASSIAN_TOKEN}", - "BRAVE_API_KEY": "${BRAVE_API_KEY}", - "QDRANT_PORT": "${QDRANT_PORT}", - "ATLASSIAN_HOST": "${ATLASSIAN_HOST}", - "ATLASSIAN_EMAIL": "${ATLASSIAN_EMAIL}", - "USE_OPENROUTER": "${USE_OPENROUTER}", - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}", - "DEEPSEEK_API_BASE": "${DEEPSEEK_API_BASE}", - "USE_OLLAMA_DEEPSEEK": "${USE_OLLAMA_DEEPSEEK}", - "OLLAMA_URL": "${OLLAMA_URL}" - } - }, - "6/mcp-server-rubygems": { - "package_name": "6/mcp-server-rubygems", - "repo_url": "https://github.com/6/mcp-server-rubygems", - "command": "/path/to/mcp-server-rubygems/build/index.js" - }, - "sammcj/mcp-snyk": { - "package_name": "sammcj/mcp-snyk", - "repo_url": "https://github.com/sammcj/mcp-snyk", - "command": "npx", - "args": [ - "-y", - "github:sammcj/mcp-snyk" - ], - "env": { - "SNYK_API_KEY": "${SNYK_API_KEY}", - "SNYK_ORG_ID": "${SNYK_ORG_ID}" - } - }, - "Saml1211/PRD-MCP-Server": { - "package_name": "Saml1211/PRD-MCP-Server", - "repo_url": "https://github.com/Saml1211/PRD-MCP-Server", - "command": "node", - "args": [ - "/path/to/prd-creator-mcp/dist/index.js" - ] - }, - "TimHolden/figma-mcp-server": { - "package_name": "TimHolden/figma-mcp-server", - "repo_url": "https://github.com/TimHolden/figma-mcp-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/figma-mcp-server/dist/index.js" - ], - "env": { - "FIGMA_ACCESS_TOKEN": "${FIGMA_ACCESS_TOKEN}" - } - }, - "shannonlal/mcp-postman": { - "package_name": "shannonlal/mcp-postman", - "repo_url": "https://github.com/shannonlal/mcp-postman", - "command": "node", - "args": [ - "/absolute/path/to/mcp-postman/build/index.js" - ] - }, - "nkapila6/mcp-local-rag": { - "package_name": "nkapila6/mcp-local-rag", - "repo_url": "https://github.com/nkapila6/mcp-local-rag", - "command": "uv", - "args": [ - "--directory", - "/mcp-local-rag/", - "run", - "src/mcp_local_rag/main.py" - ] - }, - "emanuelsistemas/supabase-mcp-server": { - "package_name": "emanuelsistemas/supabase-mcp-server", - "repo_url": "https://github.com/emanuelsistemas/supabase-mcp-server", - "command": "/full/path/to/supabase-mcp-server", - "env": { - "SUPABASE_PROJECT_REF": "${SUPABASE_PROJECT_REF}", - "SUPABASE_DB_PASSWORD": "${SUPABASE_DB_PASSWORD}", - "SUPABASE_REGION": "${SUPABASE_REGION}", - "SUPABASE_ACCESS_TOKEN": "${SUPABASE_ACCESS_TOKEN}", - "SUPABASE_SERVICE_ROLE_KEY": "${SUPABASE_SERVICE_ROLE_KEY}" - } - }, - "kukapay/nearby-search-mcp": { - "package_name": "kukapay/nearby-search-mcp", - "repo_url": "https://github.com/kukapay/nearby-search-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/nearby-search-mcp", - "run", - "main.py" - ], - "env": { - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}" - } - }, - "inkdropapp/mcp-server": { - "package_name": "inkdropapp/mcp-server", - "repo_url": "https://github.com/inkdropapp/mcp-server", - "command": "npx", - "args": [ - "-y", - "@inkdropapp/mcp-server" - ], - "env": { - "INKDROP_LOCAL_SERVER_URL": "${INKDROP_LOCAL_SERVER_URL}", - "INKDROP_LOCAL_USERNAME": "${INKDROP_LOCAL_USERNAME}", - "INKDROP_LOCAL_PASSWORD": "${INKDROP_LOCAL_PASSWORD}" - } - }, - "shaike1/mcp-server-ssh": { - "package_name": "shaike1/mcp-server-ssh", - "repo_url": "https://github.com/shaike1/mcp-server-ssh", - "command": "node", - "args": [ - "%APPDATA%/npm/node_modules/mcp-ssh/dist/server.js" - ], - "env": { - "SSH_PORT": "${SSH_PORT}", - "SSH_LOG_LEVEL": "${SSH_LOG_LEVEL}" - } - }, - "nakamurau1/weather-mcp": { - "package_name": "nakamurau1/weather-mcp", - "repo_url": "https://github.com/nakamurau1/weather-mcp", - "command": "node", - "args": [ - "/absolute/path/to/your/weather-mcp/dist/index.js" - ] - }, - "CheMiguel23/MemoryMesh": { - "package_name": "CheMiguel23/MemoryMesh", - "repo_url": "https://github.com/CheMiguel23/MemoryMesh", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/YOUR/PROJECT/memorymesh/dist/index.js" - ] - }, - "MCP-Mirror/leafeye_lunchmoney-mcp-server": { - "package_name": "MCP-Mirror/leafeye_lunchmoney-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/leafeye_lunchmoney-mcp-server", - "command": "npx", - "args": [ - "-y", - "lunchmoney-mcp-server" - ], - "env": { - "LUNCHMONEY_TOKEN": "${LUNCHMONEY_TOKEN}" - } - }, - "PARS-DOE/autodocument": { - "package_name": "PARS-DOE/autodocument", - "repo_url": "https://github.com/PARS-DOE/autodocument", - "command": "node", - "args": [ - "/path/to/autodocument/build/index.js" - ], - "env": { - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}" - } - }, - "mark3labs/mcp-filesystem-server": { - "package_name": "mark3labs/mcp-filesystem-server", - "repo_url": "https://github.com/mark3labs/mcp-filesystem-server", - "command": "mcp-filesystem-server", - "args": [ - "/Users/username/Desktop", - "/path/to/other/allowed/dir" - ] - }, - "owayo/gitlab-mcp-server": { - "package_name": "owayo/gitlab-mcp-server", - "repo_url": "https://github.com/owayo/gitlab-mcp-server", - "command": "env", - "args": [ - "GITLAB_URL=your_gitlab_url", - "GITLAB_PROJECT_NAME=gitlab_project_name", - "GITLAB_API_KEY=your_gitlab_api_key", - "GIT_REPO_PATH=/path/to/git/repo", - "uv", - "--directory", - "/path/to/this-mcp-server", - "run", - "main.py" - ] - }, - "kjozsa/git-mcp": { - "package_name": "kjozsa/git-mcp", - "repo_url": "https://github.com/kjozsa/git-mcp", - "command": "uvx", - "args": [ - "git-mcp" - ], - "env": { - "GIT_REPOS_PATH": "${GIT_REPOS_PATH}" - } - }, - "elliottlawson/mcp-sentry": { - "package_name": "elliottlawson/mcp-sentry", - "repo_url": "https://github.com/elliottlawson/mcp-sentry", - "command": "mcp-sentry", - "args": [ - "--auth-token", - "YOUR_SENTRY_TOKEN" - ] - }, - "filipecalegario/mcp-server-strateegia": { - "package_name": "filipecalegario/mcp-server-strateegia", - "repo_url": "https://github.com/filipecalegario/mcp-server-strateegia", - "command": "node", - "args": [ - "path/to/strateegia-mcp-server/dist/index.js" - ], - "env": { - "STRATEEGIA_API_KEY": "${STRATEEGIA_API_KEY}" - } - }, - "felores/cloudinary-mcp-server": { - "package_name": "felores/cloudinary-mcp-server", - "repo_url": "https://github.com/felores/cloudinary-mcp-server", - "command": "node", - "args": [ - "c:/path/to/cloudinary-mcp-server/dist/index.js" - ], - "env": { - "CLOUDINARY_CLOUD_NAME": "${CLOUDINARY_CLOUD_NAME}", - "CLOUDINARY_API_KEY": "${CLOUDINARY_API_KEY}", - "CLOUDINARY_API_SECRET": "${CLOUDINARY_API_SECRET}" - } - }, - "karayaman/lichess-mcp": { - "package_name": "karayaman/lichess-mcp", - "repo_url": "https://github.com/karayaman/lichess-mcp", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/Users/username/Desktop", - "/Users/username/Downloads" - ] - }, - "grafana/mcp-grafana": { - "package_name": "grafana/mcp-grafana", - "repo_url": "https://github.com/grafana/mcp-grafana", - "command": "mcp-grafana", - "args": [], - "env": { - "GRAFANA_URL": "${GRAFANA_URL}", - "GRAFANA_API_KEY": "${GRAFANA_API_KEY}" - } - }, - "adhikasp/mcp-git-ingest": { - "package_name": "adhikasp/mcp-git-ingest", - "repo_url": "https://github.com/adhikasp/mcp-git-ingest", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/adhikasp/mcp-git-ingest", - "mcp-git-ingest" - ] - }, - "tatn/mcp-server-diff-typescript": { - "package_name": "tatn/mcp-server-diff-typescript", - "repo_url": "https://github.com/tatn/mcp-server-diff-typescript", - "command": "node", - "args": [ - "/path/to/mcp-server-diff-typescript/build/index.js" - ] - }, - "rishijatia/fantasy-pl-mcp": { - "package_name": "rishijatia/fantasy-pl-mcp", - "repo_url": "https://github.com/rishijatia/fantasy-pl-mcp", - "command": "python", - "args": [ - "-m", - "fpl_mcp" - ] - }, - "spences10/mcp-omnisearch": { - "package_name": "spences10/mcp-omnisearch", - "repo_url": "https://github.com/spences10/mcp-omnisearch", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "TAVILY_API_KEY=key1 PERPLEXITY_API_KEY=key2 KAGI_API_KEY=key3 JINA_AI_API_KEY=key4 BRAVE_API_KEY=key5 FIRECRAWL_API_KEY=key6 node /path/to/mcp-omnisearch/dist/index.js" - ] - }, - "inkeep/mcp-server-python": { - "package_name": "inkeep/mcp-server-python", - "repo_url": "https://github.com/inkeep/mcp-server-python", - "command": "uv", - "args": [ - "--directory", - "", - "run", - "-m", - "inkeep_mcp_server" - ], - "env": { - "INKEEP_API_BASE_URL": "${INKEEP_API_BASE_URL}", - "INKEEP_API_KEY": "${INKEEP_API_KEY}", - "INKEEP_API_MODEL": "${INKEEP_API_MODEL}", - "INKEEP_MCP_TOOL_NAME": "${INKEEP_MCP_TOOL_NAME}", - "INKEEP_MCP_TOOL_DESCRIPTION": "${INKEEP_MCP_TOOL_DESCRIPTION}" - } - }, - "nevikashah/remote-mcp-server": { - "package_name": "nevikashah/remote-mcp-server", - "repo_url": "https://github.com/nevikashah/remote-mcp-server", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "brysontang/DeltaTask": { - "package_name": "brysontang/DeltaTask", - "repo_url": "https://github.com/brysontang/DeltaTask", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/DeltaTask", - "run", - "server.py" - ] - }, - "FarseenSh/GOATsolana-mcp": { - "package_name": "FarseenSh/GOATsolana-mcp", - "repo_url": "https://github.com/FarseenSh/GOATsolana-mcp", - "command": "node", - "args": [ - "--input-type=module", - "/path/to/GOATsolana-mcp/build/index.js" - ], - "env": { - "BIRDEYE_API_KEY": "${BIRDEYE_API_KEY}", - "COINGECKO_API_KEY": "${COINGECKO_API_KEY}", - "ALLORA_API_KEY": "${ALLORA_API_KEY}", - "HELIUS_RPC_URL": "${HELIUS_RPC_URL}", - "DEFAULT_WALLET_ADDRESS": "${DEFAULT_WALLET_ADDRESS}" - } - }, - "SirTenzin/autumn-mcp-server": { - "package_name": "SirTenzin/autumn-mcp-server", - "repo_url": "https://github.com/SirTenzin/autumn-mcp-server", - "command": "bun", - "args": [ - "run", - "{YOUR ABSOLUTE PATH TO index.ts}", - "--apiKey={YOUR API KEY}" - ] - }, - "zcaceres/fetch-mcp": { - "package_name": "zcaceres/fetch-mcp", - "repo_url": "https://github.com/zcaceres/fetch-mcp", - "command": "node", - "args": [ - "{ABSOLUTE PATH TO FILE HERE}/dist/index.js" - ] - }, - "jamie7893/statsource-mcp": { - "package_name": "jamie7893/statsource-mcp", - "repo_url": "https://github.com/jamie7893/statsource-mcp", - "command": "python", - "args": [ - "C:/Path/To/Statsource/mcp_server.py" - ], - "env": { - "API_KEY": "${API_KEY}", - "DB_CONNECTION_STRING": "${DB_CONNECTION_STRING}", - "DB_SOURCE_TYPE": "${DB_SOURCE_TYPE}" - } - }, - "rawveg/ollama-mcp": { - "package_name": "rawveg/ollama-mcp", - "repo_url": "https://github.com/rawveg/ollama-mcp", - "command": "npx", - "args": [ - "-y", - "@rawveg/ollama-mcp" - ] - }, - "MCP-Mirror/skydeckai_mcp-server-rememberizer": { - "package_name": "MCP-Mirror/skydeckai_mcp-server-rememberizer", - "repo_url": "https://github.com/MCP-Mirror/skydeckai_mcp-server-rememberizer", - "command": "uvx", - "args": [ - "mcp-server-rememberizer" - ], - "env": { - "REMEMBERIZER_API_TOKEN": "${REMEMBERIZER_API_TOKEN}" - } - }, - "it-beard/exa-server": { - "package_name": "it-beard/exa-server", - "repo_url": "https://github.com/it-beard/exa-server", - "command": "node", - "args": [ - "/path/to/exa-server/build/index.js" - ], - "env": { - "EXA_API_KEY": "${EXA_API_KEY}" - } - }, - "lishenxydlgzs/aws-athena-mcp": { - "package_name": "lishenxydlgzs/aws-athena-mcp", - "repo_url": "https://github.com/lishenxydlgzs/aws-athena-mcp", - "command": "npx", - "args": [ - "-y", - "@lishenxydlgzs/aws-athena-mcp" - ], - "env": { - "OUTPUT_S3_PATH": "${OUTPUT_S3_PATH}", - "AWS_REGION": "${AWS_REGION}", - "AWS_PROFILE": "${AWS_PROFILE}", - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_SESSION_TOKEN": "${AWS_SESSION_TOKEN}", - "ATHENA_WORKGROUP": "${ATHENA_WORKGROUP}", - "QUERY_TIMEOUT_MS": "${QUERY_TIMEOUT_MS}", - "MAX_RETRIES": "${MAX_RETRIES}", - "RETRY_DELAY_MS": "${RETRY_DELAY_MS}" - } - }, - "habuma/tpapi-mcp-server": { - "package_name": "habuma/tpapi-mcp-server", - "repo_url": "https://github.com/habuma/tpapi-mcp-server", - "command": "/path/to/java", - "args": [ - "-jar", - "/path/to/project/build/libs/tpapi-mcp-server-0.0.1-SNAPSHOT.jar" - ] - }, - "MCP-Mirror/akseyh_bear-mcp-server": { - "package_name": "MCP-Mirror/akseyh_bear-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/akseyh_bear-mcp-server", - "command": "node", - "args": [ - ".../build/index.js" - ] - }, - "YiyangLi/okta-mcp-server": { - "package_name": "YiyangLi/okta-mcp-server", - "repo_url": "https://github.com/YiyangLi/okta-mcp-server", - "command": "npx", - "args": [ - "-y", - "@yiyang.1i/okta-mcp-server" - ], - "env": { - "OKTA_DOMAIN": "${OKTA_DOMAIN}", - "API_TOKEN": "${API_TOKEN}" - } - }, - "yuna0x0/anilist-mcp": { - "package_name": "yuna0x0/anilist-mcp", - "repo_url": "https://github.com/yuna0x0/anilist-mcp", - "command": "npx", - "args": [ - "-y", - "anilist-mcp" - ], - "env": { - "ANILIST_TOKEN": "${ANILIST_TOKEN}" - } - }, - "aminalali8/bns-mcp-server": { - "package_name": "aminalali8/bns-mcp-server", - "repo_url": "https://github.com/aminalali8/bns-mcp-server", - "command": "docker", - "args": [ - "exec", - "-i", - "bns-mcp-server", - "node", - "dist/index.js" - ], - "env": { - "BNS_API_KEY": "${BNS_API_KEY}" - } - }, - "d-zero-dev/mcp-server": { - "package_name": "d-zero-dev/mcp-server", - "repo_url": "https://github.com/d-zero-dev/mcp-server", - "command": "npx", - "args": [ - "-y", - "@d-zero/mcp-server" - ], - "env": { - "FIGMA_ACCESS_TOKEN": "${FIGMA_ACCESS_TOKEN}" - } - }, - "MCP-100/mcp-sentry": { - "package_name": "MCP-100/mcp-sentry", - "repo_url": "https://github.com/MCP-100/mcp-sentry", - "command": "python", - "args": [ - "-m", - "mcp_sentry", - "--auth-token", - "YOUR_SENTRY_TOKEN", - "--project-slug", - "YOUR_PROJECT_SLUG", - "--organization-slug", - "YOUR_ORGANIZATION_SLUG" - ] - }, - "9nate-drake/mcp-yfinance": { - "package_name": "9nate-drake/mcp-yfinance", - "repo_url": "https://github.com/9nate-drake/mcp-yfinance", - "command": "python", - "args": [ - "/path/to/finance_server/server.py" - ] - }, - "MCP-Mirror/mcpservers_mcp-server-chatsum": { - "package_name": "MCP-Mirror/mcpservers_mcp-server-chatsum", - "repo_url": "https://github.com/MCP-Mirror/mcpservers_mcp-server-chatsum", - "command": "path-to/bin/node", - "args": [ - "path-to/mcp-server-chatsum/build/index.js" - ], - "env": { - "CHAT_DB_PATH": "${CHAT_DB_PATH}" - } - }, - "SecretiveShell/MCP-searxng": { - "package_name": "SecretiveShell/MCP-searxng", - "repo_url": "https://github.com/SecretiveShell/MCP-searxng", - "command": "uv", - "args": [ - "--project", - "/absoloute/path/to/MCP-searxng/", - "run", - "/absoloute/path/to/MCP-searxng/mcp-searxng/main.py" - ] - }, - "kabragaurav/MCP-Server": { - "package_name": "kabragaurav/MCP-Server", - "repo_url": "https://github.com/kabragaurav/MCP-Server", - "command": "node", - "args": [ - "/Users/gauravkabra/Desktop/MCPServer/index.js" - ] - }, - "taishikato/supavec-mcp-server": { - "package_name": "taishikato/supavec-mcp-server", - "repo_url": "https://github.com/taishikato/supavec-mcp-server", - "command": "node", - "args": [ - "path/to/supavec/mcp/build/index.js" - ], - "env": { - "SUPAVEC_API_KEY": "${SUPAVEC_API_KEY}" - } - }, - "tatsuiman/docker-mcp-servers": { - "package_name": "tatsuiman/docker-mcp-servers", - "repo_url": "https://github.com/tatsuiman/docker-mcp-servers", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "SLACK_BOT_TOKEN=your-slack-bot-token", - "-e", - "SLACK_TEAM_ID=your-slack-team-id", - "ghcr.io/tatsuiman/docker-mcp-notion-server-slack:main" - ] - }, - "Verodat/verodat-mcp-server": { - "package_name": "Verodat/verodat-mcp-server", - "repo_url": "https://github.com/Verodat/verodat-mcp-server", - "command": "node", - "args": [ - "path/to/verodat-mcp-server/build/src/consume.js" - ], - "env": { - "VERODAT_AI_API_KEY": "${VERODAT_AI_API_KEY}", - "VERODAT_API_BASE_URL": "${VERODAT_API_BASE_URL}" - } - }, - "NightTrek/Serper-search-mcp": { - "package_name": "NightTrek/Serper-search-mcp", - "repo_url": "https://github.com/NightTrek/Serper-search-mcp", - "command": "/path/to/serper-search-server/build/index.js", - "env": { - "SERPER_API_KEY": "${SERPER_API_KEY}" - } - }, - "JovanHsu/mcp-neo4j-memory-server": { - "package_name": "JovanHsu/mcp-neo4j-memory-server", - "repo_url": "https://github.com/JovanHsu/mcp-neo4j-memory-server", - "command": "npx", - "args": [ - "-y", - "@izumisy/mcp-neo4j-memory-server" - ], - "env": { - "NEO4J_URI": "${NEO4J_URI}", - "NEO4J_USER": "${NEO4J_USER}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}", - "NEO4J_DATABASE": "${NEO4J_DATABASE}" - } - }, - "Alec2435/python_mcp": { - "package_name": "Alec2435/python_mcp", - "repo_url": "https://github.com/Alec2435/python_mcp", - "command": "uvx", - "args": [ - "python_local" - ] - }, - "MCP-Mirror/chatmcp_mcp-server-chatsum": { - "package_name": "MCP-Mirror/chatmcp_mcp-server-chatsum", - "repo_url": "https://github.com/MCP-Mirror/chatmcp_mcp-server-chatsum", - "command": "path-to/bin/node", - "args": [ - "path-to/mcp-server-chatsum/build/index.js" - ], - "env": { - "CHAT_DB_PATH": "${CHAT_DB_PATH}" - } - }, - "jovezhong/mcp-timeplus": { - "package_name": "jovezhong/mcp-timeplus", - "repo_url": "https://github.com/jovezhong/mcp-timeplus", - "command": "uvx", - "args": [ - "mcp-timeplus" - ], - "env": { - "TIMEPLUS_HOST": "${TIMEPLUS_HOST}", - "TIMEPLUS_PORT": "${TIMEPLUS_PORT}", - "TIMEPLUS_USER": "${TIMEPLUS_USER}", - "TIMEPLUS_PASSWORD": "${TIMEPLUS_PASSWORD}", - "TIMEPLUS_SECURE": "${TIMEPLUS_SECURE}", - "TIMEPLUS_VERIFY": "${TIMEPLUS_VERIFY}", - "TIMEPLUS_CONNECT_TIMEOUT": "${TIMEPLUS_CONNECT_TIMEOUT}", - "TIMEPLUS_SEND_RECEIVE_TIMEOUT": "${TIMEPLUS_SEND_RECEIVE_TIMEOUT}", - "TIMEPLUS_READ_ONLY": "${TIMEPLUS_READ_ONLY}", - "TIMEPLUS_KAFKA_CONFIG": "${TIMEPLUS_KAFKA_CONFIG}" - } - }, - "hideya/mcp-server-weather-js": { - "package_name": "hideya/mcp-server-weather-js", - "repo_url": "https://github.com/hideya/mcp-server-weather-js", - "command": "npx", - "args": [ - "-y", - "@h1deya/mcp-server-weather" - ] - }, - "effytech/freshdesk_mcp": { - "package_name": "effytech/freshdesk_mcp", - "repo_url": "https://github.com/effytech/freshdesk_mcp", - "command": "uvx", - "args": [ - "freshdesk-mcp" - ], - "env": { - "FRESHDESK_API_KEY": "${FRESHDESK_API_KEY}", - "FRESHDESK_DOMAIN": "${FRESHDESK_DOMAIN}" - } - }, - "MCP-Mirror/da-okazaki_mcp-neo4j-server": { - "package_name": "MCP-Mirror/da-okazaki_mcp-neo4j-server", - "repo_url": "https://github.com/MCP-Mirror/da-okazaki_mcp-neo4j-server", - "command": "npx", - "args": [ - "@alanse/mcp-neo4j-server" - ], - "env": { - "NEO4J_URI": "${NEO4J_URI}", - "NEO4J_USERNAME": "${NEO4J_USERNAME}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}" - } - }, - "tumf/mcp-shell-server": { - "package_name": "tumf/mcp-shell-server", - "repo_url": "https://github.com/tumf/mcp-shell-server", - "command": "uv", - "args": [ - "--directory", - ".", - "run", - "mcp-shell-server" - ], - "env": { - "ALLOW_COMMANDS": "${ALLOW_COMMANDS}" - } - }, - "zzstoatzz/geese": { - "package_name": "zzstoatzz/geese", - "repo_url": "https://github.com/zzstoatzz/geese", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-aws-kb-retrieval" - ], - "env": { - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}" - } - }, - "MCP-Mirror/xianzong85_mysql-server-MCP-Server": { - "package_name": "MCP-Mirror/xianzong85_mysql-server-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/xianzong85_mysql-server-MCP-Server", - "command": "/path/to/mysql-server/build/index.js", - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "ggerve/coding-standards-mcp": { - "package_name": "ggerve/coding-standards-mcp", - "repo_url": "https://github.com/ggerve/coding-standards-mcp", - "command": "uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "mcp", - "run", - "/absolute/path/to/coding-standards-mcp/server.py" - ] - }, - "Niell007/supabase-mcp-server": { - "package_name": "Niell007/supabase-mcp-server", - "repo_url": "https://github.com/Niell007/supabase-mcp-server", - "command": "/full/path/to/supabase-mcp-server", - "env": { - "SUPABASE_PROJECT_REF": "${SUPABASE_PROJECT_REF}", - "SUPABASE_DB_PASSWORD": "${SUPABASE_DB_PASSWORD}", - "SUPABASE_REGION": "${SUPABASE_REGION}", - "SUPABASE_ACCESS_TOKEN": "${SUPABASE_ACCESS_TOKEN}", - "SUPABASE_SERVICE_ROLE_KEY": "${SUPABASE_SERVICE_ROLE_KEY}" - } - }, - "twolven/mcp-server-puppeteer-py": { - "package_name": "twolven/mcp-server-puppeteer-py", - "repo_url": "https://github.com/twolven/mcp-server-puppeteer-py", - "command": "python", - "args": [ - "path/to/puppeteer.py" - ] - }, - "ntropy-network/ntropy-mcp": { - "package_name": "ntropy-network/ntropy-mcp", - "repo_url": "https://github.com/ntropy-network/ntropy-mcp", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "ntropy-mcp", - "--api-key", - "YOUR_NTROPY_API_KEY" - ] - }, - "leehanchung/bing-search-mcp": { - "package_name": "leehanchung/bing-search-mcp", - "repo_url": "https://github.com/leehanchung/bing-search-mcp", - "command": "uvx", - "args": [ - "/path/to/your/bing-search-mcp" - ], - "env": { - "BING_API_KEY": "${BING_API_KEY}" - } - }, - "neondatabase-labs/mcp-server-neon": { - "package_name": "neondatabase-labs/mcp-server-neon", - "repo_url": "https://github.com/neondatabase-labs/mcp-server-neon", - "command": "wsl", - "args": [ - "npx", - "-y", - "@neondatabase/mcp-server-neon", - "start", - "" - ] - }, - "cyanheads/mcp-reporter": { - "package_name": "cyanheads/mcp-reporter", - "repo_url": "https://github.com/cyanheads/mcp-reporter", - "command": "/path/to/node", - "args": [ - "/path/to/atlas-mcp-server/dist/index.js" - ], - "env": { - "NEO4J_URI": "${NEO4J_URI}", - "NEO4J_USER": "${NEO4J_USER}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}" - } - }, - "dazeb/MCP-Github-Mapper": { - "package_name": "dazeb/MCP-Github-Mapper", - "repo_url": "https://github.com/dazeb/MCP-Github-Mapper", - "command": "node", - "args": [ - "/home/user/Documents/Cline/MCP/github-mapper/build/index.js" - ] - }, - "MCP-Mirror/gentoro-GT_mcp-nodejs-server": { - "package_name": "MCP-Mirror/gentoro-GT_mcp-nodejs-server", - "repo_url": "https://github.com/MCP-Mirror/gentoro-GT_mcp-nodejs-server", - "command": "npx", - "args": [ - "-y", - "@gentoro/mcp-nodejs-server" - ], - "env": { - "GENTORO_API_KEY": "${GENTORO_API_KEY}", - "GENTORO_BRIDGE_UID": "${GENTORO_BRIDGE_UID}", - "GENTORO_BASE_URL": "${GENTORO_BASE_URL}" - } - }, - "zcaceres/gtasks-mcp": { - "package_name": "zcaceres/gtasks-mcp", - "repo_url": "https://github.com/zcaceres/gtasks-mcp", - "command": "/opt/homebrew/bin/node", - "args": [ - "{ABSOLUTE PATH TO FILE HERE}/dist/index.js" - ] - }, - "kukapay/thegraph-mcp": { - "package_name": "kukapay/thegraph-mcp", - "repo_url": "https://github.com/kukapay/thegraph-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/thegraph-mcp", - "run", - "main.py" - ], - "env": { - "THEGRAPH_API_KEY": "${THEGRAPH_API_KEY}" - } - }, - "ctkadvisors/graphql-mcp": { - "package_name": "ctkadvisors/graphql-mcp", - "repo_url": "https://github.com/ctkadvisors/graphql-mcp", - "command": "node", - "args": [ - "/absolute/path/to/dist/graphql-mcp-server.js" - ], - "env": { - "GRAPHQL_API_ENDPOINT": "${GRAPHQL_API_ENDPOINT}", - "GRAPHQL_API_KEY": "${GRAPHQL_API_KEY}" - } - }, - "leafeye/lunchmoney-mcp-server": { - "package_name": "leafeye/lunchmoney-mcp-server", - "repo_url": "https://github.com/leafeye/lunchmoney-mcp-server", - "command": "npx", - "args": [ - "-y", - "lunchmoney-mcp-server" - ], - "env": { - "LUNCHMONEY_TOKEN": "${LUNCHMONEY_TOKEN}" - } - }, - "tatn/mcp-server-fetch-python": { - "package_name": "tatn/mcp-server-fetch-python", - "repo_url": "https://github.com/tatn/mcp-server-fetch-python", - "command": "uv", - "args": [ - "--directory", - "path\\to\\mcp-server-fetch-python", - "run", - "mcp-server-fetch-python" - ] - }, - "phil65/LLMling": { - "package_name": "phil65/LLMling", - "repo_url": "https://github.com/phil65/LLMling", - "command": "uvx", - "args": [ - "mcp-server-llmling@latest", - "start", - "path/to/your/config.yml" - ] - }, - "yanmxa/multicluster-mcp-server": { - "package_name": "yanmxa/multicluster-mcp-server", - "repo_url": "https://github.com/yanmxa/multicluster-mcp-server", - "command": "/path/to/multicluster-mcp-server/build/index.js" - }, - "NewAITees/ollama-MCP-server": { - "package_name": "NewAITees/ollama-MCP-server", - "repo_url": "https://github.com/NewAITees/ollama-MCP-server", - "command": "uvx", - "args": [ - "ollama-MCP-server" - ] - }, - "MCP-Mirror/identimoji_mcp-server-emojikey": { - "package_name": "MCP-Mirror/identimoji_mcp-server-emojikey", - "repo_url": "https://github.com/MCP-Mirror/identimoji_mcp-server-emojikey", - "command": "npx", - "args": [ - "@identimoji/mcp-server-emojikey" - ], - "env": { - "EMOJIKEYIO_API_KEY": "${EMOJIKEYIO_API_KEY}", - "MODEL_ID": "${MODEL_ID}" - } - }, - "tatn/mcp-server-diff-python": { - "package_name": "tatn/mcp-server-diff-python", - "repo_url": "https://github.com/tatn/mcp-server-diff-python", - "command": "uv", - "args": [ - "--directory", - "path\\to\\mcp-server-diff-python", - "run", - "mcp-server-diff-python" - ] - }, - "geelen/workers-mcp-server": { - "package_name": "geelen/workers-mcp-server", - "repo_url": "https://github.com/geelen/workers-mcp-server", - "command": "/node", - "args": [ - "/node_modules/tsx/dist/cli.mjs", - "/scripts/local-proxy.ts", - "", - "", - "" - ] - }, - "ksysoev/mcp-go-tools": { - "package_name": "ksysoev/mcp-go-tools", - "repo_url": "https://github.com/ksysoev/mcp-go-tools", - "command": "mcp-go-tools", - "args": [ - "server", - "--config=/Users/user/mcp-go-tools/example.config.yaml" - ] - }, - "Xuanwo/mcp-server-opendal": { - "package_name": "Xuanwo/mcp-server-opendal", - "repo_url": "https://github.com/Xuanwo/mcp-server-opendal", - "command": "uvx", - "args": [ - "mcp-server-opendal" - ], - "env": { - "YOUR_ENV_VAR": "${YOUR_ENV_VAR}" - } - }, - "exa-labs/exa-mcp-server": { - "package_name": "exa-labs/exa-mcp-server", - "repo_url": "https://github.com/exa-labs/exa-mcp-server", - "command": "npx", - "args": [ - "/path/to/exa-mcp-server/build/index.js", - "--tools=web_search,research_paper_search,twitter_search,company_research,crawling,competitor_finder" - ], - "env": { - "EXA_API_KEY": "${EXA_API_KEY}" - } - }, - "ruchernchong/mcp-server-google-analytics": { - "package_name": "ruchernchong/mcp-server-google-analytics", - "repo_url": "https://github.com/ruchernchong/mcp-server-google-analytics", - "command": "npx", - "args": [ - "-y", - "mcp-server-google-analytics" - ], - "env": { - "GOOGLE_CLIENT_EMAIL": "${GOOGLE_CLIENT_EMAIL}", - "GOOGLE_PRIVATE_KEY": "${GOOGLE_PRIVATE_KEY}", - "GA_PROPERTY_ID": "${GA_PROPERTY_ID}" - } - }, - "alexwohletz/language-server-mcp": { - "package_name": "alexwohletz/language-server-mcp", - "repo_url": "https://github.com/alexwohletz/language-server-mcp", - "command": "/path/to/language-server-mcp/build/index.js" - }, - "JackKuo666/medRxiv-MCP-Server": { - "package_name": "JackKuo666/medRxiv-MCP-Server", - "repo_url": "https://github.com/JackKuo666/medRxiv-MCP-Server", - "command": "bash", - "args": [ - "-c", - "source /home/YOUR/PATH/mcp-server-medRxiv/.venv/bin/activate && python /home/YOUR/PATH/mcp-server-medRxiv/medrxiv_server.py" - ] - }, - "TakumiY235/uniprot-mcp-server": { - "package_name": "TakumiY235/uniprot-mcp-server", - "repo_url": "https://github.com/TakumiY235/uniprot-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/uniprot-mcp-server", - "run", - "uniprot-mcp-server" - ] - }, - "MCP-Mirror/giovannicocco_mcp-server-postman-tool-generation": { - "package_name": "MCP-Mirror/giovannicocco_mcp-server-postman-tool-generation", - "repo_url": "https://github.com/MCP-Mirror/giovannicocco_mcp-server-postman-tool-generation", - "command": "node", - "args": [ - "/path/to/postman-tool-generation-server/build/index.js" - ], - "env": { - "POSTMAN_API_KEY": "${POSTMAN_API_KEY}" - } - }, - "cuongdev/mcp-codepipeline-server": { - "package_name": "cuongdev/mcp-codepipeline-server", - "repo_url": "https://github.com/cuongdev/mcp-codepipeline-server", - "command": "npx", - "args": [ - "-y", - "path/to/mcp-codepipeline-server/dist/index.js" - ], - "env": { - "AWS_REGION": "${AWS_REGION}", - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}" - } - }, - "privetin/chroma": { - "package_name": "privetin/chroma", - "repo_url": "https://github.com/privetin/chroma", - "command": "uv", - "args": [ - "--directory", - "C:/MCP/server/community/chroma", - "run", - "chroma" - ] - }, - "crazyrabbitLTC/mcp-expert-server": { - "package_name": "crazyrabbitLTC/mcp-expert-server", - "repo_url": "https://github.com/crazyrabbitLTC/mcp-expert-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/expert-server/build/index.js" - ], - "env": { - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}" - } - }, - "MCP-Mirror/delorenj_mcp-server-ticketmaster": { - "package_name": "MCP-Mirror/delorenj_mcp-server-ticketmaster", - "repo_url": "https://github.com/MCP-Mirror/delorenj_mcp-server-ticketmaster", - "command": "npx", - "args": [ - "-y", - "@delorenj/mcp-server-ticketmaster" - ], - "env": { - "TICKETMASTER_API_KEY": "${TICKETMASTER_API_KEY}" - } - }, - "mondweep/youtube-music-mcp-server": { - "package_name": "mondweep/youtube-music-mcp-server", - "repo_url": "https://github.com/mondweep/youtube-music-mcp-server", - "command": "/path/to/youtube-music-server/build/index.js" - }, - "baranwang/mcp-tung-shing": { - "package_name": "baranwang/mcp-tung-shing", - "repo_url": "https://github.com/baranwang/mcp-tung-shing", - "command": "npx", - "args": [ - "-y", - "mcp-tung-shing@latest" - ] - }, - "jagan-shanmugam/osm-mcp-server": { - "package_name": "jagan-shanmugam/osm-mcp-server", - "repo_url": "https://github.com/jagan-shanmugam/osm-mcp-server", - "command": "uvx", - "args": [ - "osm-mcp-server" - ] - }, - "MCP-Mirror/amidabuddha_unichat-ts-mcp-server": { - "package_name": "MCP-Mirror/amidabuddha_unichat-ts-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/amidabuddha_unichat-ts-mcp-server", - "command": "npx", - "args": [ - "-y", - "unichat-ts-mcp-server" - ], - "env": { - "UNICHAT_MODEL": "${UNICHAT_MODEL}", - "UNICHAT_API_KEY": "${UNICHAT_API_KEY}" - } - }, - "PhelanShao/pubchem-mcp-server": { - "package_name": "PhelanShao/pubchem-mcp-server", - "repo_url": "https://github.com/PhelanShao/pubchem-mcp-server", - "command": "python3", - "args": [ - "/path/to/pubchem-mcp-server/python_version/mcp_server.py" - ], - "env": { - "PYTHONUNBUFFERED": "${PYTHONUNBUFFERED}" - } - }, - "tuanle96/mcp-odoo": { - "package_name": "tuanle96/mcp-odoo", - "repo_url": "https://github.com/tuanle96/mcp-odoo", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "ODOO_URL", - "-e", - "ODOO_DB", - "-e", - "ODOO_USERNAME", - "-e", - "ODOO_PASSWORD", - "mcp/odoo" - ], - "env": { - "ODOO_URL": "${ODOO_URL}", - "ODOO_DB": "${ODOO_DB}", - "ODOO_USERNAME": "${ODOO_USERNAME}", - "ODOO_PASSWORD": "${ODOO_PASSWORD}" - } - }, - "kapilduraphe/webflow-mcp-server": { - "package_name": "kapilduraphe/webflow-mcp-server", - "repo_url": "https://github.com/kapilduraphe/webflow-mcp-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/YOUR/build/index.js" - ], - "env": { - "WEBFLOW_API_TOKEN": "${WEBFLOW_API_TOKEN}" - } - }, - "bhouston/mcp-server-text-editor": { - "package_name": "bhouston/mcp-server-text-editor", - "repo_url": "https://github.com/bhouston/mcp-server-text-editor", - "command": "npx", - "args": [ - "-y", - "mcp-server-text-editor" - ] - }, - "datalayer/earthdata-mcp-server": { - "package_name": "datalayer/earthdata-mcp-server", - "repo_url": "https://github.com/datalayer/earthdata-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "datalayer/earthdata-mcp-server:latest" - ] - }, - "taka-ganasu/roo-mcp-server": { - "package_name": "taka-ganasu/roo-mcp-server", - "repo_url": "https://github.com/taka-ganasu/roo-mcp-server", - "command": "deno", - "args": [ - "run", - "--allow-net", - "--allow-env", - "--allow-read", - "/path/to/src/server.ts" - ] - }, - "swairshah/zotero-mcp-server": { - "package_name": "swairshah/zotero-mcp-server", - "repo_url": "https://github.com/swairshah/zotero-mcp-server", - "command": "bash", - "args": [ - "-c", - "cd /Users/shahswai/personal/zotero-mcp-server && source .venv/bin/activate && python -m zotero_mcp.server" - ] - }, - "cablate/mcp-doc-forge": { - "package_name": "cablate/mcp-doc-forge", - "repo_url": "https://github.com/cablate/mcp-doc-forge", - "command": "npx", - "args": [ - "-y", - "@cablate/mcp-doc-forge" - ] - }, - "ucalyptus/prem-mcp-server": { - "package_name": "ucalyptus/prem-mcp-server", - "repo_url": "https://github.com/ucalyptus/prem-mcp-server", - "command": "npx", - "args": [ - "prem-mcp-server", - "--stdio" - ], - "env": { - "PREM_API_KEY": "${PREM_API_KEY}", - "PREM_PROJECT_ID": "${PREM_PROJECT_ID}" - } - }, - "OpenLinkSoftware/mcp-server-odbc": { - "package_name": "OpenLinkSoftware/mcp-server-odbc", - "repo_url": "https://github.com/OpenLinkSoftware/mcp-server-odbc", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-server-odbc", - "run", - "mcp-server-odbc" - ], - "env": { - "DB_URL": "${DB_URL}" - } - }, - "ChristianHinge/dicom-mcp": { - "package_name": "ChristianHinge/dicom-mcp", - "repo_url": "https://github.com/ChristianHinge/dicom-mcp", - "command": "uv", - "args": [ - "--directory", - "/path/to/dicom-mcp", - "run", - "dicom-mcp", - "/path/to/configuration.yaml" - ] - }, - "MCP-Mirror/alexatnordnet_mcp-google-custom-search-server": { - "package_name": "MCP-Mirror/alexatnordnet_mcp-google-custom-search-server", - "repo_url": "https://github.com/MCP-Mirror/alexatnordnet_mcp-google-custom-search-server", - "command": "node", - "args": [ - "/absolute/path/to/mcp-google-custom-search-server/build/index.js" - ], - "env": { - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}", - "GOOGLE_SEARCH_ENGINE_ID": "${GOOGLE_SEARCH_ENGINE_ID}" - } - }, - "takuya0206/bigquery-mcp-server": { - "package_name": "takuya0206/bigquery-mcp-server", - "repo_url": "https://github.com/takuya0206/bigquery-mcp-server", - "command": "/path/to/dist/bigquery-mcp-server", - "args": [ - "--project-id", - "your-project-id", - "--location", - "asia-northeast1", - "--max-results", - "1000", - "--max-bytes-billed", - "500000000000" - ] - }, - "lamemind/mcp-server-multiverse": { - "package_name": "lamemind/mcp-server-multiverse", - "repo_url": "https://github.com/lamemind/mcp-server-multiverse", - "command": "npx", - "args": [ - "-y", - "@lamemind/mcp-server-multiverse@latest", - "/path/to/your/job-multiverse.json" - ] - }, - "gerred/mcp-server-replicate": { - "package_name": "gerred/mcp-server-replicate", - "repo_url": "https://github.com/gerred/mcp-server-replicate", - "command": "uv", - "args": [ - "tool", - "run", - "mcp-server-replicate" - ], - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "eka-care/eka_mcp_server": { - "package_name": "eka-care/eka_mcp_server", - "repo_url": "https://github.com/eka-care/eka_mcp_server", - "command": "/opt/homebrew/bin/uvx", - "args": [ - "eka_mcp_server", - "--eka-api-host", - "https://api.eka.care", - "--client-id", - "", - "--client-secret", - "" - ] - }, - "sarthakkimtani/mcp-image-gen": { - "package_name": "sarthakkimtani/mcp-image-gen", - "repo_url": "https://github.com/sarthakkimtani/mcp-image-gen", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/image-gen/", - "run", - "image-gen" - ], - "env": { - "TOGETHER_AI_API_KEY": "${TOGETHER_AI_API_KEY}" - } - }, - "simonwfarrow/worldpay-mcp": { - "package_name": "simonwfarrow/worldpay-mcp", - "repo_url": "https://github.com/simonwfarrow/worldpay-mcp", - "command": "node", - "args": [ - "PATH TO server-stdio.js" - ], - "env": { - "WORLDPAY_USERNAME": "${WORLDPAY_USERNAME}", - "WORLDPAY_PASSWORD": "${WORLDPAY_PASSWORD}" - } - }, - "mattjoyce/senechal-mcp": { - "package_name": "mattjoyce/senechal-mcp", - "repo_url": "https://github.com/mattjoyce/senechal-mcp", - "command": "C:\\path\\to\\venv\\Scripts\\python.exe", - "args": [ - "C:\\path\\to\\senechal_mcp_server.py" - ], - "env": { - "SENECHAL_API_KEY": "${SENECHAL_API_KEY}" - } - }, - "loglmhq/mcp-server-prometheus": { - "package_name": "loglmhq/mcp-server-prometheus", - "repo_url": "https://github.com/loglmhq/mcp-server-prometheus", - "command": "/path/to/mcp-server-prometheus/build/index.js", - "env": { - "PROMETHEUS_URL": "${PROMETHEUS_URL}" - } - }, - "ferrislucas/iterm-mcp": { - "package_name": "ferrislucas/iterm-mcp", - "repo_url": "https://github.com/ferrislucas/iterm-mcp", - "command": "npx", - "args": [ - "-y", - "iterm-mcp" - ] - }, - "DMontgomery40/deepseek-mcp-server": { - "package_name": "DMontgomery40/deepseek-mcp-server", - "repo_url": "https://github.com/DMontgomery40/deepseek-mcp-server", - "command": "npx", - "args": [ - "-y", - "deepseek-mcp-server" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "TaazKareem/twitter-mcp-server": { - "package_name": "TaazKareem/twitter-mcp-server", - "repo_url": "https://github.com/TaazKareem/twitter-mcp-server", - "command": "/path/to/twitter-mcp-server/build/index.js" - }, - "yctimlin/mcp_excalidraw": { - "package_name": "yctimlin/mcp_excalidraw", - "repo_url": "https://github.com/yctimlin/mcp_excalidraw", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "mcp/excalidraw" - ], - "env": { - "LOG_LEVEL": "${LOG_LEVEL}", - "DEBUG": "${DEBUG}" - } - }, - "gdli6177/mcp-prompt-server": { - "package_name": "gdli6177/mcp-prompt-server", - "repo_url": "https://github.com/gdli6177/mcp-prompt-server", - "command": "node", - "args": [ - "/path/to/prompt-server/src/index.js" - ] - }, - "mario-andreschak/mcp-image-recognition": { - "package_name": "mario-andreschak/mcp-image-recognition", - "repo_url": "https://github.com/mario-andreschak/mcp-image-recognition", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-v", - "/path/on/host:/path/in/container", - "zudsniper/mcp-image-recognition:latest" - ], - "env": { - "VISION_PROVIDER": "${VISION_PROVIDER}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "OPENAI_MODEL": "${OPENAI_MODEL}" - } - }, - "sou-lab/esa-mcp-server": { - "package_name": "sou-lab/esa-mcp-server", - "repo_url": "https://github.com/sou-lab/esa-mcp-server", - "command": "/path/to/node", - "args": [ - "/path/to/esa-mcp-server/bin/cli.js" - ], - "env": { - "ESA_API_KEY": "${ESA_API_KEY}", - "ESA_TEAM_NAME": "${ESA_TEAM_NAME}", - "PORT": "${PORT}" - } - }, - "Albo3/MCP-Server": { - "package_name": "Albo3/MCP-Server", - "repo_url": "https://github.com/Albo3/MCP-Server", - "command": "node", - "args": [ - "ABSOLUTE_PATH_TO_YOUR_PROJECT/dist/index.js" - ] - }, - "GLips/Figma-Context-MCP": { - "package_name": "GLips/Figma-Context-MCP", - "repo_url": "https://github.com/GLips/Figma-Context-MCP", - "command": "cmd", - "args": [ - "/c", - "npx", - "-y", - "figma-developer-mcp", - "--figma-api-key=YOUR-KEY", - "--stdio" - ] - }, - "alexandreroman/mcp-chess": { - "package_name": "alexandreroman/mcp-chess", - "repo_url": "https://github.com/alexandreroman/mcp-chess", - "command": "/path/to/mcp-chess-binary" - }, - "bytebase/dbhub": { - "package_name": "bytebase/dbhub", - "repo_url": "https://github.com/bytebase/dbhub", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "bytebase/dbhub", - "--transport", - "stdio", - "--dsn", - "postgres://user:password@host.docker.internal:5432/dbname?sslmode=disable" - ] - }, - "joshuayoes/ios-simulator-mcp": { - "package_name": "joshuayoes/ios-simulator-mcp", - "repo_url": "https://github.com/joshuayoes/ios-simulator-mcp", - "command": "node", - "args": [ - "/path/to/your/ios-simulator-mcp/build/index.js" - ] - }, - "aldrin-labs/metal-mcp-server": { - "package_name": "aldrin-labs/metal-mcp-server", - "repo_url": "https://github.com/aldrin-labs/metal-mcp-server", - "command": "node", - "args": [ - "/path/to/metal-mcp/build/index.js" - ] - }, - "sammcj/bybit-mcp": { - "package_name": "sammcj/bybit-mcp", - "repo_url": "https://github.com/sammcj/bybit-mcp", - "command": "node", - "args": [ - "/path/to/bybit-mcp/build/index.js" - ], - "env": { - "BYBIT_API_KEY": "${BYBIT_API_KEY}", - "BYBIT_API_SECRET": "${BYBIT_API_SECRET}", - "BYBIT_USE_TESTNET": "${BYBIT_USE_TESTNET}" - } - }, - "agentrpc/agentrpc": { - "package_name": "agentrpc/agentrpc", - "repo_url": "https://github.com/agentrpc/agentrpc", - "command": "npx", - "args": [ - "-y", - "agentrpc", - "mcp" - ], - "env": { - "AGENTRPC_API_SECRET": "${AGENTRPC_API_SECRET}" - } - }, - "arjunkmrm/mcp-sg-lta": { - "package_name": "arjunkmrm/mcp-sg-lta", - "repo_url": "https://github.com/arjunkmrm/mcp-sg-lta", - "command": "npx", - "args": [ - "-y", - "arjunkmrm/mcp-sg-lta" - ], - "env": { - "LTA_API_KEY": "${LTA_API_KEY}" - } - }, - "jasondsmith72/Connectwise-PSA-API-MCP-Server": { - "package_name": "jasondsmith72/Connectwise-PSA-API-MCP-Server", - "repo_url": "https://github.com/jasondsmith72/Connectwise-PSA-API-MCP-Server", - "command": "node", - "args": [ - "path/to/dist/index.js" - ], - "env": { - "CW_COMPANY_ID": "${CW_COMPANY_ID}", - "CW_PUBLIC_KEY": "${CW_PUBLIC_KEY}", - "CW_PRIVATE_KEY": "${CW_PRIVATE_KEY}", - "CW_API_URL": "${CW_API_URL}", - "PORT": "${PORT}" - } - }, - "MCP-Mirror/wrale_mcp-server-make": { - "package_name": "MCP-Mirror/wrale_mcp-server-make", - "repo_url": "https://github.com/MCP-Mirror/wrale_mcp-server-make", - "command": "uvx", - "args": [ - "mcp-server-make", - "--make-path", - "/absolute/path/to/Makefile", - "--working-dir", - "/absolute/path/to/working/dir" - ] - }, - "spences10/mcp-turso": { - "package_name": "spences10/mcp-turso", - "repo_url": "https://github.com/spences10/mcp-turso", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "TURSO_API_TOKEN=your-token TURSO_ORGANIZATION=your-org node /path/to/mcp-turso/dist/index.js" - ] - }, - "dentaku7/mcp-go-sdk": { - "package_name": "dentaku7/mcp-go-sdk", - "repo_url": "https://github.com/dentaku7/mcp-go-sdk", - "command": "mytool", - "args": [] - }, - "MCP-Mirror/apappascs_tavily-search-mcp-server": { - "package_name": "MCP-Mirror/apappascs_tavily-search-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/apappascs_tavily-search-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "TAVILY_API_KEY", - "-v", - "/Users///tavily-search-mcp-server:/app", - "tavily-search-mcp-server" - ], - "env": { - "TAVILY_API_KEY": "${TAVILY_API_KEY}" - } - }, - "ibraheem4/cline-github-mcp": { - "package_name": "ibraheem4/cline-github-mcp", - "repo_url": "https://github.com/ibraheem4/cline-github-mcp", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "MCP-Mirror/KS-GEN-AI_confluence-mcp-server": { - "package_name": "MCP-Mirror/KS-GEN-AI_confluence-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/KS-GEN-AI_confluence-mcp-server", - "command": "node", - "args": [ - "/PATH_TO_THE_PROJECT/build/index.js" - ], - "env": { - "CONFLUENCE_URL": "${CONFLUENCE_URL}", - "CONFLUENCE_API_MAIL": "${CONFLUENCE_API_MAIL}", - "CONFLUENCE_API_KEY": "${CONFLUENCE_API_KEY}" - } - }, - "Alec2435/amazon-fresh-server": { - "package_name": "Alec2435/amazon-fresh-server", - "repo_url": "https://github.com/Alec2435/amazon-fresh-server", - "command": "/path/to/amazon-fresh-server/build/index.js" - }, - "Trae-AI/Trae": { - "package_name": "Trae-AI/Trae", - "repo_url": "https://github.com/Trae-AI/Trae", - "command": "npx", - "args": [ - "-y", - "@baidumap/mcp-server-baidu-map" - ], - "env": { - "BAIDU_MAP_API_KEY": "${BAIDU_MAP_API_KEY}" - } - }, - "planetarium/mcp-agent8": { - "package_name": "planetarium/mcp-agent8", - "repo_url": "https://github.com/planetarium/mcp-agent8", - "command": "npx", - "args": [ - "--yes", - "agent8-mcp-server" - ] - }, - "ChronulusAI/chronulus-mcp": { - "package_name": "ChronulusAI/chronulus-mcp", - "repo_url": "https://github.com/ChronulusAI/chronulus-mcp", - "command": "uvx", - "args": [ - "chronulus-mcp" - ], - "env": { - "CHRONULUS_API_KEY": "${CHRONULUS_API_KEY}" - } - }, - "sdimitrov/mcp-memory": { - "package_name": "sdimitrov/mcp-memory", - "repo_url": "https://github.com/sdimitrov/mcp-memory", - "command": "node", - "args": [ - "/Users/username/workspace/memory/src/server.js" - ] - }, - "Rootly-AI-Labs/Rootly-MCP-server": { - "package_name": "Rootly-AI-Labs/Rootly-MCP-server", - "repo_url": "https://github.com/Rootly-AI-Labs/Rootly-MCP-server", - "command": "uv", - "args": [ - "run", - "--directory", - "/path/to/rootly-mcp-server", - "rootly-mcp-server" - ], - "env": { - "ROOTLY_API_TOKEN": "${ROOTLY_API_TOKEN}" - } - }, - "awkoy/replicate-flux-mcp": { - "package_name": "awkoy/replicate-flux-mcp", - "repo_url": "https://github.com/awkoy/replicate-flux-mcp", - "command": "npx", - "args": [ - "/Users/{USERNAME}/{PATH_TO}/replicate-flux-mcp/build/index.js" - ], - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "VxASI/blender-mcp-vxai": { - "package_name": "VxASI/blender-mcp-vxai", - "repo_url": "https://github.com/VxASI/blender-mcp-vxai", - "command": "uvx", - "args": [ - "blender-mcp-vxai==1.0.7" - ] - }, - "oraichain/multichain-mcp": { - "package_name": "oraichain/multichain-mcp", - "repo_url": "https://github.com/oraichain/multichain-mcp", - "command": "node", - "args": [ - "packages/mcp-server/dist/index.js" - ], - "env": { - "PORT": "${PORT}", - "RPC_URL": "${RPC_URL}" - } - }, - "MCP-Mirror/knmurphy_glide-api-mcp-server": { - "package_name": "MCP-Mirror/knmurphy_glide-api-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/knmurphy_glide-api-mcp-server", - "command": "node", - "args": [ - "path/to/build/index.js" - ], - "env": { - "GLIDE_API_KEY": "${GLIDE_API_KEY}", - "GLIDE_API_VERSION": "${GLIDE_API_VERSION}" - } - }, - "phil65/mcp-server-llmling": { - "package_name": "phil65/mcp-server-llmling", - "repo_url": "https://github.com/phil65/mcp-server-llmling", - "command": "uvx", - "args": [ - "mcp-server-llmling", - "start", - "path/to/your/config.yml" - ] - }, - "MCP-Mirror/SmallCloudCo_smallcloud-mcp-server": { - "package_name": "MCP-Mirror/SmallCloudCo_smallcloud-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/SmallCloudCo_smallcloud-mcp-server", - "command": "/opt/homebrew/bin/node", - "args": [ - "~/Git/smallcloud-mcp-server/index.js" - ] - }, - "MCP-Mirror/loglmhq_mcp-server-prometheus": { - "package_name": "MCP-Mirror/loglmhq_mcp-server-prometheus", - "repo_url": "https://github.com/MCP-Mirror/loglmhq_mcp-server-prometheus", - "command": "/path/to/mcp-server-prometheus/build/index.js", - "env": { - "PROMETHEUS_URL": "${PROMETHEUS_URL}" - } - }, - "ZubeidHendricks/youtube-mcp-server": { - "package_name": "ZubeidHendricks/youtube-mcp-server", - "repo_url": "https://github.com/ZubeidHendricks/youtube-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-youtube" - ], - "env": { - "YOUTUBE_API_KEY": "${YOUTUBE_API_KEY}" - } - }, - "Greg-Swiftomatic/substack-mcp": { - "package_name": "Greg-Swiftomatic/substack-mcp", - "repo_url": "https://github.com/Greg-Swiftomatic/substack-mcp", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/substack-mcp", - "run", - "substack_mcp.py" - ] - }, - "madhukarkumar/singlestore-mcp-server": { - "package_name": "madhukarkumar/singlestore-mcp-server", - "repo_url": "https://github.com/madhukarkumar/singlestore-mcp-server", - "command": "node", - "args": [ - "path/to/mcp-server-singlestore/build/index.js" - ], - "env": { - "SINGLESTORE_HOST": "${SINGLESTORE_HOST}", - "SINGLESTORE_PORT": "${SINGLESTORE_PORT}", - "SINGLESTORE_USER": "${SINGLESTORE_USER}", - "SINGLESTORE_PASSWORD": "${SINGLESTORE_PASSWORD}", - "SINGLESTORE_DATABASE": "${SINGLESTORE_DATABASE}", - "SSE_ENABLED": "${SSE_ENABLED}", - "SSE_PORT": "${SSE_PORT}" - } - }, - "robertoamoreno/couchdb-mcp-server": { - "package_name": "robertoamoreno/couchdb-mcp-server", - "repo_url": "https://github.com/robertoamoreno/couchdb-mcp-server", - "command": "/path/to/couchdb-mcp-server/build/index.js", - "env": { - "COUCHDB_URL": "${COUCHDB_URL}" - } - }, - "xzq-xu/jvm-mcp-server": { - "package_name": "xzq-xu/jvm-mcp-server", - "repo_url": "https://github.com/xzq-xu/jvm-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/jvm-mcp-server", - "run", - "jvm-mcp-server" - ] - }, - "irvinebroque/remote-mcp-server-9": { - "package_name": "irvinebroque/remote-mcp-server-9", - "repo_url": "https://github.com/irvinebroque/remote-mcp-server-9", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "sanity-io/sanity-mcp-server": { - "package_name": "sanity-io/sanity-mcp-server", - "repo_url": "https://github.com/sanity-io/sanity-mcp-server", - "command": "npx", - "args": [ - "-y", - "@sanity/mcp-server@latest" - ], - "env": { - "SANITY_PROJECT_ID": "${SANITY_PROJECT_ID}", - "SANITY_DATASET": "${SANITY_DATASET}", - "SANITY_API_TOKEN": "${SANITY_API_TOKEN}" - } - }, - "MCP-Mirror/ZubeidHendricks_azure-onenote-mcp-server": { - "package_name": "MCP-Mirror/ZubeidHendricks_azure-onenote-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/ZubeidHendricks_azure-onenote-mcp-server", - "command": "npx", - "args": [ - "-y", - "mcp-server-onenote" - ], - "env": { - "AZURE_TENANT_ID": "${AZURE_TENANT_ID}", - "AZURE_CLIENT_ID": "${AZURE_CLIENT_ID}", - "AZURE_CLIENT_SECRET": "${AZURE_CLIENT_SECRET}" - } - }, - "nloui/paperless-mcp": { - "package_name": "nloui/paperless-mcp", - "repo_url": "https://github.com/nloui/paperless-mcp", - "command": "npx", - "args": [ - "paperless-mcp", - "http://your-paperless-instance:8000", - "your-api-token" - ] - }, - "cmsparks/remote-mcp-server-2": { - "package_name": "cmsparks/remote-mcp-server-2", - "repo_url": "https://github.com/cmsparks/remote-mcp-server-2", - "command": "npx", - "args": [ - "mcp-remote", - "https://worker-name.account-name.workers.dev/sse" - ] - }, - "FarukNetworks/mcp-mssql": { - "package_name": "FarukNetworks/mcp-mssql", - "repo_url": "https://github.com/FarukNetworks/mcp-mssql", - "command": "uv", - "args": [ - "--directory", - "path/to/mssql_mcp_server", - "run", - "mssql_mcp_server" - ], - "env": { - "MSSQL_SERVER": "${MSSQL_SERVER}", - "MSSQL_USER": "${MSSQL_USER}", - "MSSQL_PASSWORD": "${MSSQL_PASSWORD}", - "MSSQL_DATABASE": "${MSSQL_DATABASE}" - } - }, - "MCP-Mirror/openSVM_zig-mcp-server": { - "package_name": "MCP-Mirror/openSVM_zig-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/openSVM_zig-mcp-server", - "command": "node", - "args": [ - "/path/to/zig-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "NODE_OPTIONS": "${NODE_OPTIONS}" - } - }, - "qpd-v/mcp-DEEPwebresearch": { - "package_name": "qpd-v/mcp-DEEPwebresearch", - "repo_url": "https://github.com/qpd-v/mcp-DEEPwebresearch", - "command": "mcp-deepwebresearch", - "args": [] - }, - "GRID-is/claude-mcp": { - "package_name": "GRID-is/claude-mcp", - "repo_url": "https://github.com/GRID-is/claude-mcp", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/TO/claude-mcp/dist/index.js" - ], - "env": { - "GRID_API_KEY": "${GRID_API_KEY}" - } - }, - "qpd-v/mcp-guide": { - "package_name": "qpd-v/mcp-guide", - "repo_url": "https://github.com/qpd-v/mcp-guide", - "command": "node", - "args": [ - "path/to/mcp-guide/dist/index.js" - ] - }, - "rakeshgangwar/n8n-mcp-server": { - "package_name": "rakeshgangwar/n8n-mcp-server", - "repo_url": "https://github.com/rakeshgangwar/n8n-mcp-server", - "command": "/path/to/n8n-server/build/index.js" - }, - "marcelmarais/spotify-mcp-server": { - "package_name": "marcelmarais/spotify-mcp-server", - "repo_url": "https://github.com/marcelmarais/spotify-mcp-server", - "command": "node", - "args": [ - "~/../spotify-mcp-server/build/index.js" - ] - }, - "magnetai/mcp-free-usdc-transfer": { - "package_name": "magnetai/mcp-free-usdc-transfer", - "repo_url": "https://github.com/magnetai/mcp-free-usdc-transfer", - "command": "npx", - "args": [ - "-y", - "@magnetai/free-usdc-transfer" - ], - "env": { - "COINBASE_CDP_API_KEY_NAME": "${COINBASE_CDP_API_KEY_NAME}", - "COINBASE_CDP_PRIVATE_KEY": "${COINBASE_CDP_PRIVATE_KEY}" - } - }, - "cuongtl1992/mcp-dbs": { - "package_name": "cuongtl1992/mcp-dbs", - "repo_url": "https://github.com/cuongtl1992/mcp-dbs", - "command": "node", - "args": [ - "/path/to/your/mcp-dbs/dist/cli.js", - "--stdio" - ], - "env": { - "MCP_MONGODB_URI": "${MCP_MONGODB_URI}", - "MCP_MONGODB_DATABASE": "${MCP_MONGODB_DATABASE}" - } - }, - "franccesco/hex-mcp": { - "package_name": "franccesco/hex-mcp", - "repo_url": "https://github.com/franccesco/hex-mcp", - "command": "hex-mcp", - "args": [ - "run" - ] - }, - "r3-yamauchi/kintone-mcp-server": { - "package_name": "r3-yamauchi/kintone-mcp-server", - "repo_url": "https://github.com/r3-yamauchi/kintone-mcp-server", - "command": "node", - "args": [ - "[kintone-mcp-server\u00e3\u0082\u0092\u00e9\u0085\u008d\u00e7\u00bd\u00ae\u00e3\u0081\u0097\u00e3\u0081\u009f\u00e3\u0083\u0091\u00e3\u0082\u00b9]/server.js" - ], - "env": { - "KINTONE_DOMAIN": "${KINTONE_DOMAIN}", - "KINTONE_USERNAME": "${KINTONE_USERNAME}", - "KINTONE_PASSWORD": "${KINTONE_PASSWORD}" - } - }, - "Bigsy/maven-mcp-server": { - "package_name": "Bigsy/maven-mcp-server", - "repo_url": "https://github.com/Bigsy/maven-mcp-server", - "command": "mcp-maven-deps" - }, - "cablate/mcp-google-map": { - "package_name": "cablate/mcp-google-map", - "repo_url": "https://github.com/cablate/mcp-google-map", - "command": "npx", - "args": [ - "-y", - "@cablate/mcp-google-map" - ], - "env": { - "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" - } - }, - "DaInfernalCoder/perplexity-mcp": { - "package_name": "DaInfernalCoder/perplexity-mcp", - "repo_url": "https://github.com/DaInfernalCoder/perplexity-mcp", - "command": "npx", - "args": [ - "-y", - "perplexity-mcp" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "MCP-Mirror/zxkane_mcp-server-amazon-bedrock": { - "package_name": "MCP-Mirror/zxkane_mcp-server-amazon-bedrock", - "repo_url": "https://github.com/MCP-Mirror/zxkane_mcp-server-amazon-bedrock", - "command": "npx", - "args": [ - "-y", - "@zxkane/mcp-server-amazon-bedrock" - ], - "env": { - "AWS_PROFILE": "${AWS_PROFILE}", - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}" - } - }, - "openagentplatform/dive": { - "package_name": "openagentplatform/dive", - "repo_url": "https://github.com/openagentplatform/dive" - }, - "blake365/options-chain": { - "package_name": "blake365/options-chain", - "repo_url": "https://github.com/blake365/options-chain", - "command": "node", - "args": [ - "/Full/Route/to/Folder/options-chain/build/index.js" - ], - "env": { - "token": "${token}" - } - }, - "BurtTheCoder/mcp-virustotal": { - "package_name": "BurtTheCoder/mcp-virustotal", - "repo_url": "https://github.com/BurtTheCoder/mcp-virustotal", - "command": "node", - "args": [ - "--experimental-modules", - "/absolute/path/to/mcp-virustotal/build/index.js" - ], - "env": { - "VIRUSTOTAL_API_KEY": "${VIRUSTOTAL_API_KEY}" - } - }, - "MCP-Mirror/PoliTwit1984_mcp-perplexity-server": { - "package_name": "MCP-Mirror/PoliTwit1984_mcp-perplexity-server", - "repo_url": "https://github.com/MCP-Mirror/PoliTwit1984_mcp-perplexity-server", - "command": "node", - "args": [ - "/absolute/path/to/perplexity-server/build/index.js" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "peancor/moodle-mcp-server": { - "package_name": "peancor/moodle-mcp-server", - "repo_url": "https://github.com/peancor/moodle-mcp-server", - "command": "C:\\path\\to\\ode.exe", - "args": [ - "C:\\path\\to\\moodle-mcp-server\\build\\index.js" - ], - "env": { - "MOODLE_API_URL": "${MOODLE_API_URL}", - "MOODLE_API_TOKEN": "${MOODLE_API_TOKEN}", - "MOODLE_COURSE_ID": "${MOODLE_COURSE_ID}" - } - }, - "yokingma/one-search-mcp": { - "package_name": "yokingma/one-search-mcp", - "repo_url": "https://github.com/yokingma/one-search-mcp", - "command": "npx", - "args": [ - "-y", - "one-search-mcp" - ], - "env": { - "SEARCH_PROVIDER": "${SEARCH_PROVIDER}", - "SEARCH_API_URL": "${SEARCH_API_URL}", - "SEARCH_API_KEY": "${SEARCH_API_KEY}", - "FIRECRAWL_API_URL": "${FIRECRAWL_API_URL}", - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}" - } - }, - "emmett-deen/Linear-MCP-Server": { - "package_name": "emmett-deen/Linear-MCP-Server", - "repo_url": "https://github.com/emmett-deen/Linear-MCP-Server", - "command": "npx", - "args": [ - "-y", - "@emmett.deen/linear-mcp-server" - ], - "env": { - "LINEAR_API_KEY": "${LINEAR_API_KEY}" - } - }, - "SurajAdsul/mcp-server-salesforce": { - "package_name": "SurajAdsul/mcp-server-salesforce", - "repo_url": "https://github.com/SurajAdsul/mcp-server-salesforce", - "command": "npx", - "args": [ - "-y", - "@surajadsul02/mcp-server-salesforce" - ], - "env": { - "SALESFORCE_USERNAME": "${SALESFORCE_USERNAME}", - "SALESFORCE_PASSWORD": "${SALESFORCE_PASSWORD}", - "SALESFORCE_CONSUMER_KEY": "${SALESFORCE_CONSUMER_KEY}", - "SALESFORCE_CONSUMER_SECRET": "${SALESFORCE_CONSUMER_SECRET}", - "SALESFORCE_INSTANCE_URL": "${SALESFORCE_INSTANCE_URL}" - } - }, - "excelsier/things-fastmcp": { - "package_name": "excelsier/things-fastmcp", - "repo_url": "https://github.com/excelsier/things-fastmcp", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/things-mcp", - "run", - "things_server.py" - ] - }, - "minhyeoky/mcp-server-ledger": { - "package_name": "minhyeoky/mcp-server-ledger", - "repo_url": "https://github.com/minhyeoky/mcp-server-ledger", - "command": "uv", - "args": [ - "run", - "--env-file", - "/path/to/your/.env", - "--with", - "mcp[cli]", - "mcp", - "run", - "/main.py" - ] - }, - "j4c0bs/mcp-server-sql-analyzer": { - "package_name": "j4c0bs/mcp-server-sql-analyzer", - "repo_url": "https://github.com/j4c0bs/mcp-server-sql-analyzer", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-server-sql-analyzer", - "run", - "mcp-server-sql-analyzer" - ] - }, - "8bitgentleman/activitywatch-mcp-server": { - "package_name": "8bitgentleman/activitywatch-mcp-server", - "repo_url": "https://github.com/8bitgentleman/activitywatch-mcp-server", - "command": "node", - "args": [ - "/path/to/activitywatch-mcp-server/dist/index.js" - ] - }, - "web-agent-master/google-search": { - "package_name": "web-agent-master/google-search", - "repo_url": "https://github.com/web-agent-master/google-search", - "command": "node", - "args": [ - "C:/path/to/your/google-search/dist/src/mcp-server.js" - ] - }, - "MatthewDailey/mcp-starter": { - "package_name": "MatthewDailey/mcp-starter", - "repo_url": "https://github.com/MatthewDailey/mcp-starter", - "command": "node", - "args": [ - "/Users/matt/code/mcp-starter/dist/index.cjs" - ] - }, - "mmokarzel/brand-to-theme-mcp-server": { - "package_name": "mmokarzel/brand-to-theme-mcp-server", - "repo_url": "https://github.com/mmokarzel/brand-to-theme-mcp-server", - "command": "node", - "args": [ - "/ruta/a/brand-to-theme-mcp/build/index.js" - ] - }, - "johnneerdael/netskope-mcp": { - "package_name": "johnneerdael/netskope-mcp", - "repo_url": "https://github.com/johnneerdael/netskope-mcp", - "command": "node", - "args": [ - "dist/cli.js" - ], - "env": { - "NETSKOPE_BASE_URL": "${NETSKOPE_BASE_URL}", - "NETSKOPE_API_KEY": "${NETSKOPE_API_KEY}" - } - }, - "Omedia/mcp-server-drupal": { - "package_name": "Omedia/mcp-server-drupal", - "repo_url": "https://github.com/Omedia/mcp-server-drupal", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "DRUPAL_AUTH_TOKEN", - "ghcr.io/omedia/mcp-server-drupal", - "--drupal-url=__DRUPAL_BASE_URL__" - ], - "env": { - "DRUPAL_AUTH_TOKEN": "${DRUPAL_AUTH_TOKEN}" - } - }, - "kshern/image-tools-mcp": { - "package_name": "kshern/image-tools-mcp", - "repo_url": "https://github.com/kshern/image-tools-mcp", - "command": "/path/to/agentql-mcp/dist/index.js", - "env": { - "AGENTQL_API_KEY": "${AGENTQL_API_KEY}" - } - }, - "falgom4/calendar-mcp": { - "package_name": "falgom4/calendar-mcp", - "repo_url": "https://github.com/falgom4/calendar-mcp", - "command": "npx", - "args": [ - "@nchufa/calendar" - ] - }, - "andypost/mcp-server-ts-trello": { - "package_name": "andypost/mcp-server-ts-trello", - "repo_url": "https://github.com/andypost/mcp-server-ts-trello", - "command": "node", - "args": [ - "/path/to/mcp-server-ts-trello/build/index.js" - ], - "env": { - "TRELLO_API_KEY": "${TRELLO_API_KEY}", - "TRELLO_TOKEN": "${TRELLO_TOKEN}" - } - }, - "thingspanel/thingspanel-mcp": { - "package_name": "thingspanel/thingspanel-mcp", - "repo_url": "https://github.com/thingspanel/thingspanel-mcp", - "command": "thingspanel-mcp", - "args": [ - "--api-key", - "Your API Key", - "--base-url", - "Your Base URL" - ] - }, - "jasondsmith72/CWM-API-Gateway-MCP": { - "package_name": "jasondsmith72/CWM-API-Gateway-MCP", - "repo_url": "https://github.com/jasondsmith72/CWM-API-Gateway-MCP", - "command": "python3", - "args": [ - "/path/to/CWM-API-Gateway-MCP/api_gateway_server.py" - ], - "env": { - "CONNECTWISE_API_URL": "${CONNECTWISE_API_URL}", - "CONNECTWISE_COMPANY_ID": "${CONNECTWISE_COMPANY_ID}", - "CONNECTWISE_PUBLIC_KEY": "${CONNECTWISE_PUBLIC_KEY}", - "CONNECTWISE_PRIVATE_KEY": "${CONNECTWISE_PRIVATE_KEY}", - "CONNECTWISE_AUTH_PREFIX": "${CONNECTWISE_AUTH_PREFIX}" - } - }, - "kennethreitz/mcp-applemusic": { - "package_name": "kennethreitz/mcp-applemusic", - "repo_url": "https://github.com/kennethreitz/mcp-applemusic", - "command": "uvx", - "args": [ - "-n", - "mcp-applemusic" - ] - }, - "MCP-Mirror/Hawstein_mcp-server-reddit": { - "package_name": "MCP-Mirror/Hawstein_mcp-server-reddit", - "repo_url": "https://github.com/MCP-Mirror/Hawstein_mcp-server-reddit", - "command": "python", - "args": [ - "-m", - "mcp_server_reddit" - ] - }, - "awkoy/notion-mcp-server": { - "package_name": "awkoy/notion-mcp-server", - "repo_url": "https://github.com/awkoy/notion-mcp-server", - "command": "npx", - "args": [ - "-y", - "notion-mcp-server" - ], - "env": { - "NOTION_TOKEN": "${NOTION_TOKEN}", - "NOTION_PAGE_ID": "${NOTION_PAGE_ID}" - } - }, - "henrygabriels/claude-mcp-tools": { - "package_name": "henrygabriels/claude-mcp-tools", - "repo_url": "https://github.com/henrygabriels/claude-mcp-tools", - "command": "python /absolute/path/to/claude-mcp-tools/news-search-server/server.py" - }, - "christyjacob4/mcp-server-appwrite": { - "package_name": "christyjacob4/mcp-server-appwrite", - "repo_url": "https://github.com/christyjacob4/mcp-server-appwrite", - "command": "uvx", - "args": [ - "mcp-server-appwrite", - "--projectId", - "YOUR_PROJECT_ID", - "--apiKey", - "YOUR_API_KEY" - ] - }, - "MCP-Mirror/blazickjp_shell-mcp-server": { - "package_name": "MCP-Mirror/blazickjp_shell-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/blazickjp_shell-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/shell-mcp-server", - "run", - "shell-mcp-server", - "/path/to/allowed/dir1", - "/path/to/allowed/dir2", - "--shell", - "bash", - "/bin/bash", - "--shell", - "zsh", - "/bin/zsh" - ] - }, - "blazickjp/web-browser-mcp-server": { - "package_name": "blazickjp/web-browser-mcp-server", - "repo_url": "https://github.com/blazickjp/web-browser-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/cloned/web-browser-mcp-server", - "run", - "web-browser-mcp-server" - ], - "env": { - "REQUEST_TIMEOUT": "${REQUEST_TIMEOUT}" - } - }, - "genm/mcp-server-discord-webhook": { - "package_name": "genm/mcp-server-discord-webhook", - "repo_url": "https://github.com/genm/mcp-server-discord-webhook", - "command": "npx", - "args": [ - "-y", - "@genpm/mcp-server-discord-webhook" - ], - "env": { - "DISCORD_WEBHOOK_URL": "${DISCORD_WEBHOOK_URL}" - } - }, - "snaggle-ai/openapi-mcp-server": { - "package_name": "snaggle-ai/openapi-mcp-server", - "repo_url": "https://github.com/snaggle-ai/openapi-mcp-server", - "command": "npx", - "args": [ - "openapi-mcp-server", - "/abs/path/to/petstore-openapi.json" - ] - }, - "AidenYangX/mapbox-mcp-server": { - "package_name": "AidenYangX/mapbox-mcp-server", - "repo_url": "https://github.com/AidenYangX/mapbox-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/mapbox-mcp-server/build/index.js" - ], - "env": { - "MAPBOX_ACCESS_TOKEN": "${MAPBOX_ACCESS_TOKEN}" - } - }, - "aashari/mcp-atlassian-confluence": { - "package_name": "aashari/mcp-atlassian-confluence", - "repo_url": "https://github.com/aashari/mcp-atlassian-confluence", - "command": "npx", - "args": [ - "-y", - "aashari/mcp-atlassian-confluence" - ] - }, - "MCP-Mirror/aldrin-labs_metal-mcp-server": { - "package_name": "MCP-Mirror/aldrin-labs_metal-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/aldrin-labs_metal-mcp-server", - "command": "node", - "args": [ - "/path/to/metal-mcp/build/index.js" - ] - }, - "MCP-Mirror/reading-plus-ai_mcp-server-data-exploration": { - "package_name": "MCP-Mirror/reading-plus-ai_mcp-server-data-exploration", - "repo_url": "https://github.com/MCP-Mirror/reading-plus-ai_mcp-server-data-exploration", - "command": "uvx", - "args": [ - "mcp-server-ds" - ] - }, - "ariunbolor/nsaf-mcp-server": { - "package_name": "ariunbolor/nsaf-mcp-server", - "repo_url": "https://github.com/ariunbolor/nsaf-mcp-server", - "command": "nsaf-mcp-server", - "args": [] - }, - "HarshJ23/deepseek-claude-MCP-server": { - "package_name": "HarshJ23/deepseek-claude-MCP-server", - "repo_url": "https://github.com/HarshJ23/deepseek-claude-MCP-server", - "command": "uv", - "args": [ - "--directory", - "C:\\ABSOLUTE\\PATH\\TO\\PARENT\\FOLDER\\deepseek-claude", - "run", - "server.py" - ] - }, - "asusevski/opendota-mcp-server": { - "package_name": "asusevski/opendota-mcp-server", - "repo_url": "https://github.com/asusevski/opendota-mcp-server", - "command": "wsl.exe", - "args": [ - "--", - "bash", - "-c", - "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py" - ] - }, - "bytefer/mcp-flux-schnell": { - "package_name": "bytefer/mcp-flux-schnell", - "repo_url": "https://github.com/bytefer/mcp-flux-schnell", - "command": "node", - "args": [ - "/path/to/mcp-flux-schnell/build/index.js" - ], - "env": { - "FLUX_API_URL": "${FLUX_API_URL}", - "FLUX_API_TOKEN": "${FLUX_API_TOKEN}", - "WORKING_DIR": "${WORKING_DIR}" - } - }, - "baryhuang/mcp-server-any-openapi": { - "package_name": "baryhuang/mcp-server-any-openapi", - "repo_url": "https://github.com/baryhuang/mcp-server-any-openapi", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", - "-e", - "MCP_API_PREFIX=finance", - "buryhuang/mcp-server-any-openapi:latest" - ] - }, - "knmurphy/glide-api-mcp-server": { - "package_name": "knmurphy/glide-api-mcp-server", - "repo_url": "https://github.com/knmurphy/glide-api-mcp-server", - "command": "node", - "args": [ - "path/to/build/index.js" - ], - "env": { - "GLIDE_API_KEY": "${GLIDE_API_KEY}", - "GLIDE_API_VERSION": "${GLIDE_API_VERSION}" - } - }, - "peterparker57/clarion-builder-mcp-server": { - "package_name": "peterparker57/clarion-builder-mcp-server", - "repo_url": "https://github.com/peterparker57/clarion-builder-mcp-server", - "command": "node", - "args": [ - "path/to/clarion-builder-mcp-server/dist/index.js" - ] - }, - "amekala/Ads-manager-mcp-server": { - "package_name": "amekala/Ads-manager-mcp-server", - "repo_url": "https://github.com/amekala/Ads-manager-mcp-server" - }, - "DynamicEndpoints/Netlify-MCP-Server": { - "package_name": "DynamicEndpoints/Netlify-MCP-Server", - "repo_url": "https://github.com/DynamicEndpoints/Netlify-MCP-Server", - "command": "node", - "args": [ - "/path/to/Netlify-MCP-Server/build/index.js" - ], - "env": { - "NETLIFY_AUTH_TOKEN": "${NETLIFY_AUTH_TOKEN}" - } - }, - "braveTony44/docker-mcp-server": { - "package_name": "braveTony44/docker-mcp-server", - "repo_url": "https://github.com/braveTony44/docker-mcp-server", - "command": "node", - "args": [ - "docker-mcp/index.js" - ] - }, - "takumi0706/mcp-google-calendar": { - "package_name": "takumi0706/mcp-google-calendar", - "repo_url": "https://github.com/takumi0706/mcp-google-calendar", - "command": "node", - "args": [ - "-e", - "require('child_process').spawn('node', [require.resolve('@takumi0706/mcp-google-calendar/claude_desktop_launcher.js')], {stdio: 'inherit', env: process.env}).on('exit', (code) => process.exit(code || 0));" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}", - "MCP_PORT": "${MCP_PORT}" - } - }, - "Outblock/flow-mcp-server": { - "package_name": "Outblock/flow-mcp-server", - "repo_url": "https://github.com/Outblock/flow-mcp-server", - "env": { - "FLOW_NETWORK": "${FLOW_NETWORK}" - } - }, - "macrat/mcp-server-kintone": { - "package_name": "macrat/mcp-server-kintone", - "repo_url": "https://github.com/macrat/mcp-server-kintone", - "command": "C:\\path\\to\\mcp-server-kintone.exe", - "env": { - "KINTONE_BASE_URL": "${KINTONE_BASE_URL}", - "KINTONE_USERNAME": "${KINTONE_USERNAME}", - "KINTONE_PASSWORD": "${KINTONE_PASSWORD}", - "KINTONE_API_TOKEN": "${KINTONE_API_TOKEN}", - "KINTONE_ALLOW_APPS": "${KINTONE_ALLOW_APPS}", - "KINTONE_DENY_APPS": "${KINTONE_DENY_APPS}" - } - }, - "CoderGamester/mcp-unity": { - "package_name": "CoderGamester/mcp-unity", - "repo_url": "https://github.com/CoderGamester/mcp-unity", - "command": "node", - "args": [ - "ABSOLUTE/PATH/TO/mcp-unity/Server/build/index.js" - ], - "env": { - "UNITY_PORT": "${UNITY_PORT}" - } - }, - "bananabit-dev/mcp": { - "package_name": "bananabit-dev/mcp", - "repo_url": "https://github.com/bananabit-dev/mcp", - "command": "/absolute/path/to/your/.venv/bin/python", - "args": [ - "-m", - "app.mcp_server" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}", - "AIMLAPI_KEY": "${AIMLAPI_KEY}", - "SGAI_API_KEY": "${SGAI_API_KEY}" - } - }, - "MCP-Mirror/AllAboutAI-YT_mcp-servers": { - "package_name": "MCP-Mirror/AllAboutAI-YT_mcp-servers", - "repo_url": "https://github.com/MCP-Mirror/AllAboutAI-YT_mcp-servers", - "command": "flux-server", - "env": { - "REPLICATE_API_TOKEN": "${REPLICATE_API_TOKEN}" - } - }, - "orliesaurus/pulsemcp-server": { - "package_name": "orliesaurus/pulsemcp-server", - "repo_url": "https://github.com/orliesaurus/pulsemcp-server", - "command": "npx", - "args": [ - "-y", - "pulsemcp-server" - ] - }, - "Coding-Solo/godot-mcp": { - "package_name": "Coding-Solo/godot-mcp", - "repo_url": "https://github.com/Coding-Solo/godot-mcp", - "command": "node", - "args": [ - "/absolute/path/to/godot-mcp/build/index.js" - ], - "env": { - "DEBUG": "${DEBUG}" - } - }, - "cnosuke/mcp-sqlite": { - "package_name": "cnosuke/mcp-sqlite", - "repo_url": "https://github.com/cnosuke/mcp-sqlite", - "command": "./bin/mcp-sqlite", - "args": [ - "server", - "--config", - "config.yml" - ], - "env": { - "LOG_PATH": "${LOG_PATH}", - "SQLITE_PATH": "${SQLITE_PATH}" - } - }, - "merill/lokka": { - "package_name": "merill/lokka", - "repo_url": "https://github.com/merill/lokka", - "command": "node", - "args": [ - "/src/mcp/build/main.js" - ], - "env": { - "TENANT_ID": "${TENANT_ID}", - "CLIENT_ID": "${CLIENT_ID}", - "CLIENT_SECRET": "${CLIENT_SECRET}" - } - }, - "abiorh001/mcp_omni_connect": { - "package_name": "abiorh001/mcp_omni_connect", - "repo_url": "https://github.com/abiorh001/mcp_omni_connect", - "command": "npx", - "args": [ - "@modelcontextprotocol/server-filesystem", - "/path/to/files" - ] - }, - "ssut/Remote-MCP": { - "package_name": "ssut/Remote-MCP", - "repo_url": "https://github.com/ssut/Remote-MCP", - "command": "npx", - "args": [ - "-y", - "@remote-mcp/client" - ], - "env": { - "REMOTE_MCP_URL": "${REMOTE_MCP_URL}", - "HTTP_HEADER_Authorization": "${HTTP_HEADER_Authorization}" - } - }, - "ai-ql/chat-mcp": { - "package_name": "ai-ql/chat-mcp", - "repo_url": "https://github.com/ai-ql/chat-mcp", - "command": "node", - "args": [ - "node_modules/@modelcontextprotocol/server-filesystem/dist/index.js", - "D:/Github/mcp-test" - ] - }, - "salacoste/mcp-n8n-workflow-builder": { - "package_name": "salacoste/mcp-n8n-workflow-builder", - "repo_url": "https://github.com/salacoste/mcp-n8n-workflow-builder", - "command": "node", - "args": [ - "path/to/build/index.js" - ], - "env": { - "N8N_HOST": "${N8N_HOST}", - "N8N_API_KEY": "${N8N_API_KEY}", - "MCP_PORT": "${MCP_PORT}" - } - }, - "reading-plus-ai/mcp-server-data-exploration": { - "package_name": "reading-plus-ai/mcp-server-data-exploration", - "repo_url": "https://github.com/reading-plus-ai/mcp-server-data-exploration", - "command": "uvx", - "args": [ - "mcp-server-ds" - ] - }, - "takumi0706/google-calendar-mcp": { - "package_name": "takumi0706/google-calendar-mcp", - "repo_url": "https://github.com/takumi0706/google-calendar-mcp", - "command": "npx", - "args": [ - "-y", - "@takumi0706/google-calendar-mcp" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}", - "GOOGLE_REDIRECT_URI": "${GOOGLE_REDIRECT_URI}" - } - }, - "errajibadr/twilio_manager_mcp": { - "package_name": "errajibadr/twilio_manager_mcp", - "repo_url": "https://github.com/errajibadr/twilio_manager_mcp", - "command": "npx", - "args": [ - "-y", - "@baidumap/mcp-server-baidu-map" - ], - "env": { - "BAIDU_MAP_API_KEY": "${BAIDU_MAP_API_KEY}" - } - }, - "jkawamoto/mcp-youtube-transcript": { - "package_name": "jkawamoto/mcp-youtube-transcript", - "repo_url": "https://github.com/jkawamoto/mcp-youtube-transcript", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/jkawamoto/mcp-youtube-transcript", - "mcp-youtube-transcript" - ] - }, - "Lutra23/mcp-assistant-server": { - "package_name": "Lutra23/mcp-assistant-server", - "repo_url": "https://github.com/Lutra23/mcp-assistant-server", - "command": "node", - "args": [ - "/path/to/mcp-assistant-server/build/index.js" - ], - "env": { - "PORT": "${PORT}", - "LOG_LEVEL": "${LOG_LEVEL}" - } - }, - "vinsidious/mcp-pg-schema": { - "package_name": "vinsidious/mcp-pg-schema", - "repo_url": "https://github.com/vinsidious/mcp-pg-schema", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-postgres", - "postgresql://localhost/mydb" - ] - }, - "EduBase/MCP": { - "package_name": "EduBase/MCP", - "repo_url": "https://github.com/EduBase/MCP", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "EDUBASE_API_URL", - "-e", - "EDUBASE_API_APP", - "-e", - "EDUBASE_API_KEY", - "edubase/mcp" - ], - "env": { - "EDUBASE_API_URL": "${EDUBASE_API_URL}", - "EDUBASE_API_APP": "${EDUBASE_API_APP}", - "EDUBASE_API_KEY": "${EDUBASE_API_KEY}" - } - }, - "ejb503/multimodal-mcp-client": { - "package_name": "ejb503/multimodal-mcp-client", - "repo_url": "https://github.com/ejb503/multimodal-mcp-client", - "command": "node", - "args": [ - "/my-custom-server/build/index.js" - ], - "env": { - "xxx": "${xxx}" - } - }, - "cyanheads/github-mcp-server": { - "package_name": "cyanheads/github-mcp-server", - "repo_url": "https://github.com/cyanheads/github-mcp-server", - "command": "node", - "args": [ - "/path/to/github-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "LOG_LEVEL": "${LOG_LEVEL}", - "SERVER_NAME": "${SERVER_NAME}" - } - }, - "h-yanagawa/research-mcp-server": { - "package_name": "h-yanagawa/research-mcp-server", - "repo_url": "https://github.com/h-yanagawa/research-mcp-server", - "command": "uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "--with", - "notion-client", - "--with", - "pydantic", - "mcp", - "run", - "/path/to/research-mcp-server/server.py" - ] - }, - "fredericbarthelet/linkedin-mcp-server": { - "package_name": "fredericbarthelet/linkedin-mcp-server", - "repo_url": "https://github.com/fredericbarthelet/linkedin-mcp-server" - }, - "RathodDarshil/mcp-postgres-query-server": { - "package_name": "RathodDarshil/mcp-postgres-query-server", - "repo_url": "https://github.com/RathodDarshil/mcp-postgres-query-server", - "command": "node", - "args": [ - "/Users/darshilrathod/mcp-servers/mcp-postgres-query-server/dist/index.js", - "postgresql://user:password@localhost:5432/mydatabase" - ] - }, - "l33tdawg/strapi-mcp": { - "package_name": "l33tdawg/strapi-mcp", - "repo_url": "https://github.com/l33tdawg/strapi-mcp", - "command": "/path/to/strapi-mcp/build/index.js", - "env": { - "STRAPI_URL": "${STRAPI_URL}", - "STRAPI_API_TOKEN": "${STRAPI_API_TOKEN}", - "STRAPI_DEV_MODE": "${STRAPI_DEV_MODE}" - } - }, - "terminallylazy/mcp-on-fhir": { - "package_name": "terminallylazy/mcp-on-fhir", - "repo_url": "https://github.com/terminallylazy/mcp-on-fhir", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ], - "env": { - "MEMORY_FILE_PATH": "${MEMORY_FILE_PATH}" - } - }, - "handfuloflight/convex-mcp-server": { - "package_name": "handfuloflight/convex-mcp-server", - "repo_url": "https://github.com/handfuloflight/convex-mcp-server", - "command": "/path/to/convex-mcp-server/build/index.js" - }, - "nearai/near-mcp": { - "package_name": "nearai/near-mcp", - "repo_url": "https://github.com/nearai/near-mcp", - "command": "npx", - "args": [ - "-y", - "@nearai/near-mcp@latest", - "run" - ] - }, - "MCP-Mirror/ac3xx_mcp-servers-kagi": { - "package_name": "MCP-Mirror/ac3xx_mcp-servers-kagi", - "repo_url": "https://github.com/MCP-Mirror/ac3xx_mcp-servers-kagi", - "command": "/path/to/kagi-server/build/index.js", - "env": { - "KAGI_API_KEY": "${KAGI_API_KEY}" - } - }, - "ShubhanshuSondhiya/MCP-TMDB": { - "package_name": "ShubhanshuSondhiya/MCP-TMDB", - "repo_url": "https://github.com/ShubhanshuSondhiya/MCP-TMDB", - "command": "node", - "args": [ - "/absolute/path/to/your/tmdb-mcp/build/index.js" - ] - }, - "burakdirin/clickhouse-mcp-server": { - "package_name": "burakdirin/clickhouse-mcp-server", - "repo_url": "https://github.com/burakdirin/clickhouse-mcp-server", - "command": "uvx", - "args": [ - "clickhouse-mcp-server" - ], - "env": { - "CLICKHOUSE_HOST": "${CLICKHOUSE_HOST}", - "CLICKHOUSE_USER": "${CLICKHOUSE_USER}", - "CLICKHOUSE_PASSWORD": "${CLICKHOUSE_PASSWORD}", - "CLICKHOUSE_DATABASE": "${CLICKHOUSE_DATABASE}", - "CLICKHOUSE_READONLY": "${CLICKHOUSE_READONLY}" - } - }, - "MCP-Mirror/TeamDman_mcp-server-hello": { - "package_name": "MCP-Mirror/TeamDman_mcp-server-hello", - "repo_url": "https://github.com/MCP-Mirror/TeamDman_mcp-server-hello", - "command": "mcp-rs-template", - "args": [ - "--mcp" - ], - "env": { - "API_KEY": "${API_KEY}" - } - }, - "shuntaka9576/cal2prompt": { - "package_name": "shuntaka9576/cal2prompt", - "repo_url": "https://github.com/shuntaka9576/cal2prompt", - "command": "/Users/username/.cargo/bin/cal2prompt", - "args": [ - "mcp" - ], - "env": { - "HOME": "${HOME}" - } - }, - "skrapeai/skrape-mcp": { - "package_name": "skrapeai/skrape-mcp", - "repo_url": "https://github.com/skrapeai/skrape-mcp", - "command": "node", - "args": [ - "path/to/skrape-mcp/build/index.js" - ], - "env": { - "SKRAPE_API_KEY": "${SKRAPE_API_KEY}" - } - }, - "MarcusJellinghaus/mcp_server_filesystem": { - "package_name": "MarcusJellinghaus/mcp_server_filesystem", - "repo_url": "https://github.com/MarcusJellinghaus/mcp_server_filesystem", - "command": "C:\\path\\to\\mcp_server_filesystem\\.venv\\Scripts\\python.exe", - "args": [ - "C:\\path\\to\\mcp_server_filesystem\\src\\main.py", - "--project-dir", - "C:\\path\\to\\your\\specific\\project", - "--log-level", - "INFO" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "manolaz/emergency-medicare-planner-mcp-server": { - "package_name": "manolaz/emergency-medicare-planner-mcp-server", - "repo_url": "https://github.com/manolaz/emergency-medicare-planner-mcp-server", - "command": "node", - "args": [ - "path/to/dist/index.js" - ], - "env": { - "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" - } - }, - "MCP-Mirror/YanxingLiu_dify-mcp-server": { - "package_name": "MCP-Mirror/YanxingLiu_dify-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/YanxingLiu_dify-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/lyx/Downloads/dify-mcp-server", - "run", - "dify_mcp_server" - ], - "env": { - "CONFIG_PATH": "${CONFIG_PATH}" - } - }, - "MCP-Mirror/kevinwatt_mcp-server-searxng": { - "package_name": "MCP-Mirror/kevinwatt_mcp-server-searxng", - "repo_url": "https://github.com/MCP-Mirror/kevinwatt_mcp-server-searxng", - "command": "npx", - "args": [ - "-y", - "@kevinwatt/mcp-server-searxng" - ], - "env": { - "SEARXNG_INSTANCES": "${SEARXNG_INSTANCES}", - "SEARXNG_USER_AGENT": "${SEARXNG_USER_AGENT}" - } - }, - "mtwn105/mcp-server-spring-java": { - "package_name": "mtwn105/mcp-server-spring-java", - "repo_url": "https://github.com/mtwn105/mcp-server-spring-java", - "command": "java", - "args": [ - "-Dspring.ai.mcp.server.stdio=true", - "-Dspring.main.web-application-type=none", - "-Dlogging.pattern.console=", - "-jar", - "path/to/mcp-spring-java-0.0.1-SNAPSHOT.jar" - ] - }, - "MCP-Mirror/ktanaka101_mcp-server-duckdb": { - "package_name": "MCP-Mirror/ktanaka101_mcp-server-duckdb", - "repo_url": "https://github.com/MCP-Mirror/ktanaka101_mcp-server-duckdb", - "command": "uvx", - "args": [ - "mcp-server-duckdb", - "--db-path", - "~/mcp-server-duckdb/data/data.db" - ] - }, - "xytangme/neodb-mcp": { - "package_name": "xytangme/neodb-mcp", - "repo_url": "https://github.com/xytangme/neodb-mcp", - "command": "uv", - "args": [ - "--directory", - "", - "run", - "", - " e.g. https://neodb.social", - "" - ] - }, - "MCP-Mirror/stefans71_wordpress-mcp-server": { - "package_name": "MCP-Mirror/stefans71_wordpress-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/stefans71_wordpress-mcp-server", - "command": "node", - "args": [ - "path/to/wordpress-server/build/index.js" - ] - }, - "rashidazarang/airtable-mcp": { - "package_name": "rashidazarang/airtable-mcp", - "repo_url": "https://github.com/rashidazarang/airtable-mcp", - "command": "npx", - "args": [ - "@smithery/cli", - "run", - "@rashidazarang/airtable-mcp", - "--token", - "YOUR_AIRTABLE_TOKEN", - "--base", - "YOUR_BASE_ID" - ] - }, - "MCP-Mirror/macrat_mcp-server-kintone": { - "package_name": "MCP-Mirror/macrat_mcp-server-kintone", - "repo_url": "https://github.com/MCP-Mirror/macrat_mcp-server-kintone", - "command": "C:\\path\\to\\mcp-server-kintone.exe", - "args": [ - "C:\\path\\to\\configuration.json" - ] - }, - "DynamicEndpoints/huntress-mcp-server": { - "package_name": "DynamicEndpoints/huntress-mcp-server", - "repo_url": "https://github.com/DynamicEndpoints/huntress-mcp-server", - "command": "node", - "args": [ - "path/to/huntress-server/build/index.js" - ], - "env": { - "HUNTRESS_API_KEY": "${HUNTRESS_API_KEY}", - "HUNTRESS_API_SECRET": "${HUNTRESS_API_SECRET}" - } - }, - "StevenStavrakis/mcp-starter-template": { - "package_name": "StevenStavrakis/mcp-starter-template", - "repo_url": "https://github.com/StevenStavrakis/mcp-starter-template", - "command": "node", - "args": [ - "/path/to/your/project/dist/main.js", - "some_argument" - ] - }, - "cyanheads/mentor-mcp-server": { - "package_name": "cyanheads/mentor-mcp-server", - "repo_url": "https://github.com/cyanheads/mentor-mcp-server", - "command": "node", - "args": [ - "build/index.js" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}", - "DEEPSEEK_MODEL": "${DEEPSEEK_MODEL}", - "DEEPSEEK_MAX_TOKENS": "${DEEPSEEK_MAX_TOKENS}", - "DEEPSEEK_MAX_RETRIES": "${DEEPSEEK_MAX_RETRIES}", - "DEEPSEEK_TIMEOUT": "${DEEPSEEK_TIMEOUT}" - } - }, - "MCP-Mirror/loonghao_wecom-bot-mcp-server": { - "package_name": "MCP-Mirror/loonghao_wecom-bot-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/loonghao_wecom-bot-mcp-server", - "command": "wecom-bot-mcp-server", - "args": [], - "env": { - "WECOM_WEBHOOK_URL": "${WECOM_WEBHOOK_URL}" - } - }, - "aliyun/alibabacloud-hologres-mcp-server": { - "package_name": "aliyun/alibabacloud-hologres-mcp-server", - "repo_url": "https://github.com/aliyun/alibabacloud-hologres-mcp-server", - "command": "uv", - "args": [ - "run", - "--with", - "hologres-mcp-server", - "hologres-mcp-server" - ], - "env": { - "HOLOGRES_HOST": "${HOLOGRES_HOST}", - "HOLOGRES_PORT": "${HOLOGRES_PORT}", - "HOLOGRES_USER": "${HOLOGRES_USER}", - "HOLOGRES_PASSWORD": "${HOLOGRES_PASSWORD}", - "HOLOGRES_DATABASE": "${HOLOGRES_DATABASE}" - } - }, - "AbdelStark/bitcoin-mcp": { - "package_name": "AbdelStark/bitcoin-mcp", - "repo_url": "https://github.com/AbdelStark/bitcoin-mcp", - "command": "npx", - "args": [ - "-y", - "bitcoin-mcp@latest" - ] - }, - "MCERQUA/netlify-mcp": { - "package_name": "MCERQUA/netlify-mcp", - "repo_url": "https://github.com/MCERQUA/netlify-mcp", - "command": "node", - "args": [ - "path/to/netlify-mcp/build/index.js" - ], - "env": { - "NETLIFY_ACCESS_TOKEN": "${NETLIFY_ACCESS_TOKEN}" - } - }, - "AgentWong/optimized-memory-mcp-server": { - "package_name": "AgentWong/optimized-memory-mcp-server", - "repo_url": "https://github.com/AgentWong/optimized-memory-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-memory" - ] - }, - "adepanges/teamretro-mcp-server": { - "package_name": "adepanges/teamretro-mcp-server", - "repo_url": "https://github.com/adepanges/teamretro-mcp-server", - "command": "node", - "args": [ - "/path/to/teamretro-mcp-server/dist/index.js" - ], - "env": { - "TEAMRETRO_BASE_URL": "${TEAMRETRO_BASE_URL}", - "TEAMRETRO_AUTH_TYPE": "${TEAMRETRO_AUTH_TYPE}", - "TEAMRETRO_API_KEY": "${TEAMRETRO_API_KEY}" - } - }, - "alexander-zuev/supabase-mcp-server": { - "package_name": "alexander-zuev/supabase-mcp-server", - "repo_url": "https://github.com/alexander-zuev/supabase-mcp-server", - "command": "/full/path/to/supabase-mcp-server", - "env": { - "QUERY_API_KEY": "${QUERY_API_KEY}", - "SUPABASE_PROJECT_REF": "${SUPABASE_PROJECT_REF}", - "SUPABASE_DB_PASSWORD": "${SUPABASE_DB_PASSWORD}", - "SUPABASE_REGION": "${SUPABASE_REGION}", - "SUPABASE_ACCESS_TOKEN": "${SUPABASE_ACCESS_TOKEN}", - "SUPABASE_SERVICE_ROLE_KEY": "${SUPABASE_SERVICE_ROLE_KEY}" - } - }, - "alexei-led/aws-mcp-server": { - "package_name": "alexei-led/aws-mcp-server", - "repo_url": "https://github.com/alexei-led/aws-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-v", - "/Users/YOUR_USER_NAME/.aws:/home/appuser/.aws:ro", - "ghcr.io/alexei-led/aws-mcp-server:latest" - ] - }, - "dstotijn/mcp-cbs-cijfers-open-data": { - "package_name": "dstotijn/mcp-cbs-cijfers-open-data", - "repo_url": "https://github.com/dstotijn/mcp-cbs-cijfers-open-data", - "command": "go", - "args": [ - "run", - "github.com/dstotijn/mcp-cbs-cijfers-open-data@latest" - ] - }, - "Timtech4u/python-mcp-server": { - "package_name": "Timtech4u/python-mcp-server", - "repo_url": "https://github.com/Timtech4u/python-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/python-mcp-server/dist/index.js" - ] - }, - "JovaniPink/mcp-browser-use": { - "package_name": "JovaniPink/mcp-browser-use", - "repo_url": "https://github.com/JovaniPink/mcp-browser-use", - "command": "uvx", - "args": [ - "mcp-server-browser-use" - ], - "env": { - "OPENAI_ENDPOINT": "${OPENAI_ENDPOINT}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}", - "AZURE_OPENAI_ENDPOINT": "${AZURE_OPENAI_ENDPOINT}", - "AZURE_OPENAI_API_KEY": "${AZURE_OPENAI_API_KEY}", - "ANONYMIZED_TELEMETRY": "${ANONYMIZED_TELEMETRY}", - "CHROME_PATH": "${CHROME_PATH}", - "CHROME_USER_DATA": "${CHROME_USER_DATA}", - "CHROME_DEBUGGING_PORT": "${CHROME_DEBUGGING_PORT}", - "CHROME_DEBUGGING_HOST": "${CHROME_DEBUGGING_HOST}", - "CHROME_PERSISTENT_SESSION": "${CHROME_PERSISTENT_SESSION}", - "MCP_MODEL_PROVIDER": "${MCP_MODEL_PROVIDER}", - "MCP_MODEL_NAME": "${MCP_MODEL_NAME}", - "MCP_TEMPERATURE": "${MCP_TEMPERATURE}", - "MCP_MAX_STEPS": "${MCP_MAX_STEPS}", - "MCP_USE_VISION": "${MCP_USE_VISION}", - "MCP_MAX_ACTIONS_PER_STEP": "${MCP_MAX_ACTIONS_PER_STEP}", - "MCP_TOOL_CALL_IN_CONTENT": "${MCP_TOOL_CALL_IN_CONTENT}" - } - }, - "Siddhant-K-code/memory-journal-mcp-server": { - "package_name": "Siddhant-K-code/memory-journal-mcp-server", - "repo_url": "https://github.com/Siddhant-K-code/memory-journal-mcp-server", - "command": "/Users//.local/bin/uv", - "args": [ - "--directory", - "/Users//memory-journal-mcp-server", - "run", - "server.py" - ] - }, - "Cleversoft-IT/drupal-modules-mcp": { - "package_name": "Cleversoft-IT/drupal-modules-mcp", - "repo_url": "https://github.com/Cleversoft-IT/drupal-modules-mcp", - "command": "/path/to/drupal-modules-mcp/build/index.js" - }, - "mendableai/firecrawl-mcp-server": { - "package_name": "mendableai/firecrawl-mcp-server", - "repo_url": "https://github.com/mendableai/firecrawl-mcp-server", - "command": "npx", - "args": [ - "-y", - "firecrawl-mcp" - ], - "env": { - "FIRECRAWL_API_KEY": "${FIRECRAWL_API_KEY}", - "FIRECRAWL_RETRY_MAX_ATTEMPTS": "${FIRECRAWL_RETRY_MAX_ATTEMPTS}", - "FIRECRAWL_RETRY_INITIAL_DELAY": "${FIRECRAWL_RETRY_INITIAL_DELAY}", - "FIRECRAWL_RETRY_MAX_DELAY": "${FIRECRAWL_RETRY_MAX_DELAY}", - "FIRECRAWL_RETRY_BACKOFF_FACTOR": "${FIRECRAWL_RETRY_BACKOFF_FACTOR}", - "FIRECRAWL_CREDIT_WARNING_THRESHOLD": "${FIRECRAWL_CREDIT_WARNING_THRESHOLD}", - "FIRECRAWL_CREDIT_CRITICAL_THRESHOLD": "${FIRECRAWL_CREDIT_CRITICAL_THRESHOLD}" - } - }, - "GongRzhe/Gmail-MCP-Server": { - "package_name": "GongRzhe/Gmail-MCP-Server", - "repo_url": "https://github.com/GongRzhe/Gmail-MCP-Server", - "command": "npx", - "args": [ - "@gongrzhe/server-gmail-autoauth-mcp" - ] - }, - "chrishayuk/mcp-cli": { - "package_name": "chrishayuk/mcp-cli", - "repo_url": "https://github.com/chrishayuk/mcp-cli", - "command": "python", - "args": [ - "-m", - "mcp_server.sqlite_server" - ], - "env": { - "DATABASE_PATH": "${DATABASE_PATH}" - } - }, - "niyogi/render-mcp": { - "package_name": "niyogi/render-mcp", - "repo_url": "https://github.com/niyogi/render-mcp", - "command": "node", - "args": [ - "/path/to/render-mcp/bin/render-mcp.js", - "start" - ], - "env": { - "RENDER_API_KEY": "${RENDER_API_KEY}" - } - }, - "pavanjava/kafka_mcp_server": { - "package_name": "pavanjava/kafka_mcp_server", - "repo_url": "https://github.com/pavanjava/kafka_mcp_server", - "command": "python", - "args": [ - "/main.py" - ] - }, - "MCERQUA/freepik-mcp": { - "package_name": "MCERQUA/freepik-mcp", - "repo_url": "https://github.com/MCERQUA/freepik-mcp", - "command": "node", - "args": [ - "path/to/freepik-mcp/build/index.js" - ], - "env": { - "FREEPIK_API_KEY": "${FREEPIK_API_KEY}" - } - }, - "Automata-Labs-team/code-sandbox-mcp": { - "package_name": "Automata-Labs-team/code-sandbox-mcp", - "repo_url": "https://github.com/Automata-Labs-team/code-sandbox-mcp", - "command": "C:\\path\\to\\code-sandbox-mcp.exe", - "args": [] - }, - "jakedahn/deno2-playwright-mcp-server": { - "package_name": "jakedahn/deno2-playwright-mcp-server", - "repo_url": "https://github.com/jakedahn/deno2-playwright-mcp-server", - "command": "/path/to/deno2-playwright-mcp-server/playwright-server" - }, - "jkawamoto/mcp-bear": { - "package_name": "jkawamoto/mcp-bear", - "repo_url": "https://github.com/jkawamoto/mcp-bear", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/jkawamoto/mcp-bear", - "mcp-bear", - "--token", - "" - ] - }, - "MCP-Mirror/nexon33_search-fetch-server-mcp": { - "package_name": "MCP-Mirror/nexon33_search-fetch-server-mcp", - "repo_url": "https://github.com/MCP-Mirror/nexon33_search-fetch-server-mcp", - "command": "node", - "args": [ - "/path/to/search-fetch-server/build/index.js" - ] - }, - "hmk/attio-mcp-server": { - "package_name": "hmk/attio-mcp-server", - "repo_url": "https://github.com/hmk/attio-mcp-server", - "command": "npx", - "args": [ - "attio-mcp-server" - ], - "env": { - "ATTIO_API_KEY": "${ATTIO_API_KEY}" - } - }, - "ErickWendel/erickwendel-contributions-mcp": { - "package_name": "ErickWendel/erickwendel-contributions-mcp", - "repo_url": "https://github.com/ErickWendel/erickwendel-contributions-mcp", - "command": "npm", - "args": [ - "exec", - "--", - "@smithery/cli@latest", - "run", - "@ErickWendel/erickwendel-contributions-mcp" - ] - }, - "MCP-Mirror/Bigsy_Clojars-MCP-Server": { - "package_name": "MCP-Mirror/Bigsy_Clojars-MCP-Server", - "repo_url": "https://github.com/MCP-Mirror/Bigsy_Clojars-MCP-Server", - "command": "node", - "args": [ - "/path/to/clojars-deps-server/build/index.js" - ] - }, - "JackKuo666/bioRxiv-MCP-Server": { - "package_name": "JackKuo666/bioRxiv-MCP-Server", - "repo_url": "https://github.com/JackKuo666/bioRxiv-MCP-Server", - "command": "bash", - "args": [ - "-c", - "source /home/YOUR/PATH/mcp-server-bioRxiv/.venv/bin/activate && python /home/YOUR/PATH/mcp-server-bioRxiv/biorxiv_server.py" - ] - }, - "MCP-Mirror/EyevinnOSC_mcp-server": { - "package_name": "MCP-Mirror/EyevinnOSC_mcp-server", - "repo_url": "https://github.com/MCP-Mirror/EyevinnOSC_mcp-server", - "command": "npx", - "args": [ - "-y", - "@osaas/mcp-server" - ], - "env": { - "OSC_ACCESS_TOKEN": "${OSC_ACCESS_TOKEN}" - } - }, - "pab1it0/prometheus-mcp-server": { - "package_name": "pab1it0/prometheus-mcp-server", - "repo_url": "https://github.com/pab1it0/prometheus-mcp-server", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-e", - "PROMETHEUS_URL", - "-e", - "PROMETHEUS_USERNAME", - "-e", - "PROMETHEUS_PASSWORD", - "prometheus-mcp-server" - ], - "env": { - "PROMETHEUS_URL": "${PROMETHEUS_URL}", - "PROMETHEUS_USERNAME": "${PROMETHEUS_USERNAME}", - "PROMETHEUS_PASSWORD": "${PROMETHEUS_PASSWORD}" - } - }, - "Nayshins/mcp-server-ccxt": { - "package_name": "Nayshins/mcp-server-ccxt", - "repo_url": "https://github.com/Nayshins/mcp-server-ccxt", - "command": "python", - "args": [ - "/path/to/crypto_server.py" - ] - }, - "qloba/runbook-mcp-server": { - "package_name": "qloba/runbook-mcp-server", - "repo_url": "https://github.com/qloba/runbook-mcp-server", - "command": "npx", - "args": [ - "-y", - "@runbook-docs/mcp-server" - ], - "env": { - "RUNBOOK_BASE_URL": "${RUNBOOK_BASE_URL}", - "RUNBOOK_API_TOKEN": "${RUNBOOK_API_TOKEN}" - } - }, - "ckz/edu_data_mcp_server": { - "package_name": "ckz/edu_data_mcp_server", - "repo_url": "https://github.com/ckz/edu_data_mcp_server", - "command": "npx", - "args": [ - "edu-data-mcp-server" - ] - }, - "MCP-Mirror/jerhadf_linear-mcp-server": { - "package_name": "MCP-Mirror/jerhadf_linear-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/jerhadf_linear-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-linear" - ], - "env": { - "LINEAR_API_KEY": "${LINEAR_API_KEY}" - } - }, - "mzxrai/mcp-openai": { - "package_name": "mzxrai/mcp-openai", - "repo_url": "https://github.com/mzxrai/mcp-openai", - "command": "npx", - "args": [ - "-y", - "@mzxrai/mcp-openai@latest" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "MCP-Mirror/bsmi021_mcp-server-webscan": { - "package_name": "MCP-Mirror/bsmi021_mcp-server-webscan", - "repo_url": "https://github.com/MCP-Mirror/bsmi021_mcp-server-webscan", - "command": "node", - "args": [ - "path/to/mcp-server-webscan/dist/index.js" - ], - "env": { - "NODE_ENV": "${NODE_ENV}" - } - }, - "StevenStavrakis/obsidian-mcp": { - "package_name": "StevenStavrakis/obsidian-mcp", - "repo_url": "https://github.com/StevenStavrakis/obsidian-mcp", - "command": "node", - "args": [ - "/build/main.js", - "/path/to/your/vault" - ] - }, - "mingzilla/pi-api-mcp-server": { - "package_name": "mingzilla/pi-api-mcp-server", - "repo_url": "https://github.com/mingzilla/pi-api-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "API_URL=http://localhost:8224/pi/api/v2", - "-e", - "PI_API_KEY=XXXXXXXX", - "mingzilla/pi-api-mcp-server" - ] - }, - "XeroAPI/xero-mcp-server": { - "package_name": "XeroAPI/xero-mcp-server", - "repo_url": "https://github.com/XeroAPI/xero-mcp-server", - "command": "node", - "args": [ - "insert-your-file-path-here/xero-mcp-server/dist/index.js" - ], - "env": { - "XERO_CLIENT_ID": "${XERO_CLIENT_ID}", - "XERO_CLIENT_SECRET": "${XERO_CLIENT_SECRET}" - } - }, - "piplabs/story-mcp-hub": { - "package_name": "piplabs/story-mcp-hub", - "repo_url": "https://github.com/piplabs/story-mcp-hub", - "command": "uv", - "args": [ - "--directory", - "~/path/to/story-mcp-hub/storyscan-mcp", - "run", - "server.py" - ], - "env": { - "STORY_API_KEY": "${STORY_API_KEY}", - "STORYSCAN_API_ENDPOINT": "${STORYSCAN_API_ENDPOINT}" - } - }, - "MCP-Mirror/andypost_mcp-server-ts-trello": { - "package_name": "MCP-Mirror/andypost_mcp-server-ts-trello", - "repo_url": "https://github.com/MCP-Mirror/andypost_mcp-server-ts-trello", - "command": "node", - "args": [ - "/path/to/mcp-server-ts-trello/build/index.js" - ], - "env": { - "TRELLO_API_KEY": "${TRELLO_API_KEY}", - "TRELLO_TOKEN": "${TRELLO_TOKEN}" - } - }, - "dkmaker/mcp-rest-api": { - "package_name": "dkmaker/mcp-rest-api", - "repo_url": "https://github.com/dkmaker/mcp-rest-api", - "command": "npx", - "args": [ - "-y", - "dkmaker-mcp-rest-api" - ], - "env": { - "REST_BASE_URL": "${REST_BASE_URL}", - "AUTH_BASIC_USERNAME": "${AUTH_BASIC_USERNAME}", - "AUTH_BASIC_PASSWORD": "${AUTH_BASIC_PASSWORD}", - "AUTH_BEARER": "${AUTH_BEARER}", - "AUTH_APIKEY_HEADER_NAME": "${AUTH_APIKEY_HEADER_NAME}", - "AUTH_APIKEY_VALUE": "${AUTH_APIKEY_VALUE}", - "REST_ENABLE_SSL_VERIFY": "${REST_ENABLE_SSL_VERIFY}", - "HEADER_X-API-Version": "${HEADER_X-API-Version}", - "HEADER_Custom-Client": "${HEADER_Custom-Client}", - "HEADER_Accept": "${HEADER_Accept}" - } - }, - "misbiheyv/testing-mcp-server": { - "package_name": "misbiheyv/testing-mcp-server", - "repo_url": "https://github.com/misbiheyv/testing-mcp-server", - "command": "/Users/$USER/.nvm/versions/node/v23.7.0/bin/node", - "args": [ - "/Users/$USER/mcp-testing-tool/build/index.js" - ], - "env": { - "TMS_TOKEN": "${TMS_TOKEN}" - } - }, - "ryanmac/agent-twitter-client-mcp": { - "package_name": "ryanmac/agent-twitter-client-mcp", - "repo_url": "https://github.com/ryanmac/agent-twitter-client-mcp", - "command": "npx", - "args": [ - "-y", - "agent-twitter-client-mcp" - ], - "env": { - "AUTH_METHOD": "${AUTH_METHOD}" - } - }, - "nahmanmate/code-research-mcp-server": { - "package_name": "nahmanmate/code-research-mcp-server", - "repo_url": "https://github.com/nahmanmate/code-research-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/code-research-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "nahmanmate/postgresql-mcp-server": { - "package_name": "nahmanmate/postgresql-mcp-server", - "repo_url": "https://github.com/nahmanmate/postgresql-mcp-server", - "command": "node", - "args": [ - "/path/to/postgresql-mcp-server/build/index.js" - ] - }, - "ac3xx/mcp-servers-kagi": { - "package_name": "ac3xx/mcp-servers-kagi", - "repo_url": "https://github.com/ac3xx/mcp-servers-kagi", - "command": "/path/to/kagi-server/build/index.js", - "env": { - "KAGI_API_KEY": "${KAGI_API_KEY}" - } - }, - "ergut/mcp-bigquery-server": { - "package_name": "ergut/mcp-bigquery-server", - "repo_url": "https://github.com/ergut/mcp-bigquery-server", - "command": "node", - "args": [ - "/path/to/your/clone/mcp-bigquery-server/dist/index.js", - "--project-id", - "your-project-id", - "--location", - "us-central1", - "--key-file", - "/path/to/service-account-key.json" - ] - }, - "yuhuangou/wordware-mcp": { - "package_name": "yuhuangou/wordware-mcp", - "repo_url": "https://github.com/yuhuangou/wordware-mcp", - "command": "wordware-mcp" - }, - "JannikWempe/mcp-lexware-office": { - "package_name": "JannikWempe/mcp-lexware-office", - "repo_url": "https://github.com/JannikWempe/mcp-lexware-office", - "command": "npx", - "args": [ - "-y", - "JannikWempe/mcp-lexware-office" - ], - "env": { - "LEXWARE_OFFICE_API_KEY": "${LEXWARE_OFFICE_API_KEY}" - } - }, - "AshDevFr/discourse-mcp-server": { - "package_name": "AshDevFr/discourse-mcp-server", - "repo_url": "https://github.com/AshDevFr/discourse-mcp-server", - "command": "npx", - "args": [ - "-y", - "@ashdev/discourse-mcp-server" - ], - "env": { - "DISCOURSE_API_URL": "${DISCOURSE_API_URL}", - "DISCOURSE_API_KEY": "${DISCOURSE_API_KEY}", - "DISCOURSE_API_USERNAME": "${DISCOURSE_API_USERNAME}" - } - }, - "wandb/mcp-server": { - "package_name": "wandb/mcp-server", - "repo_url": "https://github.com/wandb/mcp-server", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PROJECT", - "run", - "src/mcp_server/server.py" - ] - }, - "MCP-Mirror/aldrin-labs_solana-mcp-server": { - "package_name": "MCP-Mirror/aldrin-labs_solana-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/aldrin-labs_solana-mcp-server", - "command": "cargo", - "args": [ - "run" - ], - "env": { - "SOLANA_RPC_URL": "${SOLANA_RPC_URL}" - } - }, - "MCP-Mirror/apinetwork_piapi-mcp-server": { - "package_name": "MCP-Mirror/apinetwork_piapi-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/apinetwork_piapi-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/piapi-mcp-server/dist/index.js" - ], - "env": { - "PIAPI_API_KEY": "${PIAPI_API_KEY}" - } - }, - "socamalo/PPT_MCP_Server": { - "package_name": "socamalo/PPT_MCP_Server", - "repo_url": "https://github.com/socamalo/PPT_MCP_Server", - "command": "C:\\Path\\To\\Python\\Scripts\\uv.exe", - "args": [ - "run", - "C:\\Path\\To\\Project\\main.py" - ] - }, - "awwaiid/mcp-server-taskwarrior": { - "package_name": "awwaiid/mcp-server-taskwarrior", - "repo_url": "https://github.com/awwaiid/mcp-server-taskwarrior", - "command": "npx", - "args": [ - "-y", - "mcp-server-taskwarrior" - ] - }, - "mericozkayagan/mcp-servers": { - "package_name": "mericozkayagan/mcp-servers", - "repo_url": "https://github.com/mericozkayagan/mcp-servers", - "command": "node", - "args": [ - "/path/to/mcp-servers/postgresql-mcp/build/index.js" - ], - "env": { - "PG_DB_MAP": "${PG_DB_MAP}" - } - }, - "deepsuthar496/Remote-Command-MCP": { - "package_name": "deepsuthar496/Remote-Command-MCP", - "repo_url": "https://github.com/deepsuthar496/Remote-Command-MCP", - "command": "node", - "args": [ - "path/to/remote-command-server/build/index.js" - ] - }, - "ragieai/ragie-mcp-server": { - "package_name": "ragieai/ragie-mcp-server", - "repo_url": "https://github.com/ragieai/ragie-mcp-server", - "command": "npx", - "args": [ - "-y", - "@ragieai/mcp-server", - "--partition", - "optional_partition_id" - ], - "env": { - "RAGIE_API_KEY": "${RAGIE_API_KEY}" - } - }, - "loonghao/shotgrid-mcp-server": { - "package_name": "loonghao/shotgrid-mcp-server", - "repo_url": "https://github.com/loonghao/shotgrid-mcp-server", - "command": "uvx", - "args": [ - "shotgrid-mcp-server" - ], - "env": { - "SHOTGRID_SCRIPT_NAME": "${SHOTGRID_SCRIPT_NAME}", - "SHOTGRID_SCRIPT_KEY": "${SHOTGRID_SCRIPT_KEY}", - "SHOTGRID_URL": "${SHOTGRID_URL}" - } - }, - "weidwonder/terminal-mcp-server": { - "package_name": "weidwonder/terminal-mcp-server", - "repo_url": "https://github.com/weidwonder/terminal-mcp-server" - }, - "MCP-Mirror/Chrusic_todoist-mcp-server-extended": { - "package_name": "MCP-Mirror/Chrusic_todoist-mcp-server-extended", - "repo_url": "https://github.com/MCP-Mirror/Chrusic_todoist-mcp-server-extended", - "command": "npx", - "args": [ - "todoist-mcp-enhanced-server" - ], - "env": { - "TODOIST_API_TOKEN": "${TODOIST_API_TOKEN}" - } - }, - "glifxyz/glif-mcp-server": { - "package_name": "glifxyz/glif-mcp-server", - "repo_url": "https://github.com/glifxyz/glif-mcp-server", - "command": "node", - "args": [ - "/path/to/glif-mcp/build/index.js" - ], - "env": { - "GLIF_API_TOKEN": "${GLIF_API_TOKEN}", - "GLIF_IDS": "${GLIF_IDS}" - } - }, - "nic01asFr/mcp-server-grist": { - "package_name": "nic01asFr/mcp-server-grist", - "repo_url": "https://github.com/nic01asFr/mcp-server-grist", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-e", - "GRIST_API_KEY=your_api_key_here", - "-e", - "GRIST_API_HOST=https://docs.getgrist.com/api", - "mcp/grist-mcp-server" - ] - }, - "manimohans/verge-news-mcp": { - "package_name": "manimohans/verge-news-mcp", - "repo_url": "https://github.com/manimohans/verge-news-mcp", - "command": "node", - "args": [ - "/absolute/path/to/verge-news-mcp/build/index.js" - ] - }, - "valyu-network/valyu-mcp-js": { - "package_name": "valyu-network/valyu-mcp-js", - "repo_url": "https://github.com/valyu-network/valyu-mcp-js", - "command": "docker", - "args": [ - "run", - "--pull", - "--rm", - "-i", - "-e", - "VALYU_API_KEY", - "ghcr.io/tiovikram/valyu-mcp-server" - ], - "env": { - "VALYU_API_KEY": "${VALYU_API_KEY}" - } - }, - "LuotoCompany/cursor-local-indexing": { - "package_name": "LuotoCompany/cursor-local-indexing", - "repo_url": "https://github.com/LuotoCompany/cursor-local-indexing" - }, - "ogulcanarbc/spring-ai-mcp-client": { - "package_name": "ogulcanarbc/spring-ai-mcp-client", - "repo_url": "https://github.com/ogulcanarbc/spring-ai-mcp-client", - "command": "node", - "args": [ - "any-mcp-server/build/index.js" - ] - }, - "gpaul-faldin/MCP_puppeteer_extra": { - "package_name": "gpaul-faldin/MCP_puppeteer_extra", - "repo_url": "https://github.com/gpaul-faldin/MCP_puppeteer_extra", - "command": "npx", - "args": [ - "-y", - "MCP_puppeteer_extra" - ] - }, - "negokaz/excel-mcp-server": { - "package_name": "negokaz/excel-mcp-server", - "repo_url": "https://github.com/negokaz/excel-mcp-server", - "command": "npx", - "args": [ - "--yes", - "@negokaz/excel-mcp-server" - ], - "env": { - "EXCEL_MCP_PAGING_CELLS_LIMIT": "${EXCEL_MCP_PAGING_CELLS_LIMIT}" - } - }, - "Omar-V2/mcp-ical": { - "package_name": "Omar-V2/mcp-ical", - "repo_url": "https://github.com/Omar-V2/mcp-ical", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PARENT/FOLDER/mcp-ical", - "run", - "mcp-ical" - ] - }, - "epaproditus/google-workspace-mcp-server": { - "package_name": "epaproditus/google-workspace-mcp-server", - "repo_url": "https://github.com/epaproditus/google-workspace-mcp-server", - "command": "node", - "args": [ - "/path/to/google-workspace-server/build/index.js" - ], - "env": { - "GOOGLE_CLIENT_ID": "${GOOGLE_CLIENT_ID}", - "GOOGLE_CLIENT_SECRET": "${GOOGLE_CLIENT_SECRET}", - "GOOGLE_REFRESH_TOKEN": "${GOOGLE_REFRESH_TOKEN}" - } - }, - "landicefu/divide-and-conquer-mcp-server": { - "package_name": "landicefu/divide-and-conquer-mcp-server", - "repo_url": "https://github.com/landicefu/divide-and-conquer-mcp-server", - "command": "node", - "args": [ - "/path/to/divide-and-conquer-mcp-server/build/index.js" - ] - }, - "horizondatawave/hdw-mcp-server": { - "package_name": "horizondatawave/hdw-mcp-server", - "repo_url": "https://github.com/horizondatawave/hdw-mcp-server", - "command": "npx", - "args": [ - "@horizondatawave/mcp" - ], - "env": { - "HDW_ACCESS_TOKEN": "${HDW_ACCESS_TOKEN}", - "HDW_ACCOUNT_ID": "${HDW_ACCOUNT_ID}" - } - }, - "MankowskiNick/jira-mcp": { - "package_name": "MankowskiNick/jira-mcp", - "repo_url": "https://github.com/MankowskiNick/jira-mcp", - "command": "node", - "args": [ - "/path/to/project/build/index.js" - ], - "env": { - "JIRA_HOST": "${JIRA_HOST}", - "JIRA_USERNAME": "${JIRA_USERNAME}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}", - "JIRA_PROJECT_KEY": "${JIRA_PROJECT_KEY}", - "AUTO_CREATE_TEST_TICKETS": "${AUTO_CREATE_TEST_TICKETS}", - "JIRA_ACCEPTANCE_CRITERIA_FIELD": "${JIRA_ACCEPTANCE_CRITERIA_FIELD}", - "JIRA_STORY_POINTS_FIELD": "${JIRA_STORY_POINTS_FIELD}", - "JIRA_EPIC_LINK_FIELD": "${JIRA_EPIC_LINK_FIELD}", - "JIRA_PRODUCT_FIELD": "${JIRA_PRODUCT_FIELD}", - "JIRA_PRODUCT_VALUE": "${JIRA_PRODUCT_VALUE}", - "JIRA_PRODUCT_ID": "${JIRA_PRODUCT_ID}", - "JIRA_CATEGORY_FIELD": "${JIRA_CATEGORY_FIELD}", - "USE_ALTERNATE_CATEGORY": "${USE_ALTERNATE_CATEGORY}", - "JIRA_DEFAULT_CATEGORY_VALUE": "${JIRA_DEFAULT_CATEGORY_VALUE}", - "JIRA_DEFAULT_CATEGORY_ID": "${JIRA_DEFAULT_CATEGORY_ID}", - "JIRA_ALTERNATE_CATEGORY_VALUE": "${JIRA_ALTERNATE_CATEGORY_VALUE}", - "JIRA_ALTERNATE_CATEGORY_ID": "${JIRA_ALTERNATE_CATEGORY_ID}" - } - }, - "wadewegner/mcp-servers": { - "package_name": "wadewegner/mcp-servers", - "repo_url": "https://github.com/wadewegner/mcp-servers", - "command": "node", - "args": [ - "/path/to/your/project/build/index.js" - ] - }, - "MCP-Mirror/rdvo_mcp-server": { - "package_name": "MCP-Mirror/rdvo_mcp-server", - "repo_url": "https://github.com/MCP-Mirror/rdvo_mcp-server", - "command": "node", - "args": [ - "path/to/steel-puppeteer/dist/index.js" - ], - "env": { - "STEEL_LOCAL": "${STEEL_LOCAL}" - } - }, - "lxiaolong068/mcp-filesystem-server": { - "package_name": "lxiaolong068/mcp-filesystem-server", - "repo_url": "https://github.com/lxiaolong068/mcp-filesystem-server", - "command": "node", - "args": [ - "path/to/filesystem-server/build/index.js" - ] - }, - "Gitmaxd/dubco-mcp-server": { - "package_name": "Gitmaxd/dubco-mcp-server", - "repo_url": "https://github.com/Gitmaxd/dubco-mcp-server", - "command": "node", - "args": [ - "/path/to/dubco-mcp-server/build/index.js" - ], - "env": { - "DUBCO_API_KEY": "${DUBCO_API_KEY}" - } - }, - "tomohiro1850/backlog-mcp-server": { - "package_name": "tomohiro1850/backlog-mcp-server", - "repo_url": "https://github.com/tomohiro1850/backlog-mcp-server", - "command": "npx", - "args": [ - "-y", - "@tmhr1850/backlog-mcp-server" - ], - "env": { - "BACKLOG_DOMAIN": "${BACKLOG_DOMAIN}", - "BACKLOG_API_KEY": "${BACKLOG_API_KEY}" - } - }, - "AzDeltaQQ/Mcp-Reasoning-Server": { - "package_name": "AzDeltaQQ/Mcp-Reasoning-Server", - "repo_url": "https://github.com/AzDeltaQQ/Mcp-Reasoning-Server", - "command": "node", - "args": [ - "C:\\Users\\[Username]\\path\\to\\mcp-reasoning-server\\dist\\index.js" - ] - }, - "peng-shawn/mermaid-mcp-server": { - "package_name": "peng-shawn/mermaid-mcp-server", - "repo_url": "https://github.com/peng-shawn/mermaid-mcp-server", - "command": "npx", - "args": [ - "-y @peng-shawn/mermaid-mcp-server" - ] - }, - "bradrisse/kanban-mcp": { - "package_name": "bradrisse/kanban-mcp", - "repo_url": "https://github.com/bradrisse/kanban-mcp", - "command": "node", - "args": [ - "/path/to/kanban-mcp/dist/index.js" - ], - "env": { - "PLANKA_BASE_URL": "${PLANKA_BASE_URL}", - "PLANKA_AGENT_EMAIL": "${PLANKA_AGENT_EMAIL}", - "PLANKA_AGENT_PASSWORD": "${PLANKA_AGENT_PASSWORD}" - } - }, - "gomcpgo/filesys": { - "package_name": "gomcpgo/filesys", - "repo_url": "https://github.com/gomcpgo/filesys", - "command": "/path/to/filesys", - "env": { - "MCP_ALLOWED_DIRS": "${MCP_ALLOWED_DIRS}" - } - }, - "pyljain/mcp_server_template": { - "package_name": "pyljain/mcp_server_template", - "repo_url": "https://github.com/pyljain/mcp_server_template", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-postgres", - "postgresql://localhost/mydb" - ] - }, - "kujenga/zotero-mcp": { - "package_name": "kujenga/zotero-mcp", - "repo_url": "https://github.com/kujenga/zotero-mcp", - "command": "/path/to/zotero-mcp/.venv/bin/zotero-mcp", - "env": { - "comment": "${comment}" - } - }, - "vetlefo/claude-chunks": { - "package_name": "vetlefo/claude-chunks", - "repo_url": "https://github.com/vetlefo/claude-chunks", - "command": "node", - "args": [ - "/path/to/claude-chunks/dist/index.js" - ] - }, - "keboola/keboola-mcp-server": { - "package_name": "keboola/keboola-mcp-server", - "repo_url": "https://github.com/keboola/keboola-mcp-server", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "'source /wsl_path/to/keboola-mcp-server/.env", - "&&", - "/wsl_path/to/keboola-mcp-server/.venv/bin/python -m keboola_mcp_server.cli --transport stdio'" - ] - }, - "thadius83/mcp-server-openai": { - "package_name": "thadius83/mcp-server-openai", - "repo_url": "https://github.com/thadius83/mcp-server-openai", - "command": "python", - "args": [ - "-m", - "src.mcp_server_openai.server", - "--openai-api-key", - "your-key-here" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "wrediam/better-qdrant-mcp-server": { - "package_name": "wrediam/better-qdrant-mcp-server", - "repo_url": "https://github.com/wrediam/better-qdrant-mcp-server", - "command": "npx", - "args": [ - "better-qdrant-mcp-server" - ], - "env": { - "QDRANT_URL": "${QDRANT_URL}", - "QDRANT_API_KEY": "${QDRANT_API_KEY}", - "DEFAULT_EMBEDDING_SERVICE": "${DEFAULT_EMBEDDING_SERVICE}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "OPENAI_ENDPOINT": "${OPENAI_ENDPOINT}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}", - "OPENROUTER_ENDPOINT": "${OPENROUTER_ENDPOINT}", - "OLLAMA_ENDPOINT": "${OLLAMA_ENDPOINT}", - "OLLAMA_MODEL": "${OLLAMA_MODEL}" - } - }, - "waldur/waldur-mcp-server": { - "package_name": "waldur/waldur-mcp-server", - "repo_url": "https://github.com/waldur/waldur-mcp-server", - "command": "uvx", - "args": [ - "waldur-mcp-server" - ], - "env": { - "WALDUR_API_URL": "${WALDUR_API_URL}", - "WALDUR_TOKEN": "${WALDUR_TOKEN}" - } - }, - "fred-em/social-listening": { - "package_name": "fred-em/social-listening", - "repo_url": "https://github.com/fred-em/social-listening", - "command": "node", - "args": [ - "/absolute/path/to/social-listening/build/index.js" - ], - "env": { - "SYFTEN_API_KEY": "${SYFTEN_API_KEY}" - } - }, - "gluneau/hive-mcp-server": { - "package_name": "gluneau/hive-mcp-server", - "repo_url": "https://github.com/gluneau/hive-mcp-server", - "command": "npx", - "args": [ - "-y", - "@gluneau/hive-mcp-server" - ], - "env": { - "HIVE_USERNAME": "${HIVE_USERNAME}", - "HIVE_POSTING_KEY": "${HIVE_POSTING_KEY}", - "HIVE_ACTIVE_KEY": "${HIVE_ACTIVE_KEY}", - "HIVE_MEMO_KEY": "${HIVE_MEMO_KEY}" - } - }, - "kukapay/whattimeisit-mcp": { - "package_name": "kukapay/whattimeisit-mcp", - "repo_url": "https://github.com/kukapay/whattimeisit-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/whattimeisit-mcp", - "run", - "main.py" - ] - }, - "brcarry/mcp-pymilvus-code-generator": { - "package_name": "brcarry/mcp-pymilvus-code-generator", - "repo_url": "https://github.com/brcarry/mcp-pymilvus-code-generator", - "command": "/PATH/TO/uv", - "args": [ - "--directory", - "/path/to/mcp-server-milvus/src/mcp_server_milvus", - "run", - "src/mcp_pymilvus_code_generate_helper/stdio_server.py" - ] - }, - "Andrew-Beniash/mcp-command-server": { - "package_name": "Andrew-Beniash/mcp-command-server", - "repo_url": "https://github.com/Andrew-Beniash/mcp-command-server", - "command": "uv", - "args": [ - "run", - "python", - "-m", - "mcp_command_server" - ], - "env": { - "ALLOWED_COMMANDS": "${ALLOWED_COMMANDS}" - } - }, - "jsonresume/mcp": { - "package_name": "jsonresume/mcp", - "repo_url": "https://github.com/jsonresume/mcp", - "command": "npx", - "args": [ - "-y", - "@jsonresume/mcp" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "GITHUB_USERNAME": "${GITHUB_USERNAME}" - } - }, - "emiryasar/mcp_code_analyzer": { - "package_name": "emiryasar/mcp_code_analyzer", - "repo_url": "https://github.com/emiryasar/mcp_code_analyzer", - "command": "python", - "args": [ - "-m", - "mcp_code_analyzer", - "--analyze-paths", - "C:\\Projects\\path1" - ] - }, - "gotoolkits/mcp-difyworkflow-server": { - "package_name": "gotoolkits/mcp-difyworkflow-server", - "repo_url": "https://github.com/gotoolkits/mcp-difyworkflow-server", - "command": "mcp-difyworkflow-server", - "args": [ - "-base-url", - "http://localhost/v1" - ], - "env": { - "DIFY_WORKFLOW_NAME": "${DIFY_WORKFLOW_NAME}", - "DIFY_API_KEYS": "${DIFY_API_KEYS}" - } - }, - "yosider/cosense-mcp-server": { - "package_name": "yosider/cosense-mcp-server", - "repo_url": "https://github.com/yosider/cosense-mcp-server", - "command": "npx", - "args": [ - "-y", - "/path/to/cosense-mcp-server" - ], - "env": { - "COSENSE_PROJECT_NAME": "${COSENSE_PROJECT_NAME}", - "COSENSE_SID": "${COSENSE_SID}" - } - }, - "omar391/mcp-agents": { - "package_name": "omar391/mcp-agents", - "repo_url": "https://github.com/omar391/mcp-agents", - "command": "/path/to/your-server/build/index.js" - }, - "tiovikram/linear-mcp": { - "package_name": "tiovikram/linear-mcp", - "repo_url": "https://github.com/tiovikram/linear-mcp", - "command": "node", - "args": [ - "/path/to/linear-mcp/build/index.js" - ], - "env": { - "LINEAR_API_KEY": "${LINEAR_API_KEY}" - } - }, - "MCP-Mirror/mahawi1992_mcp-documentation-server": { - "package_name": "MCP-Mirror/mahawi1992_mcp-documentation-server", - "repo_url": "https://github.com/MCP-Mirror/mahawi1992_mcp-documentation-server", - "command": "npx", - "args": [ - "-y", - "mcp-documentation-server" - ], - "env": { - "BRAVE_API_KEY": "${BRAVE_API_KEY}" - } - }, - "MCP-Mirror/Sunwood-ai-labs_aira-mcp-server": { - "package_name": "MCP-Mirror/Sunwood-ai-labs_aira-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Sunwood-ai-labs_aira-mcp-server", - "command": "node", - "args": [ - "path/to/aira-mcp-server/build/index.js" - ] - }, - "useshortcut/mcp-server-shortcut": { - "package_name": "useshortcut/mcp-server-shortcut", - "repo_url": "https://github.com/useshortcut/mcp-server-shortcut", - "command": "node", - "args": [ - "/path/to/your/local/mcp-server-shortcut/dist/index.js" - ], - "env": { - "SHORTCUT_API_TOKEN": "${SHORTCUT_API_TOKEN}" - } - }, - "abdouwarissiboukari/weather_mcp_server": { - "package_name": "abdouwarissiboukari/weather_mcp_server", - "repo_url": "https://github.com/abdouwarissiboukari/weather_mcp_server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/lenwood_cfbd-mcp-server": { - "package_name": "MCP-Mirror/lenwood_cfbd-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/lenwood_cfbd-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/full/path/to/cfbd-mcp-server", - "run", - "cfbd-mcp-server" - ], - "env": { - "CFB_API_KEY": "${CFB_API_KEY}", - "PATH": "${PATH}" - } - }, - "mamertofabian/mcp-everything-search": { - "package_name": "mamertofabian/mcp-everything-search", - "repo_url": "https://github.com/mamertofabian/mcp-everything-search", - "command": "python", - "args": [ - "-m", - "mcp_server_everything_search" - ] - }, - "linux-china/mcp-rs-template": { - "package_name": "linux-china/mcp-rs-template", - "repo_url": "https://github.com/linux-china/mcp-rs-template", - "command": "mcp-rs-template", - "args": [ - "--mcp" - ], - "env": { - "API_KEY": "${API_KEY}" - } - }, - "MCP-Mirror/run-llama_mcp-server-llamacloud": { - "package_name": "MCP-Mirror/run-llama_mcp-server-llamacloud", - "repo_url": "https://github.com/MCP-Mirror/run-llama_mcp-server-llamacloud", - "command": "node", - "args": [ - "/path/to/llamacloud/build/index.js" - ], - "env": { - "LLAMA_CLOUD_INDEX_NAME": "${LLAMA_CLOUD_INDEX_NAME}", - "LLAMA_CLOUD_PROJECT_NAME": "${LLAMA_CLOUD_PROJECT_NAME}", - "LLAMA_CLOUD_API_KEY": "${LLAMA_CLOUD_API_KEY}" - } - }, - "annenpolka/roo-logger": { - "package_name": "annenpolka/roo-logger", - "repo_url": "https://github.com/annenpolka/roo-logger", - "command": "node", - "args": [ - "/path/to/your/local/roo-logger/dist/index.js" - ] - }, - "tengfone/supabase-nextjs-mcp-server": { - "package_name": "tengfone/supabase-nextjs-mcp-server", - "repo_url": "https://github.com/tengfone/supabase-nextjs-mcp-server", - "command": "/path/to/supabase-nextjs-server/build/index.js" - }, - "MCP-Mirror/delorenj_mcp-server-trello": { - "package_name": "MCP-Mirror/delorenj_mcp-server-trello", - "repo_url": "https://github.com/MCP-Mirror/delorenj_mcp-server-trello", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-trello" - ], - "env": { - "TRELLO_API_KEY": "${TRELLO_API_KEY}", - "TRELLO_TOKEN": "${TRELLO_TOKEN}", - "TRELLO_BOARD_ID": "${TRELLO_BOARD_ID}" - } - }, - "fernandezpablo85/mcpiol": { - "package_name": "fernandezpablo85/mcpiol", - "repo_url": "https://github.com/fernandezpablo85/mcpiol", - "command": "/Users/YOUR_USERNAME/.local/bin/uv", - "args": [ - "--directory", - "/Users/YOUR_USERNAME/projects/playground/mcpiol", - "run", - "main.py" - ] - }, - "merajmehrabi/puppeteer-mcp-server": { - "package_name": "merajmehrabi/puppeteer-mcp-server", - "repo_url": "https://github.com/merajmehrabi/puppeteer-mcp-server", - "command": "node", - "args": [ - "path/to/puppeteer-mcp-server/dist/index.js" - ], - "env": { - "NODE_OPTIONS": "${NODE_OPTIONS}" - } - }, - "OpsBeaconInc/mcp-opsbeacon-server": { - "package_name": "OpsBeaconInc/mcp-opsbeacon-server", - "repo_url": "https://github.com/OpsBeaconInc/mcp-opsbeacon-server", - "command": "python", - "args": [ - "-m", - "mcp_opsbeacon_server" - ], - "env": { - "OPSBEACON_TOKEN": "${OPSBEACON_TOKEN}", - "OPSBEACON_BASE_URL": "${OPSBEACON_BASE_URL}" - } - }, - "RSS3-Network/mcp-server-rss3": { - "package_name": "RSS3-Network/mcp-server-rss3", - "repo_url": "https://github.com/RSS3-Network/mcp-server-rss3", - "command": "npx", - "args": [ - "mcp-server-rss3" - ] - }, - "oleander/home-assistant-mcp-server": { - "package_name": "oleander/home-assistant-mcp-server", - "repo_url": "https://github.com/oleander/home-assistant-mcp-server", - "command": "home-assistant-mcp-server", - "env": { - "HASS_URL": "${HASS_URL}", - "HASS_TOKEN": "${HASS_TOKEN}", - "HASS_MOCK": "${HASS_MOCK}" - } - }, - "MitchyBAwesome/sar-mcp": { - "package_name": "MitchyBAwesome/sar-mcp", - "repo_url": "https://github.com/MitchyBAwesome/sar-mcp", - "command": "python", - "args": [ - "/ABSOLUTE/PATH/TO/aws_service_reference.py" - ] - }, - "minovap/mcp-gateway": { - "package_name": "minovap/mcp-gateway", - "repo_url": "https://github.com/minovap/mcp-gateway", - "command": "npx", - "args": [ - "-y", - "@thinkware/mcp-gateway" - ], - "env": { - "MCP_GATEWAY_LOG_FILE": "${MCP_GATEWAY_LOG_FILE}" - } - }, - "alxspiker/mcp-server-ftp": { - "package_name": "alxspiker/mcp-server-ftp", - "repo_url": "https://github.com/alxspiker/mcp-server-ftp", - "command": "node", - "args": [ - "C:\\path\\to\\mcp-server-ftp\\build\\index.js" - ], - "env": { - "FTP_HOST": "${FTP_HOST}", - "FTP_PORT": "${FTP_PORT}", - "FTP_USER": "${FTP_USER}", - "FTP_PASSWORD": "${FTP_PASSWORD}", - "FTP_SECURE": "${FTP_SECURE}" - } - }, - "MCP-Mirror/kiwamizamurai_mcp-kibela-server": { - "package_name": "MCP-Mirror/kiwamizamurai_mcp-kibela-server", - "repo_url": "https://github.com/MCP-Mirror/kiwamizamurai_mcp-kibela-server", - "command": "npx", - "args": [ - "-y", - "@kiwamizamurai/mcp-kibela-server" - ], - "env": { - "KIBELA_TEAM": "${KIBELA_TEAM}", - "KIBELA_TOKEN": "${KIBELA_TOKEN}" - } - }, - "recallnet/recall-mcp": { - "package_name": "recallnet/recall-mcp", - "repo_url": "https://github.com/recallnet/recall-mcp", - "command": "node", - "args": [ - "/path/to/recall-mcp/dist/index.js" - ], - "env": { - "RECALL_PRIVATE_KEY": "${RECALL_PRIVATE_KEY}", - "RECALL_NETWORK": "${RECALL_NETWORK}", - "DEBUG": "${DEBUG}" - } - }, - "deepsuthar496/figma-mcp-server": { - "package_name": "deepsuthar496/figma-mcp-server", - "repo_url": "https://github.com/deepsuthar496/figma-mcp-server", - "command": "node", - "args": [ - "path/to/figma-server/build/index.js" - ], - "env": { - "FIGMA_ACCESS_TOKEN": "${FIGMA_ACCESS_TOKEN}" - } - }, - "xiehust/sample-mcp-servers": { - "package_name": "xiehust/sample-mcp-servers", - "repo_url": "https://github.com/xiehust/sample-mcp-servers", - "command": "npx", - "args": [ - "-y", - "@baidumap/mcp-server-baidu-map" - ], - "env": { - "BAIDU_MAP_API_KEY": "${BAIDU_MAP_API_KEY}" - } - }, - "MCP-Mirror/prasanthmj_primitive-go-mcp-server": { - "package_name": "MCP-Mirror/prasanthmj_primitive-go-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/prasanthmj_primitive-go-mcp-server", - "command": "/path/to/imagegen-go/bin/imagegen-go", - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "DEFAULT_DOWNLOAD_PATH": "${DEFAULT_DOWNLOAD_PATH}" - } - }, - "bitrefill/bitrefill-mcp-server": { - "package_name": "bitrefill/bitrefill-mcp-server", - "repo_url": "https://github.com/bitrefill/bitrefill-mcp-server", - "command": "npx", - "args": [ - "-y", - "bitrefill-mcp-server" - ], - "env": { - "BITREFILL_API_ID": "${BITREFILL_API_ID}", - "BITREFILL_API_SECRET": "${BITREFILL_API_SECRET}" - } - }, - "ruixingshi/deepseek-thinker-mcp": { - "package_name": "ruixingshi/deepseek-thinker-mcp", - "repo_url": "https://github.com/ruixingshi/deepseek-thinker-mcp", - "command": "node", - "args": [ - "/your-path/deepseek-thinker-mcp/build/index.js" - ], - "env": { - "API_KEY": "${API_KEY}", - "BASE_URL": "${BASE_URL}" - } - }, - "kazz187/mcp-google-spreadsheet": { - "package_name": "kazz187/mcp-google-spreadsheet", - "repo_url": "https://github.com/kazz187/mcp-google-spreadsheet", - "command": "mcp-google-spreadsheet", - "args": [], - "env": { - "MCPGS_CLIENT_SECRET_PATH": "${MCPGS_CLIENT_SECRET_PATH}", - "MCPGS_TOKEN_PATH": "${MCPGS_TOKEN_PATH}", - "MCPGS_FOLDER_ID": "${MCPGS_FOLDER_ID}" - } - }, - "tylerstoltz/mcp-odbc": { - "package_name": "tylerstoltz/mcp-odbc", - "repo_url": "https://github.com/tylerstoltz/mcp-odbc", - "command": "uv", - "args": [ - "--directory", - "C:\\path\\to\\mcp-odbc", - "run", - "odbc-mcp-server", - "--config", - "C:\\path\\to\\mcp-odbc\\config\\your_config.ini" - ] - }, - "zoeminghong/yapi-mcp-server": { - "package_name": "zoeminghong/yapi-mcp-server", - "repo_url": "https://github.com/zoeminghong/yapi-mcp-server", - "command": "/path/to/yapi-mcp-service/build/index.js" - }, - "abel9851/quckstart-mcp-server": { - "package_name": "abel9851/quckstart-mcp-server", - "repo_url": "https://github.com/abel9851/quckstart-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "PsychArch/minimax-mcp-tools": { - "package_name": "PsychArch/minimax-mcp-tools", - "repo_url": "https://github.com/PsychArch/minimax-mcp-tools", - "command": "npx", - "args": [ - "minimax-mcp-tools" - ], - "env": { - "MINIMAX_API_KEY": "${MINIMAX_API_KEY}", - "MINIMAX_GROUP_ID": "${MINIMAX_GROUP_ID}" - } - }, - "felores/gdrive-mcp-server": { - "package_name": "felores/gdrive-mcp-server", - "repo_url": "https://github.com/felores/gdrive-mcp-server", - "command": "node", - "args": [ - "path/to/gdrive-mcp-server/dist/index.js" - ], - "env": { - "GOOGLE_APPLICATION_CREDENTIALS": "${GOOGLE_APPLICATION_CREDENTIALS}", - "MCP_GDRIVE_CREDENTIALS": "${MCP_GDRIVE_CREDENTIALS}" - } - }, - "MCP-Mirror/bmorphism_say-mcp-server": { - "package_name": "MCP-Mirror/bmorphism_say-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/bmorphism_say-mcp-server", - "command": "node", - "args": [ - "/path/to/say-mcp-server/build/index.js" - ] - }, - "prajwalshettydev/UnrealGenAISupport": { - "package_name": "prajwalshettydev/UnrealGenAISupport", - "repo_url": "https://github.com/prajwalshettydev/UnrealGenAISupport", - "command": "python", - "args": [ - "/Plugins/GenerativeAISupport/Content/Python/mcp_server.py" - ], - "env": { - "UNREAL_HOST": "${UNREAL_HOST}", - "UNREAL_PORT": "${UNREAL_PORT}" - } - }, - "DLYZZT/china-weather-mcp-server": { - "package_name": "DLYZZT/china-weather-mcp-server", - "repo_url": "https://github.com/DLYZZT/china-weather-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/china-weather-mcp-server", - "run", - "weather.py" - ], - "env": { - "AMAP_API_KEY": "${AMAP_API_KEY}" - } - }, - "Tryd0g0lik/mcp-server": { - "package_name": "Tryd0g0lik/mcp-server", - "repo_url": "https://github.com/Tryd0g0lik/mcp-server", - "command": "python", - "args": [ - "python", - "file_finder_mcp.py" - ] - }, - "stakpak/mcp": { - "package_name": "stakpak/mcp", - "repo_url": "https://github.com/stakpak/mcp", - "command": "node", - "args": [ - " STAKPAK_API_KEY=" - ] - }, - "TaazKareem/clickup-mcp-server": { - "package_name": "TaazKareem/clickup-mcp-server", - "repo_url": "https://github.com/TaazKareem/clickup-mcp-server", - "command": "npx", - "args": [ - "-y", - "@taazkareem/clickup-mcp-server@latest" - ], - "env": { - "CLICKUP_API_KEY": "${CLICKUP_API_KEY}", - "CLICKUP_TEAM_ID": "${CLICKUP_TEAM_ID}" - } - }, - "neoforge-dev/neoforge-mcp-server": { - "package_name": "neoforge-dev/neoforge-mcp-server", - "repo_url": "https://github.com/neoforge-dev/neoforge-mcp-server", - "command": "/path/to/uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "mcp", - "run", - "/path/to/python-server-mcp/server.py" - ] - }, - "gregkop/sketchfab-mcp-server": { - "package_name": "gregkop/sketchfab-mcp-server", - "repo_url": "https://github.com/gregkop/sketchfab-mcp-server", - "command": "node", - "args": [ - "/path/to/build/index.js", - "--api-key", - "YOUR_API_KEY" - ] - }, - "event-catalog/mcp-server": { - "package_name": "event-catalog/mcp-server", - "repo_url": "https://github.com/event-catalog/mcp-server", - "command": "npx", - "args": [ - "-y", - "tsx /PATH_TO_YOUR_REPO/src/index.ts", - "https://demo.eventcatalog.dev" - ] - }, - "alexcc4/mcp-mysql-server": { - "package_name": "alexcc4/mcp-mysql-server", - "repo_url": "https://github.com/alexcc4/mcp-mysql-server", - "command": "/path/uv", - "args": [ - "--directory", - "code_path", - "run", - "main.py" - ], - "env": { - "DB_HOST": "${DB_HOST}", - "DB_PORT": "${DB_PORT}", - "DB_USER": "${DB_USER}", - "DB_PASSWORD": "${DB_PASSWORD}", - "DB_NAME": "${DB_NAME}" - } - }, - "MCP-Mirror/amidabuddha_unichat-mcp-server": { - "package_name": "MCP-Mirror/amidabuddha_unichat-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/amidabuddha_unichat-mcp-server", - "command": "uvx", - "args": [ - "unichat-mcp-server" - ], - "env": { - "UNICHAT_MODEL": "${UNICHAT_MODEL}", - "UNICHAT_API_KEY": "${UNICHAT_API_KEY}" - } - }, - "jasonsum/gmail-mcp-server": { - "package_name": "jasonsum/gmail-mcp-server", - "repo_url": "https://github.com/jasonsum/gmail-mcp-server", - "command": "uv", - "args": [ - "--directory", - "[absolute-path-to-git-repo]", - "run", - "gmail", - "--creds-file-path", - "[absolute-path-to-credentials-file]", - "--token-path", - "[absolute-path-to-access-tokens-file]" - ] - }, - "jtucker/mcp-untappd-server": { - "package_name": "jtucker/mcp-untappd-server", - "repo_url": "https://github.com/jtucker/mcp-untappd-server", - "command": "/path/to/untappd-server/build/index.js" - }, - "jkawamoto/mcp-florence2": { - "package_name": "jkawamoto/mcp-florence2", - "repo_url": "https://github.com/jkawamoto/mcp-florence2", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/jkawamoto/mcp-florence2", - "mcp-florence2" - ] - }, - "procload/dnd-mcp": { - "package_name": "procload/dnd-mcp", - "repo_url": "https://github.com/procload/dnd-mcp", - "command": "/path/to/uv", - "args": [ - "--directory", - "/path/to/dnd-knowledge-navigator", - "run", - "dnd_mcp_server.py" - ] - }, - "datawiz168/mcp-snowflake-service": { - "package_name": "datawiz168/mcp-snowflake-service", - "repo_url": "https://github.com/datawiz168/mcp-snowflake-service", - "command": "/usr/bin/python3", - "args": [ - "/path/to/mcp-snowflake/server.py" - ] - }, - "wrale/mcp-server-tree-sitter": { - "package_name": "wrale/mcp-server-tree-sitter", - "repo_url": "https://github.com/wrale/mcp-server-tree-sitter", - "command": "uvx", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/YOUR/PROJECT", - "mcp-server-tree-sitter" - ] - }, - "spences10/mcp-turso-cloud": { - "package_name": "spences10/mcp-turso-cloud", - "repo_url": "https://github.com/spences10/mcp-turso-cloud", - "command": "wsl.exe", - "args": [ - "bash", - "-c", - "TURSO_API_TOKEN=your-token TURSO_ORGANIZATION=your-org node /path/to/mcp-turso-cloud/dist/index.js" - ] - }, - "SweetingTech/MCP": { - "package_name": "SweetingTech/MCP", - "repo_url": "https://github.com/SweetingTech/MCP", - "command": "/path/to/agentql-mcp/dist/index.js", - "env": { - "AGENTQL_API_KEY": "${AGENTQL_API_KEY}" - } - }, - "JexinSam/mssql_mcp_server": { - "package_name": "JexinSam/mssql_mcp_server", - "repo_url": "https://github.com/JexinSam/mssql_mcp_server", - "command": "uv", - "args": [ - "--directory", - "path/to/mssql_mcp_server", - "run", - "mssql_mcp_server" - ], - "env": { - "MSSQL_DRIVER": "${MSSQL_DRIVER}", - "MSSQL_HOST": "${MSSQL_HOST}", - "MSSQL_USER": "${MSSQL_USER}", - "MSSQL_PASSWORD": "${MSSQL_PASSWORD}", - "MSSQL_DATABASE": "${MSSQL_DATABASE}" - } - }, - "tejpalvirk/quantitativeresearch": { - "package_name": "tejpalvirk/quantitativeresearch", - "repo_url": "https://github.com/tejpalvirk/quantitativeresearch", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/quantitativeresearch" - ] - }, - "RinardNick/mcp-terminal": { - "package_name": "RinardNick/mcp-terminal", - "repo_url": "https://github.com/RinardNick/mcp-terminal", - "command": "uv", - "args": [ - "pip", - "run", - "mcp-terminal", - "--allowed-commands", - "python,pip,git,ls,cd", - "--timeout-ms", - "30000", - "--max-output-size", - "1048576" - ] - }, - "Ruijian-Zha/Notion_MCP_advanced": { - "package_name": "Ruijian-Zha/Notion_MCP_advanced", - "repo_url": "https://github.com/Ruijian-Zha/Notion_MCP_advanced", - "command": "/path/to/your/.venv/bin/python", - "args": [ - "-m", - "notion_mcp" - ] - }, - "ryaker/CommandExecution": { - "package_name": "ryaker/CommandExecution", - "repo_url": "https://github.com/ryaker/CommandExecution", - "command": "node", - "args": [ - "/full/path/to/command-execution-tool.js" - ], - "env": { - "NODE_OPTIONS": "${NODE_OPTIONS}" - } - }, - "johnhuang316/code-index-mcp": { - "package_name": "johnhuang316/code-index-mcp", - "repo_url": "https://github.com/johnhuang316/code-index-mcp", - "command": "uv", - "args": [ - "--directory", - "/home/username/path/to/code-index-mcp", - "run", - "run.py" - ] - }, - "loopwork-ai/iMCP": { - "package_name": "loopwork-ai/iMCP", - "repo_url": "https://github.com/loopwork-ai/iMCP", - "command": "{paste iMCP server command}" - }, - "qingtianyu/mcp-server": { - "package_name": "qingtianyu/mcp-server", - "repo_url": "https://github.com/qingtianyu/mcp-server", - "command": "node", - "args": [ - "D:/api-server/build/index.js" - ], - "env": { - "BASE_URL": "${BASE_URL}", - "CLIENT_ID": "${CLIENT_ID}", - "CLIENT_SECRET": "${CLIENT_SECRET}", - "USERNAME": "${USERNAME}", - "PASSWORD": "${PASSWORD}", - "TENANT_ID": "${TENANT_ID}", - "REJECT_UNAUTHORIZED": "${REJECT_UNAUTHORIZED}", - "ALLOWED_APIS": "${ALLOWED_APIS}" - } - }, - "gokborayilmaz/code-reviewer-fixer-agent": { - "package_name": "gokborayilmaz/code-reviewer-fixer-agent", - "repo_url": "https://github.com/gokborayilmaz/code-reviewer-fixer-agent", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/gentoro-gh_mcp-nodejs-server": { - "package_name": "MCP-Mirror/gentoro-gh_mcp-nodejs-server", - "repo_url": "https://github.com/MCP-Mirror/gentoro-gh_mcp-nodejs-server", - "command": "npx", - "args": [ - "-y", - "@gentoro/mcp-nodejs-server" - ], - "env": { - "GENTORO_API_KEY": "${GENTORO_API_KEY}", - "GENTORO_BRIDGE_UID": "${GENTORO_BRIDGE_UID}", - "GENTORO_BASE_URL": "${GENTORO_BASE_URL}" - } - }, - "MCP-Mirror/AndrewDonelson_go-mcp-server-service": { - "package_name": "MCP-Mirror/AndrewDonelson_go-mcp-server-service", - "repo_url": "https://github.com/MCP-Mirror/AndrewDonelson_go-mcp-server-service", - "command": "./bin/release//notes-service", - "args": [] - }, - "Rudra-ravi/wikipedia-mcp": { - "package_name": "Rudra-ravi/wikipedia-mcp", - "repo_url": "https://github.com/Rudra-ravi/wikipedia-mcp", - "command": "wikipedia-mcp" - }, - "hemangjoshi37a/mcphub": { - "package_name": "hemangjoshi37a/mcphub", - "repo_url": "https://github.com/hemangjoshi37a/mcphub", - "command": "node", - "args": [ - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "yamadashy/repomix": { - "package_name": "yamadashy/repomix", - "repo_url": "https://github.com/yamadashy/repomix", - "command": "npx", - "args": [ - "-y", - "repomix", - "--mcp" - ] - }, - "bmorphism/anti-bullshit-mcp-server": { - "package_name": "bmorphism/anti-bullshit-mcp-server", - "repo_url": "https://github.com/bmorphism/anti-bullshit-mcp-server", - "command": "node", - "args": [ - "/path/to/anti-bullshit-mcp-server/build/index.js" - ] - }, - "MCP-Mirror/mondweep_youtube-music-mcp-server": { - "package_name": "MCP-Mirror/mondweep_youtube-music-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/mondweep_youtube-music-mcp-server", - "command": "/path/to/youtube-music-server/build/index.js" - }, - "mamertofabian/elevenlabs-mcp-server": { - "package_name": "mamertofabian/elevenlabs-mcp-server", - "repo_url": "https://github.com/mamertofabian/elevenlabs-mcp-server", - "command": "uv", - "args": [ - "--directory", - "path/to/elevenlabs-mcp-server", - "run", - "elevenlabs-mcp-server" - ], - "env": { - "ELEVENLABS_API_KEY": "${ELEVENLABS_API_KEY}", - "ELEVENLABS_VOICE_ID": "${ELEVENLABS_VOICE_ID}", - "ELEVENLABS_MODEL_ID": "${ELEVENLABS_MODEL_ID}", - "ELEVENLABS_STABILITY": "${ELEVENLABS_STABILITY}", - "ELEVENLABS_SIMILARITY_BOOST": "${ELEVENLABS_SIMILARITY_BOOST}", - "ELEVENLABS_STYLE": "${ELEVENLABS_STYLE}", - "ELEVENLABS_OUTPUT_DIR": "${ELEVENLABS_OUTPUT_DIR}" - } - }, - "MarkusPfundstein/mcp-obsidian": { - "package_name": "MarkusPfundstein/mcp-obsidian", - "repo_url": "https://github.com/MarkusPfundstein/mcp-obsidian", - "command": "uvx", - "args": [ - "mcp-obsidian" - ], - "env": { - "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}" - } - }, - "wysh3/perplexity-mcp-server": { - "package_name": "wysh3/perplexity-mcp-server", - "repo_url": "https://github.com/wysh3/perplexity-mcp-server", - "command": "node", - "args": [ - "/path/to/web-search/build/index.js" - ] - }, - "muxi1998/android-studio-mcp-server": { - "package_name": "muxi1998/android-studio-mcp-server", - "repo_url": "https://github.com/muxi1998/android-studio-mcp-server", - "command": "npx", - "args": [ - "-y", - "@jetbrains/mcp-proxy" - ] - }, - "roychri/mcp-server-asana": { - "package_name": "roychri/mcp-server-asana", - "repo_url": "https://github.com/roychri/mcp-server-asana", - "command": "npx", - "args": [ - "-y", - "@roychri/mcp-server-asana" - ], - "env": { - "ASANA_ACCESS_TOKEN": "${ASANA_ACCESS_TOKEN}" - } - }, - "alexgoller/illumio-mcp-server": { - "package_name": "alexgoller/illumio-mcp-server", - "repo_url": "https://github.com/alexgoller/illumio-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/Users/alex.goller/git/illumio-mcp", - "run", - "illumio-mcp" - ], - "env": { - "PCE_HOST": "${PCE_HOST}", - "PCE_PORT": "${PCE_PORT}", - "PCE_ORG_ID": "${PCE_ORG_ID}", - "API_KEY": "${API_KEY}", - "API_SECRET": "${API_SECRET}" - } - }, - "LeonMelamud/mysql-mcp": { - "package_name": "LeonMelamud/mysql-mcp", - "repo_url": "https://github.com/LeonMelamud/mysql-mcp", - "command": "node", - "args": [ - "/path/to/mysql-server/build/index.js" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "FocusSearch/focus_mcp_sql": { - "package_name": "FocusSearch/focus_mcp_sql", - "repo_url": "https://github.com/FocusSearch/focus_mcp_sql", - "command": "java", - "args": [ - "-jar", - "path/to/focus_mcp_sql/focus_mcp_sql.jar" - ] - }, - "atom2ueki/mcp-server-ios-simulator": { - "package_name": "atom2ueki/mcp-server-ios-simulator", - "repo_url": "https://github.com/atom2ueki/mcp-server-ios-simulator", - "command": "node", - "args": [ - "/path/to/your/mcp-server-ios-simulator/dist/index.js" - ] - }, - "siscale/arcanna-mcp-server": { - "package_name": "siscale/arcanna-mcp-server", - "repo_url": "https://github.com/siscale/arcanna-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "ARCANNA_MANAGEMENT_API_KEY", - "-e", - "ARCANNA_HOST", - "arcanna/arcanna-mcp-server" - ], - "env": { - "ARCANNA_MANAGEMENT_API_KEY": "${ARCANNA_MANAGEMENT_API_KEY}", - "ARCANNA_HOST": "${ARCANNA_HOST}" - } - }, - "berlinbra/polymarket-mcp": { - "package_name": "berlinbra/polymarket-mcp", - "repo_url": "https://github.com/berlinbra/polymarket-mcp", - "command": "uv", - "args": [ - "--directory", - "/Users/{INSERT_USER}/YOUR/PATH/TO/polymarket-mcp", - "run", - "polymarket-mcp" - ], - "env": { - "KEY": "${KEY}", - "FUNDER": "${FUNDER}" - } - }, - "rember/rember-mcp": { - "package_name": "rember/rember-mcp", - "repo_url": "https://github.com/rember/rember-mcp", - "command": "npx", - "args": [ - "-y", - "@getrember/mcp", - "--api-key=YOUR_REMBER_API_KEY" - ] - }, - "datalayer/jupyter-mcp-server": { - "package_name": "datalayer/jupyter-mcp-server", - "repo_url": "https://github.com/datalayer/jupyter-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "SERVER_URL", - "-e", - "TOKEN", - "-e", - "NOTEBOOK_PATH", - "datalayer/jupyter-mcp-server:latest" - ], - "env": { - "SERVER_URL": "${SERVER_URL}", - "TOKEN": "${TOKEN}", - "NOTEBOOK_PATH": "${NOTEBOOK_PATH}" - } - }, - "misterboe/webtools-mcp-server": { - "package_name": "misterboe/webtools-mcp-server", - "repo_url": "https://github.com/misterboe/webtools-mcp-server", - "command": "npx", - "args": [ - "-y", - "@bschauer/webtools-mcp-server@1.6.1" - ] - }, - "tejpalvirk/developer": { - "package_name": "tejpalvirk/developer", - "repo_url": "https://github.com/tejpalvirk/developer", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/developer" - ] - }, - "runekaagaard/mcp-redmine": { - "package_name": "runekaagaard/mcp-redmine", - "repo_url": "https://github.com/runekaagaard/mcp-redmine", - "command": "uvx", - "args": [ - "--from", - "mcp-redmine==2025.04.09.153531", - "mcp-redmine" - ], - "env": { - "REDMINE_URL": "${REDMINE_URL}", - "REDMINE_API_KEY": "${REDMINE_API_KEY}", - "REDMINE_REQUEST_INSTRUCTIONS": "${REDMINE_REQUEST_INSTRUCTIONS}" - } - }, - "j3k0/mcp-google-workspace": { - "package_name": "j3k0/mcp-google-workspace", - "repo_url": "https://github.com/j3k0/mcp-google-workspace", - "command": "npx", - "args": [ - "mcp-google-workspace" - ] - }, - "f4ww4z/mcp-mysql-server": { - "package_name": "f4ww4z/mcp-mysql-server", - "repo_url": "https://github.com/f4ww4z/mcp-mysql-server", - "command": "npx", - "args": [ - "-y", - "@f4ww4z/mcp-mysql-server" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "MladenSU/cli-mcp-server": { - "package_name": "MladenSU/cli-mcp-server", - "repo_url": "https://github.com/MladenSU/cli-mcp-server", - "command": "uvx", - "args": [ - "cli-mcp-server" - ], - "env": { - "ALLOWED_DIR": "${ALLOWED_DIR}", - "ALLOWED_COMMANDS": "${ALLOWED_COMMANDS}", - "ALLOWED_FLAGS": "${ALLOWED_FLAGS}", - "MAX_COMMAND_LENGTH": "${MAX_COMMAND_LENGTH}", - "COMMAND_TIMEOUT": "${COMMAND_TIMEOUT}" - } - }, - "Quegenx/supabase-mcp-server": { - "package_name": "Quegenx/supabase-mcp-server", - "repo_url": "https://github.com/Quegenx/supabase-mcp-server", - "command": "/path/to/node", - "args": [ - "/path/to/dist/index.js", - "postgresql://postgres.[PROJECT-ID]:[PASSWORD]@aws-0-eu-central-1.pooler.supabase.com:5432/postgres" - ] - }, - "Bob-lance/instagram-engagement-mcp": { - "package_name": "Bob-lance/instagram-engagement-mcp", - "repo_url": "https://github.com/Bob-lance/instagram-engagement-mcp", - "command": "node", - "args": [ - "/path/to/instagram-engagement-mcp/build/index.js" - ], - "env": { - "INSTAGRAM_USERNAME": "${INSTAGRAM_USERNAME}", - "INSTAGRAM_PASSWORD": "${INSTAGRAM_PASSWORD}" - } - }, - "cyanheads/atlas-mcp-server": { - "package_name": "cyanheads/atlas-mcp-server", - "repo_url": "https://github.com/cyanheads/atlas-mcp-server", - "command": "node", - "args": [ - "/path/to/atlas-mcp-server/dist/index.js" - ], - "env": { - "NEO4J_URI": "${NEO4J_URI}", - "NEO4J_USER": "${NEO4J_USER}", - "NEO4J_PASSWORD": "${NEO4J_PASSWORD}", - "LOG_LEVEL": "${LOG_LEVEL}", - "NODE_ENV": "${NODE_ENV}" - } - }, - "QiYuOr2/anitabi-mcp-server": { - "package_name": "QiYuOr2/anitabi-mcp-server", - "repo_url": "https://github.com/QiYuOr2/anitabi-mcp-server", - "command": "uvx", - "args": [ - "blender-mcp" - ] - }, - "MCP-Mirror/KS-GEN-AI_jira-mcp-server": { - "package_name": "MCP-Mirror/KS-GEN-AI_jira-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/KS-GEN-AI_jira-mcp-server", - "command": "node", - "args": [ - "/PATH_TO_THE_PROJECT/build/index.js" - ], - "env": { - "JIRA_URL": "${JIRA_URL}", - "JIRA_API_MAIL": "${JIRA_API_MAIL}", - "JIRA_API_KEY": "${JIRA_API_KEY}" - } - }, - "cdugo/package-documentation-mcp": { - "package_name": "cdugo/package-documentation-mcp", - "repo_url": "https://github.com/cdugo/package-documentation-mcp", - "command": "npx", - "args": [ - "-y", - "@smithery/cli@latest", - "run", - "@cdugo/mcp-get-docs", - "--config", - "'{}'" - ] - }, - "misterboe/strapi-mcp-server": { - "package_name": "misterboe/strapi-mcp-server", - "repo_url": "https://github.com/misterboe/strapi-mcp-server", - "command": "npx", - "args": [ - "-y", - "@bschauer/strapi-mcp-server@2.5.0" - ] - }, - "MCP-Mirror/btwiuse_npm-search-mcp-server": { - "package_name": "MCP-Mirror/btwiuse_npm-search-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/btwiuse_npm-search-mcp-server", - "command": "uvx", - "args": [ - "npm-search-mcp-server" - ] - }, - "BrockReece/whimsical-mcp-server": { - "package_name": "BrockReece/whimsical-mcp-server", - "repo_url": "https://github.com/BrockReece/whimsical-mcp-server", - "command": "node", - "args": [ - "/path/to/this/repo/whimsical-mcp-server/dist/index.js" - ] - }, - "Vic563/Memgpt-MCP-Server": { - "package_name": "Vic563/Memgpt-MCP-Server", - "repo_url": "https://github.com/Vic563/Memgpt-MCP-Server", - "command": "/path/to/memgpt-server/build/index.js", - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}" - } - }, - "farzad528/mcp-server-azure-ai-agents": { - "package_name": "farzad528/mcp-server-azure-ai-agents", - "repo_url": "https://github.com/farzad528/mcp-server-azure-ai-agents", - "command": "C:\\path\\to\\.venv\\Scripts\\python.exe", - "args": [ - "C:\\path\\to\\azure_search_server.py" - ], - "env": { - "AZURE_SEARCH_SERVICE_ENDPOINT": "${AZURE_SEARCH_SERVICE_ENDPOINT}", - "AZURE_SEARCH_INDEX_NAME": "${AZURE_SEARCH_INDEX_NAME}", - "AZURE_SEARCH_API_KEY": "${AZURE_SEARCH_API_KEY}" - } - }, - "ArchimedesCrypto/excel-reader-mcp": { - "package_name": "ArchimedesCrypto/excel-reader-mcp", - "repo_url": "https://github.com/ArchimedesCrypto/excel-reader-mcp", - "command": "excel-reader" - }, - "Timtech4u/deno-mcp-server": { - "package_name": "Timtech4u/deno-mcp-server", - "repo_url": "https://github.com/Timtech4u/deno-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/deno-mcp/dist/index.js" - ] - }, - "MCP-Mirror/66julienmartin_MCP-server-Deepseek_R1": { - "package_name": "MCP-Mirror/66julienmartin_MCP-server-Deepseek_R1", - "repo_url": "https://github.com/MCP-Mirror/66julienmartin_MCP-server-Deepseek_R1", - "command": "node", - "args": [ - "/path/to/deepseek-r1-mcp/build/index.js" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "StevenBtw/marimo-docs-mcp": { - "package_name": "StevenBtw/marimo-docs-mcp", - "repo_url": "https://github.com/StevenBtw/marimo-docs-mcp", - "command": "node", - "args": [ - "/path/to/marimo-docs/build/index.js" - ] - }, - "MCP-Mirror/felores_placid-mcp-server": { - "package_name": "MCP-Mirror/felores_placid-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/felores_placid-mcp-server", - "command": "node", - "args": [ - "path/to/placid-mcp-server/build/index.js" - ], - "env": { - "PLACID_API_TOKEN": "${PLACID_API_TOKEN}" - } - }, - "jimbobbennett/PiecesMCPNet": { - "package_name": "jimbobbennett/PiecesMCPNet", - "repo_url": "https://github.com/jimbobbennett/PiecesMCPNet", - "command": "PiecesMCPNet" - }, - "MCP-Mirror/AidenYangX_mapbox-mcp-server": { - "package_name": "MCP-Mirror/AidenYangX_mapbox-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/AidenYangX_mapbox-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/mapbox-mcp-server/build/index.js" - ], - "env": { - "MAPBOX_ACCESS_TOKEN": "${MAPBOX_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/1broseidon_mcp-jira-server": { - "package_name": "MCP-Mirror/1broseidon_mcp-jira-server", - "repo_url": "https://github.com/MCP-Mirror/1broseidon_mcp-jira-server", - "command": "node", - "args": [ - "/path/to/jira-server/build/index.js" - ], - "env": { - "JIRA_EMAIL": "${JIRA_EMAIL}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}", - "JIRA_DOMAIN": "${JIRA_DOMAIN}" - } - }, - "kaliaboi/mcp-zotero": { - "package_name": "kaliaboi/mcp-zotero", - "repo_url": "https://github.com/kaliaboi/mcp-zotero", - "command": "mcp-zotero", - "env": { - "ZOTERO_API_KEY": "${ZOTERO_API_KEY}", - "ZOTERO_USER_ID": "${ZOTERO_USER_ID}" - } - }, - "tejpalvirk/project": { - "package_name": "tejpalvirk/project", - "repo_url": "https://github.com/tejpalvirk/project", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/project" - ] - }, - "MCP-Mirror/mark3labs_mcp-filesystem-server": { - "package_name": "MCP-Mirror/mark3labs_mcp-filesystem-server", - "repo_url": "https://github.com/MCP-Mirror/mark3labs_mcp-filesystem-server", - "command": "mcp-filesystem-server", - "args": [ - "/Users/username/Desktop", - "/path/to/other/allowed/dir" - ] - }, - "chatmcp/mcp-server-flomo": { - "package_name": "chatmcp/mcp-server-flomo", - "repo_url": "https://github.com/chatmcp/mcp-server-flomo", - "command": "npx", - "args": [ - "-y", - "@chatmcp/mcp-server-flomo" - ], - "env": { - "FLOMO_API_URL": "${FLOMO_API_URL}" - } - }, - "andybrandt/mcp-simple-timeserver": { - "package_name": "andybrandt/mcp-simple-timeserver", - "repo_url": "https://github.com/andybrandt/mcp-simple-timeserver", - "command": "C:\\Users\\YOUR_USERNAME\\AppData\\Local\\Programs\\Python\\Python311\\python.exe", - "args": [ - "-m", - "mcp_simple_timeserver" - ] - }, - "mamisoa/mcp-server": { - "package_name": "mamisoa/mcp-server", - "repo_url": "https://github.com/mamisoa/mcp-server", - "command": "poetry", - "args": [ - "run", - "python", - "/path/to/your/mcp-server/mcp_server/mcp-datetime.py" - ] - }, - "ktanaka101/mcp-server-duckdb": { - "package_name": "ktanaka101/mcp-server-duckdb", - "repo_url": "https://github.com/ktanaka101/mcp-server-duckdb", - "command": "uvx", - "args": [ - "mcp-server-duckdb", - "--db-path", - "~/mcp-server-duckdb/data/data.db" - ] - }, - "MCP-Mirror/snaggle-ai_openapi-mcp-server": { - "package_name": "MCP-Mirror/snaggle-ai_openapi-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/snaggle-ai_openapi-mcp-server", - "command": "npx", - "args": [ - "openapi-mcp-server", - "/abs/path/to/petstore-openapi.json" - ] - }, - "crazyrabbitLTC/mcp-brex-server": { - "package_name": "crazyrabbitLTC/mcp-brex-server", - "repo_url": "https://github.com/crazyrabbitLTC/mcp-brex-server", - "command": "node", - "args": [ - "/path/to/brex-mcp-server/build/index.js" - ], - "env": { - "BREX_API_KEY": "${BREX_API_KEY}", - "BREX_API_URL": "${BREX_API_URL}", - "PORT": "${PORT}", - "NODE_ENV": "${NODE_ENV}", - "RATE_LIMIT_REQUESTS": "${RATE_LIMIT_REQUESTS}", - "RATE_LIMIT_WINDOW_MS": "${RATE_LIMIT_WINDOW_MS}", - "LOG_LEVEL": "${LOG_LEVEL}" - } - }, - "MCP-Mirror/bsmi021_mcp-filesystem-server": { - "package_name": "MCP-Mirror/bsmi021_mcp-filesystem-server", - "repo_url": "https://github.com/MCP-Mirror/bsmi021_mcp-filesystem-server", - "command": "node", - "args": [ - "path/to/filesystem-server/build/index.js" - ] - }, - "BurtTheCoder/mcp-maigret": { - "package_name": "BurtTheCoder/mcp-maigret", - "repo_url": "https://github.com/BurtTheCoder/mcp-maigret", - "command": "node", - "args": [ - "/absolute/path/to/mcp-maigret/build/index.js" - ], - "env": { - "MAIGRET_REPORTS_DIR": "${MAIGRET_REPORTS_DIR}" - } - }, - "MCP-Mirror/Text2Go_ai-humanizer-mcp-server": { - "package_name": "MCP-Mirror/Text2Go_ai-humanizer-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Text2Go_ai-humanizer-mcp-server", - "command": "node", - "args": [ - "/build/index.js" - ] - }, - "appliedrelevance/frappe_mcp_server": { - "package_name": "appliedrelevance/frappe_mcp_server", - "repo_url": "https://github.com/appliedrelevance/frappe_mcp_server", - "command": "npx", - "args": [ - "frappe-mcp-server" - ], - "env": { - "FRAPPE_URL": "${FRAPPE_URL}", - "FRAPPE_API_KEY": "${FRAPPE_API_KEY}", - "FRAPPE_API_SECRET": "${FRAPPE_API_SECRET}" - } - }, - "weikio/mcp-server": { - "package_name": "weikio/mcp-server", - "repo_url": "https://github.com/weikio/mcp-server", - "command": "npx", - "args": [ - "-y", - "@weikio/mcp-server" - ] - }, - "MCP-Mirror/Siddhant-K-code_memory-journal-mcp-server": { - "package_name": "MCP-Mirror/Siddhant-K-code_memory-journal-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Siddhant-K-code_memory-journal-mcp-server", - "command": "/Users//.local/bin/uv", - "args": [ - "--directory", - "/Users//memory-journal-mcp-server", - "run", - "server.py" - ] - }, - "FREEZONEX/mcp-server-supos": { - "package_name": "FREEZONEX/mcp-server-supos", - "repo_url": "https://github.com/FREEZONEX/mcp-server-supos", - "command": "node", - "args": [ - "//dist//index.js" - ], - "env": { - "SUPOS_API_KEY": "${SUPOS_API_KEY}", - "SUPOS_API_URL": "${SUPOS_API_URL}", - "SUPOS_MQTT_URL": "${SUPOS_MQTT_URL}" - } - }, - "DMontgomery40/mcp-3D-printer-server": { - "package_name": "DMontgomery40/mcp-3D-printer-server", - "repo_url": "https://github.com/DMontgomery40/mcp-3D-printer-server", - "command": "mcp-3d-printer-server", - "env": { - "PRINTER_HOST": "${PRINTER_HOST}", - "PRINTER_TYPE": "${PRINTER_TYPE}", - "BAMBU_SERIAL": "${BAMBU_SERIAL}", - "BAMBU_TOKEN": "${BAMBU_TOKEN}" - } - }, - "R3E-Network/neo-n3-mcp": { - "package_name": "R3E-Network/neo-n3-mcp", - "repo_url": "https://github.com/R3E-Network/neo-n3-mcp", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "r3e/neo-n3-mcp" - ] - }, - "XGenerationLab/xiyan_mcp_server": { - "package_name": "XGenerationLab/xiyan_mcp_server", - "repo_url": "https://github.com/XGenerationLab/xiyan_mcp_server", - "command": "python", - "args": [ - "-m", - "xiyan_mcp_server" - ], - "env": { - "YML": "${YML}" - } - }, - "b1ff/atlassian-dc-mcp": { - "package_name": "b1ff/atlassian-dc-mcp", - "repo_url": "https://github.com/b1ff/atlassian-dc-mcp", - "command": "npx", - "args": [ - "-y", - "@atlassian-dc-mcp/jira" - ], - "env": { - "JIRA_HOST": "${JIRA_HOST}", - "JIRA_API_TOKEN": "${JIRA_API_TOKEN}" - } - }, - "riii111/ResearchMCP": { - "package_name": "riii111/ResearchMCP", - "repo_url": "https://github.com/riii111/ResearchMCP", - "command": "/absolute/path/to/ResearchMCP/cli.ts", - "args": [], - "env": { - "BRAVE_API_KEY": "${BRAVE_API_KEY}", - "TAVILY_API_KEY": "${TAVILY_API_KEY}" - } - }, - "MananShahTR/azure-log-analytics-mcp": { - "package_name": "MananShahTR/azure-log-analytics-mcp", - "repo_url": "https://github.com/MananShahTR/azure-log-analytics-mcp", - "command": "node", - "args": [ - "path/to/azure-log-analytics-mcp/build/mcp-server.js" - ], - "env": { - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}" - } - }, - "Adfin-Engineering/mcp-server-adfin": { - "package_name": "Adfin-Engineering/mcp-server-adfin", - "repo_url": "https://github.com/Adfin-Engineering/mcp-server-adfin", - "command": "/.local/bin/uv", - "args": [ - "--directory", - "", - "run", - "main_adfin_mcp.py" - ], - "env": { - "ADFIN_EMAIL": "${ADFIN_EMAIL}", - "ADFIN_PASSWORD": "${ADFIN_PASSWORD}" - } - }, - "1RB/mongo-mcp": { - "package_name": "1RB/mongo-mcp", - "repo_url": "https://github.com/1RB/mongo-mcp", - "command": "node", - "args": [ - "dist/index.js", - "mongodb://root:example@localhost:27017/test?authSource=admin" - ] - }, - "stippi/code-assistant": { - "package_name": "stippi/code-assistant", - "repo_url": "https://github.com/stippi/code-assistant", - "command": "/Users//workspace/code-assistant/target/release/code-assistant", - "args": [ - "server" - ] - }, - "dcSpark/mcp-server-defillama": { - "package_name": "dcSpark/mcp-server-defillama", - "repo_url": "https://github.com/dcSpark/mcp-server-defillama", - "command": "node", - "args": [ - "/path/to/your/mcp-server-defillama/build/index.js" - ] - }, - "quazaai/unitymcpintegration": { - "package_name": "quazaai/unitymcpintegration", - "repo_url": "https://github.com/quazaai/unitymcpintegration", - "command": "node", - "args": [ - "path-to-project>\\Library\\PackageCache\\com.quaza.unitymcp@d2b8f1260bca\\mcpServer\\mcpServer\\build\\index.js" - ], - "env": { - "MCP_WEBSOCKET_PORT": "${MCP_WEBSOCKET_PORT}" - } - }, - "mzxrai/mcp-webresearch": { - "package_name": "mzxrai/mcp-webresearch", - "repo_url": "https://github.com/mzxrai/mcp-webresearch", - "command": "npx", - "args": [ - "-y", - "@mzxrai/mcp-webresearch@latest" - ] - }, - "MCP-Mirror/sergehuber_inoyu-mcp-unomi-server": { - "package_name": "MCP-Mirror/sergehuber_inoyu-mcp-unomi-server", - "repo_url": "https://github.com/MCP-Mirror/sergehuber_inoyu-mcp-unomi-server", - "command": "node", - "args": [ - "/path/to/local/mcp-unomi-server/build/index.js" - ] - }, - "jskoiz/node-typescript-mcp": { - "package_name": "jskoiz/node-typescript-mcp", - "repo_url": "https://github.com/jskoiz/node-typescript-mcp", - "command": "/path/to/mcp-documentation-reference-server/build/index.js" - }, - "sou-lab/esa-mcp-server-claude": { - "package_name": "sou-lab/esa-mcp-server-claude", - "repo_url": "https://github.com/sou-lab/esa-mcp-server-claude", - "command": "/path/to/node", - "args": [ - "/path/to/esa-mcp-server-claude/bin/cli.js" - ], - "env": { - "ESA_API_KEY": "${ESA_API_KEY}", - "ESA_TEAM_NAME": "${ESA_TEAM_NAME}", - "PORT": "${PORT}" - } - }, - "tejpalvirk/qualitativeresearch": { - "package_name": "tejpalvirk/qualitativeresearch", - "repo_url": "https://github.com/tejpalvirk/qualitativeresearch", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/qualitativeresearch" - ] - }, - "smithery-ai/verodat-mcp-server": { - "package_name": "smithery-ai/verodat-mcp-server", - "repo_url": "https://github.com/smithery-ai/verodat-mcp-server", - "command": "node", - "args": [ - "path/to/verodat-mcp-server/build/src/index.js" - ], - "env": { - "VERODAT_AI_API_KEY": "${VERODAT_AI_API_KEY}" - } - }, - "abhishekbhakat/airflow-mcp-server": { - "package_name": "abhishekbhakat/airflow-mcp-server", - "repo_url": "https://github.com/abhishekbhakat/airflow-mcp-server", - "command": "uvx", - "args": [ - "airflow-mcp-server" - ], - "env": { - "AIRFLOW_BASE_URL": "${AIRFLOW_BASE_URL}", - "AUTH_TOKEN": "${AUTH_TOKEN}", - "COOKIE": "${COOKIE}" - } - }, - "ingpoc/stock_mcp_server": { - "package_name": "ingpoc/stock_mcp_server", - "repo_url": "https://github.com/ingpoc/stock_mcp_server", - "command": "/path/to/your/python", - "args": [ - "/path/to/stock_mcp_server/server.py" - ], - "env": { - "ALPHA_VANTAGE_API_KEY": "${ALPHA_VANTAGE_API_KEY}", - "MONGODB_URI": "${MONGODB_URI}", - "MONGODB_DB_NAME": "${MONGODB_DB_NAME}", - "MONGODB_HOLDINGS_COLLECTION": "${MONGODB_HOLDINGS_COLLECTION}", - "MONGODB_FINANCIALS_COLLECTION": "${MONGODB_FINANCIALS_COLLECTION}", - "MONGODB_KNOWLEDGE_GRAPH_COLLECTION": "${MONGODB_KNOWLEDGE_GRAPH_COLLECTION}", - "ALPHA_VANTAGE_BASE_URL": "${ALPHA_VANTAGE_BASE_URL}", - "ALPHA_VANTAGE_RATE_LIMIT_MINUTE": "${ALPHA_VANTAGE_RATE_LIMIT_MINUTE}", - "ALPHA_VANTAGE_RATE_LIMIT_DAY": "${ALPHA_VANTAGE_RATE_LIMIT_DAY}", - "ALPHA_VANTAGE_DEFAULT_EXCHANGE": "${ALPHA_VANTAGE_DEFAULT_EXCHANGE}", - "MCP_SERVER_NAME": "${MCP_SERVER_NAME}", - "MCP_SERVER_VERSION": "${MCP_SERVER_VERSION}", - "LOG_LEVEL": "${LOG_LEVEL}", - "CACHE_ENABLED": "${CACHE_ENABLED}", - "CACHE_TTL": "${CACHE_TTL}" - } - }, - "ZeparHyfar/mcp-datetime": { - "package_name": "ZeparHyfar/mcp-datetime", - "repo_url": "https://github.com/ZeparHyfar/mcp-datetime", - "command": "python", - "args": [ - "-m", - "mcp_datetime" - ], - "env": { - "PYTHON": "${PYTHON}" - } - }, - "MCP-Mirror/isaacphi_mcp-language-server": { - "package_name": "MCP-Mirror/isaacphi_mcp-language-server", - "repo_url": "https://github.com/MCP-Mirror/isaacphi_mcp-language-server", - "command": "/full/path/to/your/clone/mcp-language-server/server", - "args": [ - "--workspace", - "/path/to/workspace", - "--lsp", - "/path/to/language/server" - ], - "env": { - "DEBUG": "${DEBUG}" - } - }, - "dazeb/Cline-Memory-Bank": { - "package_name": "dazeb/Cline-Memory-Bank", - "repo_url": "https://github.com/dazeb/Cline-Memory-Bank", - "command": "node", - "args": [ - "/path/to/memory-bank-server/build/index.js" - ] - }, - "techspawn/woocommerce-mcp-server": { - "package_name": "techspawn/woocommerce-mcp-server", - "repo_url": "https://github.com/techspawn/woocommerce-mcp-server", - "command": "node", - "args": [ - "path/to/build/index.js" - ], - "env": { - "WORDPRESS_SITE_URL": "${WORDPRESS_SITE_URL}", - "WOOCOMMERCE_CONSUMER_KEY": "${WOOCOMMERCE_CONSUMER_KEY}", - "WOOCOMMERCE_CONSUMER_SECRET": "${WOOCOMMERCE_CONSUMER_SECRET}", - "WORDPRESS_USERNAME": "${WORDPRESS_USERNAME}", - "WORDPRESS_PASSWORD": "${WORDPRESS_PASSWORD}" - } - }, - "AndrewDonelson/go-mcp-server-service": { - "package_name": "AndrewDonelson/go-mcp-server-service", - "repo_url": "https://github.com/AndrewDonelson/go-mcp-server-service", - "command": "./bin/release//notes-service", - "args": [] - }, - "MCP-Mirror/blazickjp_web-browser-mcp-server": { - "package_name": "MCP-Mirror/blazickjp_web-browser-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/blazickjp_web-browser-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/web-browser-mcp-server", - "run", - "web-browser-mcp-server" - ], - "env": { - "REQUEST_TIMEOUT": "${REQUEST_TIMEOUT}" - } - }, - "L-Chris/douban-mcp": { - "package_name": "L-Chris/douban-mcp", - "repo_url": "https://github.com/L-Chris/douban-mcp", - "command": "node", - "args": [ - "{ABSOLUTE PATH TO FILE HERE}/dist/index.js" - ], - "env": { - "COOKIE": "${COOKIE}" - } - }, - "MCP-Mirror/nahmanmate_code-research-mcp-server": { - "package_name": "MCP-Mirror/nahmanmate_code-research-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/nahmanmate_code-research-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/code-research-mcp-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "ai-zerolab/mcp-email-server": { - "package_name": "ai-zerolab/mcp-email-server", - "repo_url": "https://github.com/ai-zerolab/mcp-email-server", - "command": "docker", - "args": [ - "run", - "-it", - "ghcr.io/ai-zerolab/mcp-email-server:latest" - ] - }, - "dailydaniel/logseq-mcp": { - "package_name": "dailydaniel/logseq-mcp", - "repo_url": "https://github.com/dailydaniel/logseq-mcp", - "command": "uvx", - "args": [ - "mcp-server-logseq" - ], - "env": { - "LOGSEQ_API_TOKEN": "${LOGSEQ_API_TOKEN}", - "LOGSEQ_API_URL": "${LOGSEQ_API_URL}" - } - }, - "bsmi021/mcp-server-webscan": { - "package_name": "bsmi021/mcp-server-webscan", - "repo_url": "https://github.com/bsmi021/mcp-server-webscan", - "command": "node", - "args": [ - "path/to/mcp-server-webscan/build/index.js" - ], - "env": { - "NODE_ENV": "${NODE_ENV}", - "LOG_LEVEL": "${LOG_LEVEL}" - } - }, - "dcSpark/mcp-server-helius": { - "package_name": "dcSpark/mcp-server-helius", - "repo_url": "https://github.com/dcSpark/mcp-server-helius", - "command": "npx", - "args": [ - "@dcspark/mcp-server-helius" - ], - "env": { - "HELIUS_API_KEY": "${HELIUS_API_KEY}" - } - }, - "playcanvas/editor-mcp-server": { - "package_name": "playcanvas/editor-mcp-server", - "repo_url": "https://github.com/playcanvas/editor-mcp-server", - "command": "npx", - "args": [ - "tsx", - "/path/to/mcp-editor/src/server.ts" - ], - "env": { - "PORT": "${PORT}" - } - }, - "GongRzhe/Langflow-DOC-QA-SERVER": { - "package_name": "GongRzhe/Langflow-DOC-QA-SERVER", - "repo_url": "https://github.com/GongRzhe/Langflow-DOC-QA-SERVER", - "command": "node", - "args": [ - "/path/to/doc-qa-server/build/index.js" - ], - "env": { - "API_ENDPOINT": "${API_ENDPOINT}" - } - }, - "StevenROyola/ProtoLink": { - "package_name": "StevenROyola/ProtoLink", - "repo_url": "https://github.com/StevenROyola/ProtoLink", - "command": "docker", - "args": [ - "run", - "-i", - "-v", - "/path/to/local/eliza:/app/eliza", - "--rm", - "mcpagentai" - ] - }, - "MCP-Mirror/imankamyabi_dynamodb-mcp-server": { - "package_name": "MCP-Mirror/imankamyabi_dynamodb-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/imankamyabi_dynamodb-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "AWS_ACCESS_KEY_ID", - "-e", - "AWS_SECRET_ACCESS_KEY", - "-e", - "AWS_REGION", - "-e", - "AWS_SESSION_TOKEN", - "mcp/dynamodb-mcp-server" - ], - "env": { - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}", - "AWS_SESSION_TOKEN": "${AWS_SESSION_TOKEN}" - } - }, - "Props-Labs/fireflies-mcp": { - "package_name": "Props-Labs/fireflies-mcp", - "repo_url": "https://github.com/Props-Labs/fireflies-mcp", - "command": "npx", - "args": [ - "-y", - "@props-labs/mcp/fireflies" - ], - "env": { - "FIREFLIES_API_KEY": "${FIREFLIES_API_KEY}" - } - }, - "hekmon8/Homeassistant-server-mcp": { - "package_name": "hekmon8/Homeassistant-server-mcp", - "repo_url": "https://github.com/hekmon8/Homeassistant-server-mcp", - "command": "node", - "args": [ - "/path/to/homeassistant-mcp/homeassistant-server/build/index.js" - ], - "env": { - "HA_URL": "${HA_URL}", - "HA_TOKEN": "${HA_TOKEN}" - } - }, - "qiangmzsx/mcp-filesystem-server": { - "package_name": "qiangmzsx/mcp-filesystem-server", - "repo_url": "https://github.com/qiangmzsx/mcp-filesystem-server", - "command": "mcp-filesystem-server", - "args": [ - "/Users/username/Desktop", - "/path/to/other/allowed/dir" - ] - }, - "emeryray2002/mcp-secops-v3": { - "package_name": "emeryray2002/mcp-secops-v3", - "repo_url": "https://github.com/emeryray2002/mcp-secops-v3", - "command": "/path/to/your/uv", - "args": [ - "--directory", - "/path/to/your/mcp-secops-v3", - "run", - "secops_mcp.py" - ], - "env": { - "CHRONICLE_PROJECT_ID": "${CHRONICLE_PROJECT_ID}", - "CHRONICLE_CUSTOMER_ID": "${CHRONICLE_CUSTOMER_ID}", - "CHRONICLE_REGION": "${CHRONICLE_REGION}" - } - }, - "amaboh/google-sheets-mcp-server": { - "package_name": "amaboh/google-sheets-mcp-server", - "repo_url": "https://github.com/amaboh/google-sheets-mcp-server", - "command": "/path/to/your/.venv/bin/python", - "args": [ - "/path/to/your/google_sheets.py", - "--credentials-path", - "/Users/yourusername/.config/google_sheets_mcp/google-sheets-mcp.json", - "--log-level", - "DEBUG" - ] - }, - "motherduckdb/mcp-server-motherduck": { - "package_name": "motherduckdb/mcp-server-motherduck", - "repo_url": "https://github.com/motherduckdb/mcp-server-motherduck", - "command": "uvx", - "args": [ - "mcp-server-motherduck", - "--db-path", - "md:", - "--motherduck-token", - "" - ] - }, - "recursechat/mcp-server-apple-shortcuts": { - "package_name": "recursechat/mcp-server-apple-shortcuts", - "repo_url": "https://github.com/recursechat/mcp-server-apple-shortcuts", - "command": "npx", - "args": [ - "-y", - "mcp-server-apple-shortcuts" - ] - }, - "sunhao-java/mcp-gitee": { - "package_name": "sunhao-java/mcp-gitee", - "repo_url": "https://github.com/sunhao-java/mcp-gitee", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/sequentialthinking" - ] - }, - "MCP-Mirror/alexander-zuev_supabase-mcp-server": { - "package_name": "MCP-Mirror/alexander-zuev_supabase-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/alexander-zuev_supabase-mcp-server", - "command": "/Users/az/.local/bin/uv", - "args": [ - "--directory", - "/Users/username/cursor/supabase-mcp-server", - "run", - "main.py" - ], - "env": { - "SUPABASE_PROJECT_REF": "${SUPABASE_PROJECT_REF}", - "SUPABASE_DB_PASSWORD": "${SUPABASE_DB_PASSWORD}" - } - }, - "cyanheads/git-mcp-server": { - "package_name": "cyanheads/git-mcp-server", - "repo_url": "https://github.com/cyanheads/git-mcp-server", - "command": "git-mcp-server", - "args": [] - }, - "turinhub/cf-mcp-server": { - "package_name": "turinhub/cf-mcp-server", - "repo_url": "https://github.com/turinhub/cf-mcp-server", - "command": "/Users/zhangxudong/Gits/turinhub/cf-mcp-server/mcp-image-generation/node_modules/.bin/workers-mcp", - "args": [ - "run", - "generateImage", - "https://mcp-image-generation.turinhub.com", - "/Users/zhangxudong/Gits/turinhub/cf-mcp-server/mcp-image-generation" - ] - }, - "aldrin-labs/solana-mcp-server": { - "package_name": "aldrin-labs/solana-mcp-server", - "repo_url": "https://github.com/aldrin-labs/solana-mcp-server", - "command": "cargo", - "args": [ - "run" - ], - "env": { - "SOLANA_RPC_URL": "${SOLANA_RPC_URL}" - } - }, - "mahawi1992/mcp-documentation-server": { - "package_name": "mahawi1992/mcp-documentation-server", - "repo_url": "https://github.com/mahawi1992/mcp-documentation-server", - "command": "npx", - "args": [ - "-y", - "mcp-documentation-server" - ], - "env": { - "BRAVE_API_KEY": "${BRAVE_API_KEY}" - } - }, - "valyu-network/valyu-mcp": { - "package_name": "valyu-network/valyu-mcp", - "repo_url": "https://github.com/valyu-network/valyu-mcp", - "command": "/ABSOLUTE/PATH/TO/.venv/bin/python", - "args": [ - "-u", - "/ABSOLUTE/PATH/TO/valyu-mcp.py" - ], - "env": { - "VALYU_API_KEY": "${VALYU_API_KEY}" - } - }, - "MCP-Mirror/DynamicEndpoints_huntress-mcp-server": { - "package_name": "MCP-Mirror/DynamicEndpoints_huntress-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/DynamicEndpoints_huntress-mcp-server", - "command": "node", - "args": [ - "path/to/huntress-server/build/index.js" - ], - "env": { - "HUNTRESS_API_KEY": "${HUNTRESS_API_KEY}", - "HUNTRESS_API_SECRET": "${HUNTRESS_API_SECRET}" - } - }, - "MarkusPfundstein/mcp-gsuite": { - "package_name": "MarkusPfundstein/mcp-gsuite", - "repo_url": "https://github.com/MarkusPfundstein/mcp-gsuite", - "command": "uvx", - "args": [ - "mcp-gsuite", - "--accounts-file", - "/path/to/custom/.accounts.json", - "--credentials-dir", - "/path/to/custom/credentials" - ] - }, - "JayArrowz/mcp-xpath": { - "package_name": "JayArrowz/mcp-xpath", - "repo_url": "https://github.com/JayArrowz/mcp-xpath", - "command": "node", - "args": [ - "/path/to/mcp-xpath/dist/index.js" - ] - }, - "MCP-Mirror/kimtaeyoon83_mcp-server-youtube-transcript": { - "package_name": "MCP-Mirror/kimtaeyoon83_mcp-server-youtube-transcript", - "repo_url": "https://github.com/MCP-Mirror/kimtaeyoon83_mcp-server-youtube-transcript", - "command": "npx", - "args": [ - "-y", - "@kimtaeyoon83/mcp-server-youtube-transcript" - ] - }, - "piddlingtuna/tfnsw-realtime-alerts-mcp-server": { - "package_name": "piddlingtuna/tfnsw-realtime-alerts-mcp-server", - "repo_url": "https://github.com/piddlingtuna/tfnsw-realtime-alerts-mcp-server", - "command": "npx", - "args": [ - "-y", - "tfnsw-realtime-alerts-mcp-server" - ], - "env": { - "NSW_TRANSPORT_API_KEY": "${NSW_TRANSPORT_API_KEY}" - } - }, - "OnStartups/agentai-mcp-server": { - "package_name": "OnStartups/agentai-mcp-server", - "repo_url": "https://github.com/OnStartups/agentai-mcp-server", - "command": "npx", - "args": [ - "-y", - "@agentai/mcp-server" - ], - "env": { - "API_TOKEN": "${API_TOKEN}" - } - }, - "noboru-i/nature-remo-mcp-server": { - "package_name": "noboru-i/nature-remo-mcp-server", - "repo_url": "https://github.com/noboru-i/nature-remo-mcp-server", - "command": "npx", - "args": [ - "-y", - "noboru-i/nature-remo-mcp-server" - ], - "env": { - "ACCESS_TOKEN": "${ACCESS_TOKEN}" - } - }, - "nicozumarraga/open-mcp": { - "package_name": "nicozumarraga/open-mcp", - "repo_url": "https://github.com/nicozumarraga/open-mcp", - "command": "npx", - "args": [ - "-y", - "kanye-mcp" - ] - }, - "MCP-Mirror/descope-sample-apps_descope-mcp-server": { - "package_name": "MCP-Mirror/descope-sample-apps_descope-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/descope-sample-apps_descope-mcp-server", - "command": "node", - "args": [ - "/path/to/descope-mcp-server/build/index.js" - ], - "env": { - "DESCOPE_PROJECT_ID": "${DESCOPE_PROJECT_ID}", - "DESCOPE_MANAGEMENT_KEY": "${DESCOPE_MANAGEMENT_KEY}" - } - }, - "PoliTwit1984/github-meta-mcp-server": { - "package_name": "PoliTwit1984/github-meta-mcp-server", - "repo_url": "https://github.com/PoliTwit1984/github-meta-mcp-server", - "command": "node", - "args": [ - "path/to/github-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "fakepixels/base-mcp-server": { - "package_name": "fakepixels/base-mcp-server", - "repo_url": "https://github.com/fakepixels/base-mcp-server", - "command": "npx", - "args": [ - "-y", - "base-network-mcp-server" - ], - "env": { - "BASE_PROVIDER_URL": "${BASE_PROVIDER_URL}", - "WALLET_PRIVATE_KEY": "${WALLET_PRIVATE_KEY}" - } - }, - "tejpalvirk/student": { - "package_name": "tejpalvirk/student", - "repo_url": "https://github.com/tejpalvirk/student", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp/student" - ] - }, - "jason-tan-swe/railway-mcp": { - "package_name": "jason-tan-swe/railway-mcp", - "repo_url": "https://github.com/jason-tan-swe/railway-mcp", - "command": "npx", - "args": [ - "-y", - "@jasontanswe/railway-mcp" - ], - "env": { - "RAILWAY_API_TOKEN": "${RAILWAY_API_TOKEN}" - } - }, - "satellaite/sat-mcp-server": { - "package_name": "satellaite/sat-mcp-server", - "repo_url": "https://github.com/satellaite/sat-mcp-server", - "command": "npx", - "args": [ - "-y", - "@satellaite/mcp-server" - ], - "env": { - "API_BASE_URL": "${API_BASE_URL}" - } - }, - "URDJMK/serpapi-mcp-server": { - "package_name": "URDJMK/serpapi-mcp-server", - "repo_url": "https://github.com/URDJMK/serpapi-mcp-server", - "command": "path/to/python", - "args": [ - "path/to/serpapi-mcp-server/src/serpapi_google_search.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "toolhouse-community/mcp-server-toolhouse": { - "package_name": "toolhouse-community/mcp-server-toolhouse", - "repo_url": "https://github.com/toolhouse-community/mcp-server-toolhouse", - "command": "uv", - "args": [ - "--directory", - "/path/to/this/folder/mcp-server-toolhouse", - "run", - "mcp_server_toolhouse" - ], - "env": { - "TOOLHOUSE_API_KEY": "${TOOLHOUSE_API_KEY}", - "TOOLHOUSE_BUNDLE_NAME": "${TOOLHOUSE_BUNDLE_NAME}" - } - }, - "sparfenyuk/mcp-proxy": { - "package_name": "sparfenyuk/mcp-proxy", - "repo_url": "https://github.com/sparfenyuk/mcp-proxy", - "command": "mcp-proxy", - "args": [ - "http://example.io/sse" - ], - "env": { - "API_ACCESS_TOKEN": "${API_ACCESS_TOKEN}" - } - }, - "theronic/modex": { - "package_name": "theronic/modex", - "repo_url": "https://github.com/theronic/modex", - "command": "java", - "args": [ - "-jar", - "/Users/your-username/code/modex/target/modex-mcp-0.2.2.jar" - ] - }, - "bajoski34/mcp-flutterwave": { - "package_name": "bajoski34/mcp-flutterwave", - "repo_url": "https://github.com/bajoski34/mcp-flutterwave", - "command": "npx", - "args": [ - "-y", - "mcp-flutterwave", - "--tools=checkout.create", - "--secret-key=FLW_SECRET_KEY" - ] - }, - "zhangzhongnan928/mcp-evm-signer": { - "package_name": "zhangzhongnan928/mcp-evm-signer", - "repo_url": "https://github.com/zhangzhongnan928/mcp-evm-signer", - "command": "node", - "args": [ - "/path/to/mcp-evm-signer/build/index.js" - ], - "env": { - "INFURA_API_KEY": "${INFURA_API_KEY}", - "DEFAULT_NETWORK": "${DEFAULT_NETWORK}", - "ENCRYPT_KEYS": "${ENCRYPT_KEYS}", - "KEY_PASSWORD": "${KEY_PASSWORD}" - } - }, - "ihrpr/mcp-server-jupyter": { - "package_name": "ihrpr/mcp-server-jupyter", - "repo_url": "https://github.com/ihrpr/mcp-server-jupyter", - "command": "uv", - "args": [ - "run", - "--directory", - "/Users/inna/mcp-server-jupyter/src/mcp_server_jupyter", - "mcp-server-jupyter" - ], - "env": { - "UV_PROJECT_ENVIRONMENT": "${UV_PROJECT_ENVIRONMENT}" - } - }, - "BRO3886/mcp-memory-custom": { - "package_name": "BRO3886/mcp-memory-custom", - "repo_url": "https://github.com/BRO3886/mcp-memory-custom", - "command": "node", - "args": [ - "/path/to/mcp-memory-custom/dist/index.js" - ] - }, - "Braffolk/mcp-summarization-functions": { - "package_name": "Braffolk/mcp-summarization-functions", - "repo_url": "https://github.com/Braffolk/mcp-summarization-functions", - "command": "node", - "args": [ - "path/to/summarization-functions/build/index.js" - ], - "env": { - "PROVIDER": "${PROVIDER}", - "API_KEY": "${API_KEY}", - "MODEL_ID": "${MODEL_ID}", - "MCP_WORKING_DIR": "${MCP_WORKING_DIR}" - } - }, - "elizabethtrykin/oura-mcp": { - "package_name": "elizabethtrykin/oura-mcp", - "repo_url": "https://github.com/elizabethtrykin/oura-mcp", - "command": "node", - "args": [ - "/absolute/path/to/oura-mcp/build/index.js" - ], - "env": { - "OURA_PERSONAL_ACCESS_TOKEN": "${OURA_PERSONAL_ACCESS_TOKEN}" - } - }, - "mikecreighton/mikecreighton-dot-com-content-mcp": { - "package_name": "mikecreighton/mikecreighton-dot-com-content-mcp", - "repo_url": "https://github.com/mikecreighton/mikecreighton-dot-com-content-mcp", - "command": "uv", - "args": [ - "--directory", - "/absolute/path/to/mikecreighton-dot-com-content-mcp", - "run", - "server.py" - ] - }, - "gentoro-GT/mcp-nodejs-server": { - "package_name": "gentoro-GT/mcp-nodejs-server", - "repo_url": "https://github.com/gentoro-GT/mcp-nodejs-server", - "command": "npx", - "args": [ - "-y", - "@gentoro/mcp-nodejs-server" - ], - "env": { - "GENTORO_KEY": "${GENTORO_KEY}" - } - }, - "blake365/macrostrat-mcp": { - "package_name": "blake365/macrostrat-mcp", - "repo_url": "https://github.com/blake365/macrostrat-mcp", - "command": "node", - "args": [ - "/Full/Route/to/Folder/macrostrat/build/index.js" - ] - }, - "nervouslimit/code-sandbox-mcp": { - "package_name": "nervouslimit/code-sandbox-mcp", - "repo_url": "https://github.com/nervouslimit/code-sandbox-mcp", - "command": "C:\\path\\to\\code-sandbox-mcp.exe", - "args": [] - }, - "tokenizin-agency/mcp-npx-fetch": { - "package_name": "tokenizin-agency/mcp-npx-fetch", - "repo_url": "https://github.com/tokenizin-agency/mcp-npx-fetch", - "command": "npx", - "args": [ - "-y", - "@tokenizin/mcp-npx-fetch" - ] - }, - "msaelices/whatsapp-mcp-server": { - "package_name": "msaelices/whatsapp-mcp-server", - "repo_url": "https://github.com/msaelices/whatsapp-mcp-server", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "-e", - "GREENAPI_ID_INSTANCE=your_instance_id", - "-e", - "GREENAPI_API_TOKEN=your_api_token", - "whatsapp-mcp-server" - ] - }, - "kaznak/alertmanager-mcp": { - "package_name": "kaznak/alertmanager-mcp", - "repo_url": "https://github.com/kaznak/alertmanager-mcp", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "--network=host", - "-e", - "ALERTMANAGER_URL=http://your-alertmanager-url:9093", - "ghcr.io/kaznak/alertmanager-mcp:latest" - ] - }, - "Hawstein/mcp-server-reddit": { - "package_name": "Hawstein/mcp-server-reddit", - "repo_url": "https://github.com/Hawstein/mcp-server-reddit", - "command": "python", - "args": [ - "-m", - "mcp_server_reddit" - ] - }, - "nickbaumann98/release-notes-server": { - "package_name": "nickbaumann98/release-notes-server", - "repo_url": "https://github.com/nickbaumann98/release-notes-server", - "command": "node", - "args": [ - "/path/to/release-notes-server/build/index.js" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "noahgsolomon/pumpfun-mcp-server": { - "package_name": "noahgsolomon/pumpfun-mcp-server", - "repo_url": "https://github.com/noahgsolomon/pumpfun-mcp-server", - "command": "node", - "args": [ - "/Users/noahsolomon/Desktop/pumpfun-mcp/build/index.js" - ], - "env": { - "HELIUS_RPC_URL": "${HELIUS_RPC_URL}" - } - }, - "1mcp-app/agent": { - "package_name": "1mcp-app/agent", - "repo_url": "https://github.com/1mcp-app/agent", - "command": "uvx", - "args": [ - "mcp-server-fetch" - ] - }, - "aallsbury/qb-time-mcp-server": { - "package_name": "aallsbury/qb-time-mcp-server", - "repo_url": "https://github.com/aallsbury/qb-time-mcp-server", - "command": "python", - "args": [ - "./qb-time-mcp-server/main.py" - ], - "env": { - "QB_TIME_ACCESS_TOKEN": "${QB_TIME_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/AgentWong_iac-memory-mcp-server-project": { - "package_name": "MCP-Mirror/AgentWong_iac-memory-mcp-server-project", - "repo_url": "https://github.com/MCP-Mirror/AgentWong_iac-memory-mcp-server-project", - "command": "uvx", - "args": [ - "--from", - "git+https://github.com/AgentWong/iac-memory-mcp-server.git", - "python", - "-m", - "iac_memory_mcp_server" - ], - "env": { - "DATABASE_URL": "${DATABASE_URL}" - } - }, - "2b3pro/roam-research-mcp": { - "package_name": "2b3pro/roam-research-mcp", - "repo_url": "https://github.com/2b3pro/roam-research-mcp", - "command": "node", - "args": [ - "/path/to/roam-research-mcp/build/index.js" - ], - "env": { - "ROAM_API_TOKEN": "${ROAM_API_TOKEN}", - "ROAM_GRAPH_NAME": "${ROAM_GRAPH_NAME}", - "MEMORIES_TAG": "${MEMORIES_TAG}" - } - }, - "sionic-ai/serverless-rag-mcp-server": { - "package_name": "sionic-ai/serverless-rag-mcp-server", - "repo_url": "https://github.com/sionic-ai/serverless-rag-mcp-server", - "command": "sh", - "args": [ - "/Users/sigridjineth/Desktop/work/storm-mcp-server/scripts/run.sh" - ] - }, - "rtuin/mcp-mermaid-validator": { - "package_name": "rtuin/mcp-mermaid-validator", - "repo_url": "https://github.com/rtuin/mcp-mermaid-validator", - "command": "npx", - "args": [ - "-y", - "@rtuin/mcp-mermaid-validator" - ] - }, - "fireproof-storage/mcp-database-server": { - "package_name": "fireproof-storage/mcp-database-server", - "repo_url": "https://github.com/fireproof-storage/mcp-database-server", - "command": "/path/to/fireproof-mcp/build/index.js" - }, - "androidStern/ableton-vibe": { - "package_name": "androidStern/ableton-vibe", - "repo_url": "https://github.com/androidStern/ableton-vibe", - "command": "node", - "args": [ - "/ableton-vibe/ableton-mcp.js" - ] - }, - "dandeliongold/mcp-time": { - "package_name": "dandeliongold/mcp-time", - "repo_url": "https://github.com/dandeliongold/mcp-time", - "command": "npx", - "args": [ - "@dandeliongold/mcp-time" - ] - }, - "fenxer/steam-review-mcp": { - "package_name": "fenxer/steam-review-mcp", - "repo_url": "https://github.com/fenxer/steam-review-mcp", - "command": "npx", - "args": [ - "steam-review-mcp" - ] - }, - "kevinwatt/yt-dlp-mcp": { - "package_name": "kevinwatt/yt-dlp-mcp", - "repo_url": "https://github.com/kevinwatt/yt-dlp-mcp", - "command": "npx", - "args": [ - "-y", - "@kevinwatt/yt-dlp-mcp" - ] - }, - "cremich/promptz-mcp": { - "package_name": "cremich/promptz-mcp", - "repo_url": "https://github.com/cremich/promptz-mcp", - "command": "npx", - "args": [ - "-y", - "@promptz/mcp" - ], - "env": { - "PROMPTZ_API_URL": "${PROMPTZ_API_URL}", - "PROMPTZ_API_KEY": "${PROMPTZ_API_KEY}" - } - }, - "huyouare/manus-mcp": { - "package_name": "huyouare/manus-mcp", - "repo_url": "https://github.com/huyouare/manus-mcp", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/manus-mcp", - "run", - "mcp_server.py" - ] - }, - "Zhwt/go-mcp-mysql": { - "package_name": "Zhwt/go-mcp-mysql", - "repo_url": "https://github.com/Zhwt/go-mcp-mysql", - "command": "C:\\Users\\\\Downloads\\go-mcp-mysql.exe", - "args": [] - }, - "maoxiaoke/create-mcp-server": { - "package_name": "maoxiaoke/create-mcp-server", - "repo_url": "https://github.com/maoxiaoke/create-mcp-server", - "command": "npx", - "args": [ - "-y", - "create-mcp-server@latest" - ] - }, - "MaxWeeden/mcp-dnsdumpster": { - "package_name": "MaxWeeden/mcp-dnsdumpster", - "repo_url": "https://github.com/MaxWeeden/mcp-dnsdumpster", - "command": "uvx", - "args": [ - "mcp-dnsdumpster" - ], - "env": { - "DNSDUMPSTER_API_KEY": "${DNSDUMPSTER_API_KEY}" - } - }, - "biswapm/MCP-SSE1": { - "package_name": "biswapm/MCP-SSE1", - "repo_url": "https://github.com/biswapm/MCP-SSE1", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-aws-kb-retrieval" - ], - "env": { - "AWS_ACCESS_KEY_ID": "${AWS_ACCESS_KEY_ID}", - "AWS_SECRET_ACCESS_KEY": "${AWS_SECRET_ACCESS_KEY}", - "AWS_REGION": "${AWS_REGION}" - } - }, - "MCP-Mirror/tatn_mcp-server-fetch-typescript": { - "package_name": "MCP-Mirror/tatn_mcp-server-fetch-typescript", - "repo_url": "https://github.com/MCP-Mirror/tatn_mcp-server-fetch-typescript", - "command": "node", - "args": [ - "/path/to/mcp-server-fetch-typescript/build/index.js" - ] - }, - "RamXX/mcp-tavily": { - "package_name": "RamXX/mcp-tavily", - "repo_url": "https://github.com/RamXX/mcp-tavily", - "command": "python", - "args": [ - "-m", - "mcp_server_tavily" - ] - }, - "cline/linear-mcp": { - "package_name": "cline/linear-mcp", - "repo_url": "https://github.com/cline/linear-mcp", - "command": "node", - "args": [ - "/path/to/linear-mcp/build/index.js" - ], - "env": { - "LINEAR_ACCESS_TOKEN": "${LINEAR_ACCESS_TOKEN}" - } - }, - "riza-io/mcp-go": { - "package_name": "riza-io/mcp-go", - "repo_url": "https://github.com/riza-io/mcp-go", - "command": "/path/to/mcp-go-fs", - "args": [ - "/path/to/root/directory" - ] - }, - "aashari/mcp-atlassian-jira": { - "package_name": "aashari/mcp-atlassian-jira", - "repo_url": "https://github.com/aashari/mcp-atlassian-jira", - "command": "npx", - "args": [ - "-y", - "aashari/mcp-atlassian-jira" - ] - }, - "MCP-Mirror/h-yanagawa_research-mcp-server": { - "package_name": "MCP-Mirror/h-yanagawa_research-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/h-yanagawa_research-mcp-server", - "command": "uv", - "args": [ - "run", - "--with", - "mcp[cli]", - "--with", - "notion-client", - "--with", - "pydantic", - "mcp", - "run", - "/path/to/research-mcp-server/server.py" - ] - }, - "QuantGeekDev/mongo-mcp": { - "package_name": "QuantGeekDev/mongo-mcp", - "repo_url": "https://github.com/QuantGeekDev/mongo-mcp", - "command": "node", - "args": [ - "dist/index.js", - "mongodb://root:example@localhost:27017/test?authSource=admin" - ] - }, - "dcSpark/mcp-server-jupiter": { - "package_name": "dcSpark/mcp-server-jupiter", - "repo_url": "https://github.com/dcSpark/mcp-server-jupiter", - "command": "npx", - "args": [ - "@mcp-dockmaster/mcp-server-jupiter" - ] - }, - "MCP-Mirror/JANHMS_needle-mcp-server": { - "package_name": "MCP-Mirror/JANHMS_needle-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/JANHMS_needle-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/needle-mcp", - "run", - "needle-mcp" - ], - "env": { - "NEEDLE_API_KEY": "${NEEDLE_API_KEY}" - } - }, - "ServiceStack/servicestack-mcp": { - "package_name": "ServiceStack/servicestack-mcp", - "repo_url": "https://github.com/ServiceStack/servicestack-mcp", - "command": "/path/to/@servicestack/mcp/build/index.js" - }, - "stefw/boamp-server": { - "package_name": "stefw/boamp-server", - "repo_url": "https://github.com/stefw/boamp-server", - "command": "/path/to/boamp-server/build/index.js" - }, - "Bigsy/Clojars-MCP-Server": { - "package_name": "Bigsy/Clojars-MCP-Server", - "repo_url": "https://github.com/Bigsy/Clojars-MCP-Server", - "command": "node", - "args": [ - "/path/to/clojars-deps-server/build/index.js" - ] - }, - "MCP-Mirror/designcomputer_mysql_mcp_server": { - "package_name": "MCP-Mirror/designcomputer_mysql_mcp_server", - "repo_url": "https://github.com/MCP-Mirror/designcomputer_mysql_mcp_server", - "command": "uv", - "args": [ - "--directory", - "path/to/mysql_mcp_server", - "run", - "mysql_mcp_server" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "peterparker57/project-hub-mcp-server": { - "package_name": "peterparker57/project-hub-mcp-server", - "repo_url": "https://github.com/peterparker57/project-hub-mcp-server", - "command": "node", - "args": [ - "path/to/project-hub-mcp-server/dist/index.js" - ], - "env": { - "NODE_ENV": "${NODE_ENV}", - "DEFAULT_PRIVATE": "${DEFAULT_PRIVATE}", - "DEFAULT_OWNER": "${DEFAULT_OWNER}", - "GITHUB_TOKEN": "${GITHUB_TOKEN}", - "GIT_PATH": "${GIT_PATH}" - } - }, - "MCP-Mirror/c0h1b4_mssql-mcp-server": { - "package_name": "MCP-Mirror/c0h1b4_mssql-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/c0h1b4_mssql-mcp-server", - "command": "mssql-mcp-server", - "env": { - "MSSQL_CONNECTION_STRING": "${MSSQL_CONNECTION_STRING}", - "MSSQL_HOST": "${MSSQL_HOST}", - "MSSQL_PORT": "${MSSQL_PORT}", - "MSSQL_DATABASE": "${MSSQL_DATABASE}", - "MSSQL_USER": "${MSSQL_USER}", - "MSSQL_PASSWORD": "${MSSQL_PASSWORD}", - "MSSQL_ENCRYPT": "${MSSQL_ENCRYPT}", - "MSSQL_TRUST_SERVER_CERTIFICATE": "${MSSQL_TRUST_SERVER_CERTIFICATE}" - } - }, - "lalanikarim/systemctl-mcp-server": { - "package_name": "lalanikarim/systemctl-mcp-server", - "repo_url": "https://github.com/lalanikarim/systemctl-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-perplexity-ask" - ], - "env": { - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}" - } - }, - "jalateras/weather": { - "package_name": "jalateras/weather", - "repo_url": "https://github.com/jalateras/weather", - "command": "python", - "args": [ - "-m", - "main" - ] - }, - "reminia/zendesk-mcp-server": { - "package_name": "reminia/zendesk-mcp-server", - "repo_url": "https://github.com/reminia/zendesk-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/path/to/zendesk-mcp-server", - "run", - "zendesk" - ] - }, - "BurtTheCoder/mcp-dnstwist": { - "package_name": "BurtTheCoder/mcp-dnstwist", - "repo_url": "https://github.com/BurtTheCoder/mcp-dnstwist", - "command": "node", - "args": [ - "/absolute/path/to/mcp-dnstwist/build/index.js" - ] - }, - "brianellin/bsky-mcp-server": { - "package_name": "brianellin/bsky-mcp-server", - "repo_url": "https://github.com/brianellin/bsky-mcp-server", - "command": "node", - "args": [ - "/path/to/bsky-mcp-server/build/src/index.js" - ], - "env": { - "BLUESKY_IDENTIFIER": "${BLUESKY_IDENTIFIER}", - "BLUESKY_APP_PASSWORD": "${BLUESKY_APP_PASSWORD}", - "BLUESKY_SERVICE_URL": "${BLUESKY_SERVICE_URL}" - } - }, - "hellokaton/unsplash-mcp-server": { - "package_name": "hellokaton/unsplash-mcp-server", - "repo_url": "https://github.com/hellokaton/unsplash-mcp-server", - "command": "uv", - "args": [ - "run", - "--with", - "fastmcp", - "fastmcp", - "run", - "./server.py" - ], - "env": { - "UNSPLASH_ACCESS_KEY": "${UNSPLASH_ACCESS_KEY}" - } - }, - "PhialsBasement/mcp-github-server-plus": { - "package_name": "PhialsBasement/mcp-github-server-plus", - "repo_url": "https://github.com/PhialsBasement/mcp-github-server-plus", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "MCP-Mirror/phil65_mcp-server-llmling": { - "package_name": "MCP-Mirror/phil65_mcp-server-llmling", - "repo_url": "https://github.com/MCP-Mirror/phil65_mcp-server-llmling", - "command": "uvx", - "args": [ - "mcp-server-llmling", - "start", - "path/to/your/config.yml" - ] - }, - "zilliztech/mcp-server-milvus": { - "package_name": "zilliztech/mcp-server-milvus", - "repo_url": "https://github.com/zilliztech/mcp-server-milvus", - "command": "/PATH/TO/uv", - "args": [ - "--directory", - "/path/to/mcp-server-milvus/src/mcp_server_milvus", - "run", - "server.", - "--milvus-uri", - "http://127.0.0.1:19530" - ] - }, - "cheerlights/cheerlights-mcp": { - "package_name": "cheerlights/cheerlights-mcp", - "repo_url": "https://github.com/cheerlights/cheerlights-mcp", - "command": "python", - "args": [ - "path/to/server.py" - ] - }, - "stefans71/wordpress-mcp-server": { - "package_name": "stefans71/wordpress-mcp-server", - "repo_url": "https://github.com/stefans71/wordpress-mcp-server", - "command": "node", - "args": [ - "path/to/wordpress-server/build/index.js" - ] - }, - "seanivore/the-pensieve": { - "package_name": "seanivore/the-pensieve", - "repo_url": "https://github.com/seanivore/the-pensieve", - "command": "/path/to/The Pensieve/build/index.js" - }, - "cyanheads/obsidian-mcp-server": { - "package_name": "cyanheads/obsidian-mcp-server", - "repo_url": "https://github.com/cyanheads/obsidian-mcp-server", - "command": "node", - "args": [ - "/path/to/obsidian-mcp-server/build/index.js" - ], - "env": { - "OBSIDIAN_API_KEY": "${OBSIDIAN_API_KEY}", - "VERIFY_SSL": "${VERIFY_SSL}", - "OBSIDIAN_PROTOCOL": "${OBSIDIAN_PROTOCOL}", - "OBSIDIAN_HOST": "${OBSIDIAN_HOST}", - "OBSIDIAN_PORT": "${OBSIDIAN_PORT}", - "REQUEST_TIMEOUT": "${REQUEST_TIMEOUT}", - "MAX_CONTENT_LENGTH": "${MAX_CONTENT_LENGTH}", - "MAX_BODY_LENGTH": "${MAX_BODY_LENGTH}", - "RATE_LIMIT_WINDOW_MS": "${RATE_LIMIT_WINDOW_MS}", - "RATE_LIMIT_MAX_REQUESTS": "${RATE_LIMIT_MAX_REQUESTS}", - "TOOL_TIMEOUT_MS": "${TOOL_TIMEOUT_MS}" - } - }, - "csonigo/datagouv-mcp-server": { - "package_name": "csonigo/datagouv-mcp-server", - "repo_url": "https://github.com/csonigo/datagouv-mcp-server" - }, - "MCP-Mirror/sunsetcoder_flightradar24-mcp-server": { - "package_name": "MCP-Mirror/sunsetcoder_flightradar24-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/sunsetcoder_flightradar24-mcp-server", - "command": "node", - "args": [ - "/Users///flightradar24-mcp-server/dist/index.js" - ], - "env": { - "FR24_API_KEY": "${FR24_API_KEY}", - "FR24_API_URL": "${FR24_API_URL}" - } - }, - "langchain-ai/langchainjs-mcp-adapters": { - "package_name": "langchain-ai/langchainjs-mcp-adapters", - "repo_url": "https://github.com/langchain-ai/langchainjs-mcp-adapters" - }, - "GongRzhe/Calendar-Autoauth-MCP-Server": { - "package_name": "GongRzhe/Calendar-Autoauth-MCP-Server", - "repo_url": "https://github.com/GongRzhe/Calendar-Autoauth-MCP-Server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-v", - "mcp-calendar:/calendar-server", - "-e", - "CALENDAR_CREDENTIALS_PATH=/calendar-server/credentials.json", - "mcp/calendar" - ] - }, - "RegiByte/todo-list-mcp": { - "package_name": "RegiByte/todo-list-mcp", - "repo_url": "https://github.com/RegiByte/todo-list-mcp", - "command": "node", - "args": [ - "/absolute/path/to/todo-list-mcp/dist/index.js" - ] - }, - "AdamikHQ/adamik-mcp-server": { - "package_name": "AdamikHQ/adamik-mcp-server", - "repo_url": "https://github.com/AdamikHQ/adamik-mcp-server", - "command": "node", - "args": [ - "/Users/YourUsername/GitHub/adamik-mcp-server/build/index.js" - ] - }, - "liaokongVFX/MCP-Chinese-Getting-Started-Guide": { - "package_name": "liaokongVFX/MCP-Chinese-Getting-Started-Guide", - "repo_url": "https://github.com/liaokongVFX/MCP-Chinese-Getting-Started-Guide" - }, - "arathald/mcp-editor": { - "package_name": "arathald/mcp-editor", - "repo_url": "https://github.com/arathald/mcp-editor" - }, - "MCP-Mirror/HeatherFlux_github-issue-mcp-server": { - "package_name": "MCP-Mirror/HeatherFlux_github-issue-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/HeatherFlux_github-issue-mcp-server", - "command": "/path/to/github-server/build/index.js" - }, - "psaboia/mcp-server-pad": { - "package_name": "psaboia/mcp-server-pad", - "repo_url": "https://github.com/psaboia/mcp-server-pad", - "command": "", - "args": [ - "--directory", - "", - "run", - "main.py" - ], - "env": { - "FILESYSTEM_STORAGE": "${FILESYSTEM_STORAGE}" - } - }, - "Bob-lance/grok-mcp": { - "package_name": "Bob-lance/grok-mcp", - "repo_url": "https://github.com/Bob-lance/grok-mcp", - "command": "node", - "args": [ - "/path/to/grok-mcp/build/index.js" - ], - "env": { - "XAI_API_KEY": "${XAI_API_KEY}" - } - }, - "MCP-Mirror/Bigsy_maven-mcp-server": { - "package_name": "MCP-Mirror/Bigsy_maven-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/Bigsy_maven-mcp-server", - "command": "node", - "args": [ - "/path/to/maven-deps-server/build/index.js" - ] - }, - "Beyond-Network-AI/beyond-mcp-server": { - "package_name": "Beyond-Network-AI/beyond-mcp-server", - "repo_url": "https://github.com/Beyond-Network-AI/beyond-mcp-server", - "command": "/usr/local/bin/node", - "args": [ - "/full/path/to/beyond-mcp-server/dist/index.js", - "--stdio" - ], - "env": { - "NEYNAR_API_KEY": "${NEYNAR_API_KEY}", - "ENABLE_FARCASTER": "${ENABLE_FARCASTER}", - "ENABLE_TWITTER": "${ENABLE_TWITTER}" - } - }, - "kukapay/uniswap-poolspy-mcp": { - "package_name": "kukapay/uniswap-poolspy-mcp", - "repo_url": "https://github.com/kukapay/uniswap-poolspy-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/uniswap-poolspy-mcp", - "run", - "main.py" - ], - "env": { - "THEGRAPH_API_KEY": "${THEGRAPH_API_KEY}" - } - }, - "minhalvp/android-mcp-server": { - "package_name": "minhalvp/android-mcp-server", - "repo_url": "https://github.com/minhalvp/android-mcp-server", - "command": "path/to/uv", - "args": [ - "--directory", - "path/to/android-mcp-server", - "run", - "server.py" - ] - }, - "vrtejus/pymol-mcp": { - "package_name": "vrtejus/pymol-mcp", - "repo_url": "https://github.com/vrtejus/pymol-mcp", - "command": "/Users/username/pymol-mcp/venv/bin/python", - "args": [ - "/Users/username/pymol-mcp/pymol_mcp_server.py" - ] - }, - "ConechoAI/openai-websearch-mcp": { - "package_name": "ConechoAI/openai-websearch-mcp", - "repo_url": "https://github.com/ConechoAI/openai-websearch-mcp", - "command": "python", - "args": [ - "-m", - "openai_websearch_mcp" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}" - } - }, - "newideas99/RAT-retrieval-augmented-thinking-MCP": { - "package_name": "newideas99/RAT-retrieval-augmented-thinking-MCP", - "repo_url": "https://github.com/newideas99/RAT-retrieval-augmented-thinking-MCP", - "command": "/path/to/node", - "args": [ - "/path/to/rat-mcp-server/build/index.js" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}", - "OPENROUTER_API_KEY": "${OPENROUTER_API_KEY}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "DEFAULT_MODEL": "${DEFAULT_MODEL}", - "OPENROUTER_MODEL": "${OPENROUTER_MODEL}" - } - }, - "dceluis/tasker-mcp": { - "package_name": "dceluis/tasker-mcp", - "repo_url": "https://github.com/dceluis/tasker-mcp", - "command": "/home/luis/tasker-mcp/dist/tasker-mcp-server-cli-x86_64", - "args": [ - "--tools", - "/home/luis/tasker-mcp/dist/toolDescriptions.json", - "--tasker-host", - "192.168.1.123", - "--tasker-api-key", - "tk_...", - "--mode", - "stdio" - ] - }, - "ttjslbz001/akshare_mcp_server": { - "package_name": "ttjslbz001/akshare_mcp_server", - "repo_url": "https://github.com/ttjslbz001/akshare_mcp_server", - "command": "uv", - "args": [ - "--directory", - "/path/to/akshare_mcp_server", - "run", - "akshare-mcp" - ], - "env": { - "AKSHARE_API_KEY": "${AKSHARE_API_KEY}" - } - }, - "MCP-Mirror/mixelpixx_GoogleSearch_McpServer": { - "package_name": "MCP-Mirror/mixelpixx_GoogleSearch_McpServer", - "repo_url": "https://github.com/MCP-Mirror/mixelpixx_GoogleSearch_McpServer", - "command": "npm", - "args": [ - "run", - "start:all" - ] - }, - "qpd-v/mcp-communicator-telegram": { - "package_name": "qpd-v/mcp-communicator-telegram", - "repo_url": "https://github.com/qpd-v/mcp-communicator-telegram", - "command": "node", - "args": [ - "path/to/mcp-communicator-telegram/build/index.js" - ], - "env": { - "TELEGRAM_TOKEN": "${TELEGRAM_TOKEN}", - "CHAT_ID": "${CHAT_ID}" - } - }, - "vincentf305/mcp-server-deepseek": { - "package_name": "vincentf305/mcp-server-deepseek", - "repo_url": "https://github.com/vincentf305/mcp-server-deepseek", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "DEEPSEEK_API_KEY", - "mcp_server_deepseek" - ], - "env": { - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "yoko19191/bocha-ai-mcp-server": { - "package_name": "yoko19191/bocha-ai-mcp-server", - "repo_url": "https://github.com/yoko19191/bocha-ai-mcp-server", - "command": "node", - "args": [ - "/ABSOLUTE/PATH/bocha-ai-mcp-server/build/index.js" - ], - "env": { - "BOCHA_API_KEY": "${BOCHA_API_KEY}" - } - }, - "delorenj/mcp-qdrant-memory": { - "package_name": "delorenj/mcp-qdrant-memory", - "repo_url": "https://github.com/delorenj/mcp-qdrant-memory", - "command": "/bin/zsh", - "args": [ - "-c", - "cd /path/to/server && node dist/index.js" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "QDRANT_API_KEY": "${QDRANT_API_KEY}", - "QDRANT_URL": "${QDRANT_URL}", - "QDRANT_COLLECTION_NAME": "${QDRANT_COLLECTION_NAME}" - } - }, - "MCP-Mirror/suekou_mcp-notion-server": { - "package_name": "MCP-Mirror/suekou_mcp-notion-server", - "repo_url": "https://github.com/MCP-Mirror/suekou_mcp-notion-server", - "command": "node", - "args": [ - "your-built-file-path" - ], - "env": { - "NOTION_API_TOKEN": "${NOTION_API_TOKEN}" - } - }, - "splendasucks/webperfect-mcp-server": { - "package_name": "splendasucks/webperfect-mcp-server", - "repo_url": "https://github.com/splendasucks/webperfect-mcp-server", - "command": "node", - "args": [ - "/path/to/webperfect-mcp-server/build/index.js" - ] - }, - "cr7258/elasticsearch-mcp-server": { - "package_name": "cr7258/elasticsearch-mcp-server", - "repo_url": "https://github.com/cr7258/elasticsearch-mcp-server" - }, - "dpflucas/mysql-mcp-server": { - "package_name": "dpflucas/mysql-mcp-server", - "repo_url": "https://github.com/dpflucas/mysql-mcp-server", - "command": "node", - "args": [ - "/path/to/mysql-mcp-server/build/index.js" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASSWORD": "${MYSQL_PASSWORD}", - "MYSQL_DATABASE": "${MYSQL_DATABASE}" - } - }, - "bigcodegen/mcp-neovim-server": { - "package_name": "bigcodegen/mcp-neovim-server", - "repo_url": "https://github.com/bigcodegen/mcp-neovim-server", - "command": "npx", - "args": [ - "-y", - "mcp-neovim-server" - ], - "env": { - "ALLOW_SHELL_COMMANDS": "${ALLOW_SHELL_COMMANDS}", - "NVIM_SOCKET_PATH": "${NVIM_SOCKET_PATH}" - } - }, - "terilios/smartsheet-server": { - "package_name": "terilios/smartsheet-server", - "repo_url": "https://github.com/terilios/smartsheet-server", - "command": "/Users/[username]/anaconda3/envs/cline_mcp_env/bin/node", - "args": [ - "/path/to/smartsheet-server/build/index.js" - ], - "env": { - "PYTHON_PATH": "${PYTHON_PATH}", - "SMARTSHEET_API_KEY": "${SMARTSHEET_API_KEY}", - "AZURE_OPENAI_API_KEY": "${AZURE_OPENAI_API_KEY}", - "AZURE_OPENAI_API_BASE": "${AZURE_OPENAI_API_BASE}", - "AZURE_OPENAI_API_VERSION": "${AZURE_OPENAI_API_VERSION}", - "AZURE_OPENAI_DEPLOYMENT": "${AZURE_OPENAI_DEPLOYMENT}" - } - }, - "sjquant/llm-bridge-mcp": { - "package_name": "sjquant/llm-bridge-mcp", - "repo_url": "https://github.com/sjquant/llm-bridge-mcp", - "command": "uvx", - "args": [ - "llm-bridge-mcp" - ], - "env": { - "OPENAI_API_KEY": "${OPENAI_API_KEY}", - "ANTHROPIC_API_KEY": "${ANTHROPIC_API_KEY}", - "GOOGLE_API_KEY": "${GOOGLE_API_KEY}", - "DEEPSEEK_API_KEY": "${DEEPSEEK_API_KEY}" - } - }, - "erithwik/mcp-hn": { - "package_name": "erithwik/mcp-hn", - "repo_url": "https://github.com/erithwik/mcp-hn", - "command": "uvx", - "args": [ - "mcp-hn" - ] - }, - "mrwyndham/pocketbase-mcp": { - "package_name": "mrwyndham/pocketbase-mcp", - "repo_url": "https://github.com/mrwyndham/pocketbase-mcp", - "command": "node", - "args": [ - "build/index.js" - ], - "env": { - "POCKETBASE_URL": "${POCKETBASE_URL}", - "POCKETBASE_ADMIN_EMAIL": "${POCKETBASE_ADMIN_EMAIL}", - "POCKETBASE_ADMIN_PASSWORD": "${POCKETBASE_ADMIN_PASSWORD}" - } - }, - "wricardo/gpt-mcp-proxy": { - "package_name": "wricardo/gpt-mcp-proxy", - "repo_url": "https://github.com/wricardo/gpt-mcp-proxy", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-filesystem", - "/Users/username/Desktop", - "/path/to/other/allowed/dir" - ] - }, - "MCP-Mirror/garc33_bitbucket-server-mcp-server": { - "package_name": "MCP-Mirror/garc33_bitbucket-server-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/garc33_bitbucket-server-mcp-server", - "command": "node", - "args": [ - "/path/to/bitbucket-server/build/index.js" - ], - "env": { - "BITBUCKET_URL": "${BITBUCKET_URL}", - "BITBUCKET_TOKEN": "${BITBUCKET_TOKEN}", - "BITBUCKET_USERNAME": "${BITBUCKET_USERNAME}", - "BITBUCKET_PASSWORD": "${BITBUCKET_PASSWORD}" - } - }, - "harlanc/xiu": { - "package_name": "harlanc/xiu", - "repo_url": "https://github.com/harlanc/xiu", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-redis", - "redis://localhost:6379" - ] - }, - "MCP-Mirror/PoliTwit1984_second-opinion-mcp-server": { - "package_name": "MCP-Mirror/PoliTwit1984_second-opinion-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/PoliTwit1984_second-opinion-mcp-server", - "command": "node", - "args": [ - "/path/to/second-opinion-server/build/index.js" - ], - "env": { - "GEMINI_API_KEY": "${GEMINI_API_KEY}", - "PERPLEXITY_API_KEY": "${PERPLEXITY_API_KEY}", - "STACK_EXCHANGE_KEY": "${STACK_EXCHANGE_KEY}" - } - }, - "isaacphi/mcp-language-server": { - "package_name": "isaacphi/mcp-language-server", - "repo_url": "https://github.com/isaacphi/mcp-language-server", - "command": "/full/path/to/your/clone/mcp-language-server/mcp-language-server", - "args": [ - "--workspace", - "/path/to/workspace", - "--lsp", - "/path/to/language/server" - ], - "env": { - "DEBUG": "${DEBUG}" - } - }, - "scarqin/mcp-apikit": { - "package_name": "scarqin/mcp-apikit", - "repo_url": "https://github.com/scarqin/mcp-apikit", - "command": "node", - "args": [ - "/Users/{userName}/Documents/mcp-apikit/dist/index.js" - ] - }, - "bmorphism/slowtime-mcp-server": { - "package_name": "bmorphism/slowtime-mcp-server", - "repo_url": "https://github.com/bmorphism/slowtime-mcp-server", - "command": "node", - "args": [ - "/path/to/slowtime-mcp-server/build/index.js" - ] - }, - "luis1232023/nest-llm-aigent": { - "package_name": "luis1232023/nest-llm-aigent", - "repo_url": "https://github.com/luis1232023/nest-llm-aigent", - "args": [ - "server.js" - ] - }, - "MCP-Mirror/johnnyoshika_mcp-server-sqlite-npx": { - "package_name": "MCP-Mirror/johnnyoshika_mcp-server-sqlite-npx", - "repo_url": "https://github.com/MCP-Mirror/johnnyoshika_mcp-server-sqlite-npx", - "command": "/absolute/path/to/node", - "args": [ - "/absolute/path/to/index.js", - "/absolute/path/to/database.db" - ] - }, - "husniadil/mcp-image-placeholder": { - "package_name": "husniadil/mcp-image-placeholder", - "repo_url": "https://github.com/husniadil/mcp-image-placeholder", - "command": "uv", - "args": [ - "--directory", - "/ABSOLUTE/PATH/TO/PROJECT", - "run", - "main.py" - ] - }, - "chromewillow/greyhack-mcp-server": { - "package_name": "chromewillow/greyhack-mcp-server", - "repo_url": "https://github.com/chromewillow/greyhack-mcp-server", - "command": "npx", - "args": [ - "-y", - "@smithery/cli@latest", - "run", - "@chromewillow/greyhack-mcp-server", - "--config", - "{\"GITHUB_TOKEN\":\"your-github-token-here\"}" - ] - }, - "tuananh/hyper-mcp": { - "package_name": "tuananh/hyper-mcp", - "repo_url": "https://github.com/tuananh/hyper-mcp", - "command": "/path/to/hyper-mcp", - "args": [ - "" - ] - }, - "rmtech1/txtai-assistant-mcp": { - "package_name": "rmtech1/txtai-assistant-mcp", - "repo_url": "https://github.com/rmtech1/txtai-assistant-mcp", - "command": "path/to/txtai-assistant-mcp/scripts/start.sh" - }, - "ZahidGalea/windtools-mcp": { - "package_name": "ZahidGalea/windtools-mcp", - "repo_url": "https://github.com/ZahidGalea/windtools-mcp", - "command": "uv", - "args": [ - "run", - "windtools-mcp" - ], - "env": { - "DATA_ROOT": "${DATA_ROOT}", - "CHROMA_DB_FOLDER_NAME": "${CHROMA_DB_FOLDER_NAME}", - "SENTENCE_TRANSFORMER_PATH": "${SENTENCE_TRANSFORMER_PATH}" - } - }, - "sapientpants/sonarqube-mcp-server": { - "package_name": "sapientpants/sonarqube-mcp-server", - "repo_url": "https://github.com/sapientpants/sonarqube-mcp-server", - "command": "node", - "args": [ - "/path/to/sonarqube-mcp-server/dist/index.js" - ], - "env": { - "SONARQUBE_TOKEN": "${SONARQUBE_TOKEN}" - } - }, - "playcanvas/mcp-editor": { - "package_name": "playcanvas/mcp-editor", - "repo_url": "https://github.com/playcanvas/mcp-editor", - "command": "npx", - "args": [ - "tsx", - "~/path/to/mcp-editor/src/server.ts" - ] - }, - "severity1/argocd-mcp": { - "package_name": "severity1/argocd-mcp", - "repo_url": "https://github.com/severity1/argocd-mcp", - "command": "/path/to/uv", - "args": [ - "--directory", - "/path/to/argocd-mcp", - "run", - "server.py" - ], - "env": { - "ARGOCD_TOKEN": "${ARGOCD_TOKEN}", - "ARGOCD_API_URL": "${ARGOCD_API_URL}", - "ARGOCD_VERIFY_SSL": "${ARGOCD_VERIFY_SSL}" - } - }, - "dstotijn/mcp-developer-overheid-api-register": { - "package_name": "dstotijn/mcp-developer-overheid-api-register", - "repo_url": "https://github.com/dstotijn/mcp-developer-overheid-api-register", - "command": "go", - "args": [ - "run", - "github.com/dstotijn/mcp-developer-overheid-api-register@main" - ] - }, - "cpropster/linear-mcp-server": { - "package_name": "cpropster/linear-mcp-server", - "repo_url": "https://github.com/cpropster/linear-mcp-server", - "command": "node", - "args": [ - "/path/to/linear-mcp-server/build/index.js" - ], - "env": { - "LINEAR_CLIENT_ID": "${LINEAR_CLIENT_ID}", - "LINEAR_CLIENT_SECRET": "${LINEAR_CLIENT_SECRET}", - "LINEAR_REDIRECT_URI": "${LINEAR_REDIRECT_URI}", - "LINEAR_REFRESH_TOKEN": "${LINEAR_REFRESH_TOKEN}" - } - }, - "stedwick/codecov-mcp": { - "package_name": "stedwick/codecov-mcp", - "repo_url": "https://github.com/stedwick/codecov-mcp", - "command": "npx", - "args": [ - "-y", - "codecov-mcp-server" - ], - "env": { - "CODECOV_API_KEY": "${CODECOV_API_KEY}", - "GIT_URL": "${GIT_URL}" - } - }, - "marcelmarais/obsidian-mcp-server": { - "package_name": "marcelmarais/obsidian-mcp-server", - "repo_url": "https://github.com/marcelmarais/obsidian-mcp-server", - "command": "node", - "args": [ - "obsidian-mcp-server/build/index.js", - "/path/to/your/vault" - ] - }, - "arbuthnot-eth/PayPal-MCP-Backdated": { - "package_name": "arbuthnot-eth/PayPal-MCP-Backdated", - "repo_url": "https://github.com/arbuthnot-eth/PayPal-MCP-Backdated", - "command": "node", - "args": [ - "path/to/paypal-mcp/build/index.js" - ], - "env": { - "PAYPAL_CLIENT_ID": "${PAYPAL_CLIENT_ID}", - "PAYPAL_CLIENT_SECRET": "${PAYPAL_CLIENT_SECRET}", - "PAYPAL_ENVIRONMENT": "${PAYPAL_ENVIRONMENT}" - } - }, - "MobileVibe/notification-mcp": { - "package_name": "MobileVibe/notification-mcp", - "repo_url": "https://github.com/MobileVibe/notification-mcp", - "command": "npx", - "args": [ - "cline-notification-server" - ], - "env": { - "TELEGRAM_BOT_TOKEN": "${TELEGRAM_BOT_TOKEN}", - "TELEGRAM_CHAT_ID": "${TELEGRAM_CHAT_ID}" - } - }, - "jmanhype/MCPheonix": { - "package_name": "jmanhype/MCPheonix", - "repo_url": "https://github.com/jmanhype/MCPheonix", - "command": "/path/to/executable", - "args": [ - "arg1", - "arg2" - ], - "env": { - "ENV_VAR1": "${ENV_VAR1}", - "ENV_VAR2": "${ENV_VAR2}" - } - }, - "teamcurri/mcp-linear": { - "package_name": "teamcurri/mcp-linear", - "repo_url": "https://github.com/teamcurri/mcp-linear", - "command": "/path/to/curri-mcp-server/build/index.js" - }, - "FutureUnreal/mcp-pdf2md": { - "package_name": "FutureUnreal/mcp-pdf2md", - "repo_url": "https://github.com/FutureUnreal/mcp-pdf2md", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-pdf2md", - "run", - "pdf2md", - "--output-dir", - "/path/to/output" - ], - "env": { - "MINERU_API_KEY": "${MINERU_API_KEY}" - } - }, - "spences10/mcp-svelte-docs": { - "package_name": "spences10/mcp-svelte-docs", - "repo_url": "https://github.com/spences10/mcp-svelte-docs", - "command": "node", - "args": [ - "/path/to/mcp-svelte-docs/dist/index.js" - ], - "env": { - "DEBUG": "${DEBUG}" - } - }, - "Cam10001110101/mcp-server-browser-use-ollama": { - "package_name": "Cam10001110101/mcp-server-browser-use-ollama", - "repo_url": "https://github.com/Cam10001110101/mcp-server-browser-use-ollama", - "command": "/path/to/.venv/bin/python", - "args": [ - "/path/to/server.py" - ] - }, - "Lespernater/mcp-server-bold": { - "package_name": "Lespernater/mcp-server-bold", - "repo_url": "https://github.com/Lespernater/mcp-server-bold", - "command": "/path/to/bin/python", - "args": [ - "-m", - "mcp_server_bold" - ] - }, - "chulanpro5/evm-mcp-server": { - "package_name": "chulanpro5/evm-mcp-server", - "repo_url": "https://github.com/chulanpro5/evm-mcp-server" - }, - "shreyaskarnik/huggingface-mcp-server": { - "package_name": "shreyaskarnik/huggingface-mcp-server", - "repo_url": "https://github.com/shreyaskarnik/huggingface-mcp-server", - "command": "uv", - "args": [ - "--directory", - "/absolute/path/to/huggingface-mcp-server", - "run", - "huggingface_mcp_server.py" - ], - "env": { - "HF_TOKEN": "${HF_TOKEN}" - } - }, - "gotohuman/gotohuman-mcp-server": { - "package_name": "gotohuman/gotohuman-mcp-server", - "repo_url": "https://github.com/gotohuman/gotohuman-mcp-server", - "command": "node", - "args": [ - "//build/index.js" - ], - "env": { - "GOTOHUMAN_API_KEY": "${GOTOHUMAN_API_KEY}" - } - }, - "pinecone-io/assistant-mcp": { - "package_name": "pinecone-io/assistant-mcp", - "repo_url": "https://github.com/pinecone-io/assistant-mcp", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "PINECONE_API_KEY", - "-e", - "PINECONE_ASSISTANT_HOST", - "pinecone/assistant-mcp" - ], - "env": { - "PINECONE_API_KEY": "${PINECONE_API_KEY}", - "PINECONE_ASSISTANT_HOST": "${PINECONE_ASSISTANT_HOST}" - } - }, - "portone-io/mcp-server": { - "package_name": "portone-io/mcp-server", - "repo_url": "https://github.com/portone-io/mcp-server", - "command": "uv", - "args": [ - "--directory", - "/your/absolute/path/to/portone-mcp-server", - "run", - "portone-mcp-server" - ] - }, - "matthewdcage/pbs-mcp-server": { - "package_name": "matthewdcage/pbs-mcp-server", - "repo_url": "https://github.com/matthewdcage/pbs-mcp-server", - "command": "node", - "args": [ - "path/to/pbs-mcp-standalone/build/index.js" - ], - "env": { - "PBS_API_SUBSCRIPTION_KEY": "${PBS_API_SUBSCRIPTION_KEY}" - } - }, - "ibraheem4/github-mcp": { - "package_name": "ibraheem4/github-mcp", - "repo_url": "https://github.com/ibraheem4/github-mcp", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-github" - ], - "env": { - "GITHUB_TOKEN": "${GITHUB_TOKEN}" - } - }, - "Albiemark/dbx-mcp-server": { - "package_name": "Albiemark/dbx-mcp-server", - "repo_url": "https://github.com/Albiemark/dbx-mcp-server", - "command": "node", - "args": [ - "/path/to/dbx-mcp-server/build/index.js" - ] - }, - "ramidecodes/mcp-server-notion": { - "package_name": "ramidecodes/mcp-server-notion", - "repo_url": "https://github.com/ramidecodes/mcp-server-notion", - "command": "npx", - "args": [ - "@ramidecodes/mcp-server-notion@latest", - "-y", - "--api-key=your-notion-integration-key" - ] - }, - "kukapay/pancakeswap-poolspy-mcp": { - "package_name": "kukapay/pancakeswap-poolspy-mcp", - "repo_url": "https://github.com/kukapay/pancakeswap-poolspy-mcp", - "command": "uv", - "args": [ - "--directory", - "path/to/pancakeswap-poolspy-mcp", - "run", - "main.py" - ], - "env": { - "THEGRAPH_API_KEY": "${THEGRAPH_API_KEY}" - } - }, - "9Ninety/MCPNotes": { - "package_name": "9Ninety/MCPNotes", - "repo_url": "https://github.com/9Ninety/MCPNotes", - "command": "npx", - "args": [ - "-y", - "-p", - "mcp-notes", - "mcp-notes-server", - "--dynamodb", - "dynamodb://access_key:secret_key@region/table" - ] - }, - "yuiseki/gyazo-mcp-server": { - "package_name": "yuiseki/gyazo-mcp-server", - "repo_url": "https://github.com/yuiseki/gyazo-mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "-e", - "GYAZO_ACCESS_TOKEN", - "gyazo-mcp-server" - ], - "env": { - "GYAZO_ACCESS_TOKEN": "${GYAZO_ACCESS_TOKEN}" - } - }, - "browsercat/browsercat-mcp-server": { - "package_name": "browsercat/browsercat-mcp-server", - "repo_url": "https://github.com/browsercat/browsercat-mcp-server", - "command": "npx", - "args": [ - "-y", - "@browsercatco/mcp-server" - ], - "env": { - "BROWSERCAT_API_KEY": "${BROWSERCAT_API_KEY}" - } - }, - "MCP-Mirror/tengfone_supabase-nextjs-mcp-server": { - "package_name": "MCP-Mirror/tengfone_supabase-nextjs-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/tengfone_supabase-nextjs-mcp-server", - "command": "/path/to/supabase-nextjs-server/build/index.js" - }, - "KS-GEN-AI/jira-mcp-server": { - "package_name": "KS-GEN-AI/jira-mcp-server", - "repo_url": "https://github.com/KS-GEN-AI/jira-mcp-server", - "command": "node", - "args": [ - "/PATH_TO_THE_PROJECT/build/index.js" - ], - "env": { - "JIRA_URL": "${JIRA_URL}", - "JIRA_API_MAIL": "${JIRA_API_MAIL}", - "JIRA_API_KEY": "${JIRA_API_KEY}" - } - }, - "seanivore/mcp-file-preview": { - "package_name": "seanivore/mcp-file-preview", - "repo_url": "https://github.com/seanivore/mcp-file-preview", - "command": "node", - "args": [ - "/path/to/mcp-file-preview/build/index.js" - ] - }, - "captain-blue210/anki-mcp-server": { - "package_name": "captain-blue210/anki-mcp-server", - "repo_url": "https://github.com/captain-blue210/anki-mcp-server", - "command": "node", - "args": [ - "path/to/anki-mcp-server/dist/index.js" - ] - }, - "theronic/datomic-mcp": { - "package_name": "theronic/datomic-mcp", - "repo_url": "https://github.com/theronic/datomic-mcp", - "command": "java", - "args": [ - "-jar", - "/Users/petrus/code/datomic-mcp/target/theronic-datomic-mcp-0.3.0.jar" - ], - "env": { - "DATOMIC_URI": "${DATOMIC_URI}" - } - }, - "MCP-Mirror/scorzeth_anki-mcp-server": { - "package_name": "MCP-Mirror/scorzeth_anki-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/scorzeth_anki-mcp-server", - "command": "/path/to/anki-server/build/index.js" - }, - "bsmi021/mcp-python-executor": { - "package_name": "bsmi021/mcp-python-executor", - "repo_url": "https://github.com/bsmi021/mcp-python-executor", - "command": "node", - "args": [ - "path/to/python-executor/build/index.js" - ], - "env": { - "PREINSTALLED_PACKAGES": "${PREINSTALLED_PACKAGES}", - "MAX_MEMORY_MB": "${MAX_MEMORY_MB}", - "EXECUTION_TIMEOUT_MS": "${EXECUTION_TIMEOUT_MS}", - "MAX_CONCURRENT_EXECUTIONS": "${MAX_CONCURRENT_EXECUTIONS}", - "LOG_LEVEL": "${LOG_LEVEL}", - "LOG_FORMAT": "${LOG_FORMAT}" - } - }, - "r-huijts/xcode-mcp-server": { - "package_name": "r-huijts/xcode-mcp-server", - "repo_url": "https://github.com/r-huijts/xcode-mcp-server", - "command": "node", - "args": [ - "/absolute/path/to/xcode-mcp-server/dist/index.js" - ], - "env": { - "PROJECTS_BASE_DIR": "${PROJECTS_BASE_DIR}" - } - }, - "bmorphism/nats-mcp-server": { - "package_name": "bmorphism/nats-mcp-server", - "repo_url": "https://github.com/bmorphism/nats-mcp-server", - "command": "node", - "args": [ - "/path/to/nats-mcp-server/build/index.js" - ], - "env": { - "NATS_URL": "${NATS_URL}" - } - }, - "zym9863/together-ai-image-server": { - "package_name": "zym9863/together-ai-image-server", - "repo_url": "https://github.com/zym9863/together-ai-image-server", - "command": "/path/to/together-ai-image-server/build/index.js" - }, - "MCP-Mirror/benborla_mcp-server-mysql": { - "package_name": "MCP-Mirror/benborla_mcp-server-mysql", - "repo_url": "https://github.com/MCP-Mirror/benborla_mcp-server-mysql", - "command": "/path/to/npx/binary/npx", - "args": [ - "-y", - "@benborla29/mcp-server-mysql" - ], - "env": { - "MYSQL_HOST": "${MYSQL_HOST}", - "MYSQL_PORT": "${MYSQL_PORT}", - "MYSQL_USER": "${MYSQL_USER}", - "MYSQL_PASS": "${MYSQL_PASS}", - "MYSQL_DB": "${MYSQL_DB}", - "PATH": "${PATH}" - } - }, - "MobileVibe/telegram-mcp": { - "package_name": "MobileVibe/telegram-mcp", - "repo_url": "https://github.com/MobileVibe/telegram-mcp", - "command": "node", - "args": [ - "path/to/telegram-mcp/build/index.js" - ], - "env": { - "TELEGRAM_BOT_TOKEN": "${TELEGRAM_BOT_TOKEN}", - "TELEGRAM_CHAT_ID": "${TELEGRAM_CHAT_ID}" - } - }, - "marcoeg/mcp-server-ntopng": { - "package_name": "marcoeg/mcp-server-ntopng", - "repo_url": "https://github.com/marcoeg/mcp-server-ntopng", - "command": "/path/to/your/uv-binary", - "args": [ - "run", - "--with", - "mcp-ntopng", - "--python", - "3.13", - "mcp-ntopng" - ], - "env": { - "NTOPNG_HOST": "${NTOPNG_HOST}", - "NTOPNG_DBPORT": "${NTOPNG_DBPORT}", - "NTOPNG_DBUSER": "${NTOPNG_DBUSER}", - "NTOPNG_DBPASSWORD": "${NTOPNG_DBPASSWORD}", - "NTOPNG_SECURE": "${NTOPNG_SECURE}", - "NTOPNG_VERIFY": "${NTOPNG_VERIFY}", - "NTOPNG_CONNECT_TIMEOUT": "${NTOPNG_CONNECT_TIMEOUT}", - "NTOPNG_SEND_RECEIVE_TIMEOUT": "${NTOPNG_SEND_RECEIVE_TIMEOUT}", - "NTOPNG_API_KEY": "${NTOPNG_API_KEY}" - } - }, - "kevinwatt/playwright-mcp-fetch": { - "package_name": "kevinwatt/playwright-mcp-fetch", - "repo_url": "https://github.com/kevinwatt/playwright-mcp-fetch" - }, - "tatn/mcp-server-fetch-typescript": { - "package_name": "tatn/mcp-server-fetch-typescript", - "repo_url": "https://github.com/tatn/mcp-server-fetch-typescript", - "command": "node", - "args": [ - "/path/to/mcp-server-fetch-typescript/build/index.js" - ] - }, - "tanevanwifferen/usescraper-mcp-server": { - "package_name": "tanevanwifferen/usescraper-mcp-server", - "repo_url": "https://github.com/tanevanwifferen/usescraper-mcp-server", - "command": "node", - "args": [ - "/path/to/usescraper-server/build/index.js" - ], - "env": { - "USESCRAPER_API_KEY": "${USESCRAPER_API_KEY}" - } - }, - "charles-adedotun/Lilith-Shell": { - "package_name": "charles-adedotun/Lilith-Shell", - "repo_url": "https://github.com/charles-adedotun/Lilith-Shell", - "command": "/path/to/cloned/Lilith-Shell/venv/bin/python", - "args": [ - "/path/to/cloned/Lilith-Shell/src/lilith_shell/executor.py" - ], - "env": { - "PYTHONPATH": "${PYTHONPATH}" - } - }, - "MCP-Mirror/danielma-tic_fillout-mcp-server": { - "package_name": "MCP-Mirror/danielma-tic_fillout-mcp-server", - "repo_url": "https://github.com/MCP-Mirror/danielma-tic_fillout-mcp-server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-fillout" - ], - "env": { - "FILLOUT_API_KEY": "${FILLOUT_API_KEY}" - } - }, - "AstroMined/pygithub-mcp-server": { - "package_name": "AstroMined/pygithub-mcp-server", - "repo_url": "https://github.com/AstroMined/pygithub-mcp-server", - "command": "/path/to/repo/.venv/bin/python", - "args": [ - "-m", - "pygithub_mcp_server" - ], - "env": { - "GITHUB_PERSONAL_ACCESS_TOKEN": "${GITHUB_PERSONAL_ACCESS_TOKEN}" - } - }, - "GongRzhe/TRAVEL-PLANNER-MCP-Server": { - "package_name": "GongRzhe/TRAVEL-PLANNER-MCP-Server", - "repo_url": "https://github.com/GongRzhe/TRAVEL-PLANNER-MCP-Server", - "command": "node", - "args": [ - "path/to/dist/index.js" - ], - "env": { - "GOOGLE_MAPS_API_KEY": "${GOOGLE_MAPS_API_KEY}" - } - }, - "r-huijts/ns-mcp-server": { - "package_name": "r-huijts/ns-mcp-server", - "repo_url": "https://github.com/r-huijts/ns-mcp-server", - "command": "node", - "args": [ - "/path/to/ns-server/build/index.js" - ], - "env": { - "NS_API_KEY": "${NS_API_KEY}" - } - }, - "yangkyeongmo/mcp-server-apache-airflow": { - "package_name": "yangkyeongmo/mcp-server-apache-airflow", - "repo_url": "https://github.com/yangkyeongmo/mcp-server-apache-airflow", - "command": "uv", - "args": [ - "--directory", - "/path/to/mcp-server-apache-airflow", - "run", - "mcp-server-apache-airflow" - ], - "env": { - "AIRFLOW_HOST": "${AIRFLOW_HOST}", - "AIRFLOW_USERNAME": "${AIRFLOW_USERNAME}", - "AIRFLOW_PASSWORD": "${AIRFLOW_PASSWORD}" - } - }, - "patruff/ollama-mcp-bridge": { - "package_name": "patruff/ollama-mcp-bridge", - "repo_url": "https://github.com/patruff/ollama-mcp-bridge", - "command": "node", - "args": [ - "path/to/server-filesystem/dist/index.js" - ] - }, - "SmallCloudCo/smallcloud-mcp-server": { - "package_name": "SmallCloudCo/smallcloud-mcp-server", - "repo_url": "https://github.com/SmallCloudCo/smallcloud-mcp-server", - "command": "/opt/homebrew/bin/node", - "args": [ - "~/Git/smallcloud-mcp-server/index.js" - ] - }, - "ParasSolanki/jira-mcp-server": { - "package_name": "ParasSolanki/jira-mcp-server", - "repo_url": "https://github.com/ParasSolanki/jira-mcp-server", - "command": "cmd /c npx", - "args": [ - "-y", - "@parassolanki/jira-mcp-server@latest" - ], - "env": { - "JIRA_PERSONAL_ACCESS_TOKEN": "${JIRA_PERSONAL_ACCESS_TOKEN}", - "JIRA_BASE_URL": "${JIRA_BASE_URL}" - } - }, - "ttiimmaacc/cinema4d-mcp": { - "package_name": "ttiimmaacc/cinema4d-mcp", - "repo_url": "https://github.com/ttiimmaacc/cinema4d-mcp", - "command": "cinema4d-mcp-wrapper", - "args": [] - }, - "amotivv/cloudflare-browser-rendering-mcp": { - "package_name": "amotivv/cloudflare-browser-rendering-mcp", - "repo_url": "https://github.com/amotivv/cloudflare-browser-rendering-mcp", - "command": "node", - "args": [ - "/path/to/cloudflare-browser-rendering/dist/index.js" - ], - "env": { - "BROWSER_RENDERING_API": "${BROWSER_RENDERING_API}" - } - }, - "YuheiNakasaka/arithmetic-mcp-server": { - "package_name": "YuheiNakasaka/arithmetic-mcp-server", - "repo_url": "https://github.com/YuheiNakasaka/arithmetic-mcp-server", - "command": "node", - "args": [ - "/Users/y_nakasaka/Documents/Cline/MCP/arithmetic-server/src/index.js" - ] - }, - "rotexhawk/Mcp-Puppeteer-Server": { - "package_name": "rotexhawk/Mcp-Puppeteer-Server", - "repo_url": "https://github.com/rotexhawk/Mcp-Puppeteer-Server", - "command": "npx", - "args": [ - "-y", - "@modelcontextprotocol/server-puppeteer" - ] - }, - "ollama-tlms-golang/05-make-your-mcp-server": { - "package_name": "ollama-tlms-golang/05-make-your-mcp-server", - "repo_url": "https://github.com/ollama-tlms-golang/05-make-your-mcp-server", - "command": "docker", - "args": [ - "run", - "--rm", - "-i", - "mcp-curl" - ] - }, - "centralmind/gateway": { - "package_name": "centralmind/gateway", - "repo_url": "https://github.com/centralmind/gateway", - "command": "PATH_TO_GATEWAY_BINARY", - "args": [ - "start", - "--config", - "PATH_TO_GATEWAY_YAML_CONFIG", - "mcp-stdio" - ] - }, - "MCP-Mirror/kiliczsh_mcp-mongo-server": { - "package_name": "MCP-Mirror/kiliczsh_mcp-mongo-server", - "repo_url": "https://github.com/MCP-Mirror/kiliczsh_mcp-mongo-server", - "command": "npx", - "args": [ - "-y", - "mcp-mongo-server", - "mongodb://muhammed:kilic@mongodb.localhost/sample_namespace" - ] - }, - "ctvidic/whoop-mcp-server": { - "package_name": "ctvidic/whoop-mcp-server", - "repo_url": "https://github.com/ctvidic/whoop-mcp-server", - "command": "python", - "args": [ - "/path/to/whoop/src/whoop_server.py" - ], - "env": { - "WHOOP_EMAIL": "${WHOOP_EMAIL}", - "WHOOP_PASSWORD": "${WHOOP_PASSWORD}" - } - }, - "MCP-Mirror/MindscapeHQ_mcp-server-raygun": { - "package_name": "MCP-Mirror/MindscapeHQ_mcp-server-raygun", - "repo_url": "https://github.com/MCP-Mirror/MindscapeHQ_mcp-server-raygun", - "command": "/path/to/server-raygun/build/index.js", - "env": { - "RAYGUN_PAT_TOKEN": "${RAYGUN_PAT_TOKEN}" - } - }, - "Nekzus/mcp-server": { - "package_name": "Nekzus/mcp-server", - "repo_url": "https://github.com/Nekzus/mcp-server", - "command": "docker", - "args": [ - "run", - "-i", - "--rm", - "--init", - "nekzus/mcp-server" - ] - }, - "Abiorh001/mcp_ev_assistant_server": { - "package_name": "Abiorh001/mcp_ev_assistant_server", - "repo_url": "https://github.com/Abiorh001/mcp_ev_assistant_server", - "command": "/home/$USER/path/mcp_learning/.venv/bin/python", - "args": [ - "/home/$USER/path/mcp_ev_assistant_server/ev_assistant_server.py" - ], - "env": { - "OPENCHARGE_MAP_API_KEY": "${OPENCHARGE_MAP_API_KEY}", - "GOOGLE_MAP_API_KEY": "${GOOGLE_MAP_API_KEY}" - } - }, - "skydeckai/mcp-server-rememberizer": { - "package_name": "skydeckai/mcp-server-rememberizer", - "repo_url": "https://github.com/skydeckai/mcp-server-rememberizer", - "command": "uvx", - "args": [ - "mcp-server-rememberizer" - ], - "env": { - "REMEMBERIZER_API_TOKEN": "${REMEMBERIZER_API_TOKEN}" - } - }, - "Krekun/vrchat-mcp-osc": { - "package_name": "Krekun/vrchat-mcp-osc", - "repo_url": "https://github.com/Krekun/vrchat-mcp-osc", - "command": "npx", - "args": [ - "vrchat-mcp-osc" - ] - }, - "Laksh-star/mcp-server-tmdb": { - "package_name": "Laksh-star/mcp-server-tmdb", - "repo_url": "https://github.com/Laksh-star/mcp-server-tmdb", - "command": "/full/path/to/dist/index.js", - "env": { - "TMDB_API_KEY": "${TMDB_API_KEY}" - } - }, - "gujord/OpenAPI-MCP": { - "package_name": "gujord/OpenAPI-MCP", - "repo_url": "https://github.com/gujord/OpenAPI-MCP", - "command": "full_path_to_openapi_mcp/venv/bin/python", - "args": [ - "full_path_to_openapi_mcp/src/server.py" - ], - "env": { - "SERVER_NAME": "${SERVER_NAME}", - "OPENAPI_URL": "${OPENAPI_URL}" - } - } - } -} \ No newline at end of file diff --git a/tests/test_cli.py b/tests/test_cli.py index 5d5375d..a29c3ca 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -5,8 +5,11 @@ from pathlib import Path from unittest import mock import pytest +from datetime import datetime from mcphub.cli import commands, utils +from mcphub.cli.process_manager import ProcessManager +from mcphub.mcp_servers.params import MCPServersParams @pytest.fixture @@ -20,7 +23,8 @@ def mock_cli_config_file(tmp_path): "args": ["-m", "test_server"], "env": {"TEST_ENV": "test_value"}, "description": "Test MCP Server", - "tags": ["test", "demo"] + "tags": ["test", "demo"], + "last_run": datetime.now().isoformat() } } } @@ -33,154 +37,89 @@ def mock_cli_config_file(tmp_path): @pytest.fixture -def mock_preconfigured_servers(tmp_path): - """Create a mock preconfigured servers file for CLI testing.""" - content = { - "mcpServers": { - "test-server": { - "package_name": "test-server", - "command": "python", - "args": ["-m", "test_server"], - "env": {"TEST_ENV": "test_value"}, - "description": "Test MCP Server", - "tags": ["test", "demo"] - }, - "env-server": { - "package_name": "env-server", - "command": "python", - "args": ["-m", "env_server"], - "env": {"API_KEY": "${API_KEY}", "BASE_URL": "${BASE_URL}"}, - "description": "Server with Environment Variables", - "tags": ["env", "test"] - } +def mock_process_manager(): + """Create a mock process manager for testing.""" + with mock.patch("mcphub.cli.commands.ProcessManager") as mock_pm: + mock_pm.return_value.get_process_info.return_value = { + "pid": 1234, + "status": "running", + "start_time": datetime.now().isoformat(), + "memory_usage": "100MB" } - } - - file_path = tmp_path / "mcphub_preconfigured_servers.json" - with open(file_path, "w") as f: - json.dump(content, f) - - return file_path + mock_pm.return_value.start_process.return_value = 1234 # Return a mock PID + mock_pm.return_value.list_processes.return_value = [{ + "name": "test-server", + "status": "running", + "pid": 1234, + "start_time": datetime.now().isoformat(), + "memory_usage": "100MB", + "command": "python -m test_server", + "ports": [8000], + "uptime": "1h" + }] + yield mock_pm @pytest.fixture -def cli_env(mock_cli_config_file, mock_preconfigured_servers, monkeypatch): +def cli_env(mock_cli_config_file, monkeypatch): """Set up the environment for CLI testing.""" # Mock get_config_path to return our test config def mock_get_config_path(): return mock_cli_config_file - # Mock load_preconfigured_servers to use our test preconfigured servers - def mock_load_preconfigured(): - with open(mock_preconfigured_servers, "r") as f: - return json.load(f) - # Apply patches monkeypatch.setattr(utils, "get_config_path", mock_get_config_path) - monkeypatch.setattr(utils, "load_preconfigured_servers", mock_load_preconfigured) # Return paths for test verification return { - "config_path": mock_cli_config_file, - "preconfigured_path": mock_preconfigured_servers + "config_path": mock_cli_config_file } -class TestCliInit: - def test_init_skipss(self, cli_env, capfd, monkeypatch): - """Test that 'init' command skips creation when config already exists.""" - config_path = Path(cli_env["config_path"]) - - # Mock get_config_path to return our test config - def mock_get_config_path(): - return config_path - monkeypatch.setattr(utils, "get_config_path", mock_get_config_path) - - # Mock Path.exists to return True - def mock_exists(self): - return True - monkeypatch.setattr(Path, "exists", mock_exists) - - # Execute init command - args = mock.Mock() - commands.init_command(args) - - # Verify output indicates config already exists - out, _ = capfd.readouterr() - assert f"already exists" in out - - class TestCliAdd: - def test_add_server_success(self, cli_env): - """Test adding a server from preconfigured servers.""" - # Set up command arguments - args = mock.Mock() - args.mcp_name = "test-server" - args.non_interactive = True - - # Execute add command - commands.add_command(args) + def test_add_server_from_repo(self, cli_env, monkeypatch): + """Test adding a server from a GitHub repository.""" + # Mock MCPServersParams + mock_servers_params = mock.Mock() + mock_servers_params.add_server_from_repo.return_value = None + mock_servers_params.retrieve_server_params.return_value = mock.Mock(env=None) - # Verify server was added to config - with open(cli_env["config_path"], "r") as f: - config = json.load(f) - - assert "test-server" in config["mcpServers"] - assert config["mcpServers"]["test-server"]["command"] == "python" - - def test_add_nonexistent_server(self, cli_env, capfd, monkeypatch): - """Test adding a server that doesn't exist in preconfigured servers.""" - # Set up command arguments - args = mock.Mock() - args.mcp_name = "nonexistent-server" - args.non_interactive = True + # Mock the MCPServersParams class to return our mock instance + mock_mcp_servers_params_class = mock.Mock(return_value=mock_servers_params) + monkeypatch.setattr("mcphub.mcp_servers.params.MCPServersParams", mock_mcp_servers_params_class) # Mock sys.exit to avoid test termination monkeypatch.setattr(sys, "exit", lambda x: None) - # Execute add command - commands.add_command(args) - - # Verify error message - out, _ = capfd.readouterr() - assert "Error: MCP server 'nonexistent-server' not found" in out - assert "Available preconfigured servers" in out - - @mock.patch("builtins.input", side_effect=["test_api_key", "https://test.com"]) - def test_add_server_with_env_vars(self, mock_input, cli_env, monkeypatch): - """Test adding a server that requires environment variables.""" # Set up command arguments args = mock.Mock() - args.mcp_name = "env-server" - args.non_interactive = False + args.repo_url = "https://github.com/test/repo" + args.mcp_name = None # Execute add command commands.add_command(args) - # Verify server was added with environment variables - with open(cli_env["config_path"], "r") as f: - config = json.load(f) - - assert "env-server" in config["mcpServers"] - assert config["mcpServers"]["env-server"]["env"]["API_KEY"] == "test_api_key" - assert config["mcpServers"]["env-server"]["env"]["BASE_URL"] == "https://test.com" + # Verify server was added + mock_servers_params.add_server_from_repo.assert_called_once_with( + "test/repo", "https://github.com/test/repo" + ) - @mock.patch("builtins.input", side_effect=["", ""]) - def test_add_server_missing_env_vars(self, mock_input, cli_env, capfd): - """Test adding a server with missing environment variables.""" + def test_add_server_invalid_url(self, cli_env, capfd, monkeypatch): + """Test adding a server with an invalid GitHub URL.""" # Set up command arguments args = mock.Mock() - args.mcp_name = "env-server" - args.non_interactive = False + args.repo_url = "https://invalid.com/repo" + args.mcp_name = None + + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) # Execute add command commands.add_command(args) - # Verify warning about missing environment variables + # Verify error message out, _ = capfd.readouterr() - assert "Warning: The following environment variables are required but not set" in out - assert "API_KEY" in out - assert "BASE_URL" in out + assert "Only GitHub repositories are supported" in out class TestCliRemove: @@ -225,214 +164,167 @@ def test_remove_nonexistent_server(self, cli_env, capfd, monkeypatch): # Verify error message out, _ = capfd.readouterr() - assert "Error: MCP server 'nonexistent-server' not found" in out + assert "MCP server 'nonexistent-server' not found" in out -class TestCliList: - def test_list_configured_servers(self, cli_env, capfd): - """Test listing configured servers.""" - # Prepare config with multiple servers - with open(cli_env["config_path"], "r") as f: - config = json.load(f) - - config["mcpServers"] = { - "server1": {"command": "test1"}, - "server2": {"command": "test2"} - } - - with open(cli_env["config_path"], "w") as f: - json.dump(config, f) - +class TestCliPs: + def test_ps_command(self, cli_env, mock_process_manager, capfd): + """Test the ps command listing server processes.""" # Set up command arguments args = mock.Mock() - args.all = False - # Execute list command - commands.list_command(args) + # Execute ps command + commands.ps_command(args) # Verify output out, _ = capfd.readouterr() - assert "Configured MCP servers:" in out - assert "- server1" in out - assert "- server2" in out - assert "Available preconfigured MCP servers:" not in out + assert "test-server" in out + assert "running" in out + assert "8000" in out # Port from mock + assert "1h" in out # Uptime from mock + - def test_list_all_servers(self, cli_env, capfd): - """Test listing all servers including preconfigured ones.""" +class TestCliStatus: + def test_status_command(self, cli_env, mock_process_manager, capfd): + """Test the status command showing server status.""" # Set up command arguments args = mock.Mock() - args.all = True + args.mcp_name = "test-server" - # Execute list command - commands.list_command(args) + # Execute status command + commands.status_command(args) # Verify output out, _ = capfd.readouterr() - assert "Configured MCP servers:" in out - assert "Available preconfigured MCP servers:" in out - assert "- test-server" in out - assert "- env-server" in out + assert "test-server" in out + assert "test-mcp-server" in out # Package name from config + assert "python" in out # Command from config -class TestCliUtils: - def test_detect_env_vars(self): - """Test detecting environment variables in a server config.""" - server_config = { - "command": "test", - "env": { - "API_KEY": "${API_KEY}", - "DEBUG": "true", - "URL": "${BASE_URL}" - } - } - - env_vars = utils.detect_env_vars(server_config) - - assert sorted(env_vars) == sorted(["API_KEY", "BASE_URL"]) - assert "DEBUG" not in env_vars - - def test_process_env_vars(self): - """Test processing environment variables in a server config.""" - server_config = { - "command": "test", - "env": { - "API_KEY": "${API_KEY}", - "DEBUG": "true", - "URL": "${BASE_URL}" - } - } +class TestCliRun: + def test_run_command(self, cli_env, mock_process_manager, capfd, monkeypatch): + """Test running a server.""" + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) - env_values = { - "API_KEY": "test_key", - # BASE_URL intentionally missing - } + # Set up command arguments + args = mock.Mock() + args.mcp_name = "test-server" + args.detach = False + args.sse = False - processed = utils.process_env_vars(server_config, env_values) + # Execute run command + commands.run_command(args) - assert processed["env"]["API_KEY"] == "test_key" - assert processed["env"]["DEBUG"] == "true" - assert processed["env"]["URL"] == "${BASE_URL}" # unchanged + # Verify process manager was called + mock_process_manager.return_value.start_process.assert_called_once() + call_args = mock_process_manager.return_value.start_process.call_args[0] + assert call_args[0] == "test-server" # name + assert isinstance(call_args[1], list) # command + assert isinstance(call_args[2], dict) # env - @mock.patch.dict(os.environ, {"ENV_VAR": "env_value"}) - def test_add_server_with_env_var_from_environment(self, cli_env, monkeypatch): - """Test adding a server using environment variables from system environment.""" - # Modify preconfigured servers to include our test env var - with open(cli_env["preconfigured_path"], "r") as f: - preconfig = json.load(f) - - preconfig["mcpServers"]["env-test"] = { - "command": "test", - "env": {"TEST_VAR": "${ENV_VAR}"} - } - - with open(cli_env["preconfigured_path"], "w") as f: - json.dump(preconfig, f) - - # Mock user input to skip (use env var from environment) - monkeypatch.setattr("builtins.input", lambda _: "") - - # Add server - success, missing = utils.add_server_config("env-test", interactive=True) + def test_run_detached(self, cli_env, mock_process_manager, capfd, monkeypatch): + """Test running a server in detached mode.""" + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) - # Verify - assert success is True - assert missing is None + # Set up command arguments + args = mock.Mock() + args.mcp_name = "test-server" + args.detach = True + args.sse = False - # Check config - with open(cli_env["config_path"], "r") as f: - config = json.load(f) + # Execute run command + commands.run_command(args) - assert "env-test" in config["mcpServers"] - # The env var template should be preserved (it will be resolved at runtime) - assert config["mcpServers"]["env-test"]["env"]["TEST_VAR"] == "${ENV_VAR}" + # Verify process manager was called + mock_process_manager.return_value.start_process.assert_called_once() + call_args = mock_process_manager.return_value.start_process.call_args[0] + assert call_args[0] == "test-server" # name + assert isinstance(call_args[1], list) # command + assert isinstance(call_args[2], dict) # env class TestCliParsing: - @mock.patch("mcphub.cli.commands.init_command") - def test_parse_init_command(self, mock_init, monkeypatch): - """Test that 'init' command is properly parsed and dispatched.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "init"]) + def test_parse_run_command(self, monkeypatch): + """Test parsing the run command.""" + # Mock the command function + mock_run = mock.Mock() + monkeypatch.setattr(commands, "run_command", mock_run) - # Call main() which should parse arguments and dispatch - commands.main() + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) - # Verify init_command was called - mock_init.assert_called_once() - - @mock.patch("mcphub.cli.commands.add_command") - def test_parse_add_command(self, mock_add, monkeypatch): - """Test that 'add' command is properly parsed and dispatched.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "add", "test-server"]) + # Test without detach + args = commands.parse_args(["run", "test-server"]) + commands.run_command(args) + mock_run.assert_called_once() - # Call main() which should parse arguments and dispatch - commands.main() + # Reset mock for next test + mock_run.reset_mock() - # Verify add_command was called - mock_add.assert_called_once() - # Verify the arguments - args = mock_add.call_args[0][0] - assert args.mcp_name == "test-server" - assert args.non_interactive is False + # Test with detach + args = commands.parse_args(["run", "--detach", "test-server"]) + commands.run_command(args) + assert mock_run.call_count == 1 - @mock.patch("mcphub.cli.commands.add_command") - def test_parse_add_command_noninteractive(self, mock_add, monkeypatch): - """Test that 'add' command with --non-interactive flag is properly parsed.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "add", "--non-interactive", "test-server"]) + def test_parse_add_command(self, monkeypatch): + """Test parsing the add command.""" + # Mock the command function + mock_add = mock.Mock() + monkeypatch.setattr(commands, "add_command", mock_add) - # Call main() which should parse arguments and dispatch - commands.main() + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) - # Verify add_command was called + # Test with repo URL + args = commands.parse_args(["add", "https://github.com/test/repo"]) + commands.add_command(args) mock_add.assert_called_once() - # Verify the arguments - args = mock_add.call_args[0][0] - assert args.mcp_name == "test-server" - assert args.non_interactive is True + + # Reset mock for next test + mock_add.reset_mock() + + # Test with custom name + args = commands.parse_args(["add", "--name", "custom-name", "https://github.com/test/repo"]) + commands.add_command(args) + assert mock_add.call_count == 1 - @mock.patch("mcphub.cli.commands.remove_command") - def test_parse_remove_command(self, mock_remove, monkeypatch): - """Test that 'remove' command is properly parsed and dispatched.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "remove", "test-server"]) + def test_parse_remove_command(self, monkeypatch): + """Test parsing the remove command.""" + # Mock the command function + mock_remove = mock.Mock() + monkeypatch.setattr(commands, "remove_command", mock_remove) - # Call main() which should parse arguments and dispatch - commands.main() + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) - # Verify remove_command was called + args = commands.parse_args(["remove", "test-server"]) + commands.remove_command(args) mock_remove.assert_called_once() - # Verify the arguments - args = mock_remove.call_args[0][0] - assert args.mcp_name == "test-server" - @mock.patch("mcphub.cli.commands.list_command") - def test_parse_list_command(self, mock_list, monkeypatch): - """Test that 'list' command is properly parsed and dispatched.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "list"]) - - # Call main() which should parse arguments and dispatch - commands.main() - - # Verify list_command was called - mock_list.assert_called_once() - # Verify the arguments - args = mock_list.call_args[0][0] - assert args.all is False + def test_parse_ps_command(self, monkeypatch): + """Test parsing the ps command.""" + # Mock the command function + mock_ps = mock.Mock() + monkeypatch.setattr(commands, "ps_command", mock_ps) + + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) + + args = commands.parse_args(["ps"]) + commands.ps_command(args) + mock_ps.assert_called_once() - @mock.patch("mcphub.cli.commands.list_command") - def test_parse_list_command_all(self, mock_list, monkeypatch): - """Test that 'list' command with --all flag is properly parsed.""" - # Mock sys.argv - monkeypatch.setattr(sys, "argv", ["mcphub", "list", "--all"]) - - # Call main() which should parse arguments and dispatch - commands.main() - - # Verify list_command was called - mock_list.assert_called_once() - # Verify the arguments - args = mock_list.call_args[0][0] - assert args.all is True \ No newline at end of file + def test_parse_status_command(self, monkeypatch): + """Test parsing the status command.""" + # Mock the command function + mock_status = mock.Mock() + monkeypatch.setattr(commands, "status_command", mock_status) + + # Mock sys.exit to avoid test termination + monkeypatch.setattr(sys, "exit", lambda x: None) + + args = commands.parse_args(["status", "test-server"]) + commands.status_command(args) + mock_status.assert_called_once() \ No newline at end of file diff --git a/tests/test_params.py b/tests/test_params.py index 9b55085..7b57597 100644 --- a/tests/test_params.py +++ b/tests/test_params.py @@ -73,44 +73,4 @@ def test_invalid_json(self, tmp_path): f.write("{ invalid json") with pytest.raises(ValueError): - MCPServersParams(str(invalid_json_file)) - - @patch('pathlib.Path.exists') - def test_load_predefined_servers(self, mock_exists, mock_mcp_preconfigured_servers): - """Test loading predefined server parameters.""" - # Create a config that references a predefined server - config_content = { - "mcpServers": { - "my-server": { - "package_name": "predefined-server" - } - } - } - - config_file = Path(mock_mcp_preconfigured_servers).parent / ".mcphub.json" - with open(config_file, "w") as f: - json.dump(config_content, f) - - # Setup mock for Path.exists() - mock_exists.return_value = True - - # Mock _load_predefined_servers_params to return our test data with the correct structure - mock_predefined_data = { - "mcpServers": { - "predefined-server": { - "command": "python", - "args": ["-m", "predefined_server"], - "description": "Predefined MCP Server", - "tags": ["predefined", "demo"] - } - } - } - - with patch.object(MCPServersParams, '_load_predefined_servers_params', return_value=mock_predefined_data): - params = MCPServersParams(str(config_file)) - server_params = params.servers_params - - assert len(server_params) == 1 - assert server_params[0].package_name == "predefined-server" - assert server_params[0].command == "python" - assert server_params[0].args == ["-m", "predefined_server"] \ No newline at end of file + MCPServersParams(str(invalid_json_file)) \ No newline at end of file diff --git a/tests/test_process_manager.py b/tests/test_process_manager.py new file mode 100644 index 0000000..b2991b9 --- /dev/null +++ b/tests/test_process_manager.py @@ -0,0 +1,223 @@ +"""Tests for the ProcessManager class.""" +import os +import json +import pytest +import signal +from pathlib import Path +from unittest.mock import patch, MagicMock, mock_open, call +import psutil +import socket +from datetime import datetime +from mcphub.cli.process_manager import ProcessManager + +@pytest.fixture +def temp_data_dir(tmp_path): + """Create a temporary data directory for testing.""" + temp_dir = tmp_path / "mcphub_test" + temp_dir.mkdir(parents=True, exist_ok=True) + return temp_dir + +@pytest.fixture +def mock_processes_file(): + """Mock the processes.json file.""" + return { + "1234": { + "name": "test-server", + "command": "python server.py --port 3000", + "start_time": "2024-03-20T10:00:00", + "env": {}, + "pid": 1234, + "ports": [3000], + "status": "running", + "warnings": [] + } + } + +@pytest.fixture +def process_manager(temp_data_dir): + """Create a ProcessManager instance with a temporary data directory.""" + # Create the processes.json file + processes_file = temp_data_dir / "processes.json" + processes_file.write_text("{}") + return ProcessManager(data_dir=temp_data_dir) + +def test_init_default_data_dir(): + """Test ProcessManager initialization with default data directory.""" + with patch("pathlib.Path.home") as mock_home: + mock_home.return_value = Path("/tmp/test") # Use /tmp instead of /home + with patch("pathlib.Path.mkdir") as mock_mkdir: + with patch("builtins.open", mock_open(read_data="{}")): + manager = ProcessManager() + assert manager.data_dir == Path("/tmp/test/.mcphub") + assert manager.processes_file == Path("/tmp/test/.mcphub/processes.json") + mock_mkdir.assert_called_once_with(parents=True, exist_ok=True) + +def test_init_custom_data_dir(temp_data_dir): + """Test ProcessManager initialization with custom data directory.""" + with patch("builtins.open", mock_open(read_data="{}")): + manager = ProcessManager(data_dir=temp_data_dir) + assert manager.data_dir == temp_data_dir + assert manager.processes_file == temp_data_dir / "processes.json" + +def test_ensure_data_dir(temp_data_dir): + """Test that data directory is created if it doesn't exist.""" + manager = ProcessManager(data_dir=temp_data_dir) + assert temp_data_dir.exists() + assert temp_data_dir.is_dir() + +def test_load_processes_empty(temp_data_dir): + """Test loading processes from an empty file.""" + # Create an empty processes.json file + processes_file = temp_data_dir / "processes.json" + processes_file.write_text("{}") + + manager = ProcessManager(data_dir=temp_data_dir) + assert manager.processes == {} + assert processes_file.exists() + +def test_load_processes_existing(mock_processes_file, temp_data_dir): + """Test loading processes from an existing file.""" + # Create a processes.json file with mock data + processes_file = temp_data_dir / "processes.json" + processes_file.write_text(json.dumps(mock_processes_file)) + + manager = ProcessManager(data_dir=temp_data_dir) + assert manager.processes == mock_processes_file + +def test_save_processes(process_manager, mock_processes_file): + """Test saving processes to file.""" + process_manager.processes = mock_processes_file.copy() + process_manager._save_processes() + + # Read the saved file and verify its contents + saved_data = json.loads(process_manager.processes_file.read_text()) + assert saved_data == mock_processes_file + +def test_check_port_conflict(process_manager, mock_processes_file): + """Test checking for port conflicts.""" + process_manager.processes = mock_processes_file.copy() + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_proc.is_running.return_value = True + mock_process.return_value = mock_proc + + # Mock _get_process_ports to return a list containing the test port + with patch.object(process_manager, "_get_process_ports", return_value=[3000]): + conflict = process_manager._check_port_conflict(3000) + assert conflict is not None + assert conflict["pid"] == 1234 + assert conflict["name"] == "test-server" + +def test_find_available_port(process_manager): + """Test finding an available port.""" + with patch("socket.socket") as mock_socket: + mock_socket.return_value.__enter__.return_value.bind.side_effect = [ + OSError, # First port is taken + None # Second port is available + ] + port = process_manager._find_available_port(start_port=3000, max_attempts=2) + assert port == 3001 + +def test_start_process_with_port(process_manager): + """Test starting a process with a specified port.""" + command = ["python", "server.py", "--port", "3000"] + with patch("subprocess.Popen") as mock_popen: + mock_process = MagicMock() + mock_process.pid = 1234 + mock_popen.return_value = mock_process + + with patch.object(process_manager, "_check_port_conflict", return_value=None): + with patch.object(process_manager, "_get_process_ports", return_value=[3000]): + pid = process_manager.start_process("test-server", command) + assert pid == 1234 + assert str(pid) in process_manager.processes + assert process_manager.processes[str(pid)]["status"] == "running" + +def test_start_process_without_port(process_manager): + """Test starting a process without a specified port.""" + command = ["python", "server.py"] + with patch("subprocess.Popen") as mock_popen: + mock_process = MagicMock() + mock_process.pid = 1234 + mock_popen.return_value = mock_process + + with patch.object(process_manager, "_find_available_port", return_value=3000): + with patch.object(process_manager, "_check_port_conflict", return_value=None): + with patch.object(process_manager, "_get_process_ports", return_value=[3000]): + pid = process_manager.start_process("test-server", command) + assert pid == 1234 + assert "--port" in process_manager.processes[str(pid)]["command"] + assert "3000" in process_manager.processes[str(pid)]["command"] + +def test_stop_process(process_manager, mock_processes_file): + """Test stopping a running process.""" + process_manager.processes = mock_processes_file.copy() + with patch("os.kill") as mock_kill: + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_process.return_value = mock_proc + mock_proc.wait.return_value = None + + result = process_manager.stop_process(1234) + assert result is True + assert process_manager.processes["1234"]["status"] == "stopped" + mock_kill.assert_called_once_with(1234, signal.SIGTERM) + +def test_stop_process_not_found(process_manager): + """Test stopping a non-existent process.""" + result = process_manager.stop_process(9999) + assert result is False + +def test_get_process_info(process_manager, mock_processes_file): + """Test getting information about a process.""" + process_manager.processes = mock_processes_file.copy() + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_proc.is_running.return_value = True + mock_process.return_value = mock_proc + + info = process_manager.get_process_info(1234) + assert info is not None + assert info["name"] == "test-server" + assert info["status"] == "running" + +def test_get_process_info_not_found(process_manager): + """Test getting information about a non-existent process.""" + info = process_manager.get_process_info(9999) + assert info is None + +def test_list_processes(process_manager, mock_processes_file): + """Test listing all processes.""" + process_manager.processes = mock_processes_file.copy() + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_proc.is_running.return_value = True + mock_process.return_value = mock_proc + + processes = process_manager.list_processes() + assert len(processes) == 1 + assert processes[0]["name"] == "test-server" + assert processes[0]["status"] == "running" + +def test_get_uptime(process_manager): + """Test getting process uptime.""" + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_proc.create_time.return_value = datetime.now().timestamp() - 3600 # 1 hour ago + mock_process.return_value = mock_proc + + uptime = process_manager._get_uptime(mock_proc) + assert "1h" in uptime + +def test_get_process_ports(process_manager): + """Test getting ports used by a process.""" + with patch("psutil.Process") as mock_process: + mock_proc = MagicMock() + mock_conn = MagicMock() + mock_conn.laddr = MagicMock(port=3000) + mock_conn.status = "LISTEN" + mock_proc.connections.return_value = [mock_conn] + mock_process.return_value = mock_proc + + ports = process_manager._get_process_ports(mock_proc) + assert 3000 in ports \ No newline at end of file diff --git a/tests/test_servers.py b/tests/test_servers.py index 27afbbf..12bfb74 100644 --- a/tests/test_servers.py +++ b/tests/test_servers.py @@ -43,8 +43,6 @@ def test_run_setup_script_success(self, mock_open, mock_chmod, mock_exists, mock # Create a patched MCPServersParams class that doesn't attempt to read from disk with mock.patch('mcphub.mcp_servers.params.MCPServersParams._load_user_config', return_value=config_content.get('mcpServers', {})), \ - mock.patch('mcphub.mcp_servers.params.MCPServersParams._load_predefined_servers_params', - return_value={}), \ mock.patch('pathlib.Path.unlink'): # Mock unlink to prevent file deletion errors params = MCPServersParams(str(temp_config_file)) @@ -116,9 +114,7 @@ def test_setup_server(self, mock_exists, mock_update_path, mock_run_setup, mock_ "env": {"TEST_ENV": "test_value"}, "repo_url": "https://github.com/test/repo.git", "setup_script": "npm install" - }}), \ - mock.patch('mcphub.mcp_servers.params.MCPServersParams._load_predefined_servers_params', - return_value={}): + }}): params = MCPServersParams(str(temp_config_file))