trackmcp
Back to directory

mcp server

4 stars PythonOthers Updated Dec 4, 2025

Documentation

MCP Server

The MCP Server provides a comprehensive framework for AI-powered command execution, plugin-based tools, and advanced features including synchronous script execution, secure Python evaluation, and knowledge management. It can be run as a standalone service or embedded in other projects to expose a consistent API for invoking tools and managing tasks.

Project Structure

  • mcp_tools/ – Plugin framework and built-in tools with enhanced concurrency management
  • server/ – Starlette server implementation with HTTP/SSE endpoints and DataFrame UI
  • plugins/ – Extensible plugins (Azure DevOps, Git tools, knowledge indexing, Kusto, CircleCI)
  • config/ – Environment manager and configuration helpers
  • utils/ – Core utilities (async jobs, graph interface, memory management, vector store, PyEval)
  • scripts/ – Installation, utility scripts, and automated submission workflows
  • assets/ – Images and documentation resources

Installation

The project uses `uv` for dependency management. Install dependencies with:

bash
uv sync

Or install in development mode using pip:

bash
pip install -e .

Environment Setup

Configuration is controlled by `.env` files. Create one from the template and edit it with your settings:

bash
cp config/env.template .env

Important variables include repository paths (`GIT_ROOT`), Azure Repo details (`AZREPO_ORG`, `AZREPO_PROJECT`, `AZREPO_REPO`), and optional `PRIVATE_TOOL_ROOT` for external tool configuration. The environment manager automatically loads `.env` files from the repository root, current directory, and your home directory.

Access settings in code via:

python
from config import env_manager
env_manager.load()
root = env_manager.get_git_root()

See `docs/config_overview.md` for more information.

Running the Server

After installing dependencies and configuring `.env`, start the server with:

bash
uv run server/main.py

Connect to the SSE endpoint at `http://0.0.0.0:8000/sse` or use the additional routes in `server/api.py`.

Background job endpoints are documented in `docs/background_jobs_api.md`.

Docker

A `Dockerfile` is included for running the server in a container.

Build the image with:

bash
docker build -t mcp-server .

Then start the container exposing port `8000`:

bash
docker run -p 8000:8000 mcp-server

See `docs/docker.md` for more details.

Configuration Files

The server loads prompts and tool definitions from YAML files:

  • `server/prompts.yaml`
  • `server/tools.yaml`

Private overrides can be placed in `server/.private/` or in a folder pointed to by `PRIVATE_TOOL_ROOT`. Files are resolved in this order:

1. `PRIVATE_TOOL_ROOT`

2. `server/.private/`

3. Defaults in `server/`

Tool System

Tools are modular plugins registered through `mcp_tools`. Built-in utilities include:

  • Command Executor – Synchronous and asynchronous command execution with run-to-completion support
  • Browser Automation – Playwright integration for web interaction
  • PyEval – Secure Python expression evaluation using RestrictedPython
  • DataFrame Service – Data analysis and visualization with web interface
  • Time Helpers – Time-based utilities and scheduling
  • YAML Tool Loader – Dynamic tool definitions from YAML files

Additional plugins in the `plugins/` directory include Azure DevOps integration, Git operations, knowledge indexing, Kusto queries, and CircleCI workflows. See `mcp_tools/docs/creating_tools.md` for details on building custom tools.

The web interface offers comprehensive dashboards:

  • `/tools` – Browse all registered tools and view their details
  • `/dataframes` – Interactive DataFrame management and visualization
  • `/knowledge` – Knowledge graph exploration and management
  • `/pyeval` – Secure Python evaluation interface

Plugin Management

External plugins can be installed by declaring them in `plugin_config.yaml`. Each

entry should specify a `plugin_repo` in the form `owner/repository` and an optional

`sub_dir` if the plugin lives in a subfolder. Example:

yaml
plugins:
   - plugin_repo: "github_owner/repo"
     sub_dir: "path/to/plugin"
     type: "python"

Run the `mcp_admin` tool with the `refresh_plugins` operation to clone or update

plugins based on this configuration. Pass `force=true` to remove all installed

plugins before reinstalling.

Running Tests

Execute all test suites with:

bash
scripts/run_tests.sh

Or run `pytest` directly on `mcp_tools/tests`, `plugins/*/tests`, or `server/tests`.

Key Features (v0.2.0)

  • Run-to-Completion Execution – Synchronous script execution with comprehensive output capture
  • PyEval Security – Safe Python expression evaluation using RestrictedPython
  • Enhanced DataFrame UI – Responsive web interface for data analysis and visualization

Where to Go Next

1. Browse the documentation under `mcp_tools/docs/` and `docs/` to learn about tool creation, dependency injection, and advanced features.

2. Review the sample configuration files in `server/` and try adding your own tools.

3. Explore plugins in the `plugins/` directory for concrete implementations.

4. Check the `utils/` directory for advanced utilities like vector stores, graph interfaces, and memory management.

5. See the `CHANGELOG.md` for detailed release notes and recent updates.

Editor Integration

Editors like Cursor/VSCode can use the SSE endpoint by adding the following to your settings:

json
{
  "mcpServers": {
    "mymcp-sse": { "url": "http://0.0.0.0:8000/sse" }
  }
}

Demo Screenshots

MCP Server Configuration
MCP Server async command execution

Frequently asked questions

What is mcp?

mcp is mcp server

How do I install mcp?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp open source?

Yes — it is hosted on GitHub at https://github.com/plusplusoneplusplus/mcp and has 4 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP