# PyPI Package Setup Complete! 🚀 ## Summary Your Graphiti MCP Server is now ready to be published to PyPI as `graphiti-mcp-varming`! ## What Was Done ### 1. ✅ Package Configuration (`mcp_server/pyproject.toml`) - **Name**: `graphiti-mcp-varming` (clearly distinguishes your enhanced fork) - **Entry point**: `graphiti-mcp-varming` command added - **Dependencies**: Standalone package with: - `graphiti-core>=0.16.0` (includes Neo4j support by default) - All MCP and OpenAI dependencies - Optional extras for FalkorDB, other LLM providers (Anthropic, Groq, Gemini, Voyage) - **Metadata**: Proper description, keywords, classifiers for PyPI ### 2. ✅ GitHub Actions Workflow (`.github/workflows/publish-mcp-pypi.yml`) - Automatic publishing to PyPI when you push tags like `mcp-v1.0.0` - Builds package with `uv build` - Publishes with `uv publish` - Creates GitHub releases with dist files ### 3. ✅ Documentation Updates - **`DOCS/LibreChat-Unraid-Stdio-Setup.md`**: Updated with `uvx` commands - **`mcp_server/PYPI_PUBLISHING.md`**: Complete publishing guide - **`mcp_server/README.md`**: Added PyPI package notice ## Next Steps (What You Need To Do) ### 1. Add PyPI Token to GitHub 1. Go to: https://github.com/Varming73/graphiti/settings/secrets/actions 2. Click **"New repository secret"** 3. Name: `PYPI_API_TOKEN` 4. Value: Your PyPI token (starts with `pypi-`) 5. Click **"Add secret"** ### 2. Update Your Email in pyproject.toml (Optional) Edit `mcp_server/pyproject.toml` line with your real email: ```toml authors = [ {name = "Varming", email = "your-real-email@example.com"} ] ``` ### 3. Publish First Version ```bash # Make sure all changes are committed git add . git commit -m "Prepare graphiti-mcp-varming for PyPI publishing" git push # Create and push the first release tag git tag mcp-v1.0.0 git push origin mcp-v1.0.0 ``` ### 4. Monitor Publishing - Go to: https://github.com/Varming73/graphiti/actions - Watch the "Publish MCP Server to PyPI" workflow - Should complete in ~2-3 minutes ### 5. Verify Publication After workflow completes: - Check PyPI: https://pypi.org/project/graphiti-mcp-varming/ - Test installation: `uvx graphiti-mcp-varming --help` ## Usage After Publishing Users can now install your enhanced MCP server easily: ### Basic Installation (Neo4j support included) ```bash uvx graphiti-mcp-varming ``` ### With FalkorDB Support ```bash uvx --with graphiti-mcp-varming[falkordb] graphiti-mcp-varming ``` ### With All LLM Providers ```bash uvx --with graphiti-mcp-varming[providers] graphiti-mcp-varming ``` ### With Everything ```bash uvx --with graphiti-mcp-varming[all] graphiti-mcp-varming ``` ### In LibreChat (stdio mode) ```yaml mcpServers: graphiti: type: stdio command: uvx args: - graphiti-mcp-varming env: GRAPHITI_GROUP_ID: "{{LIBRECHAT_USER_ID}}" NEO4J_URI: "bolt://neo4j:7687" NEO4J_USER: "neo4j" NEO4J_PASSWORD: "your_password" OPENAI_API_KEY: "${OPENAI_API_KEY}" ``` ## Future Releases To publish updates: 1. Update version in `mcp_server/pyproject.toml` 2. Commit and push changes 3. Create and push new tag: `git tag mcp-v1.0.1 && git push origin mcp-v1.0.1` 4. GitHub Actions handles the rest! ## Package Features Your `graphiti-mcp-varming` package includes: ✅ **Standalone**: All dependencies bundled (graphiti-core, neo4j driver, etc.) ✅ **Multi-database**: Neo4j (default) + optional FalkorDB support ✅ **Multi-LLM**: OpenAI (default) + optional Anthropic, Groq, Gemini, Azure ✅ **Enhanced Tools**: Your custom `get_entities_by_type` and `compare_facts_over_time` ✅ **Per-user Isolation**: Full support for LibreChat multi-user via stdio mode ✅ **Easy Install**: One command with `uvx` ## Troubleshooting See `mcp_server/PYPI_PUBLISHING.md` for detailed troubleshooting guide. --- **Questions?** The publishing guide has all the details: `mcp_server/PYPI_PUBLISHING.md`