Skip to content

Commit f99ec04

Browse files
author
Tyler Payne
committed
Split title logic from collapsible
Lets non-title sections use collapsibles
1 parent 9feca44 commit f99ec04

10 files changed

Lines changed: 461 additions & 776 deletions

File tree

mcp-interview.json

Lines changed: 214 additions & 413 deletions
Large diffs are not rendered by default.

mcp-interview.md

Lines changed: 217 additions & 346 deletions
Large diffs are not rendered by default.

src/mcp_interviewer/reports/base.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -85,22 +85,27 @@ def add_report(self, report: "BaseReport") -> "BaseReport":
8585
self._lines.extend(report._lines)
8686
return self
8787

88-
def start_collapsible(self, title: str, level: int = 2) -> "BaseReport":
89-
"""Start a collapsible section with a title."""
90-
# Always add the markdown header
91-
prefix = "#" * level
92-
self._lines.append(f"{prefix} {title}")
93-
self._lines.append("")
88+
def start_collapsible(self, summary: str) -> "BaseReport":
89+
"""Start a collapsible section.
9490
95-
# Only add details tags if use_collapsible is True
91+
Args:
92+
summary: The summary text shown when collapsed
93+
94+
Returns:
95+
Self for method chaining
96+
"""
9697
if self._options.use_collapsible:
9798
self._lines.append("<details>")
98-
self._lines.append("<summary>Toggle details</summary>")
99+
self._lines.append(f"<summary>{summary}</summary>")
99100
self._lines.append("")
100101
return self
101102

102103
def end_collapsible(self) -> "BaseReport":
103-
"""End a collapsible section."""
104+
"""End a collapsible section.
105+
106+
Returns:
107+
Self for method chaining
108+
"""
104109
if self._options.use_collapsible:
105110
self._lines.append("</details>")
106111
self._lines.append("")

src/mcp_interviewer/reports/functional_test/test.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ def _build(self):
3636
return
3737

3838
# Check if scoring was disabled
39-
self.start_collapsible("Functional Test Results", 2)
39+
self.add_title("Functional Test Results", 2)
40+
self.start_collapsible("Toggle details")
4041

4142
# Test plan
4243
if self.include_evaluations and test.plan:

src/mcp_interviewer/reports/functional_test/tool_scorecards.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,17 @@ def _build(self):
3737
scoring_disabled = True
3838

3939
if scoring_disabled:
40-
self.start_collapsible("Tool Scorecards", 2)
40+
self.add_title("Tool Scorecards", 2)
41+
self.start_collapsible("Toggle details")
4142
self.add_text(
4243
"_Experimental tool judging disabled - no evaluations generated_"
4344
)
4445
self.add_blank_line()
4546
self.end_collapsible()
4647
return
4748
else:
48-
self.start_collapsible("Tool Scorecards (🤖)", 2)
49+
self.add_title("Tool Scorecards (🤖)", 2)
50+
self.start_collapsible("Toggle details")
4951

5052
if not self._scorecard.tool_scorecards:
5153
self.add_text("_No tool evaluations available_")

src/mcp_interviewer/reports/interviewer/interviewer_info.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ def __init__(self, scorecard: ServerScoreCard):
2626

2727
def _build(self):
2828
"""Build the interviewer info section."""
29-
self.start_collapsible("Interviewer Parameters", 2)
29+
self.add_title("Interviewer Parameters", 2)
30+
self.start_collapsible("Toggle details")
3031

3132
self.add_title("Metadata", 4)
3233
# Add date and version

src/mcp_interviewer/reports/server/prompts.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ def __init__(self, scorecard: ServerScoreCard):
2222

2323
def _build(self):
2424
"""Build the prompts section."""
25-
self.start_collapsible("Available Prompts", 2)
25+
self.add_title("Available Prompts", 2)
26+
self.start_collapsible("Toggle details")
2627

2728
if not self._scorecard.prompts:
2829
self.add_text("_No prompts available_")

src/mcp_interviewer/reports/server/resource_templates.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ def __init__(self, scorecard: ServerScoreCard):
2424

2525
def _build(self):
2626
"""Build the resource templates section."""
27-
self.start_collapsible("Resource Templates", 2)
27+
self.add_title("Resource Templates", 2)
28+
self.start_collapsible("Toggle details")
2829

2930
if not self._scorecard.resource_templates:
3031
self.add_text("_No resource templates available_")

src/mcp_interviewer/reports/server/resources.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ def __init__(self, scorecard: ServerScoreCard):
2424

2525
def _build(self):
2626
"""Build the resources section."""
27-
self.start_collapsible("Resources", 2)
27+
self.add_title("Resources", 2)
28+
self.start_collapsible("Toggle details")
2829

2930
if not self._scorecard.resources:
3031
self.add_text("_No resources available_")

src/mcp_interviewer/reports/server/tools.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ def _build(self):
2828

2929
def add_available_tools(self) -> "ToolsReport":
3030
"""Add list of available tools with full details."""
31-
self.start_collapsible("Tools", 2)
31+
self.add_title("Tools", 2)
32+
self.start_collapsible("Toggle details")
3233

3334
if not self._scorecard.tools:
3435
self.add_text("_No tools available_")

0 commit comments

Comments
 (0)