vMCP

vMCP

A unified gateway for Model Context Protocol servers, enabling access to multiple scientific computing tools through a single interface.

Category
访问服务器

README

vMCP - Virtual Model Context Protocol

CI codecov Python 3.10+ License: MIT Code style: ruff uv

A unified gateway for Model Context Protocol (MCP) servers, inspired by the DXT (Desktop Extensions) specification

vMCP provides a Virtual File System-like abstraction layer that aggregates multiple MCP servers through a single interface, enabling seamless access to diverse tools and capabilities from scientific computing, data analysis, and more.

🔗 What is vMCP?

vMCP (Virtual Model Context Protocol) is a gateway and proxy system that:

  • Unifies Multiple MCP Servers: Access 14+ scientific computing tools through a single interface
  • DXT-Inspired Architecture: Uses extension packaging similar to VS Code or Chrome extensions
  • Extension Management: Install, enable, disable, and manage MCP servers like browser extensions
  • Persona Support: Control which tools are available to different users/contexts
  • stdio Transport: Compatible with Claude Desktop and other MCP clients

Think of vMCP as a "package manager for MCP servers" with a unified gateway interface.

🚀 Quick Start

Prerequisites

  • Python 3.10+
  • uv package manager

Installation

# Clone and install
git clone https://github.com/JaimeCernuda/vmcp.git
cd vmcp
uv sync --all-extras

# Initialize configuration
uv run vmcp config init

# List available extensions
uv run vmcp extension list

Basic Usage

# Install and enable an extension
uv run vmcp extension install arxiv-mcp
uv run vmcp extension enable arxiv-mcp

# Start the vMCP gateway
uv run vmcp start

# Now Claude Desktop can connect to vMCP as a single MCP server
# and access all enabled extensions through the unified interface

📦 Available Extensions

vMCP comes with 14 pre-packaged scientific computing extensions:

Extension Category Description
adios-mcp Scientific Computing ADIOS2 dataset access for simulation data
arxiv-mcp Research Academic paper search and download
chronolog-mcp Data Management Time-series data logging and retrieval
compression-mcp Data Processing High-performance data compression
darshan-mcp Performance I/O profiling for HPC applications
hdf5-mcp Data Management HDF5 file operations and analysis
jarvis-mcp Materials Science Materials database access and analysis
node-hardware-mcp System Monitoring Hardware monitoring and system info
pandas-mcp Data Analysis Data manipulation with pandas
parallel-sort-mcp Data Processing High-performance parallel sorting
plot-mcp Visualization Data visualization and plotting
slurm-mcp Job Scheduling SLURM cluster job management
lmod-mcp Environment Environment module management
parquet-mcp Data Management Columnar data processing

🏗️ System Architecture

graph TB
    A[Claude Desktop] --> B[vMCP Gateway]
    B --> C[Extension Manager]
    B --> D[Registry System]
    B --> E[Routing Engine]
    
    C --> F[Extension Repository]
    F --> G[arxiv-mcp.vext]
    F --> H[pandas-mcp.vext]
    F --> I[plot-mcp.vext]
    F --> J[... 11 more]
    
    E --> K[Enabled Extensions]
    K --> L[ArXiv Tools]
    K --> M[Pandas Tools]
    K --> N[Plot Tools]

Key Components

  • Gateway Server: stdio transport compatible with MCP clients
  • Extension Manager: DXT-inspired extension lifecycle management
  • Repository System: Manages extension packages (.vext files)
  • Registry: Tracks installed and enabled extensions
  • Routing Engine: Routes requests to appropriate MCP servers
  • Persona System: Access control and tool restrictions (planned)

📖 Tutorial & Commands

Extension Management

List Extensions

# List all available extensions
uv run vmcp extension list

# List only installed extensions
uv run vmcp extension list --installed

# List only enabled extensions  
uv run vmcp extension list --enabled

# JSON format for scripting
uv run vmcp extension list --format json

Install Extensions

# Install from built-in repository
uv run vmcp extension install pandas-mcp

# Install from specific repository
uv run vmcp extension install pandas-mcp --repository builtin

Enable/Disable Extensions

# Enable an extension (makes it available to vMCP)
uv run vmcp extension enable pandas-mcp

# Enable with custom configuration
uv run vmcp extension enable pandas-mcp --config '{"debug": true}'

# Disable an extension
uv run vmcp extension disable pandas-mcp

Extension Information

# Detailed information about an extension
uv run vmcp extension info pandas-mcp

# Shows: description, tools, status, installation path, etc.

Update & Uninstall

# Update an extension
uv run vmcp extension update pandas-mcp

# Uninstall an extension
uv run vmcp extension uninstall pandas-mcp

# Force uninstall (even if enabled)
uv run vmcp extension uninstall pandas-mcp --force

Gateway Operations

Start/Stop Gateway

# Start vMCP gateway with default config
uv run vmcp start

# Start with custom config
uv run vmcp start --config my-config.toml

