Skip to content

Homerun MCP by usefulapi

by usefulapi.io · remote · no sign-in to list tools · v1.3.4 · published by io.usefulapi

Read Homerun vacancies, applications, notes and tags; move an application to a stage or add a note.

Deletes · 1Changes · 1

9 tools: 1 can delete or cancel things, 1 change things and 7 only read.

Scanned Oct 22, 2026

No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http homerun https://homerun.usefulapi.io/mcp

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

9 tools

Deletes or cancels 1Claude Code: deny
  • homerun_move_application_to_stageWRITE: move ONE application to another hiring stage of its vacancy (PATCH with only the stage id; nothing else on the application changes).Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_move_application_to_stage" says "move": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: move ONE application to another hiring stage of its vacancy (PATCH with only the stage id; nothing else on the application changes). Get stage ids from homerun_get_vacancy. Homerun's own automations for that stage may run (for example automatic e-mails configured in Homerun); this tool sends no e-mail itself and does not reject or delete anyone. PATCH /job-applications/{job_application_id} (scope job-applications:write).

    Annotations the server declares

    • title: Move application to a stage
    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: true
Changes things 1Claude Code: ask
  • homerun_add_noteWRITE: add ONE note (1-2000 characters) to one application.Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_add_note" says "add": a word for a change.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    WRITE: add ONE note (1-2000 characters) to one application. It becomes visible to the hiring team in Homerun and cannot be removed with this server. display_name is free text shown as the author. Nothing is sent to the candidate. POST /job-applications/{job_application_id}/notes (scope job-application-notes:write).

    Annotations the server declares

    • title: Add a note to an application
    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
Only reads 7Claude Code: allow
  • homerun_get_applicationOne job application in full: contact details (name, e-mail, phone, city, country), links, experience/education, current stage, rating, sources and file names (notes: use homerun_li…Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "homerun_get_application" says "get": a word for reading.

    What it can reach

    • private-dataThe description's first sentence says "contact": it reads contacts.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    • untrusted-inputThe description's first sentence says "mail": it reads inbound email, which other people can write.
    Description, as the server wrote it
    One job application in full: contact details (name, e-mail, phone, city, country), links, experience/education, current stage, rating, sources and file names (notes: use homerun_list_notes). Date of birth, photo URL and file download links are never returned. Optionally include the answers to the application-form questions. Personal data: fetch only the candidate you need. GET /job-applications/{job_application_id} (scope job-applications:read).

    Annotations the server declares

    • title: Get application
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_get_vacancyOne vacancy by id with description, location, department, hiring stages (id + name), salary indication, candidate count and the public job and application-form URLs.Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_get_vacancy" says "get": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    One vacancy by id with description, location, department, hiring stages (id + name), salary indication, candidate count and the public job and application-form URLs. GET /vacancies/{vacancy_id} (scope vacancies:read).

    Annotations the server declares

    • title: Get vacancy
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_list_application_tagsThe tags attached to one application.Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_list_application_tags" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    The tags attached to one application. GET /job-applications/{job_application_id}/tags (scope job-application-tags:read).

    Annotations the server declares

    • title: List an application's tags
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_list_applicationsList job applications, newest page first as the API orders them.Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_list_applications" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List job applications, newest page first as the API orders them. Each item has name, e-mail, vacancy id, current stage (id + name), rating, created/hired dates and disqualified flag. Personal data: no phone number, date of birth, photo or files are returned here; ask for one application with homerun_get_application. Filter by vacancy, stage name or disqualified state and page through; do not use it to export all candidates. GET /job-applications (scope job-applications:read).

    Annotations the server declares

    • title: List applications
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_list_notesList the notes on one application: id, author display name, text, sensitive flag and timestamps.Reads private dataReads text others writeNo findings

    Why it is in this group

    • The name "homerun_list_notes" says "list": a word for reading.

    What it can reach

    • private-dataThe name "homerun_list_notes" says "list" and "note": it reads notes.
    • private-dataThe description's first sentence says "list" and "note": it reads notes.
    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List the notes on one application: id, author display name, text, sensitive flag and timestamps. GET /job-applications/{job_application_id}/notes (scope job-application-notes:read).

    Annotations the server declares

    • title: List application notes
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_list_tagsList the company's candidate tags (id + name).Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_list_tags" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List the company's candidate tags (id + name). GET /tags (scope tags:read).

    Annotations the server declares

    • title: List tags
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true
  • homerun_list_vacanciesList job vacancies (draft, private, public, ...) with title, status, type, location type and expiry.Reads text others writeNo findings

    Why it is in this group

    • The name "homerun_list_vacancies" says "list": a word for reading.

    What it can reach

    • untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
    Description, as the server wrote it
    List job vacancies (draft, private, public, ...) with title, status, type, location type and expiry. Optionally include location, department, hiring stages (their ids are what homerun_move_application_to_stage needs), salary indication and the candidate count. GET /vacancies (scope vacancies:read).

    Annotations the server declares

    • title: List vacancies
    • readOnlyHint: true
    • destructiveHint: false
    • openWorldHint: true

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Exfil surface

Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.

No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.

Reads private data2
Reads files, mail, messages, databases, secrets, calendars or repositories.
Can send data out0
Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.

Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.

Install

Pinned to version 1.3.4. Values in angle brackets are yours to fill in.

claude mcp add --transport http homerun https://homerun.usefulapi.io/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__homerun__homerun_list_vacancies",
      "mcp__homerun__homerun_get_vacancy",
      "mcp__homerun__homerun_list_applications",
      "mcp__homerun__homerun_get_application",
      "mcp__homerun__homerun_list_notes",
      "mcp__homerun__homerun_list_tags",
      "mcp__homerun__homerun_list_application_tags"
    ],
    "ask": [
      "mcp__homerun__homerun_add_note"
    ],
    "deny": [
      "mcp__homerun__homerun_move_application_to_stage"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as homerun. Review it before you use it.

Capability tags behind 9 rules
  • mcp__homerun__homerun_list_vacancies untrusted-input
  • mcp__homerun__homerun_get_vacancy untrusted-input
  • mcp__homerun__homerun_list_applications untrusted-input
  • mcp__homerun__homerun_get_application private-data, untrusted-input
  • mcp__homerun__homerun_list_notes private-data, untrusted-input
  • mcp__homerun__homerun_list_tags untrusted-input
  • mcp__homerun__homerun_list_application_tags untrusted-input
  • mcp__homerun__homerun_move_application_to_stage untrusted-input
  • mcp__homerun__homerun_add_note untrusted-input