We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/ahmedelshazly27/opendss-mcp-server1'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
name: Publish to PyPI
# =============================================================================
# HOW TO SET UP PYPI PUBLISHING
# =============================================================================
#
# Option 1: Using PyPI API Token (Recommended for most users)
# -----------------------------------------------------------
# 1. Create a PyPI API token:
# - Go to https://pypi.org/manage/account/token/
# - Click "Add API token"
# - Token name: "GitHub Actions - opendss-mcp-server"
# - Scope: "Entire account" or specific to "opendss-mcp-server" project
# - Copy the token (starts with "pypi-")
#
# 2. Add token to GitHub Secrets:
# - Go to: https://github.com/ahmedelshazly27/opendss-mcp-server/settings/secrets/actions
# - Click "New repository secret"
# - Name: PYPI_API_TOKEN
# - Value: Paste your PyPI token
# - Click "Add secret"
#
# Option 2: Using Trusted Publishing (Recommended for organizations)
# ------------------------------------------------------------------
# 1. Configure PyPI trusted publisher:
# - Go to https://pypi.org/manage/project/opendss-mcp-server/settings/publishing/
# - Add a new pending publisher
# - Owner: ahmedelshazly27
# - Repository: opendss-mcp-server
# - Workflow: publish.yml
# - Environment: release (optional)
#
# 2. Update this workflow to use OIDC:
# - Add permissions: id-token: write
# - Remove TWINE_USERNAME and TWINE_PASSWORD
# - Use: pypa/gh-action-pypi-publish@release/v1
#
# =============================================================================
# HOW TO TRIGGER A RELEASE
# =============================================================================
#
# Method 1: Create and push a tag
# --------------------------------
# 1. Update version in pyproject.toml to X.Y.Z
# 2. Commit changes:
# git add pyproject.toml
# git commit -m "chore: bump version to X.Y.Z"
# 3. Create and push tag:
# git tag -a vX.Y.Z -m "Release version X.Y.Z"
# git push origin vX.Y.Z
#
# Method 2: Create tag from GitHub interface
# ------------------------------------------
# 1. Update version in pyproject.toml
# 2. Commit and push changes
# 3. Go to: https://github.com/ahmedelshazly27/opendss-mcp-server/releases/new
# 4. Choose or create tag: vX.Y.Z
# 5. Set release title: "Release X.Y.Z"
# 6. Add release notes
# 7. Click "Publish release"
#
# =============================================================================
on:
push:
tags:
- 'v*' # Triggers on tags like v1.0.0, v2.1.3, etc.
permissions:
contents: read
jobs:
deploy:
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/opendss-mcp-server/
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install build tools
run: |
python -m pip install --upgrade pip
pip install build twine tomli
- name: Build package
run: python -m build
- name: Check package integrity
run: twine check dist/*
- name: Verify version matches tag
run: |
TAG_VERSION=${GITHUB_REF#refs/tags/v}
PACKAGE_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
echo "Error: Tag version ($TAG_VERSION) does not match package version ($PACKAGE_VERSION)"
exit 1
fi
echo "Version check passed: $TAG_VERSION"
shell: bash
- name: Publish to PyPI
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: twine upload dist/*
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: dist/*
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}