Skip to main content

Individual Application Mesh, MCP Server

Project description

IAM MCP SERVER ... kind of ๐Ÿค”

The Individual Applicant Mesh (IAM) MCP Server is designed to process and manage applicant resumes, as well as facilitate job searches. It offers specialized tools and prompts for job searching, resume aggregation, generating job-specific resumes, and creating tailored cover letters.

Note: This server does not fully handle system integrations. Instead, it provides focused functionality specifically for an MCP hostโ€”hence the "kind of ๐Ÿค”" in the name.

๐Ÿ“ Requirements

  1. ๐Ÿ—‚๏ธ The MCP host must have read and write access to the local file system where it is running. For example, you can run the IAM MCP Server within Claude Desktop, alongside the filesystem MCP Server, which provides this capability. This file access requirement applies to version 1.0 and is necessary for proper operation.

    1.1. Add the filesystem MCP server

        {
            "mcpServers": {
                "filesystem": {
                    "command": "npx",
                    "args": [
                        "-y",
                        "@modelcontextprotocol/server-filesystem",
                        "<add directory for filesystem server>"
                    ]
                }
            }
        }
    
  2. ๐Ÿ” The search job MCP tool requires access to JSearch. You can create an account and get 200 requests per month for free.

โœจ Features

Prompts

๐Ÿ“Š Analyze Job Market

Directs the LLM step-by-step to perform tasks such as conducting a job search, then summarizes and analyzes the resulting job listings. Refer to the full prompt for detailed instructions and context.

๐Ÿ“„ Resume Mesh

Easily combine multiple targeted resumes into a single, comprehensive Markdown document.

What is Resume Mesh?
If youโ€™ve applied to similar jobs, youโ€™ve likely created several versions of your resume to match different job descriptions. Resume Mesh brings all those versions together into one unified Markdown file. This gives the MCP host a complete view of your experience and makes it easy to generate new, tailored resumes for future applications.

๐ŸŽฏ Job-Specific Resume Generation

Generate customized resumes for individual job postings.

To use this feature, make sure the MCP host already has access to the resume mesh. Each tailored resume is generated using both the resume mesh and the specific job description. You need to attach the resume mesh to the MCP host conversation in advance, because the resume generation prompt does not instruct the LLM to load the resume mesh from the file system.

Cover-Letter Generation

Easily generate a customized cover letter tailored to a specific job description, using the corresponding generated resume.

How to use:
Before generating a cover letter, ensure the MCP host has access to the relevant generated resume for the target job. You must manually attach this resume to the MCP host conversation, as the cover letter prompt does not automatically retrieve it from the file system.

๐Ÿ’พ Save Job

Directs the LLM step-by-step to save jobs.

How to use:

Start by searching for jobs using the search jobs MCP tool. After obtaining the results, you can then instruct the LLM to save those job listings.

Tools

๐Ÿš€ Search Jobs

Performs a job search using the following parameters:

  • role: The job title or position to search for
  • city: (optional) Target city for the job search
  • country: (optional) Target country for the job search
  • platform: (optional) Specific job platform to use
  • number of jobs: (default 5) Number of job listings to retrieve
  • slice job description: (optional) Option to include only a portion of the job description

๐Ÿ› ๏ธ Installation & Setup

You can easily install this project as a Python package from PyPI: iam-mcp-server.

๐Ÿ–ฅ๏ธ MCP host (Claude Desktop)

  1. Locate your claude_desktop_config.json file:
    • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json

Option 1: Using uvx with PyPI package

