Token导航 LogoToken导航

MCP Server · 开发工具

Softpack MCP

一个基于FastAPI的Spack包管理服务器,为语言模型和外部服务提供与Spack包管理命令交互的完整桥梁,包括会话管理、配方构建和Git集成。

stdio官方级别未说明来源级核验工具 0
包管理会话管理PythonGit集成

快速开始

作者 / 组织
wtsi-hgi
提供方
wtsi-hgi
运行时
Python

工具数量

0

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Softpack MCP 属于开发工具类 MCP Server,公开资料标注 0 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

开发工具

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

uv run ruff check . --fix

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 0 个工具,随便调一个只读工具确认能返回结果。

接入前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

详细介绍

Softpack MCP服务器

一个全面的基于FastAPI的MCP(模型上下文协议)服务器,使LLM和外部服务能够与垃圾邮件包管理命令进行交互。该服务器是Softpack生态系统的一部分,在语言模型和spack包管理器之间提供了一个完整的桥梁,包括会话管理、配方构建和Git集成。

特性

  • 🚀 FastAPI集成:具有自动API文档的现代异步/等待web框架
  • 🔧 MCP协议:通过fastapi-mcp与语言模型无缝集成
  • 📦 垃圾邮件命令:垃圾邮件包管理操作的完整界面
  • 🎯 会话管理:用于包开发的独立工作区
  • 📝 配方构建:交互式配方创建和管理
  • 🔄 Git集成:用于包工作流的自动化Git操作
  • 📊 结构化日志记录:全面的日志记录,包括轮换和上下文
  • 🛡️ 错误处理:强大的异常处理和验证
  • 🔒 安全:CORS和身份验证支持
  • 📖 汽车文档:带有Swagger UI的交互式API文档
  • 🌐 Web向导界面:用于包创建和管理的交互式6步向导

MCP工具可用

服务器向LLM公开了以下全面的工具集:

垃圾邮件包管理

  • search_packages -搜索可用的垃圾邮件包
  • list_packages -列出已安装的软件包
  • get_package_info -获取全面的包裹信息
  • install_package -安装带有变体的垃圾邮件包
  • install_package_stream -安装实时流输出
  • uninstall_package -删除已安装的软件包
  • uninstall_package_with_dependents -删除包和所有依赖项
  • copy_existing_package -将现有包从内置复制到会话
  • get_package_versions -获取软件包的可用版本
  • get_package_checksums -获取包版本的校验和
  • create_pypi_package -从PyPI创建spack包
  • create_recipe_from_url -从URL创建垃圾邮件包
  • validate_package -验证包装配方
  • validate_package_stream -通过实时流媒体进行验证

会话管理

  • create_session -创建独立的开发会话
  • list_sessions -列出所有活动会话
  • get_session_info -获取会话详细信息
  • delete_session -删除会话和所有内容
  • list_session_files -列出会话目录中的文件

配方管理

  • create_recipe -创建新的包装配方
  • list_recipes -列出会话中的所有食谱
  • read_recipe -阅读食谱内容
  • write_recipe -编写/更新食谱内容
  • delete_recipe -删除配方
  • validate_recipe -验证配方语法和内容
  • get_recipe_info -获取配方元数据

Git操作

  • pull_spack_repo -拉取最新的垃圾邮件仓库更新
  • get_git_commit_info -获取存储库的提交信息
  • create_pull_request -为包创建拉取请求

访问管理

  • request_collaborator_access -请求GitHub合作者访问权限

快速开始

先决条件

  • Python 3.10+
  • 已安装Spack包管理器
  • Git(用于存储库操作)

安装

  1. 克隆存储库:
   git clone 
   cd softpack-mcp
  1. 初始化项目:
   make init

这将:

  • 使用uv安装依赖项
  • 设置预提交挂钩
  • 创建必要的目录
  • 创建一个 .env 具有默认值的文件

运行服务器

开发模式(仅后端)
make debug
生产模式(后端+前端)
make prod
仅限前端
make frontend

配置

环境变量

应用程序使用环境变量进行配置。复制 .env.example 向 .env 并根据需要进行修改:

