Skip to main content
Glama
CLAUDE.md3.69 kB
# Reddit Research MCP Server - Development Guide ## Project Overview This is a Python MCP server built with FastMCP that provides Reddit research capabilities. It's published to: - **PyPI**: `reddit-research-mcp` - **MCP Registry**: `io.github.king-of-the-grackles/reddit-research-mcp` ## Key Files | File | Purpose | |------|---------| | `pyproject.toml` | Python package configuration, version, dependencies | | `server.json` | MCP Registry configuration | | `README.md` | Must contain `mcp-name:` line for registry validation | | `.github/workflows/publish-mcp.yml` | CI/CD for PyPI + MCP Registry publishing | ## Releasing New Versions ### Automated Release Process 1. **Update versions** in both files (must match): - `pyproject.toml`: `version = "X.Y.Z"` - `server.json`: `"version": "X.Y.Z"` (in both places) 2. **Commit and tag**: ```bash git add pyproject.toml server.json git commit -m "chore: bump version to X.Y.Z" git tag vX.Y.Z git push origin main --tags ``` 3. **GitHub Actions** automatically: - Builds the Python package - Publishes to PyPI - Updates server.json version from tag - Authenticates to MCP Registry via GitHub OIDC - Publishes to MCP Registry ### Required GitHub Secrets - `PYPI_TOKEN`: PyPI API token scoped to `reddit-research-mcp` package ## MCP Registry Requirements ### server.json Schema ```json { "$schema": "https://static.modelcontextprotocol.io/schemas/2025-10-17/server.schema.json", "name": "io.github.king-of-the-grackles/reddit-research-mcp", "description": "...", "repository": { "url": "https://github.com/king-of-the-grackles/reddit-research-mcp", "source": "github" }, "version": "1.0.1", "packages": [ { "registryType": "pypi", "identifier": "reddit-research-mcp", "version": "1.0.1", "runtimeHint": "uvx", "transport": { "type": "stdio" } } ] } ``` ### README.md Requirement The README **must** contain this line (typically at the very top): ``` mcp-name: io.github.king-of-the-grackles/reddit-research-mcp ``` This is used by the MCP Registry to validate PyPI package ownership. The name must exactly match the `name` field in `server.json`. ### Authentication The server name format determines authentication: - `io.github.{username}/*` → GitHub authentication (OAuth or OIDC) - `com.example.*/*` → Domain-based authentication (DNS or HTTP) This project uses GitHub-based auth via OIDC in CI/CD. ## Manual Publishing (if needed) ```bash # Install CLI brew install mcp-publisher # Authenticate (interactive) mcp-publisher login github # Publish mcp-publisher publish ``` ## Common Issues ### "PyPI package ownership validation failed" The `mcp-name:` line in README.md doesn't match `server.json` name. Ensure they're identical. ### "Cannot publish duplicate version" PyPI and MCP Registry don't allow re-uploading the same version. Bump the version number. ### Workflow not triggering If the workflow file was added in the same commit as the tag, delete and recreate the tag: ```bash git tag -d vX.Y.Z git push origin :refs/tags/vX.Y.Z git tag vX.Y.Z git push origin vX.Y.Z ``` ## Development ```bash # Install dependencies uv sync # Run locally uv run python -m src.server # Build package uv build # Run tests uv run pytest ``` ## Links - [MCP Registry](https://registry.modelcontextprotocol.io/) - [PyPI Package](https://pypi.org/project/reddit-research-mcp/) - [GitHub Repository](https://github.com/king-of-the-grackles/reddit-research-mcp) - [MCP Registry Publishing Guide](https://github.com/modelcontextprotocol/registry/blob/main/docs/modelcontextprotocol-io/quickstart.mdx)

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/king-of-the-grackles/dialog-reddit-tools'

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