python-docs-mcp-server 0.1.5__tar.gz → 0.1.6__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/CHANGELOG.md +11 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/PKG-INFO +1 -1
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/pyproject.toml +1 -1
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/server.json +3 -3
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/uv.lock +1 -1
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.cursorignore +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/INTEGRATION-TEST.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/RELEASE.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/dependabot.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/ci.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/codeql.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/e2e.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/release.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/scorecard.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/security.yml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.gitignore +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.planning/POSITIONING.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.planning/ROADMAP.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.planning/phases/09-compare-versions/09-CONTEXT.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.planning/phases/10-whatsnew/10-CONTEXT.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.planning/phases/11-detect-venv/11-CONTEXT.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/AGENTS.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/CLAUDE.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/CONTRIBUTING.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/LICENSE +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/README.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/SECURITY.md +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/glama.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/__main__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/app_context.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/data/synonyms.yaml +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/detection.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/diagnostics.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/errors.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/ingestion/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/ingestion/cpython_versions.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/ingestion/inventory.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/ingestion/publish.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/ingestion/sphinx_json.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/models.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/py.typed +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/retrieval/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/retrieval/budget.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/retrieval/query.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/retrieval/ranker.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/server.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/cache.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/content.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/observability.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/package_docs.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/persistent_cache.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/search.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/version.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/services/version_resolution.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/storage/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/storage/db.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/storage/schema.sql +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/__init__.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/conftest.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/retrieval_regression_cases.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/sample_broken.fjson +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/sample_library.fjson +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/schema-get_docs-input.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/schema-get_docs-output.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/schema-list_versions-output.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/schema-search_docs-input.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/schema-search_docs-output.json +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_ci_workflows.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_doctor.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_ingestion.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_mcp_get_docs_cache_smoke.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_multi_version.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_package_docs.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_packaging.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_persistent_docs_cache.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_phase1_integration.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_publish.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_retrieval.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_retrieval_regression.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_schema.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_schema_snapshot.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_services.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_stability.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_stdio_hygiene.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_stdio_smoke.py +0 -0
- {python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_synonyms.py +0 -0
|
@@ -4,6 +4,17 @@ All notable changes to `python-docs-mcp-server` are documented here.
|
|
|
4
4
|
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/);
|
|
5
5
|
this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.1.6] — 2026-05-14
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **MCP Registry publish** — `server.json` `description` shortened from 152 to 96 characters to comply with MCP Registry's schema constraint (`body.description ≤ 100 chars`). The v0.1.5 release succeeded on PyPI (no such limit) but the `publish-mcp-registry` workflow job failed validation; v0.1.5 therefore never reached MCP Registry. v0.1.6 ships the same wheel content as v0.1.5 with the corrected `server.json` so MCP Registry catches up. All three locked anchor phrases — *canonical Python stdlib oracle*, *always free, always MIT*, *token-frugal* — are preserved in the shortened form per `.planning/POSITIONING.md`'s adapt-for-length contract.
|
|
12
|
+
|
|
13
|
+
### Notes
|
|
14
|
+
|
|
15
|
+
- `pyproject.toml` `description` (154 chars) is unchanged; PyPI's 512-char summary cap is unaffected.
|
|
16
|
+
- The locked README hero positioning sentence (the long, "use verbatim" form) is unchanged.
|
|
17
|
+
|
|
7
18
|
## [0.1.5] — 2026-05-14
|
|
8
19
|
|
|
9
20
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python-docs-mcp-server
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.6
|
|
4
4
|
Summary: The canonical Python stdlib oracle for AI coding agents — exact symbols, exact sections, exact versions, offline, always free, always MIT, token-frugal.
|
|
5
5
|
Author-email: Aymen Hammouda <hammouda.aymen@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "python-docs-mcp-server"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.6"
|
|
8
8
|
description = "The canonical Python stdlib oracle for AI coding agents — exact symbols, exact sections, exact versions, offline, always free, always MIT, token-frugal."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
|
|
3
3
|
"name": "io.github.ayhammouda/python-docs-mcp-server",
|
|
4
|
-
"description": "The canonical Python stdlib oracle for AI coding agents
|
|
4
|
+
"description": "The canonical Python stdlib oracle for AI coding agents — always free, always MIT, token-frugal.",
|
|
5
5
|
"title": "Python Docs MCP Server",
|
|
6
6
|
"websiteUrl": "https://github.com/ayhammouda/python-docs-mcp-server",
|
|
7
7
|
"repository": {
|
|
8
8
|
"url": "https://github.com/ayhammouda/python-docs-mcp-server",
|
|
9
9
|
"source": "github"
|
|
10
10
|
},
|
|
11
|
-
"version": "0.1.
|
|
11
|
+
"version": "0.1.6",
|
|
12
12
|
"packages": [
|
|
13
13
|
{
|
|
14
14
|
"registryType": "pypi",
|
|
15
15
|
"registryBaseUrl": "https://pypi.org",
|
|
16
16
|
"identifier": "python-docs-mcp-server",
|
|
17
|
-
"version": "0.1.
|
|
17
|
+
"version": "0.1.6",
|
|
18
18
|
"runtimeHint": "uvx",
|
|
19
19
|
"transport": {
|
|
20
20
|
"type": "stdio"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/scorecard.yml
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/.github/workflows/security.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/__init__.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/models.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/py.typed
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/src/mcp_server_python_docs/server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/sample_broken.fjson
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/fixtures/sample_library.fjson
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_mcp_get_docs_cache_smoke.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_persistent_docs_cache.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_phase1_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.5 → python_docs_mcp_server-0.1.6}/tests/test_retrieval_regression.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|