⚙️ MCP项目--SQLite客户端和天气模块
此存储库包含两个相关的MCP(模块化客户端协议)示例模块,演示协议使用、持久性和环境配置: 1. MCP SQLite客户端 --一个使用SQLite进行本地存储的轻量级MCP客户端。 1. MCP天气 --为MCP实现的天气模块示例(示例数据和客户端处理程序)。
______________________________________________________________________
📂 存储库概述
MCP WORKING/
├── SQLlite/
│ └── mcp-client/ # Python MCP client using SQLite
│ ├── client.py
│ ├── pyproject.toml
│ ├── .env
│ ├── .gitignore
│ └── uv.lock
└── Weather/
└── mcp-weather/ # MCP weather-related module & examples
├── weather_client.py
├── README.md
└── sample_data/注意:文件夹名称反映上传的ZIP。轻微的命名不一致(例如。 SQLlite)被保留以匹配提供的文件。______________________________________________________________________
🧩 高级描述
1) MCP SQLite客户端 (SQLlite/mcp-client)
- 一个模块化的Python客户端,演示如何连接到MCP服务器,交换协议消息,并将相关结果持久化到本地 SQLite 数据库。
- 用于本地测试、原型制作,并作为MCP集成模式的学习参考。
2) MCP天气模块 (Weather/mcp-weather)
- 一个专注于天气相关请求的示例MCP模块——包括一个小型客户端/处理程序和示例数据集。
- 作为构建特定于域的MCP扩展(获取和处理天气数据、存储缓存等)的示例很有用。
______________________________________________________________________
🧠 架构与流程
flowchart TD
A[Start Client] --> B{Choose Module}
B -->|SQLite Client| C[Init SQLite DB]
B -->|Weather Module| D[Load Weather Handlers]
C --> E[Connect to MCP Server]
D --> E[Connect to MCP Server]
E --> F[Exchange Messages]
F --> G[Process & Store / Return Results]
G --> H[Graceful Shutdown]______________________________________________________________________
🧱 技术栈
| 组件 | 技术 |
|---|---|
| 语言 | Python 3.11 |
| 持久性 | SQLite(本地数据库) |
| 模块示例 | 天气处理程序,示例数据 |
| 依赖管理器 | Poetry/pip(pyproject.toml存在) |
| Env | .env 用于本地配置(不要推送机密) |
______________________________________________________________________
⚙️ 设置和使用(组合)
从存储库根运行这些步骤(MCP WORKING/).这些例子假设你有Python 3.11,或者 pip 或 poetry 安装。
1.删除任何嵌套的Git元数据(如果你想将此代码采用到新的仓库中)
# from repo root
find . -type d -name ".git" -prune -exec rm -rf {} +
# on Windows PowerShell (run in repo root)
Get-ChildItem -Path . -Recurse -Force -Directory -Filter ".git" | ForEach-Object { Remove-Item -LiteralPath $_.FullName -Recurse -Force }2.安装MCP SQLite客户端的依赖项
cd "SQLlite/mcp-client"
# If requirements.txt exists use pip; otherwise use poetry
pip install -r requirements.txt 2>/dev/null || true
poetry install 2>/dev/null || true3.配置环境(示例 .env)
创建或更新 SQLlite/mcp-client/.env 使用最小配置(示例):
MCP_SERVER_HOST=localhost
MCP_SERVER_PORT=8080
DATABASE_PATH=./data.db重要提示: 将敏感凭据置于版本控制之外。 .env 存在于上传的文件中——在推送到公共仓库之前删除机密。4.运行SQLite客户端
python client.py5.运行天气模块示例
cd ../../Weather/mcp-weather
python weather_client.py每个模块通常记录连接尝试、消息交换和存储/缓存事件。检查控制台输出以了解运行时详细信息。
______________________________________________________________________
🧪 示例命令和测试
- 初始化一个新的git仓库并推送(示例):
git init
git checkout -B main
git add .
git commit -m "Initial commit - MCP examples (SQLite client & Weather module)"
git remote add origin https://github.com//mcp-examples.git
git push -u origin main- 运行快速烟雾测试(仅限客户端):
python SQLlite/mcp-client/client.py --test
# or
python Weather/mcp-weather/weather_client.py --demo(根据脚本的内部解析器调整标志——打开文件以确认可用选项。)
______________________________________________________________________
🧰 故障排除
- 错误:嵌套仓库/子模块警告 --删除嵌套
.git文件夹(见步骤1)。 - 数据库锁定或路径问题 --检查
DATABASE_PATH在.env并确保该过程可以创建/写入文件。 - 未找到依赖项 --检查
pyproject.toml或requirements.txt在每个模块内部安装所需的软件包。 - Windows上的权限问题 --以管理员身份运行PowerShell或使用适当的用户权限进行文件操作。
______________________________________________________________________
🙏 致谢与感谢
特别感谢:
- MCP(模块化客户端协议) 文档和社区——参考文档帮助塑造了这些示例。
- 克劳德 --在学习集成模式和细化示例的同时,提供概念帮助和灵感。
欢迎您的贡献和分叉——请保持积分不变。
______________________________________________________________________
🧾 建议的存储库名称和描述
存储库名称: mcp-examples\ 说明: Python MCP example modules: SQLite client and Weather module — reference implementations for protocol learning and prototyping.
______________________________________________________________________
👨💻 作者
阿瓦尼斯·萨海 --尝试模块化协议、本地持久性和域模块。
______________________________________________________________________
📜 许可证
MIT许可证——有关详细信息,请参阅许可证文件。
______________________________________________________________________
⭐ MCP示例 — *学习MCP。构建模块。快速迭代。*