{
  "mcpServers": {
    "iam": {
        "command": "uvx",
        "args": [
            "--from", 
            "iam-mcp-server@latest",
            "mcp-server-iam"
        ],
        "env": {
            "LOG_LEVEL": "INFO",
            "RAPIDAPI_KEY": "<API KEY>",
            "RAPIDAPI_HOST": "jsearch.p.rapidapi.com",
            "MCP_TRANSPORT": "stdio"
        }
    }
}

Option 2: Using source code

{
  "mcpServers": {
    "iam": {
      "command": "<path to>/uv",
      "args": [
        "--directory",
        "<path to>/iam-mcp-server/src/mcp_server_iam",
        "run",
        "__main__.py"
      ],
      "env": {
        "LOG_LEVEL": "INFO",
        "RAPIDAPI_KEY": "<API KEY>",
        "RAPIDAPI_HOST": "jsearch.p.rapidapi.com",
        "MCP_TRANSPORT": "stdio"
      }
    }
  }
}

Restart your MCP host

  • Completely quit and restart your MCP host
  • The server will automatically initialize when the host starts

Verify the connection

In your MCP host, ask: "What MCP tools are available?" or "List the available MCP servers"

๐Ÿ” MCP Inspector

In terminal, run mcp dev src/mcp_server_iam/__main__.py and accept installing the MCP Inspector. In the web inspector UI, click connect and interact with the MCP server.

โš ๏ธ Important, this is for dev purposes only.

โš™๏ธ Environment Variables

IAM supports configuration through environment variables. Create a .env file in the project root or set these variables in your system:

Variable Default Description
APP_NAME iam Application name for logging and identification
LOG_LEVEL INFO Logging level: DEBUG, INFO, WARNING, ERROR, CRITICAL
MCP_TRANSPORT stdio Application transport version
RESUME_MESH_FILENAME resume_mesh Default filename for resume mesh
RAPIDAPI_KEY "" RapidAPI key for external API access (optional)
RAPIDAPI_HOST jsearch.p.rapidapi.com RapidAPI host endpoint

๐Ÿ“‚ Repository Structure

iam-mcp-server/
โ”œโ”€โ”€ src/                        # Source code
โ”‚   โ””โ”€โ”€ mcp_server_iam/         # Main MCP server package
โ”‚       โ”œโ”€โ”€ __init__.py         # Package initialization
โ”‚       โ”œโ”€โ”€ __main__.py         # Entry point for running the server
โ”‚       โ”œโ”€โ”€ config.py           # Configuration management
โ”‚       โ”œโ”€โ”€ prompt.py           # LLM prompts and instructions
โ”‚       โ”œโ”€โ”€ server.py           # MCP server implementation
โ”‚       โ”œโ”€โ”€ tool.py             # MCP tools implementation
โ”‚       โ””โ”€โ”€ utils.py            # Utility functions
โ”œโ”€โ”€ tests/                      # Test suite
โ”‚   โ”œโ”€โ”€ __init__.py
โ”‚   โ””โ”€โ”€ test_mcp_tools.py       # MCP tools tests
โ”œโ”€โ”€ .env_example                # Environment variables template
โ”œโ”€โ”€ LICENSE                     # MIT License
โ”œโ”€โ”€ makefile                    # Build and development tasks
โ”œโ”€โ”€ pyproject.toml              # Project configuration and dependencies
โ”œโ”€โ”€ pytest.ini                 # Pytest configuration
โ”œโ”€โ”€ README.md                   # This file
โ”œโ”€โ”€ ruff.toml                   # Ruff linter configuration
โ””โ”€โ”€ uv.lock                     # UV dependency lock file

๐Ÿ”‘ Key Components

  • src/mcp_server_iam/: Core MCP server implementation

    • server.py: Main MCP server class and protocol handling
    • tool.py: Implementation of MCP tools (job search, etc.)
    • prompt.py: LLM prompts for resume generation and job analysis
    • config.py: Configuration management and environment variables
    • utils.py: Helper functions and utilities
  • tests/: Comprehensive test suite for MCP tools and functionality

  • Configuration files: Project setup, linting, and dependency management

๐Ÿ“ License

MIT License - see LICENSE file for details

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iam_mcp_server-2.0.0.tar.gz (85.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

iam_mcp_server-2.0.0-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file iam_mcp_server-2.0.0.tar.gz.

File metadata

  • Download URL: iam_mcp_server-2.0.0.tar.gz
  • Upload date:
  • Size: 85.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for iam_mcp_server-2.0.0.tar.gz
Algorithm Hash digest
SHA256 e7ebf837f3e7a3bcde984b3ff4bdfa904267bee2473aa3d9dc7b8c4defaeb1ca
MD5 a4176e7795419e13497b71b327253ab1
BLAKE2b-256 a4bc617df99e70372b666cbf808cc5b301bb4a17a54176508fed3b6dd81b5a9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for iam_mcp_server-2.0.0.tar.gz:

Publisher: release.yml on alejandrogarcia-hub/iam-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iam_mcp_server-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: iam_mcp_server-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for iam_mcp_server-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0f7133ff06c9d2f0a16321c67fcc44cb8532c060274652b6518f75ebe1ae72d3
MD5 6f6bcfd970ce4a7ac92d6fd6920486a3
BLAKE2b-256 d44a85ae62771869786e5b4eec030af69c3806886a67fd903b3de560778867a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for iam_mcp_server-2.0.0-py3-none-any.whl:

Publisher: release.yml on alejandrogarcia-hub/iam-mcp-server

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page