🚀 MCP 服務器 Pacman
MCP 服務器 Pacman 是一款強大的服務工具,它集成了多種包管理接口,支持對 PyPI、npm、crates.io、Docker Hub 和 Terraform Registry 等的查詢與操作。通過它,用戶可以方便地獲取各類包的信息,同時具備緩存和日誌管理等實用功能,有效提升開發和管理效率。
🚀 快速開始
安裝
可以通過以下兩種方式安裝 MCP 服務器 Pacman:
從源碼安裝
git clone https://github.com/yourusername/mcp-server-pacman.git
cd mcp-server-pacman
pip install -r requirements.txt
使用 pip 安裝
pip install mcp-server-pacman
啟動服務
從源碼安裝後啟動
python -m mcp_server.app
使用 pip 安裝後啟動
mcp-server-run
✨ 主要特性
- 多包管理接口集成:支持 PyPI、npm、crates.io、Docker Hub 和 Terraform Registry 等包管理平臺的查詢與操作。
- 緩存機制:默認使用內存緩存,可擴展支持 Redis 或其他存儲方案。
- 日誌記錄:內置日誌系統,默認輸出到控制檯,可配置文件日誌記錄和日誌輪轉策略。
- 靈活配置:支持通過配置文件和環境變量進行靈活配置。
📦 安裝指南
系統要求
- 操作系統:支持 Linux、macOS 或 Windows(推薦使用 Linux 環境)。
- Python 版本:Python 3.6 及以上版本。
- 依賴管理:建議使用
pip
進行包管理。
安裝步驟
方法一:從源碼安裝
- 克隆倉庫
git clone https://github.com/yourusername/mcp-server-pacman.git
cd mcp-server-pacman
- 安裝依賴
pip install -r requirements.txt
- 配置環境變量(可選)
export MCP_SERVER_PORT=4001
export LOG_LEVEL=DEBUG
- 啟動服務
python -m mcp_server.app
方法二:使用 pip 安裝
- 安裝包
pip install mcp-server-pacman
- 啟動服務
mcp-server-run
配置說明
- 配置文件:項目的主配置文件位於
config/settings.py
,可根據需要修改其中的各項設置。
- 環境變量:某些配置可以通過環境變量覆蓋,具體請參考環境變量參考。
💻 使用示例
查詢 PyPI 包信息
curl -X POST http://localhost:4001/pypi/search \
-d '{"query": "requests"}'
curl http://localhost:4001/pypi/package/requests
npm 包查詢
curl -X POST http://localhost:4001/npm/search \
-d '{"query": "@vue/core"}'
curl http://localhost:4001/npm/downloads/@vue/core
📚 詳細文檔
功能模塊
數據提供者接口
- PyPI:提供 Python 包信息查詢功能。
- npm:支持 npm 包搜索與詳情獲取。
- crates.io:集成 Rust 語言包 registry。
- Docker Hub:提供 Docker 鏡像索引服務。
- Terraform Registry:支持 Terraform 模塊查詢。
緩存機制
默認使用內存緩存,可擴展支持 Redis 或其他存儲方案。
日誌記錄
內置日誌系統,默認輸出到控制檯,可配置文件日誌記錄和日誌輪轉策略。
項目結構
代碼目錄結構
src/mcp_server_pacman/
├── models/
├── providers/
│ ├── pypi.py
│ ├── npm.py
│ ├── crates.py
│ ├── dockerhub.py
│ └── terraform.py
├── utils/
│ ├── cache.py
│ ├── constants.py
│ └── parsers.py
├── __init__.py
├── __main__.py
└── server.py
測試目錄結構
tests/
├── integration/
├── models/
├── providers/
└── utils/
開發指南
環境準備
pip install -r requirements.txt
運行測試
pytest tests/unit/
pytest tests/integration/
代碼格式檢查
black .
flake8 .
文獻引用
如需參考本項目實現細節,可查閱以下資源:
🔧 技術細節
配置文件
默認配置如下:
{
"port": 4001,
"cache_type": "memory",
"log_level": "info"
}
核心組件
配置管理
settings.py
包含所有配置參數,如端口號、緩存類型等。
提供商接口
pypi.py
:實現與 PyPI 的交互,包括搜索和包信息查詢。
npm.py
:實現與 npm registry 的交互,包括搜索和包版本管理。
開發流程
代碼開發
- 創建功能模塊:
touch providers/your_provider.py
- 編寫實現邏輯,遵循現有代碼風格。
- 完成後提交到倉庫,並確保通過所有測試用例。
測試開發
- 新增功能時編寫單元測試。
pytest tests/test_your_provider.py -v
- 確保測試覆蓋率達到要求(如 80%)。
- 定期運行測試,確保代碼質量。
打包與發佈
打包步驟
- 創建 setup.py 文件:
from setuptools import setup, find_packages
setup(
name="mcp-server-pacman",
version="0.1",
packages=find_packages(),
install_requires=[
"requests>=2.25.1",
"gunicorn>=19.9.0"
],
)
- 打包:
python setup.py sdist bdist_wheel
- 上傳到私有倉庫或 PyPI。
📄 許可證
本項目遵循 MIT 協議開源:
MIT License
Copyright (c) [年份] [版權持有者]
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.