python-docs-mcp-server 0.1.3__tar.gz → 0.1.4__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.3 → python_docs_mcp_server-0.1.4}/.github/workflows/release.yml +39 -1
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/PKG-INFO +2 -1
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/README.md +1 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/pyproject.toml +1 -1
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/server.json +2 -2
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/uv.lock +1 -1
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.cursorignore +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.github/INTEGRATION-TEST.md +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.github/RELEASE.md +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.github/workflows/ci.yml +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.github/workflows/e2e.yml +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/.gitignore +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/AGENTS.md +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/CLAUDE.md +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/CONTRIBUTING.md +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/LICENSE +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/glama.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/__main__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/app_context.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/data/synonyms.yaml +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/detection.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/diagnostics.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/errors.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/ingestion/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/ingestion/cpython_versions.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/ingestion/inventory.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/ingestion/publish.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/ingestion/sphinx_json.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/models.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/py.typed +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/retrieval/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/retrieval/budget.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/retrieval/query.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/retrieval/ranker.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/server.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/cache.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/content.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/observability.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/package_docs.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/persistent_cache.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/search.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/version.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/services/version_resolution.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/storage/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/storage/db.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/storage/schema.sql +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/__init__.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/conftest.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/retrieval_regression_cases.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/sample_broken.fjson +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/sample_library.fjson +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/schema-get_docs-input.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/schema-get_docs-output.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/schema-list_versions-output.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/schema-search_docs-input.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/schema-search_docs-output.json +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_ci_workflows.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_doctor.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_ingestion.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_mcp_get_docs_cache_smoke.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_multi_version.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_package_docs.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_packaging.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_persistent_docs_cache.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_phase1_integration.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_publish.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_retrieval.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_retrieval_regression.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_schema.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_schema_snapshot.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_services.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_stability.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_stdio_hygiene.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_stdio_smoke.py +0 -0
- {python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_synonyms.py +0 -0
|
@@ -35,6 +35,16 @@ jobs:
|
|
|
35
35
|
echo "::error::Tag ${GITHUB_REF_NAME} does not match pyproject.toml version ${PKG_VERSION}"
|
|
36
36
|
exit 1
|
|
37
37
|
fi
|
|
38
|
+
SERVER_VERSION=$(uv run python -c "import json; print(json.load(open('server.json'))['version'])")
|
|
39
|
+
PACKAGE_VERSION=$(uv run python -c "import json; print(json.load(open('server.json'))['packages'][0]['version'])")
|
|
40
|
+
if [ "$TAG_VERSION" != "$SERVER_VERSION" ]; then
|
|
41
|
+
echo "::error::Tag ${GITHUB_REF_NAME} does not match server.json version ${SERVER_VERSION}"
|
|
42
|
+
exit 1
|
|
43
|
+
fi
|
|
44
|
+
if [ "$TAG_VERSION" != "$PACKAGE_VERSION" ]; then
|
|
45
|
+
echo "::error::Tag ${GITHUB_REF_NAME} does not match server.json package version ${PACKAGE_VERSION}"
|
|
46
|
+
exit 1
|
|
47
|
+
fi
|
|
38
48
|
echo "Version check passed: ${PKG_VERSION}"
|
|
39
49
|
|
|
40
50
|
- name: Run linter
|
|
@@ -97,9 +107,37 @@ jobs:
|
|
|
97
107
|
- name: Publish to PyPI
|
|
98
108
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
99
109
|
|
|
100
|
-
|
|
110
|
+
publish-mcp-registry:
|
|
101
111
|
needs: publish
|
|
102
112
|
runs-on: ubuntu-latest
|
|
113
|
+
name: Publish to MCP Registry
|
|
114
|
+
timeout-minutes: 10
|
|
115
|
+
permissions:
|
|
116
|
+
id-token: write
|
|
117
|
+
contents: read
|
|
118
|
+
|
|
119
|
+
steps:
|
|
120
|
+
- uses: actions/checkout@v6
|
|
121
|
+
|
|
122
|
+
- name: Install mcp-publisher
|
|
123
|
+
run: |
|
|
124
|
+
curl -L "https://github.com/modelcontextprotocol/registry/releases/latest/download/mcp-publisher_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" \
|
|
125
|
+
| tar xz mcp-publisher
|
|
126
|
+
|
|
127
|
+
- name: Validate server.json
|
|
128
|
+
run: ./mcp-publisher validate server.json
|
|
129
|
+
|
|
130
|
+
- name: Authenticate to MCP Registry
|
|
131
|
+
run: ./mcp-publisher login github-oidc
|
|
132
|
+
|
|
133
|
+
- name: Publish to MCP Registry
|
|
134
|
+
run: ./mcp-publisher publish
|
|
135
|
+
|
|
136
|
+
github-release:
|
|
137
|
+
needs:
|
|
138
|
+
- publish
|
|
139
|
+
- publish-mcp-registry
|
|
140
|
+
runs-on: ubuntu-latest
|
|
103
141
|
name: Create GitHub Release
|
|
104
142
|
timeout-minutes: 10
|
|
105
143
|
permissions:
|
|
@@ -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.4
|
|
4
4
|
Summary: A read-only, version-aware MCP retrieval server over Python standard library documentation
|
|
5
5
|
Author-email: Aymen Hammouda <hammouda.aymen@gmail.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -31,6 +31,7 @@ Description-Content-Type: text/markdown
|
|
|
31
31
|
<!-- mcp-name: io.github.ayhammouda/python-docs-mcp-server -->
|
|
32
32
|
|
|
33
33
|
[](https://github.com/ayhammouda/python-docs-mcp-server/actions/workflows/ci.yml)
|
|
34
|
+
[](https://glama.ai/mcp/servers/ayhammouda/python-docs-mcp-server)
|
|
34
35
|
[](LICENSE)
|
|
35
36
|
[](https://www.python.org/)
|
|
36
37
|
[](#why-teams-like-this)
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
<!-- mcp-name: io.github.ayhammouda/python-docs-mcp-server -->
|
|
4
4
|
|
|
5
5
|
[](https://github.com/ayhammouda/python-docs-mcp-server/actions/workflows/ci.yml)
|
|
6
|
+
[](https://glama.ai/mcp/servers/ayhammouda/python-docs-mcp-server)
|
|
6
7
|
[](LICENSE)
|
|
7
8
|
[](https://www.python.org/)
|
|
8
9
|
[](#why-teams-like-this)
|
|
@@ -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.4"
|
|
8
8
|
description = "A read-only, version-aware MCP retrieval server over Python standard library documentation"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = "MIT"
|
|
@@ -8,13 +8,13 @@
|
|
|
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.4",
|
|
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.4",
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/__init__.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/src/mcp_server_python_docs/models.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/tests/fixtures/sample_broken.fjson
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/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.3 → python_docs_mcp_server-0.1.4}/tests/test_persistent_docs_cache.py
RENAMED
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/tests/test_phase1_integration.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{python_docs_mcp_server-0.1.3 → python_docs_mcp_server-0.1.4}/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
|