cp .env.example .env
可用环境变量
  • SOFTPACK_HOST:后端服务器主机(默认值: 127.0.0.1)
  • SOFTPACK_PORT:后端服务器端口(默认值: 8000)
  • SOFTPACK_DEBUG:启用调试模式(默认值: false)
  • SOFTPACK_LOG_LEVEL:日志记录级别(默认值: INFO)
  • SOFTPACK_SPACK_EXECUTABLE:垃圾邮件可执行文件的路径(默认值: spack)
  • SOFTPACK_COMMAND_TIMEOUT:命令执行超时(秒)(默认值: 300)
  • API_BASE_URL:前端API基本URL(默认值: http://localhost:8000)

API文档

服务器运行后,请访问:

  • 交互式API文档: http://localhost:8000/docs
  • ReDoc文档: http://localhost:8000/redoc
  • 健康检查: http://localhost:8000/health
  • Web向导界面: http://localhost:8001

Web向导界面

该项目包括一个全面的基于web的向导界面(index.html)它提供了一个交互式的6步工作流,用于创建和管理spack包:

向导步骤

  1. 包裹信息 -输入包名称和类型(Python、R或其他)
  2. 配方存在检查 -自动检查配方是否已存在于spack仓库中
  3. 配方创建/版本管理 -创建新配方或管理现有配方的版本
  4. 配方修改 -交互式配方编辑器,具有语法高亮显示和验证功能
  5. 构建和测试 -安装包并运行具有实时输出的验证测试
  6. 创建拉取请求 -准备Git操作并请求协作者访问

主要特点

  • 交互式配方编辑器 -带有实时验证的语法高亮编辑器
  • 实时流媒体 -包安装和验证的实时输出
  • 自动配方生成 -支持PyPI包和现有的spack食谱
  • 会话管理 -用于包开发的独立工作区
  • Git集成 -自动创建分支和拉取请求准备
  • 访问管理 -内置合作者访问请求系统
  • 进度跟踪 -可视化进度条和分步指导

访问向导

向导在端口8001上提供,并自动连接到API服务器:

# Start both backend and frontend
make prod

# Or start frontend only (requires backend on port 8000)
make frontend

然后访问:http://localhost:8001

核心功能

会话管理

服务器为包构建提供独立的开发会话:

# Create a new session
curl -X POST "http://localhost:8000/sessions/create" \
  -H "Content-Type: application/json" \
  -d '{"namespace": "my-packages"}'

# List sessions
curl "http://localhost:8000/sessions/list"

配方构建

会话中的交互式配方创建和管理:

# Create a new recipe
curl -X POST "http://localhost:8000/recipes/{session_id}/{package_name}/create"

# Write recipe content
curl -X PUT "http://localhost:8000/recipes/{session_id}/{package_name}" \
  -H "Content-Type: application/json" \
  -d '{"content": "class MyPackage(Package): ..."}'

# Validate recipe
curl -X POST "http://localhost:8000/recipes/{session_id}/{package_name}/validate" \
  -H "Content-Type: application/json" \
  -d '{"content": "class MyPackage(Package): ..."}'

流操作

长时间运行操作的实时流媒体:

# Streaming installation
curl -X POST "http://localhost:8000/spack/install/stream" \
  -H "Content-Type: application/json" \
  -d '{"package_name": "zlib", "version": "1.2.13"}' \
  --no-buffer

# Streaming validation
curl -X POST "http://localhost:8000/spack/validate/stream" \
  -H "Content-Type: application/json" \
  -d '{"session_id": "my-session", "package_name": "my-package"}' \
  --no-buffer

Git集成

用于包工作流的自动化Git操作:

# Pull latest spack-repo updates
curl -X POST "http://localhost:8000/git/pull" \
  -H "Content-Type: application/json" \
  -d '{"repo_path": "/path/to/spack-repo"}'

# Create pull request
curl -X POST "http://localhost:8000/git/pull-request" \
  -H "Content-Type: application/json" \
  -d '{"package_name": "my-package", "session_id": "my-session"}'

例子

请参阅 examples/ 完整工作示例目录:

  • session_example.py -会话管理工作流程
  • recipe_example.py -配方创建和验证
  • copy_package_example.py -复制现有包
  • streaming_client.py -流媒体安装客户端

发展

设置开发环境

# Initialize the project (installs dependencies and sets up pre-commit)
make init

运行测试

# Run all tests
pytest

# Run with coverage
pytest --cov=softpack_mcp

# Run integration tests
make test-integration

代码质量

# Format and lint code
uv run ruff check . --fix
uv run ruff format .

# Run pre-commit on all files
uv run pre-commit run --all-files

项目结构

softpack-mcp/
├── softpack_mcp/           # Main application package
│   ├── __init__.py
│   ├── main.py            # FastAPI application
│   ├── config.py          # Configuration management
│   ├── repos.yaml         # Spack repository configuration
│   ├── models/            # Pydantic models
│   │   ├── requests.py    # Request models
│   │   └── responses.py   # Response models
│   ├── tools/             # MCP tool implementations
│   │   ├── spack.py       # Spack tool endpoints
│   │   ├── sessions.py    # Session management
│   │   ├── recipes.py     # Recipe management
│   │   ├── git.py         # Git operations
│   │   └── access.py      # Access management
│   ├── services/          # Business logic layer
│   │   ├── spack_service.py # Spack service
│   │   ├── session_manager.py # Session management
│   │   ├── git_service.py # Git operations
│   │   └── access_service.py # Access management
│   └── utils/             # Utility modules
│       ├── logging.py     # Logging configuration
│       └── exceptions.py  # Custom exceptions
├── examples/              # Example scripts and clients
│   ├── session_example.py # Session management example
│   ├── recipe_example.py  # Recipe building example
│   ├── copy_package_example.py # Package copying example
│   ├── streaming_client.py # Streaming client example
│   └── README.md          # Examples documentation
├── tests/                 # Test suite
├── index.html             # Web wizard interface for package creation
├── serve_frontend.py      # Frontend server
├── run_both.py           # Combined server runner
├── Makefile              # Build and run commands
├── pyproject.toml        # Project configuration
└── README.md            # This file

贡献

  1. 分叉存储库
  2. 创建要素分支(git checkout -b feature/amazing-feature)
  3. 进行更改
  4. 添加新功能的测试
  5. 确保所有测试通过(pytest)
  6. 运行代码质量检查(uv run pre-commit run --all-files)
  7. 提交您的更改(git commit -m 'Add amazing feature')
  8. 推到分支(git push origin feature/amazing-feature)
  9. 打开拉取请求

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

支持

  • 📧 电子邮件:hgi@sanger.ac.uk
  • 🐛 问题:
  • 📖 文档: API文件

致谢

工具与能力

工具数量

0

资源数量

0

提示词数量

0

能力标签

包管理Python本地部署会话管理配方构建Git集成FastAPI

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 0 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在开发工具场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Softpack MCP

MCP World · 本页

0stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Softpack MCP 怎么安装?

公开资料给出的安装命令是 uv run ruff check . --fix,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Softpack MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Softpack MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Softpack MCP 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

Softpack MCP 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP