stackprep-pro 0.2.8__tar.gz → 0.2.10__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.
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/PKG-INFO +2 -1
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/README.md +1 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/pyproject.toml +1 -1
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/src/stackprep_pro/server.py +31 -1
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/uv.lock +1 -1
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/.claude/settings.json +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/.githooks/pre-commit +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/.github/workflows/publish.yml +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/.gitignore +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/.mcp.json +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/CLAUDE.md +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/scripts/bump_version.sh +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/scripts/generate_readme.py +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/src/stackprep_pro/__init__.py +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/src/stackprep_pro/skills/certification.md +0 -0
- {stackprep_pro-0.2.8 → stackprep_pro-0.2.10}/src/stackprep_pro/skills/interview.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: stackprep-pro
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.10
|
|
4
4
|
Summary: stackprep-pro — interview & certification prep MCP server for any AI client
|
|
5
5
|
Project-URL: Homepage, https://github.com/youngpada1/stackprep-pro
|
|
6
6
|
Project-URL: Repository, https://github.com/youngpada1/stackprep-pro
|
|
@@ -161,6 +161,7 @@ Point this at any Dropbox, Google Drive, or OneDrive folder for cross-platform s
|
|
|
161
161
|
|
|
162
162
|
| Tool | Description | Args |
|
|
163
163
|
|---|---|---|
|
|
164
|
+
| `begin` | Call this at the very start of every conversation. Returns the opening question already formatted | |
|
|
164
165
|
| `start_session` | Start a new stackprep session. Returns a session ID and the skill rules for the AI to follow. | `mode`, `cert_name`, `cv`, `jd`, `extra_topics` |
|
|
165
166
|
| `submit_answer` | Record the result of an answered question. | `session_id`, `result`, `question` |
|
|
166
167
|
| `flag_for_study` | Manually flag the current question for the study pack. | `session_id`, `question` |
|
|
@@ -141,6 +141,7 @@ Point this at any Dropbox, Google Drive, or OneDrive folder for cross-platform s
|
|
|
141
141
|
|
|
142
142
|
| Tool | Description | Args |
|
|
143
143
|
|---|---|---|
|
|
144
|
+
| `begin` | Call this at the very start of every conversation. Returns the opening question already formatted | |
|
|
144
145
|
| `start_session` | Start a new stackprep session. Returns a session ID and the skill rules for the AI to follow. | `mode`, `cert_name`, `cv`, `jd`, `extra_topics` |
|
|
145
146
|
| `submit_answer` | Record the result of an answered question. | `session_id`, `result`, `question` |
|
|
146
147
|
| `flag_for_study` | Manually flag the current question for the study pack. | `session_id`, `question` |
|
|
@@ -9,7 +9,31 @@ from typing import Any
|
|
|
9
9
|
|
|
10
10
|
from mcp.server.fastmcp import FastMCP
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
SERVER_INSTRUCTIONS = """\
|
|
13
|
+
stackprep-pro — adaptive interview & certification prep.
|
|
14
|
+
|
|
15
|
+
At the very start of every conversation, call the `begin` tool and show its returned markdown to the
|
|
16
|
+
user VERBATIM (it is already formatted as an elegant block — do not rephrase or reformat it).
|
|
17
|
+
|
|
18
|
+
PRESENTATION (every message): always respond as elegant RENDERED markdown blocks — bold headers,
|
|
19
|
+
dividers, clean tables/lists. NEVER output flat plain text.
|
|
20
|
+
|
|
21
|
+
After the user picks a mode, silently check for saved sessions of that mode; if any exist offer to
|
|
22
|
+
continue one (by the name the user gave it) or start new. Then collect inputs and call start_session.
|
|
23
|
+
Follow the skill rules returned by start_session exactly — the skill is the source of truth."""
|
|
24
|
+
|
|
25
|
+
# Hardcoded so the very first block is guaranteed, not AI-guessed.
|
|
26
|
+
BEGIN_BLOCK = """\
|
|
27
|
+
**What would you like to prep for?**
|
|
28
|
+
|
|
29
|
+
| # | Mode |
|
|
30
|
+
|---|------|
|
|
31
|
+
| 1 | 🎯 Technical Interview |
|
|
32
|
+
| 2 | 📜 Certification Exam |
|
|
33
|
+
|
|
34
|
+
_Reply with 1 or 2._"""
|
|
35
|
+
|
|
36
|
+
mcp = FastMCP("stackprep-pro", instructions=SERVER_INSTRUCTIONS)
|
|
13
37
|
|
|
14
38
|
SKILLS_DIR = Path(__file__).parent / "skills"
|
|
15
39
|
|
|
@@ -69,6 +93,12 @@ def _load_skill(mode: str) -> str:
|
|
|
69
93
|
|
|
70
94
|
# ── Tools ──────────────────────────────────────────────────────────────────────
|
|
71
95
|
|
|
96
|
+
@mcp.tool()
|
|
97
|
+
def begin() -> str:
|
|
98
|
+
"""Call this at the very start of every conversation. Returns the opening question already formatted
|
|
99
|
+
as an elegant markdown block. Show the returned text to the user VERBATIM — do not rephrase or reformat it."""
|
|
100
|
+
return BEGIN_BLOCK
|
|
101
|
+
|
|
72
102
|
@mcp.tool()
|
|
73
103
|
def start_session(
|
|
74
104
|
mode: str,
|
|
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
|