MCP客户端应用程序-演示项目
一个演示项目,展示了在客户端主机应用程序中集成MCP(模型上下文协议)服务器的不同方法。该项目包括Gradio web界面和CLI应用程序。
特性
- Gradio网络应用程序 -具有Anthropic API+FastMCP集成功能的交互式web界面
- CLI应用程序 -使用外部MCP服务器的Claude Agent SDK的命令行界面
- MCP服务器演示 -暴露挪威警察事件API的Python MCP服务器示例
- 干净、最少的代码库,适合学习和演示
先决条件
- Python 3.10+
- 紫外线 包管理器
- 无烟煤API键
- Node.js(用于带文件系统MCP服务器的CLI演示)
设置
1.配置API密钥
复制示例环境文件并添加Anthropic API密钥:
cp .env.example .env
# Edit .env and add: ANTHROPIC_API_KEY=sk-ant-...2.安装依赖项
uv sync3.(可选)安装文件系统MCP服务器
对于CLI演示,安装Node.js文件系统MCP服务器:
npm install -g @modelcontextprotocol/server-filesystem演示应用程序
Gradio网络应用程序
一个基于网络的聊天界面,使用FastMCP连接到MCP服务器。
运行:
cd gradio-demo-app
uv run python app.pyGradio界面将在浏览器中启动(通常在 http://127.0.0.1:7860).
特征:
- 交互式聊天界面
- FastMCP客户端集成
- 与MCP服务器进行实时工具调用
CLI应用程序
一个使用Claude Agent SDK的交互式命令行界面,支持外部MCP服务器。
运行:
cd cli-demo-app
uv run python claude_agent_cli_with_mcp.py特征:
- 具有命令历史记录的交互式CLI
- 内置Claude Agent工具(读、写、Grep、Glob)
- 外部MCP服务器集成(文件系统、自定义Python服务器)
- 自动服务器生命周期管理
CLI命令:
/help-显示可用命令/tools-列出可用工具/clear-清除对话历史记录/quit-退出CLI
示例提示
在任一演示中尝试以下提示:
- “挪威最近发生了什么警察事件?”
- “给我看看奥斯陆的警察事件”
- “卑尔根最近发生了什么事件吗?”
- “你们有什么工具?”
项目结构
mcp-client-app-ndc/
├── gradio-demo-app/
│ └── app.py # Gradio web app with FastMCP integration
├── cli-demo-app/
│ └── claude_agent_cli_with_mcp.py # CLI app with Claude Agent SDK
├── demoserver/
│ └── public_api_server.py # Example MCP server (Norwegian Police incidents)
├── pyproject.toml # Project configuration with dependencies
├── requirements.txt # Alternative dependency list
└── .env.example # Environment variables templateMCP服务器
该项目包括一个演示MCP服务器,位于 demoserver/public_api_server.py 与API挪威警察事件有关。
外露工具:
latest_incidents()-获取挪威警方最新10起事件incidents_by_municipality(municipality)-获取特定市政当局的事件(例如“奥斯陆”、“卑尔根”)
两个演示应用程序都会自动连接到此本地MCP服务器。
使用的技术
- 无烟煤API -克劳德人工智能模型
- FastMCP -MCP协议的FastMCP客户端库
- Claude代理SDK -用于构建基于Claude的应用程序的SDK
- 度 -Web UI框架
- 提示工具包 -CLI接口库
- python dotenv -环境变量管理
