MCP Server
A framework for AI-powered command execution and a plugin-based tool system. It can be run as a standalone service or embedded in other projects to expose a consistent API for invoking tools and managing tasks.
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:
uv sync
Or install in development mode using pip:
pip install -e .
Environment Setup
Configuration is controlled by .env
files. Create one from the template and edit it with your settings:
cp config/templates/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:
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:
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:
docker build -t mcp-server .
Then start the container exposing port 8000
:
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:
PRIVATE_TOOL_ROOT
server/.private/
- 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 – Selenium and 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:
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:
scripts/run_tests.sh
Or run pytest
directly on mcp_core/tests
, mcp_tools/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
- Browse the documentation under
mcp_tools/docs/
anddocs/
to learn about tool creation, dependency injection, and advanced features. - Review the sample configuration files in
server/
and try adding your own tools. - Explore plugins in the
plugins/
directory for concrete implementations. - Check the
utils/
directory for advanced utilities like vector stores, graph interfaces, and memory management. - 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:
{
"mcpServers": {
"mymcp-sse": { "url": "http://0.0.0.0:8000/sse" }
}
}
Demo Screenshots
Related Servers
AiCore Project
A unified framework for integrating various language models and embedding providers to generate text completions and embeddings.
Lucide Icons
Provides access to the Lucide icon library for use in LLM and agentic applications.
TeamCity
MCP server for TeamCity, integrates with Claude Desktop and Cursor.
gluestack-ui MCP Server
An MCP server tailored for React Native–first development using Gluestack UI
Neovim LSP MCP Server
Bridges AI coding assistants with Neovim's Language Server Protocol for AI-powered code intelligence and navigation.
DevContext
Provides developers with continuous, project-centric context awareness. Requires a TursoDB database.
Bedrock Server Manager
Manage your Bedrock server with natural language commands using the Bedrock Server Manager API.
AILint
AI-powered code quality analysis to detect best practice violations, security issues, and architectural problems in real-time.
Bitcoin & Lightning Network
Interact with the Bitcoin and Lightning Network to generate keys, validate addresses, decode transactions, and query the blockchain.
MCP SBOM Server
Performs a Trivy scan to produce a Software Bill of Materials (SBOM) in CycloneDX format.