概要
What is mcp-demo?
mcp-demo is a demo MCP (Model Context Protocol) implementation that includes an MCP client and multiple MCP servers. It supports local file search, system control, command execution, and online API calls, designed for developers exploring MCP with tools like weather, map services, file search, and system utilities.
How to use mcp-demo?
Clone the repository, install dependencies with uv pip install -e ., optionally configure an OpenAI API key in a .env file or directly in src/config/default_config.yaml, then run python main.py or uv run main.py to start the interactive CLI. Type queries or use commands like !help, !servers, !connect <server>, !models, !model <name>, !debug <on/off>, and !quit/!exit.
Key features of mcp-demo
- Intelligent server selection based on query content
- US weather forecasts and alerts via NWS
- Amap (高德地图) geocoding, weather, route planning, and POI search
- Everything-based local file search with advanced syntax
- System tools: execute programs, manage processes, read/write files, and run Python code
Use cases of mcp-demo
- Ask for weather forecasts or alerts for US locations
- Query map data (geocoding, weather, routes, POIs) for Chinese locations via Amap
- Search local files using Everything engine with wildcards or regular expressions
- Control system applications: open apps, manage processes, create/edit files, and execute code
FAQ from mcp-demo
What does mcp-demo do?
It is a demo MCP client-and-server implementation that lets you interact with multiple tools (weather, map, file search, system control) through a single CLI, with automatic server selection.
What are the runtime requirements?
Python 3.12 (3.11 and 3.10 likely work as well) and the uv package manager.
How do I configure API keys?
Create a .env file with OPENAI_API_KEY="your-api-key" or directly edit src/config/default_config.yaml.
What servers are included?
weather (US National Weather Service), 高德 (Amap), everything (local file search via Everything engine), and system_tools (program execution, file operations, process management, code execution).
How do I use the interactive client?
After starting with python main.py, type your query or use commands: !help, !servers, !connect <server>, !models, !model <name>, !debug <on/off>, !quit/!exit.