Connects Claude to the StoryLenses API for programmatic cover letter generation. Exposes five tools: analyze job postings to extract structured fields like requirements and culture signals, match candidate CVs against those fields, generate narrative-driven letters using selectable archetypes, run quality checks with scoring, and list available writing styles. The workflow is sequential: parse a job URL, feed the analysis plus a resume into the matcher, then generate a letter based on the match data and chosen narrative tone. Requires an API key from storylenses.app with tiered limits starting at 10 free generations monthly. Useful if you're building job application automation or want structured job data extraction beyond basic scraping.
Public tool metadata for what this MCP can expose to an agent.
storylenses_analyze_jobExtract 15+ structured fields from a job posting — role requirements, company challenges, culture signals, recruiter priorities3 paramsExtract 15+ structured fields from a job posting — role requirements, company challenges, culture signals, recruiter priorities
localestringen · de · es · ptdefault: enjob_urlstringjob_textstringstorylenses_match_profileMatch a candidate profile/CV against job data — identifies fit score, matching skills, career gaps, and strongest narrative angle3 paramsMatch a candidate profile/CV against job data — identifies fit score, matching skills, career gaps, and strongest narrative angle
localestringen · de · es · ptdefault: encandidate_cvstringjob_analysisobjectstorylenses_generate_letterGenerate a story-driven cover letter using matched data and a narrative archetype. Supports en/de/es/pt.7 paramsGenerate a story-driven cover letter using matched data and a narrative archetype. Supports en/de/es/pt.
tonestringprofessional · conversational · formal · confident · analytical · storytellingdefault: professionallengthstringshort · medium · fulldefault: mediumlocalestringen · de · es · ptdefault: enarchetypestringmatch_dataobjectjob_analysisobjectcandidate_namestringstorylenses_quality_checkScore and evaluate a cover letter for relevance, narrative strength, and completeness. Returns score 0-100 with actionable feedback.3 paramsScore and evaluate a cover letter for relevance, narrative strength, and completeness. Returns score 0-100 with actionable feedback.
localestringen · de · es · ptdefault: enletter_textstringjob_analysisobjectstorylenses_list_archetypesReturn available narrative archetypes with descriptions so the agent or user can select a style1 paramsReturn available narrative archetypes with descriptions so the agent or user can select a style
localestringen · de · es · ptdefault: enAI-powered cover letter generation for MCP-compatible agents. The first production MCP server for job applications.
| 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 |
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"storylenses": {
"command": "npx",
"args": ["-y", "@storylenses/mcp-server"],
"env": {
"STORYLENSES_API_KEY": "your-api-key"
}
}
}
}
Add to .cursor/mcp.json or VS Code MCP settings:
{
"mcp": {
"servers": {
"storylenses": {
"command": "npx",
"args": ["-y", "@storylenses/mcp-server"],
"env": {
"STORYLENSES_API_KEY": "your-api-key"
}
}
}
}
}
docker run -e STORYLENSES_API_KEY=your-key ghcr.io/benediktgirz/storylenses-mcp-server
| 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) |
// 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
});
npm install
STORYLENSES_API_KEY=your-key npm test
Visit storylenses.app/mcp to get your API key.
MIT