Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
627 changes: 214 additions & 413 deletions mcp-interview.json

Large diffs are not rendered by default.

563 changes: 217 additions & 346 deletions mcp-interview.md

Large diffs are not rendered by default.

23 changes: 14 additions & 9 deletions src/mcp_interviewer/reports/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,22 +85,27 @@ def add_report(self, report: "BaseReport") -> "BaseReport":
self._lines.extend(report._lines)
return self

def start_collapsible(self, title: str, level: int = 2) -> "BaseReport":
"""Start a collapsible section with a title."""
# Always add the markdown header
prefix = "#" * level
self._lines.append(f"{prefix} {title}")
self._lines.append("")
def start_collapsible(self, summary: str) -> "BaseReport":
"""Start a collapsible section.

# Only add details tags if use_collapsible is True
Args:
summary: The summary text shown when collapsed

Returns:
Self for method chaining
"""
if self._options.use_collapsible:
self._lines.append("<details>")
self._lines.append("<summary>Toggle details</summary>")
self._lines.append(f"<summary>{summary}</summary>")
self._lines.append("")
return self

def end_collapsible(self) -> "BaseReport":
"""End a collapsible section."""
"""End a collapsible section.

Returns:
Self for method chaining
"""
if self._options.use_collapsible:
self._lines.append("</details>")
self._lines.append("")
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/functional_test/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,8 @@ def _build(self):
return

# Check if scoring was disabled
self.start_collapsible("Functional Test Results", 2)
self.add_title("Functional Test Results", 2)
self.start_collapsible("Toggle details")

# Test plan
if self.include_evaluations and test.plan:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,15 +37,17 @@ def _build(self):
scoring_disabled = True

if scoring_disabled:
self.start_collapsible("Tool Scorecards", 2)
self.add_title("Tool Scorecards", 2)
self.start_collapsible("Toggle details")
self.add_text(
"_Experimental tool judging disabled - no evaluations generated_"
)
self.add_blank_line()
self.end_collapsible()
return
else:
self.start_collapsible("Tool Scorecards (🤖)", 2)
self.add_title("Tool Scorecards (🤖)", 2)
self.start_collapsible("Toggle details")

if not self._scorecard.tool_scorecards:
self.add_text("_No tool evaluations available_")
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/interviewer/interviewer_info.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ def __init__(self, scorecard: ServerScoreCard):

def _build(self):
"""Build the interviewer info section."""
self.start_collapsible("Interviewer Parameters", 2)
self.add_title("Interviewer Parameters", 2)
self.start_collapsible("Toggle details")

self.add_title("Metadata", 4)
# Add date and version
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/server/prompts.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,8 @@ def __init__(self, scorecard: ServerScoreCard):

def _build(self):
"""Build the prompts section."""
self.start_collapsible("Available Prompts", 2)
self.add_title("Available Prompts", 2)
self.start_collapsible("Toggle details")

if not self._scorecard.prompts:
self.add_text("_No prompts available_")
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/server/resource_templates.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ def __init__(self, scorecard: ServerScoreCard):

def _build(self):
"""Build the resource templates section."""
self.start_collapsible("Resource Templates", 2)
self.add_title("Resource Templates", 2)
self.start_collapsible("Toggle details")

if not self._scorecard.resource_templates:
self.add_text("_No resource templates available_")
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/server/resources.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ def __init__(self, scorecard: ServerScoreCard):

def _build(self):
"""Build the resources section."""
self.start_collapsible("Resources", 2)
self.add_title("Resources", 2)
self.start_collapsible("Toggle details")

if not self._scorecard.resources:
self.add_text("_No resources available_")
Expand Down
3 changes: 2 additions & 1 deletion src/mcp_interviewer/reports/server/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ def _build(self):

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

if not self._scorecard.tools:
self.add_text("_No tools available_")
Expand Down