Skip to main content
Glama
md-sakib1122

job-mcp

by md-sakib1122

job-mcp

FastMCP サーババー(stdio トランスポート)の機能:

  • リソース cv://profile — LLMクライアントが読み取るためのあななたのCV/履歴書をJSONで提供します。

  • ツール send_email — Red Mail を使用して SMTP でメールを送信します。

ワークフロー: チャットでMCPクライアントに求人情報と採用担当者のメールを渡す → クライアントが cv://profile を読み取る → それに合わせた応募メールを作成する → send_email を呼び出して送信する。

1. インストール

cd job-mcp
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e .

Related MCP server: MCP Email Server

2. SMTP認証情報の設定

cp .env.example .env

.env を SMTP ホスト/認証情報で編集します。Gmail の場合は、通常のログインパスワードではなく アプリ パスワード を使用し、 先に 2 段階認証を有効にしてください。

3. CVを記入する

src/job_mcp/data/cv.json を実際の情報(連絡先、スキル、職歴、 学歴、プロジェクト、資格)で編集します。このリソースはこのファイルをそのまま読み取るだけです。

4. サーバーを単体で実行する(動作確認)

python -m job_mcp.server

このサーバーは stdin/stdout 上で MCP JSON-RPC メッセージを待機したままになります(これは正常です。MCPクライアントから 起動されることを想定しており、対話的に使うものではありません)。

MCP dev inspector で確認することもできます:

mcp dev src/job_mcp/server.py

5. MCPクライアントに接続する

stdio でサーバーを起動するクライアントの設定例(例: Claude Desktop の claude_desktop_config.json):

{
  "mcpServers": {
    "job-mcp": {
      "command": "/absolute/path/to/job-mcp/.venv/bin/python",
      "args": ["-m", "job_mcp.server"],
      "env": {
        "SMTP_HOST": "smtp.gmail.com",
        "SMTP_PORT": "587",
        "SMTP_USERNAME": "you@gmail.com",
        "SMTP_PASSWORD": "your-app-password",
        "SMTP_SENDER_EMAIL": "you@gmail.com",
        "SMTP_SENDER_NAME": "Your Name"
      }
    }
  }
}

(ここでは認証情報を .env の代わりに env に入れることもできます。どちらでも動作します。 config.py はどちらにせよ os.environ から読み取るためです。)

6. 使い方

クライアントに次のようなものを貼り付けます:

求人情報と採用担当者のメールをここに貼り付けます。私のCVリソースを読み、それに合わせた 応募メールを作成して送信してください。

求人情報: 採用担当者メール: hr@company.com

クライアントは cv://profile を呼び出し、その両方のコンテキストを使用してメールを作成し、 send_email(to=..., subject=..., body_html=..., body_text=...) を呼び出します。

メモ / 後で堅牢化すべき点

  • send_email には現在、サーバー自体に確認ステップが組み込まれていません。「送信前に確認する」というガードレールをサーバー側(クライアント側だけでなく)で強制したい場合は、 2段階のフロー(プレビューとIDを返す draft_email ツールと、実際に送信する confirm_send ツール)を追加してください。

  • 誤って重複送信してしまわないように、レート制限や送信済みメールのログ記録を検討してください。

  • cv.json はリソースが呼び出されるたびに新しく読み込まれるため、サーバーを再起動せずに編集できます。

Available Tools

1 tool
send_emailA

Send an email via SMTP using Red Mail. Use this to send the final, tailored job-application email to the recruiter/HR address. Provide a polished HTML body (and optionally a plain-text fallback).

NameRequiredDescriptionDefault
ccNo
toYes
bccNo
subjectYes
reply_toNo
body_htmlYes
body_textNo

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Since no annotations are provided, the description carries the behavioral disclosure burden. It transparently states that the tool sends an email via SMTP, which is an external side effect, and adds a practical requirement to provide polished HTML. It omits details like SMTP prerequisites or failure modes, but the core behavior is explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core action, and every clause adds value: the action, the use case, and the body-format expectation. No redundant or generic phrases.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has 7 parameters, no annotations, and no output schema, so the description must be reasonably self-contained. It covers the main action, the intended purpose, and the key body requirement. However, it leaves several parameter semantics and any error/response behavior unaddressed. The operation is simple and the names are fairly self-evident, so the gaps are moderate rather than severe.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It only explains body_html and optionally body_text; to, subject, cc, bcc, and reply_to are left undocumented. While the parameter names are conventional, the description does not add sufficient meaning for a zero-coverage schema, especially for required fields like 'to' and 'subject'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action ('Send an email via SMTP using Red Mail') and the specific use case ('final, tailored job-application email to the recruiter/HR address'). It is a precise verb+resource combination, with no ambiguity or tautology.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says 'Use this to send the final, tailored job-application email to the recruiter/HR address', giving a clear when-to-use context. There are no sibling tools listed, so there is no opportunity to name alternatives or when-not scenarios, but the intended scenario is well defined.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 1 tool updatev0.1.0
    • First observedsend_email

TDQS

A3.9/5.0

Scored across 1 tool

Disambiguation5/5

With only one tool, there is no possibility of ambiguity or misselection. The tool's purpose is clearly distinct simply because it is the only tool.

Naming Consistency5/5

A single tool name cannot be inconsistent with itself. 'send_email' follows a clear verb_noun convention, and there are no other names to compare against.

Tool Count2/5

One tool feels too thin for a server named 'job-mcp', which implies a broader job-application workflow. While sending an email is a concrete task, the server likely needs supporting tools for content generation or attachment handling to be useful.

Completeness2/5

The surface is severely limited: it only sends an email. Missing operations include email preview, attachment support, and any integration with job-application data, leaving obvious gaps for real-world workflows.

Maintenance

ActivityStale
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to read, send, and manage emails via POP3 and SMTP with TLS support.
    6
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables LLMs to access candidate information including resume, LinkedIn, GitHub, and contact via email.
    14 npm
    81
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Free MCP and skills for remote and overseas job search across Himalayas, Jobicy, Arbeitnow and company ATS boards, with source links and eligibility checks. Optional local drafts, authorized email sending and reply tracking. Hosted MCP: https://mcp.worldrole.work/mcp — free anonymous access to 20 distinct jobs per network per UTC day, or 50 per free account; other request limits apply.
    9
    14
    MIT