Skip to content

chore: prepare launch metadata and drafts#22

Open
ayhammouda wants to merge 1 commit intomainfrom
fix/autonomous-launch-pack
Open

chore: prepare launch metadata and drafts#22
ayhammouda wants to merge 1 commit intomainfrom
fix/autonomous-launch-pack

Conversation

@ayhammouda
Copy link
Copy Markdown
Owner

@ayhammouda ayhammouda commented May 9, 2026

Summary

Closes #11.
Closes #12.
Closes #13.
Closes #14.
Closes #19.
Closes #20.

  • Syncs the package/runtime version to 0.1.1 and makes packaging tests assert the CLI version against pyproject.toml.
  • Adds a concise README demo, source-install guidance while PyPI publishing is pending, and a direct “Why not Context7 or generic docs retrieval?” section.
  • Adds best-effort official MCP Registry metadata in server.json.
  • Adds launch drafts for Reddit and Show HN under docs/launch/.
  • Updates release checklist examples to 0.1.1 so the release docs stop lying. Minor miracle.

Tests

  • python3 -m json.tool server.json
  • server.json validated against https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json
  • uv run ruff check src/ tests/
  • uv run pyright src/
  • uv run pytest --tb=short -q — 264 passed
  • uv run mcp-server-python-docs --versionmcp-server-python-docs 0.1.1

Blockers / notes

  • PyPI publishing is still blocked by Fix PyPI trusted publishing and publish the package #10, so README and launch drafts avoid claiming the plain uvx mcp-server-python-docs path works before publication.
  • server.json includes PyPI package metadata and validates against the current schema, but final official Registry submission/validation should wait until Fix PyPI trusted publishing and publish the package #10 publishes the package.
  • No external submissions or posts were made: no MCP Registry submission, no Reddit post, no HN post, no directory/list submissions.

Summary by CodeRabbit

  • Documentation

    • Added a 30-second demo showcasing recommended workflow.
    • Updated installation instructions with GitHub-based testing option for pre-PyPI evaluation.
    • Updated client configuration snippets for Claude Desktop, Cursor, and Codex.
    • Added launch preparation materials.
  • Chores

    • Bumped version to 0.1.1 across package metadata and configuration.

Review Change Stack

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 9, 2026

📝 Walkthrough

Walkthrough

This PR completes the v0.1.1 release cycle by synchronizing the package version across source code and tests, introducing MCP registry metadata, updating user-facing documentation with a concrete demo and comparison guidance, formalizing the release procedure, and preparing launch materials for community engagement.

Changes

v0.1.1 Release Preparation

