Skip to main content
Glama
PUBLISHING_GUIDE.mdโ€ข4.93 kB
# PyPI Publishing Guide for Wikipedia MCP This guide will help you set up automated PyPI publishing for the Wikipedia MCP server using modern **Trusted Publishing** (OpenID Connect). ## ๐Ÿ” Modern Trusted Publishing Setup (Recommended) Trusted Publishing is the modern, secure way to publish to PyPI. It eliminates the need for API tokens and uses OpenID Connect (OIDC) for authentication. ### Step 1: Set Up PyPI Trusted Publisher 1. **For PyPI (Production)**: - Go to [PyPI Trusted Publishers](https://pypi.org/manage/account/publishing/) - Click "Add a new pending publisher" - Fill in the form: - **PyPI project name**: `wikipedia-mcp` - **Owner**: `Rudra-ravi` - **Repository name**: `wikipedia-mcp` - **Workflow name**: `release.yml` - **Environment name**: `pypi` 2. **For TestPyPI (Testing)**: - Go to [TestPyPI Trusted Publishers](https://test.pypi.org/manage/account/publishing/) - Fill in the same form but with: - **Environment name**: `testpypi` ### Step 2: Create GitHub Environments 1. Go to your GitHub repository settings 2. Navigate to **Environments** (in the left sidebar under "Code and automation") 3. Create two environments: #### PyPI Environment (Production) - **Name**: `pypi` - **Protection rules**: - โœ… Required reviewers (add yourself) - โœ… Wait timer: 0 minutes - โœ… Deployment branches: Selected branches โ†’ `main` #### TestPyPI Environment (Testing) - **Name**: `testpypi` - **Protection rules**: - โœ… Deployment branches: All branches (for testing) ### Step 3: Test the Workflow 1. Go to your GitHub repository 2. Click **Actions** tab 3. Click **Release Wikipedia MCP** workflow 4. Click **Run workflow** 5. Enter version (e.g., `1.5.6`) 6. Choose if it's a pre-release 7. Click **Run workflow** ## ๐Ÿ”ง Troubleshooting Current Issues ### Issue 1: Git Push Error **Error**: `error: src refspec main does not match any` **Solution**: The updated workflow now properly handles the main branch push by using `git push origin HEAD:main`. ### Issue 2: Detached HEAD State **Solution**: The workflow now commits changes before creating tags, avoiding detached HEAD issues. ### Issue 3: Missing Trusted Publishing Setup **Solution**: Follow Step 1 above to set up trusted publishers on PyPI and TestPyPI. ### Issue 4: Missing GitHub Environments **Solution**: Follow Step 2 above to create the required environments. ## ๐Ÿ“ฆ Package Installation Commands After successful publishing, users can install your package with: ```bash # Using pip pip install wikipedia-mcp # Using uvx (recommended for MCP servers) uvx wikipedia-mcp # Using pipx pipx install wikipedia-mcp ``` ## ๐Ÿ”„ MCP Configuration Users can then add to their MCP configuration: ```json { "wikipedia": { "command": "uvx", "args": ["wikipedia-mcp"] } } ``` ## ๐Ÿš€ Release Process 1. **Update CHANGELOG.md** with your changes 2. **Run the workflow**: - Go to Actions โ†’ Release Wikipedia MCP - Click "Run workflow" - Enter the new version number - Choose if it's a pre-release - Click "Run workflow" 3. **The workflow will**: - Build the package - Create a GitHub release with files - Publish to TestPyPI (always) - Publish to PyPI (only for non-pre-releases) ## ๐Ÿ” Verification Steps After a successful release: 1. **Check GitHub Release**: Should appear in your repository's releases 2. **Check TestPyPI**: Visit [test.pypi.org/project/wikipedia-mcp](https://test.pypi.org/project/wikipedia-mcp/) 3. **Check PyPI**: Visit [pypi.org/project/wikipedia-mcp](https://pypi.org/project/wikipedia-mcp/) 4. **Test Installation**: `pip install wikipedia-mcp==<version>` ## โš ๏ธ Important Notes 1. **First Time Setup**: The trusted publisher will create the PyPI project automatically on first use 2. **Environment Protection**: The `pypi` environment requires manual approval for security 3. **Version Management**: Always increment the version number for new releases 4. **Pre-releases**: Use pre-release option for alpha/beta versions ## ๐Ÿ› ๏ธ Advanced Configuration ### Custom Package Name If you want to publish under a different name, update: - PyPI trusted publisher configuration - `pyproject.toml` name field - Workflow environment URLs ### Additional Security Consider adding: - Branch protection rules - Required status checks - CODEOWNERS file ## ๐Ÿ“š References - [PyPI Trusted Publishing Documentation](https://docs.pypi.org/trusted-publishers/) - [GitHub Actions OpenID Connect](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/configuring-openid-connect-in-pypi) - [Python Packaging User Guide](https://packaging.python.org/en/latest/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/) --- This setup provides a secure, modern, and automated way to publish your Python package to PyPI without managing API tokens!

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Rudra-ravi/wikipedia-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server