It's an MCP server now xD!#67
Merged
Merged
Conversation
…nd recommend tools
- POST /api/mcp — Streamable HTTP transport, stateless, JSON mode
- roast_stack: accepts natural tool names, fuzzy-resolves to catalog
- challenge_stack: same name resolution, auto-derives slots from catalog
- get_stack_questions + recommend_stack: drives the quiz questionnaire
and returns slot-by-slot recommendations via quizScoring + genomeAnalysis
- lib/ai/resolveTools.ts: 7-step fuzzy matching (id, name, npm, pip, env_var)
- lib/ai/roast.ts + challenge.ts: single implementation shared by HTTP
routes and MCP tools — no duplicated AI logic
- lib/quizContent.ts: single source of truth for QUESTIONS (was in 2 places)
- 50 tests passing, make check clean
- Static server component with Hero, Quick Setup, Tool Reference, and Example Prompts sections - Copyable MCP URL block + JSON config snippet for Claude Code / Cursor - Four ToolCards: get_stack_questions, recommend_stack, roast_stack, challenge_stack - CopyButton client component for clipboard interactions - pageMeta() metadata wired for /mcp route
- MCP section placed right above "Honest take" (LlmPromptSection) for early visibility - Headline: "Stop asking Claude to research your stack" with token-cost framing - 4 tool pills, "View setup guide" CTA → /mcp, server URL inline - Subtle "use inside Claude Code" hint in hero secondary links - MCP link added to footer nav
- New mcp_events table (migration 20260329170050) with tool, called_at,
duration_ms, success, tool_count, skipped_count columns
- lib/mcp/logger.ts — fire-and-forget insert, never throws or blocks
- Wired into all 4 tool handlers: roast_stack, challenge_stack,
get_stack_questions, recommend_stack
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
and returns slot-by-slot recommendations via quizScoring + genomeAnalysis
routes and MCP tools — no duplicated AI logic
What does this PR do?
Type of change
Checklist
make checkpasses (lint + typecheck)feat:,fix:,chore:,docs:)Notes for reviewers