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
Dependencies
Outcome
pipefy-mcp-serveris 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 pastedmcpServersJSON snippet.Reference: registry docs, package-types.mdx, PyPI section and the publishing guide.
Scope
Prerequisites (out of scope here, must land first)
pipefy-mcp-serveris published to PyPI under that exact name. Today thepackages/mcp/pyproject.tomldistribution is only installed via git URLs; nothing is on PyPI yet. Track the PyPI release work separately (likely the v1.0 milestone called out in install: one-command curl installer (CLI + MCP + skills + client config) #231).New files
packages/mcp/server.json(or repo root, whichever the publisher CLI expects), matching the2025-12-11schema:{ "$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-toolkitlands first (see auto-memory / project_repo_rename), the servernamebecomesio.github.gbrlcustodio/ai-toolkitor 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.tomlpoints at asreadme = ...(today:packages/mcp/README.md, confirm during the PR).Publishing
mcp-publisherCLI from the registry repo. One-shot manual publish from a maintainer's machine is acceptable for the first cut; document the exact command inRELEASE.md.gbrlcustodionamespace (matches theio.github.gbrlcustodio/*server name).Release integration
RELEASE.mdwith a "Publish to MCP registry" step that runs after the PyPI upload, so subsequent versions stay in sync.mcp-publisher publishinto a GitHub Actions release workflow so it runs automatically when a newpackages/mcpversion is tagged.Acceptance criteria
server.jsonvalidates against the official schema (mcp-publisher validateor equivalent exits 0).mcp-name: io.github.gbrlcustodio/pipefy-mcp-serveris present in the PyPI project description for the published version.RELEASE.mddocuments the publish step so re-runs on future versions are reproducible.Dependencies
pipefy-mcp-serverbeing published to PyPI under that name.git+https://...to bare PyPI / registry-driven install.