# Stop the gateway
uv run vmcp stop

# Check gateway status
uv run vmcp status

System Information

# List all registered servers
uv run vmcp list

# Show detailed system information
uv run vmcp info

# Health monitoring
uv run vmcp health check

# System metrics
uv run vmcp metrics show

Configuration Management

# Create default configuration
uv run vmcp config init

# Create config at specific location
uv run vmcp config init --output /path/to/config.toml

# Validate configuration file
uv run vmcp config validate config.toml

Repository Management

# Search for extensions
uv run vmcp repo search pandas

# Repository statistics
uv run vmcp repo stats

# Discover available extensions
uv run vmcp repo discover

Shell Completion

# Generate bash completion
uv run vmcp completion bash

# Generate zsh completion  
uv run vmcp completion zsh

# Add to your shell profile
uv run vmcp completion bash >> ~/.bashrc

⚙️ Configuration

Basic Configuration (vmcp_config.toml)

version = "0.1.0"

[gateway]
registry_path = "~/.vmcp/registry"
log_level = "INFO"
cache_enabled = true
cache_ttl = 300
max_connections = 1000
request_timeout = 30

[routing]
default_strategy = "hybrid"
load_balancer = "round_robin"

[transports.stdio]
enabled = true

[transports.http]
enabled = false
port = 3000
host = "127.0.0.1"

[transports.websocket]
enabled = false
port = 3001
host = "127.0.0.1"

Claude Desktop Integration

To connect Claude Desktop to vMCP, add this to your Claude Desktop MCP configuration:

{
  "mcpServers": {
    "vmcp": {
      "command": "uv",
      "args": ["run", "vmcp", "start"],
      "cwd": "/path/to/vmcp"
    }
  }
}

✅ What vMCP Can Do

  • ✅ Extension Management: Install, enable, disable MCP servers like browser extensions
  • ✅ Unified Gateway: Single stdio interface to access multiple MCP servers
  • ✅ DXT-Inspired Architecture: Professional extension packaging and management
  • ✅ Rich CLI: Beautiful, colored command-line interface with tab completion
  • ✅ Repository System: Centralized extension repository with 14 scientific tools
  • ✅ Configuration Management: Flexible TOML-based configuration
  • ✅ Health Monitoring: Monitor extension health and performance
  • ✅ FastMCP Compatibility: Works with both standard MCP and FastMCP servers

❌ What vMCP Cannot Do Yet

  • ❌ Persona System: User-based access control (planned)
  • ❌ Dynamic Loading: Runtime loading/unloading of extensions (planned)
  • ❌ HTTP/WebSocket Transports: Only stdio transport currently supported
  • ❌ Extension Development Tools: No scaffolding for creating new extensions
  • ❌ Remote Repositories: Only local built-in repository supported
  • ❌ Extension Dependencies: No dependency resolution between extensions
  • ❌ Hot Reload: Extensions require gateway restart to reload

🛠️ Development

Running Tests

# Run all tests
uv run pytest

# Run with coverage
uv run pytest --cov=src/vmcp

# Run specific test categories
uv run pytest -m unit
uv run pytest -m integration

Code Quality

# Format code
uv run ruff format .

# Lint code
uv run ruff check .

# Type checking
uv run mypy src/vmcp

GitHub Actions

The project includes comprehensive CI/CD:

  • ✅ Multi-Python version testing (3.10, 3.11, 3.12)
  • ✅ Code formatting and linting
  • ✅ Type checking
  • ✅ Security auditing
  • ✅ Package building

🔧 Technical Details

Extension Package Format

vMCP uses .vext (vMCP Extension) files, similar to DXT's .dxt format:

extension.vext
├── manifest.json          # DXT-style manifest
├── src/
│   ├── server.py          # MCP server entry point
│   └── capabilities/      # Tool implementations
├── tests/                 # Extension tests
└── README.md             # Extension documentation

Manifest Structure

{
  "$schema": "https://vmcp.dev/schemas/manifest.json",
  "vmcp_version": "0.1.0",
  "name": "pandas-mcp",
  "display_name": "Pandas MCP Server",
  "version": "0.1.0",
  "description": "Data analysis with pandas",
  "author": {
    "name": "Author Name",
    "email": "author@example.com"
  },
  "tools": [
    {
      "name": "data_profiling",
      "description": "Profile datasets and generate statistics"
    }
  ],
  "server": {
    "type": "python",
    "mcp": {
      "command": "uv",
      "args": ["run", "--directory", "{EXTENSION_DIR}", "python", "src/server.py"]
    }
  }
}

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Make your changes
  4. Run tests (uv run pytest)
  5. Commit your changes (git commit -m 'Add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

  • Anthropic for the Model Context Protocol specification
  • DXT Project for extension architecture inspiration
  • iowarp-mcps for the scientific computing MCP servers
  • uv for fast Python package management
  • Rich for beautiful terminal output

📞 Support


Made with ❤️ for the MCP community

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选