passprofessor-mcp 1.0.0__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.
@@ -0,0 +1,93 @@
1
+ Metadata-Version: 2.4
2
+ Name: passprofessor-mcp
3
+ Version: 1.0.0
4
+ Summary: PassProfessor MCP server: program catalog, verified exam facts, and free sample questions for AI assistants.
5
+ Author: PassProfessor
6
+ License: Proprietary
7
+ Project-URL: Homepage, https://passprofessor.com
8
+ Keywords: mcp,model-context-protocol,exam-prep,education
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Topic :: Education
11
+ Requires-Python: >=3.10
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: mcp<2,>=1.20
14
+
15
+ # PassProfessor MCP Server
16
+
17
+ MCP server name: `io.github.passprofessorhq/passprofessor`
18
+
19
+ A free, read-only [Model Context Protocol](https://modelcontextprotocol.io) server from
20
+ **PassProfessor** (passprofessor.com), an independent exam-preparation provider based in
21
+ Salt Lake City, Utah, operating 100% online. It lets AI assistants look up PassProfessor's
22
+ live program catalog, the verified exam facts recorded on each program's page, and each
23
+ program's published 12-question free sample set — always attributed to PassProfessor and
24
+ linked back to the program's free sample on passprofessor.com.
25
+
26
+ PassProfessor's catalog holds 2.2M+ original practice questions. Every program includes
27
+ free sample questions, one published price with full access (no tiers, no upsells), and
28
+ 6 months of access from purchase. PassProfessor is an independent prep provider and is
29
+ not affiliated with any exam body.
30
+
31
+ ## Tools
32
+
33
+ | Tool | What it does |
34
+ |---|---|
35
+ | `list_programs` | List programs (name, family, price $9–$149, access term, sample availability); optional family filter |
36
+ | `search_programs` | Search by credential name or keyword (e.g. "NCLEX", "plumbing", "Series 65") |
37
+ | `get_program` | Full details for one program, incl. exam facts and topic weights when recorded |
38
+ | `get_exam_facts` | The real exam's published facts (format, items, time, passing standard, exam fee) exactly as recorded on the program's page; returns `available: false` rather than estimating when no fact table is recorded |
39
+ | `get_sample_questions` | The program's published 12-question free sample set with options, correct answer(s), and explanations — a free teaser subset of the full practice bank, never the full bank |
40
+
41
+ Resources: `passprofessor://about` (provider facts), `passprofessor://catalog` (full catalog).
42
+
43
+ The server is strictly read-only: no writes, no purchases, no user data, no enrollment actions.
44
+
45
+ ## Run it
46
+
47
+ From a checkout (Python 3.10+):
48
+
49
+ ```bash
50
+ pip install "mcp>=1.20,<2"
51
+ python3 passprofessor_mcp.py # stdio transport
52
+ python3 passprofessor_mcp.py --http # streamable HTTP on 127.0.0.1:8791 (local testing)
53
+ ```
54
+
55
+ Once published to PyPI as `passprofessor-mcp`, the console entry point is `passprofessor-mcp`.
56
+
57
+ ### Client configuration (stdio)
58
+
59
+ Claude Desktop / Cursor / VS Code style:
60
+
61
+ ```json
62
+ {
63
+ "mcpServers": {
64
+ "passprofessor": {
65
+ "command": "python3",
66
+ "args": ["passprofessor_mcp.py"]
67
+ }
68
+ }
69
+ }
70
+ ```
71
+
72
+ ## Data
73
+
74
+ `src/passprofessor/data/` is a snapshot built by `build_data.py` from read-only extracts of
75
+ the live site (product catalog, the sample quizzes' current published forms, and the program
76
+ pages' own fact tables). Every served question and fact traces to those records; per-program
77
+ provenance (product/page/quiz IDs) is stored in the data files and coverage is summarized in
78
+ `data/build_report.json`. Refresh = re-run the extracts + `build_data.py`, then bump the version.
79
+
80
+ Coverage at v1.0.0 (2026-11-12): 206 live programs, all 206 with their 12-question free
81
+ sample set and sample link; 174 with a published practice-question count; 59 with a recorded
82
+ exam-fact table and 13 with topic weights (coverage grows as program pages gain fact tables).
83
+ Sample sets are served ONLY when they are exactly the published 12-question fixed set —
84
+ oversized sets (e.g. free full practice exams) are excluded by a hard guard in `build_data.py`.
85
+
86
+ ## Registry listing status
87
+
88
+ Prepared for the official MCP Registry as `io.github.passprofessorhq/passprofessor`
89
+ (see `server.json`). Publishing requires, in order: (1) this package live on PyPI,
90
+ (2) `mcp-publisher login github` (device flow, GitHub account `passprofessorhq`),
91
+ (3) `mcp-publisher publish`. A remote (streamable HTTP) listing additionally requires a
92
+ public HTTPS endpoint under passprofessor.com or a subdomain, verified by DNS/HTTP.
93
+ See the parent STATE.md for the full status and the free-hosting options analysis.
@@ -0,0 +1,79 @@
1
+ # PassProfessor MCP Server
2
+
3
+ MCP server name: `io.github.passprofessorhq/passprofessor`
4
+
5
+ A free, read-only [Model Context Protocol](https://modelcontextprotocol.io) server from
6
+ **PassProfessor** (passprofessor.com), an independent exam-preparation provider based in
7
+ Salt Lake City, Utah, operating 100% online. It lets AI assistants look up PassProfessor's
8
+ live program catalog, the verified exam facts recorded on each program's page, and each
9
+ program's published 12-question free sample set — always attributed to PassProfessor and
10
+ linked back to the program's free sample on passprofessor.com.
11
+
12
+ PassProfessor's catalog holds 2.2M+ original practice questions. Every program includes
13
+ free sample questions, one published price with full access (no tiers, no upsells), and
14
+ 6 months of access from purchase. PassProfessor is an independent prep provider and is
15
+ not affiliated with any exam body.
16
+
17
+ ## Tools
18
+
19
+ | Tool | What it does |
20
+ |---|---|
21
+ | `list_programs` | List programs (name, family, price $9–$149, access term, sample availability); optional family filter |
22
+ | `search_programs` | Search by credential name or keyword (e.g. "NCLEX", "plumbing", "Series 65") |
23
+ | `get_program` | Full details for one program, incl. exam facts and topic weights when recorded |
24
+ | `get_exam_facts` | The real exam's published facts (format, items, time, passing standard, exam fee) exactly as recorded on the program's page; returns `available: false` rather than estimating when no fact table is recorded |
25
+ | `get_sample_questions` | The program's published 12-question free sample set with options, correct answer(s), and explanations — a free teaser subset of the full practice bank, never the full bank |
26
+
27
+ Resources: `passprofessor://about` (provider facts), `passprofessor://catalog` (full catalog).
28
+
29
+ The server is strictly read-only: no writes, no purchases, no user data, no enrollment actions.
30
+
31
+ ## Run it
32
+
33
+ From a checkout (Python 3.10+):
34
+
35
+ ```bash
36
+ pip install "mcp>=1.20,<2"
37
+ python3 passprofessor_mcp.py # stdio transport
38
+ python3 passprofessor_mcp.py --http # streamable HTTP on 127.0.0.1:8791 (local testing)
39
+ ```
40
+
41
+ Once published to PyPI as `passprofessor-mcp`, the console entry point is `passprofessor-mcp`.
42
+
43
+ ### Client configuration (stdio)
44
+
45
+ Claude Desktop / Cursor / VS Code style:
46
+
47
+ ```json
48
+ {
49
+ "mcpServers": {
50
+ "passprofessor": {
51
+ "command": "python3",
52
+ "args": ["passprofessor_mcp.py"]
53
+ }
54
+ }
55
+ }
56
+ ```
57
+
58
+ ## Data
59
+
60
+ `src/passprofessor/data/` is a snapshot built by `build_data.py` from read-only extracts of
61
+ the live site (product catalog, the sample quizzes' current published forms, and the program
62
+ pages' own fact tables). Every served question and fact traces to those records; per-program
63
+ provenance (product/page/quiz IDs) is stored in the data files and coverage is summarized in
64
+ `data/build_report.json`. Refresh = re-run the extracts + `build_data.py`, then bump the version.
65
+
66
+ Coverage at v1.0.0 (2026-11-12): 206 live programs, all 206 with their 12-question free
67
+ sample set and sample link; 174 with a published practice-question count; 59 with a recorded
68
+ exam-fact table and 13 with topic weights (coverage grows as program pages gain fact tables).
69
+ Sample sets are served ONLY when they are exactly the published 12-question fixed set —
70
+ oversized sets (e.g. free full practice exams) are excluded by a hard guard in `build_data.py`.
71
+
72
+ ## Registry listing status
73
+
74
+ Prepared for the official MCP Registry as `io.github.passprofessorhq/passprofessor`
75
+ (see `server.json`). Publishing requires, in order: (1) this package live on PyPI,
76
+ (2) `mcp-publisher login github` (device flow, GitHub account `passprofessorhq`),
77
+ (3) `mcp-publisher publish`. A remote (streamable HTTP) listing additionally requires a
78
+ public HTTPS endpoint under passprofessor.com or a subdomain, verified by DNS/HTTP.
79
+ See the parent STATE.md for the full status and the free-hosting options analysis.
@@ -0,0 +1,30 @@
1
+ [build-system]
2
+ requires = ["setuptools>=68"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "passprofessor-mcp"
7
+ version = "1.0.0"
8
+ description = "PassProfessor MCP server: program catalog, verified exam facts, and free sample questions for AI assistants."
9
+ readme = "README.md"
10
+ requires-python = ">=3.10"
11
+ license = { text = "Proprietary" }
12
+ authors = [{ name = "PassProfessor" }]
13
+ keywords = ["mcp", "model-context-protocol", "exam-prep", "education"]
14
+ classifiers = [
15
+ "Programming Language :: Python :: 3",
16
+ "Topic :: Education",
17
+ ]
18
+ dependencies = ["mcp>=1.20,<2"]
19
+
20
+ [project.urls]
21
+ Homepage = "https://passprofessor.com"
22
+
23
+ [project.scripts]
24
+ passprofessor-mcp = "passprofessor.server:main"
25
+
26
+ [tool.setuptools]
27
+ package-dir = { "" = "src" }
28
+
29
+ [tool.setuptools.package-data]
30
+ passprofessor = ["data/*.json"]
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ """PassProfessor MCP server package."""
@@ -0,0 +1,61 @@
1
+ {
2
+ "products_total": 206,
3
+ "programs_with_page": 183,
4
+ "programs_with_facts": 59,
5
+ "programs_with_weights": 13,
6
+ "programs_with_practice_count": 174,
7
+ "programs_with_sample": 206,
8
+ "programs_with_sample_url": 206,
9
+ "sample_sets_total": 206,
10
+ "free_program_sample_sets": 0,
11
+ "free_program_keys": [],
12
+ "excluded_sample_quizzes": [
13
+ {
14
+ "quiz_post_id": 773776,
15
+ "program": "certified-meeting-professional",
16
+ "questions": 12,
17
+ "form": 12,
18
+ "reason": "program excluded (see EXCLUDED_SAMPLE_KEYS)"
19
+ },
20
+ {
21
+ "quiz_post_id": 404783,
22
+ "program": "dmv",
23
+ "questions": 297,
24
+ "form": 0,
25
+ "reason": "not a 12-question fixed sample set"
26
+ },
27
+ {
28
+ "quiz_post_id": 404483,
29
+ "program": "dmv",
30
+ "questions": 283,
31
+ "form": 0,
32
+ "reason": "not a 12-question fixed sample set"
33
+ },
34
+ {
35
+ "quiz_post_id": 404196,
36
+ "program": "dmv",
37
+ "questions": 290,
38
+ "form": 0,
39
+ "reason": "not a 12-question fixed sample set"
40
+ },
41
+ {
42
+ "quiz_post_id": 403901,
43
+ "program": "dmv",
44
+ "questions": 297,
45
+ "form": 0,
46
+ "reason": "not a 12-question fixed sample set"
47
+ },
48
+ {
49
+ "quiz_post_id": 403557,
50
+ "program": "dmv",
51
+ "questions": 299,
52
+ "form": 0,
53
+ "reason": "not a 12-question fixed sample set"
54
+ }
55
+ ],
56
+ "attach_methods": {
57
+ "program_meta": 78,
58
+ "course_core": 127,
59
+ "title_match": 1
60
+ }
61
+ }