Skip to content

registry: publish pipefy-mcp-server to the MCP registry (PyPI package type) #248

@gbrlcustodio

Description

@gbrlcustodio

Outcome

pipefy-mcp-server is discoverable in the official Model Context Protocol registry as a PyPI-backed server, so MCP clients (Claude Desktop, Cursor, etc.) can find and install it through their built-in registry browser rather than via a manually pasted mcpServers JSON snippet.

Reference: registry docs, package-types.mdx, PyPI section and the publishing guide.

Scope

Prerequisites (out of scope here, must land first)

New files

  • packages/mcp/server.json (or repo root, whichever the publisher CLI expects), matching the 2025-12-11 schema:

    {
      "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
      "name": "io.github.gbrlcustodio/pipefy-mcp-server",
      "title": "Pipefy",
      "description": "MCP server that exposes Pipefy's GraphQL API.",
      "version": "<matches packages/mcp/pyproject.toml>",
      "packages": [
        {
          "registryType": "pypi",
          "identifier": "pipefy-mcp-server",
          "version": "<same>",
          "transport": { "type": "stdio" }
        }
      ]
    }

    Note: if the repo rename to ai-toolkit lands first (see auto-memory / project_repo_rename), the server name becomes io.github.gbrlcustodio/ai-toolkit or similar. Decide at PR time.

Ownership verification

  • Add an mcp-name: marker to the PyPI long description so the registry can verify ownership. Hidden in an HTML comment is fine:

    <!-- mcp-name: io.github.gbrlcustodio/pipefy-mcp-server -->

    Lives in whatever file packages/mcp/pyproject.toml points at as readme = ... (today: packages/mcp/README.md, confirm during the PR).

Publishing

  • Use the mcp-publisher CLI from the registry repo. One-shot manual publish from a maintainer's machine is acceptable for the first cut; document the exact command in RELEASE.md.
  • Authentication: GitHub OIDC against the gbrlcustodio namespace (matches the io.github.gbrlcustodio/* server name).

Release integration

  • Extend RELEASE.md with a "Publish to MCP registry" step that runs after the PyPI upload, so subsequent versions stay in sync.
  • Optional follow-up (not required for this issue): wire mcp-publisher publish into a GitHub Actions release workflow so it runs automatically when a new packages/mcp version is tagged.

Acceptance criteria

  • server.json validates against the official schema (mcp-publisher validate or equivalent exits 0).
  • mcp-name: io.github.gbrlcustodio/pipefy-mcp-server is present in the PyPI project description for the published version.
  • The server appears on the registry (searchable by name) and resolves to the correct PyPI identifier and version.
  • RELEASE.md documents the publish step so re-runs on future versions are reproducible.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions