StoryLenses MCP Server
# StoryLenses MCP Server
AI-powered cover letter generation for MCP-compatible agents. The first production MCP server for job applications.
## Tools
| Tool | Description |
|------|-------------|
| `storylenses_analyze_job` | Extract 15+ structured fields from a job posting |
| `storylenses_match_profile` | Match a candidate CV against job data |
| `storylenses_generate_letter` | Generate a story-driven cover letter |
| `storylenses_quality_check` | Score and evaluate a cover letter |
| `storylenses_list_archetypes` | List available narrative archetypes and tones |
## Setup
### Claude Desktop
Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:
```json
{
"mcpServers": {
"storylenses": {
"command": "npx",
"args": ["-y", "@storylenses/mcp-server"],
"env": {
"STORYLENSES_API_KEY": "your-api-key"
}
}
}
}
```
### Cursor / VS Code
Add to `.cursor/mcp.json` or VS Code MCP settings:
```json
{
"mcp": {
"servers": {
"storylenses": {
"command": "npx",
"args": ["-y", "@storylenses/mcp-server"],
"env": {
"STORYLENSES_API_KEY": "your-api-key"
}
}
}
}
}
```
### Docker
```bash
docker run -e STORYLENSES_API_KEY=your-key ghcr.io/benediktgirz/storylenses-mcp-server
```
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `STORYLENSES_API_KEY` | Yes | Your API key from storylenses.app/mcp |
| `STORYLENSES_API_URL` | No | API base URL (default: https://www.storylenses.app) |
## Example Workflow
```typescript
// 1. Analyze job posting
const job = await callTool("storylenses_analyze_job", {
job_url: "https://linkedin.com/jobs/view/12345"
});
// 2. Match candidate profile
const match = await callTool("storylenses_match_profile", {
job_analysis: job,
candidate_cv: "Senior engineer with 7 years React experience..."
});
// 3. Generate cover letter
const letter = await callTool("storylenses_generate_letter", {
job_analysis: job,
match_data: match,
candidate_name: "Alex Chen",
archetype: match.suggestedArchetype
});
// 4. Quality check
const score = await callTool("storylenses_quality_check", {
letter_text: letter.letter_text,
job_analysis: job
});
```
## Testing
```bash
npm install
STORYLENSES_API_KEY=your-key npm test
```
## Get an API Key
Visit [storylenses.app/mcp](https://www.storylenses.app/mcp) to get your API key.
- Free: 10 generations/month
- Developer ($29/mo): 200 generations
- Scale ($99/mo): 1,000 generations
## License
MIT
TDQS
Scored across 5 tools
Each tool occupies a distinct stage in the workflow pipeline: analyze_job extracts job data, match_profile compares candidate to job, list_archetypes provides style options, generate_letter creates output, and quality_check validates results. No functional overlap exists between tools.
All tools follow an identical storylenses_verb_noun pattern with consistent snake_case formatting, clear action-oriented verbs (analyze, generate, list, match, check), and uniform prefixing that prevents collisions with other servers.
Five tools is ideally suited for this focused domain, covering the complete cover letter lifecycle from input analysis and matching through generation and validation without bloat, redundancies, or missing critical steps.
Provides comprehensive coverage of the generation workflow including analysis, matching, archetype selection, creation, and scoring; minor gap requires regenerating from scratch rather than refining existing letters based on quality feedback.