MCP Server Package Fixes: - Add build-system configuration to pyproject.toml - Fix module imports to use relative imports for proper packaging - Fix TypedDict import for Python 3.10 compatibility - Remove unsupported MCP SDK parameters (tags, meta) - Add GitHub Actions workflow for automatic PyPI publishing - Add PyPI publishing documentation and checklist Code Quality Improvements: - Fix code formatting in graphiti_core (line length, whitespace) This prepares v1.0.0 for publication to PyPI, enabling users to install with: uvx graphiti-mcp-varming 🤖 Generated with Claude Code (https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
126 lines
3.1 KiB
Markdown
126 lines
3.1 KiB
Markdown
# PyPI Publishing Setup Instructions
|
|
|
|
This guide explains how to publish the `graphiti-mcp-varming` package to PyPI.
|
|
|
|
## One-Time Setup
|
|
|
|
### 1. Add PyPI Token to GitHub Secrets
|
|
|
|
1. Go to your repository on GitHub: https://github.com/Varming73/graphiti
|
|
2. Click **Settings** → **Secrets and variables** → **Actions**
|
|
3. Click **New repository secret**
|
|
4. Name: `PYPI_API_TOKEN`
|
|
5. Value: Paste your PyPI API token (starts with `pypi-`)
|
|
6. Click **Add secret**
|
|
|
|
## Publishing a New Version
|
|
|
|
### Option 1: Automatic Publishing (Recommended)
|
|
|
|
1. Update the version in `mcp_server/pyproject.toml`:
|
|
```toml
|
|
version = "1.0.1" # Increment version
|
|
```
|
|
|
|
2. Commit the change:
|
|
```bash
|
|
cd mcp_server
|
|
git add pyproject.toml
|
|
git commit -m "Bump MCP server version to 1.0.1"
|
|
git push
|
|
```
|
|
|
|
3. Create and push a tag:
|
|
```bash
|
|
git tag mcp-v1.0.1
|
|
git push origin mcp-v1.0.1
|
|
```
|
|
|
|
4. GitHub Actions will automatically:
|
|
- Build the package
|
|
- Publish to PyPI
|
|
- Create a GitHub release
|
|
|
|
5. Monitor the workflow:
|
|
- Go to **Actions** tab in GitHub
|
|
- Watch the "Publish MCP Server to PyPI" workflow
|
|
|
|
### Option 2: Manual Publishing
|
|
|
|
If you prefer to publish manually:
|
|
|
|
```bash
|
|
cd mcp_server
|
|
|
|
# Remove local graphiti-core override
|
|
sed -i.bak '/\[tool\.uv\.sources\]/,/graphiti-core/d' pyproject.toml
|
|
|
|
# Build the package
|
|
uv build
|
|
|
|
# Publish to PyPI
|
|
uv publish --token your-pypi-token-here
|
|
|
|
# Restore the backup if needed for local development
|
|
mv pyproject.toml.bak pyproject.toml
|
|
```
|
|
|
|
## After Publishing
|
|
|
|
Users can install your package with:
|
|
|
|
```bash
|
|
# Basic installation (Neo4j support included)
|
|
uvx graphiti-mcp-varming
|
|
|
|
# With FalkorDB support
|
|
uvx --with graphiti-mcp-varming[falkordb] graphiti-mcp-varming
|
|
|
|
# With all LLM providers (Anthropic, Groq, Gemini, Voyage, etc.)
|
|
uvx --with graphiti-mcp-varming[providers] graphiti-mcp-varming
|
|
|
|
# With everything
|
|
uvx --with graphiti-mcp-varming[all] graphiti-mcp-varming
|
|
```
|
|
|
|
## Version Numbering
|
|
|
|
Follow [Semantic Versioning](https://semver.org/):
|
|
- **MAJOR** (1.0.0 → 2.0.0): Breaking changes
|
|
- **MINOR** (1.0.0 → 1.1.0): New features, backwards compatible
|
|
- **PATCH** (1.0.0 → 1.0.1): Bug fixes
|
|
|
|
## Tag Naming Convention
|
|
|
|
Use `mcp-v{VERSION}` format for tags:
|
|
- `mcp-v1.0.0` - Initial release
|
|
- `mcp-v1.0.1` - Patch release
|
|
- `mcp-v1.1.0` - Minor release
|
|
- `mcp-v2.0.0` - Major release
|
|
|
|
This distinguishes MCP server releases from graphiti-core releases.
|
|
|
|
## Troubleshooting
|
|
|
|
### Publishing Fails with "File already exists"
|
|
|
|
You tried to publish a version that already exists on PyPI. Increment the version number in `pyproject.toml` and try again.
|
|
|
|
### "Invalid or missing authentication token"
|
|
|
|
The PyPI token in GitHub secrets is incorrect or expired:
|
|
1. Generate a new token at https://pypi.org/manage/account/token/
|
|
2. Update the `PYPI_API_TOKEN` secret in GitHub
|
|
|
|
### Workflow doesn't trigger
|
|
|
|
Make sure:
|
|
- Tag matches pattern `mcp-v*.*.*`
|
|
- Tag is pushed to GitHub: `git push origin mcp-v1.0.0`
|
|
- Workflow file is on the `main` branch
|
|
|
|
## Checking Published Package
|
|
|
|
After publishing, verify at:
|
|
- PyPI page: https://pypi.org/project/graphiti-mcp-varming/
|
|
- Test installation: `uvx graphiti-mcp-varming --help`
|