Layer / File(s) Summary
Version Declaration & Test Sync
src/mcp_server_python_docs/__init__.py, tests/test_packaging.py
Package version is bumped to 0.1.1 in __init__.py. Test assertions are made dynamic by reading pyproject.toml with tomllib instead of hardcoding 0.1.0, ensuring future version drift is caught automatically.
MCP Registry Configuration
server.json
New registry metadata file declares MCP server identity for io.github.ayhammouda/python-docs-mcp-server with version 0.1.1, PyPI package details, and stdio transport configuration for official MCP registry submission.
README Updates: Demo & Guidance
README.md
README adds a new 30-second demo section showing a concrete search_docsget_docs example, updates install and first-run sections to use GitHub-based uvx --from git+https://... commands before PyPI availability, revises all client configuration examples (Claude Desktop, Cursor, Codex), and replaces the generic docs comparison with a detailed "Why not Context7 or generic docs retrieval?" section covering stdlib focus, version-awareness, token efficiency, and local read-only operation.
Release Procedure Documentation
.github/RELEASE.md
Release checklist is updated throughout to reflect v0.1.1: tag creation/push commands, PyPI verification links, pre-release version expectations in pyproject.toml, post-release fresh-install validation, and completion checklist items for PyPI attestation and tag verification.
Launch Preparation & Social Posts
docs/launch/reddit-posts.md, docs/launch/show-hn.md
Two new launch documentation files contain draft Reddit posts for r/Python and r/LocalLLaMA communities and a Show HN draft. Each post describes the server's scope (stdlib-only, version-aware symbol lookup with local indexing), includes a GitHub uvx --from git+... smoke-test command for pre-PyPI validation, and requests feedback.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 A rabbit hops through v0.1.1,
Version sync'd and tests run true—
Demo shines, registry gleams,
Launch posts fly to Reddit's dreams!
Ready for the world to see, 🚀

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'chore: prepare launch metadata and drafts' accurately summarizes the main changes: version bump to 0.1.1, server.json metadata, README updates, and launch documentation drafts.
Linked Issues check ✅ Passed All six linked issues (#11, #12, #13, #14, #19, #20) have their acceptance criteria met: CLI version synced to 0.1.1 [#11], 30-second demo added [#12], 'Why not Context7' section included [#13], server.json with MCP Registry metadata added [#14], Reddit drafts prepared [#19], and Show HN draft prepared [#20].
Out of Scope Changes check ✅ Passed All changes are directly scoped to the linked issues: version sync, README enhancements, server.json addition, and launch drafts. No unrelated modifications detected.
Docstring Coverage ✅ Passed Docstring coverage is 80.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/autonomous-launch-pack

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/launch/reddit-posts.md (1)

6-68: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add the missing r/ClaudeAI draft variant.

This file currently includes r/Python and r/LocalLLaMA, but the launch objective calls out a r/ClaudeAI adaptation too.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/launch/reddit-posts.md` around lines 6 - 68, Add a new "## r/ClaudeAI"
launch variant mirroring the existing "## r/Python" and "## r/LocalLLaMA"
sections: include a short Title line (e.g., "Local MCP server for official
Python docs, built for coding agents"), a brief paragraph describing the
ClaudeAI-specific framing, the same repo URL, the same test-from-source uvx
install snippet, and a concise bullet list of key features (version-aware stdlib
lookup across 3.10–3.14, exact symbol lookup via objects.inv, section-level
retrieval, local SQLite+FTS index, no API keys/read-only tools) plus a short
call for feedback — match the tone/format of the other two headers ("##
r/Python" and "## r/LocalLLaMA") so the file contains three parallel launch
variants.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/launch/show-hn.md`:
- Around line 18-29: Add a concrete demo query to the Show HN draft to satisfy
the launch objective: insert a short “Demo query” paragraph into
docs/launch/show-hn.md (e.g., right after the bulleted “What it does:” list or
before “It is intentionally narrow.”) that shows a real user query and expected
behavior—for example, a query asking for a specific stdlib symbol and version
like “Show the asyncio.create_task docs for Python 3.11, with the section
summary and first paragraph,” and describe that the system will resolve the
exact symbol, fetch the section-level docs with truncation/pagination, and
indicate the returned version. Ensure the demo is explicit, mentions a Python
version (3.10–3.14), and uses plain text so readers can copy-paste it.

In `@README.md`:
- Around line 80-88: Update the README so all example invocations are consistent
with the pre-PyPI usage: replace or annotate the later plain invocations of "uvx
mcp-server-python-docs ..." (seen elsewhere in the file) to include the
pre-release qualifier "--from
git+https://github.com/ayhammouda/python-docs-mcp-server.git" (i.e., use "uvx
--from git+https://github.com/ayhammouda/python-docs-mcp-server.git
mcp-server-python-docs ...") or add a short note stating those specific examples
require the PyPI release; update the occurrences that match "uvx
mcp-server-python-docs" so they're either prefixed with "--from git+..." or
clearly marked as post-PyPI only.

---

Outside diff comments:
In `@docs/launch/reddit-posts.md`:
- Around line 6-68: Add a new "## r/ClaudeAI" launch variant mirroring the
existing "## r/Python" and "## r/LocalLLaMA" sections: include a short Title
line (e.g., "Local MCP server for official Python docs, built for coding
agents"), a brief paragraph describing the ClaudeAI-specific framing, the same
repo URL, the same test-from-source uvx install snippet, and a concise bullet
list of key features (version-aware stdlib lookup across 3.10–3.14, exact symbol
lookup via objects.inv, section-level retrieval, local SQLite+FTS index, no API
keys/read-only tools) plus a short call for feedback — match the tone/format of
the other two headers ("## r/Python" and "## r/LocalLLaMA") so the file contains
three parallel launch variants.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 77bc2778-c1de-4b8d-af78-2238d2e8bece

📥 Commits

Reviewing files that changed from the base of the PR and between 6321ff4 and 5988f4c.

📒 Files selected for processing (7)
  • .github/RELEASE.md
  • README.md
  • docs/launch/reddit-posts.md
  • docs/launch/show-hn.md
  • server.json
  • src/mcp_server_python_docs/__init__.py
  • tests/test_packaging.py

Comment thread docs/launch/show-hn.md
Comment on lines +18 to +29
What it does:

- builds a local SQLite/FTS index from official Python docs
- resolves exact symbols from Python `objects.inv`
- retrieves section-level docs with truncation and pagination
- supports version-aware lookup across Python 3.10 through 3.14
- runs locally, read-only, with no API keys

It is intentionally narrow. Use Context7 or generic retrieval for broad
third-party docs and web research. Use this when you want official stdlib docs
with less token waste.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add one explicit demo query to the Show HN draft.

The post explains the approach well, but it still misses a concrete demo query (requested in the launch objective), which weakens the “show” part of Show HN.

Suggested addition
 What it does:
@@
 - runs locally, read-only, with no API keys
+
+Demo query:
+- "In Python 3.13, what does asyncio.TaskGroup change compared to older asyncio patterns?"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
What it does:
- builds a local SQLite/FTS index from official Python docs
- resolves exact symbols from Python `objects.inv`
- retrieves section-level docs with truncation and pagination
- supports version-aware lookup across Python 3.10 through 3.14
- runs locally, read-only, with no API keys
It is intentionally narrow. Use Context7 or generic retrieval for broad
third-party docs and web research. Use this when you want official stdlib docs
with less token waste.
What it does:
- builds a local SQLite/FTS index from official Python docs
- resolves exact symbols from Python `objects.inv`
- retrieves section-level docs with truncation and pagination
- supports version-aware lookup across Python 3.10 through 3.14
- runs locally, read-only, with no API keys
Demo query:
- "In Python 3.13, what does asyncio.TaskGroup change compared to older asyncio patterns?"
It is intentionally narrow. Use Context7 or generic retrieval for broad
third-party docs and web research. Use this when you want official stdlib docs
with less token waste.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/launch/show-hn.md` around lines 18 - 29, Add a concrete demo query to
the Show HN draft to satisfy the launch objective: insert a short “Demo query”
paragraph into docs/launch/show-hn.md (e.g., right after the bulleted “What it
does:” list or before “It is intentionally narrow.”) that shows a real user
query and expected behavior—for example, a query asking for a specific stdlib
symbol and version like “Show the asyncio.create_task docs for Python 3.11, with
the section summary and first paragraph,” and describe that the system will
resolve the exact symbol, fetch the section-level docs with
truncation/pagination, and indicate the returned version. Ensure the demo is
explicit, mentions a Python version (3.10–3.14), and uses plain text so readers
can copy-paste it.

Comment thread README.md
Comment on lines +80 to 88
Until the first PyPI release is published, run from GitHub:

```bash
uvx --from git+https://github.com/ayhammouda/python-docs-mcp-server.git mcp-server-python-docs --version
```

After PyPI publishing is complete, the package will also run directly with
`uvx`:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Make command guidance fully consistent with the pre-PyPI state.

This section correctly says to use uvx --from git+... before publishing, but later commands still use plain uvx mcp-server-python-docs ... without a post-PyPI qualifier (for example, Line 264 and Line 274), which can mislead current users into failing commands.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 80 - 88, Update the README so all example invocations
are consistent with the pre-PyPI usage: replace or annotate the later plain
invocations of "uvx mcp-server-python-docs ..." (seen elsewhere in the file) to
include the pre-release qualifier "--from
git+https://github.com/ayhammouda/python-docs-mcp-server.git" (i.e., use "uvx
--from git+https://github.com/ayhammouda/python-docs-mcp-server.git
mcp-server-python-docs ...") or add a short note stating those specific examples
require the PyPI release; update the occurrences that match "uvx
mcp-server-python-docs" so they're either prefixed with "--from git+..." or
clearly marked as post-PyPI only.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant