Back to Directory/Developer Tools

io.github.benediktgirz/storylenses

AI cover letter generation for agents. Job analysis, profile matching, narrative letters.

Developer ToolsTypeScriptv0.1.3

StoryLenses MCP Server

AI-powered cover letter generation for MCP-compatible agents. The first production MCP server for job applications.

Tools

ToolDescription
storylenses_analyze_jobExtract 15+ structured fields from a job posting
storylenses_match_profileMatch a candidate CV against job data
storylenses_generate_letterGenerate a story-driven cover letter
storylenses_quality_checkScore and evaluate a cover letter
storylenses_list_archetypesList available narrative archetypes and tones

Setup

Claude Desktop

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"
      }
    }
  }
}

Cursor / VS Code

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

docker run -e STORYLENSES_API_KEY=your-key ghcr.io/benediktgirz/storylenses-mcp-server

Environment Variables

VariableRequiredDescription
STORYLENSES_API_KEYYesYour API key from storylenses.app/mcp
STORYLENSES_API_URLNoAPI base URL (default: https://www.storylenses.app)

Example Workflow

// 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

npm install
STORYLENSES_API_KEY=your-key npm test

Get an API Key

Visit 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

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y @storylenses/mcp-server

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-benediktgirz-storylenses": {
      "command": "npx",
      "args": [
        "-y",
        "@storylenses/mcp-server"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

@storylenses/mcp-servernpm

Compatible MCP Clients

io.github.benediktgirz/storylenses works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More