leetcode-helper
An MCP server that gives structured, AI-powered DSA guidance inside Claude Desktop or Claude Code — approach analysis, hints, complexity breakdowns, and more, without spoiling the solution.
---
Tools at a Glance
| Tool | Input | What it returns | |---|---|---| | get_approach | problem | Pattern, steps, TC/SC | | get_hint | problem + where stuck | Nudge, no spoilers | | get_complexity | problem + code | TC/SC breakdown per block | | post_solution | problem + accepted code | Discussion post ready to copy | | similar_questions | problem | 3–5 problems for the same pattern | | upsolve | problem + working code | Optimization direction, not solution |
---
Setup
Prerequisites: Node.js 18+, an ANTHROPIC_API_KEY
git clone https://github.com/Navoren/leetcode-helper.git
cd leetcode-helper
npm install
npm run build
---
Connect to Claude Code
Add to .claude/settings.json (project or global):
{
"mcpServers": {
"leetcode-helper": {
"command": "node",
"args": ["d:/leetcode-helper/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your-key-here"
}
}
}
}
Connect to Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"leetcode-helper": {
"command": "node",
"args": ["/absolute/path/to/leetcode-helper/dist/index.js"],
"env": {
"ANTHROPIC_API_KEY": "your-key-here"
}
}
}
}
---
Example Usage
Getting an approach: > "Use get_approach on: Given an array of integers, return indices of two numbers that add up to target."
Getting a hint when stuck: > "Use get_hint — problem: two sum, stuck on: my nested loop works but is too slow"
Generating a discussion post: > "Use post_solution with my accepted Python solution for two sum"
Upsolving: > "Use upsolve — here's my O(n²) solution, help me think toward better"
---
Project Structure
leetcode-mcp/
├── src/
│ ├── index.ts # Entry point
│ ├── server.ts # McpServer setup
│ ├── lib/
│ │ └── claude.ts # Anthropic API client
│ └── tools/
│ ├── registry.ts # Registers all tools (one line per tool)
│ ├── get_approach.ts
│ ├── get_hint.ts
│ ├── get_complexity.ts
│ ├── post_solution.ts
│ ├── similar_questions.ts
│ └── upsolve.ts
├── dist/ # Compiled output
├── functional_requirement.md
├── technical_document.md
└── CLAUDE.md
---
Adding a New Tool
- Create
src/tools/your_tool.ts— exportname,description,schema(Zod),handler - Add one import + one entry in
src/tools/registry.ts npm run build
No changes to server.ts, index.ts, or claude.ts.
---
Tech Stack
| Layer | Choice | |---|---| | Runtime | Node.js (ESM) | | Language | TypeScript 5 | | MCP SDK | @modelcontextprotocol/sdk | | Schema validation | Zod | | LLM | Anthropic claude-sonnet-4-6 | | Transport | stdio |






