MCP Server

MCP Server

mcp server

plusplusoneplusplus

Developer Tools
Visit Server

README

MCP Server

The MCP Server provides a flexible framework for AI-powered command execution and tool management.

Configuration

The MCP server uses a flexible configuration system that supports both default and user-specific settings. Configuration files are stored in YAML format.

Configuration Files

The server uses two main configuration files:

  1. prompts.yaml - Defines available prompts and their templates
  2. tools.yaml - Defines available tools and their configurations

User-Specific Configuration

To maintain private configurations that won't be tracked in git:

  1. Create a .private directory in the server folder:

    mkdir server/.private
    
  2. Copy your configuration files to the .private directory:

    cp server/prompts.yaml server/.private/
    cp server/tools.yaml server/.private/
    
  3. Customize the files in .private as needed

The system will:

  • First look for configuration files in the .private directory
  • Fall back to the default configuration files if private versions don't exist
  • The .private directory is automatically ignored by git

External Private Tool Directory

You can also define a separate directory for private tools and configurations outside the project directory:

  1. Set the PRIVATE_TOOL_ROOT environment variable to point to your private tools directory:

    # Linux/Mac
    export PRIVATE_TOOL_ROOT=/path/to/your/private/tools
    
    # Windows (PowerShell)
    $env:PRIVATE_TOOL_ROOT = "D:\path\to\your\private\tools"
    
    # Windows (CMD)
    set PRIVATE_TOOL_ROOT=D:\path\to\your\private\tools
    
  2. Create and customize your configuration files in this directory:

    /path/to/your/private/tools/
    ├── tools.yaml
    ├── prompts.yaml
    ├── myscript.ps1
    └── other-scripts/
    
  3. The server will look for configuration files in this priority order:

    1. PRIVATE_TOOL_ROOT directory (if set)
    2. .private directory in the server folder
    3. Default files in the server folder

This approach allows you to:

  • Keep private tools and configurations completely separate from the project
  • Share the same private tools across multiple projects
  • Easily switch between different sets of private tools by changing the environment variable

Example Configuration Structure

# prompts.yaml
prompts:
  my_prompt:
    name: "My Custom Prompt"
    description: "A custom prompt for specific tasks"
    arguments:
      - name: "param1"
        description: "First parameter"
        required: true
    template: "Custom prompt template with {param1}"
    enabled: true

# tools.yaml
tools:
  # Regular tool definition
  my_tool:
    name: "My Custom Tool"
    description: "A custom tool for specific tasks"
    inputSchema:
      type: "object"
      properties:
        param1:
          type: "string"
          description: "First parameter"
      required: ["param1"]
    enabled: true

  # Script-based tool definition
  build_project:
    name: "Build Project"
    description: "Build the project"
    type: "script"
    script: "build.cmd"  # Script file in .private directory
    inputSchema:
      type: "object"
      properties: {}  # No arguments needed
      required: []
    enabled: true

  # Script with arguments
  deploy:
    enabled: true
    name: deploy
    description: Deploy the application
    type: script
    script: test_deploy.ps1
    inputSchema:
      type: object
      properties:
        environment:
          type: string
          description: Deployment environment
          enum: ["dev", "staging", "prod"]
        version:
          type: string
          description: Version to deploy
        force:
          type: boolean
          description: Force deployment even if version exists
          default: false
      required:
        - environment
        - version 
        
  # Async Command Execution
  execute_command_async:
    enabled: true
    name: execute_command_async
    description: Start a command execution asynchronously and return a token for tracking
    inputSchema:
      type: object
      properties:
        command:
          type: string
          description: The command to execute
        timeout:
          type: number
          description: Optional timeout in seconds
      required:
        - command

  query_command_status:
    enabled: true
    name: query_command_status
    description: Query the status of an asynchronous command execution or wait for it to complete
    inputSchema:
      type: object
      properties:
        token:
          type: string
          description: The token returned by execute_command_async
        wait:
          type: boolean
          description: Whether to wait for the command to complete
          default: false
        timeout:
          type: number
          description: Optional timeout in seconds for waiting
      required:
        - token

Script-Based Tools

The system supports script-based tools that can be defined entirely in the YAML configuration. These tools:

  1. Are defined with type: "script" in the tools.yaml
  2. Reference a script file that should be placed in the .private directory
  3. Can accept command-line arguments defined in the inputSchema
  4. Support both Windows (.cmd, .ps1) and Unix (.sh) scripts

Script files should:

  • Be placed in the .private directory
  • Accept arguments in the format --arg_name value
  • Return appropriate output that will be captured and displayed

Example script (build.cmd):

@echo off
echo Building unit tests...
dotnet build tests/UnitTests
if %ERRORLEVEL% EQU 0 (
    echo Build successful
) else (
    echo Build failed
    exit 1
)

Running Tests

Using Bash Script (Linux/Mac)

# Run all tests
./sentinel/run_tests.sh

Using PowerShell Script (Windows)

# Run all tests
.\sentinel\run_tests.ps1

Config MCP server as part of cursor/vscode

{
    "mcpServers": {
      "mymcp": {
        "command": "mcp\\venv\\scripts\\python",
        "args": ["mcp\\server\\main.py"],
        "env": {
          "GIT_ROOT": "${workspaceFolder}",
          "PRIVATE_TOOL_ROOT": "${workspaceFolder}/.private"
        }
      },
      // this is deprecated.
      // "fastmcp" : {
      //   "command": "mcp\\venv\\scripts\\python",
      //   "args": ["-m", "uv", "run", "--with", "mcp", "mcp", "run", "mcp\\server\\fast-main.py"]
      // }
    }
  }

Demo: Basic Command Execution

MCP Server Configuration

Demo: Async Command Execution

MCP Server async command execution

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
MCP Package Docs Server

MCP Package Docs Server

Facilitates LLMs to efficiently access and fetch structured documentation for packages in Go, Python, and NPM, enhancing software development with multi-language support and performance optimization.

Featured
Local
TypeScript
Claude Code MCP

Claude Code MCP

An implementation of Claude Code as a Model Context Protocol server that enables using Claude's software engineering capabilities (code generation, editing, reviewing, and file operations) through the standardized MCP interface.

Featured
Local
JavaScript
@kazuph/mcp-taskmanager

@kazuph/mcp-taskmanager

Model Context Protocol server for Task Management. This allows Claude Desktop (or any MCP client) to manage and execute tasks in a queue-based system.

Featured
Local
JavaScript
Linear MCP Server

Linear MCP Server

Enables interaction with Linear's API for managing issues, teams, and projects programmatically through the Model Context Protocol.

Featured
JavaScript
mermaid-mcp-server

mermaid-mcp-server

A Model Context Protocol (MCP) server that converts Mermaid diagrams to PNG images.

Featured
JavaScript
Jira-Context-MCP

Jira-Context-MCP

MCP server to provide Jira Tickets information to AI coding agents like Cursor

Featured
TypeScript
Linear MCP Server

Linear MCP Server

A Model Context Protocol server that integrates with Linear's issue tracking system, allowing LLMs to create, update, search, and comment on Linear issues through natural language interactions.

Featured
JavaScript
Sequential Thinking MCP Server

Sequential Thinking MCP Server

This server facilitates structured problem-solving by breaking down complex issues into sequential steps, supporting revisions, and enabling multiple solution paths through full MCP integration.

Featured
Python