Skip to main content
Glama
clementhu689-a11y

EasyHire AI MCP server

README.md
# EasyHire AI for Codex

Open-source Codex integration for creating or selecting EasyHire AI jobs and
importing complete candidate profiles through a hosted Remote MCP server.

## What Is Open Source

This repository contains:

- Remote MCP server adapter
- MCP tool contracts
- EasyHire API client
- Codex installer
- Candidate import Skill
- Tests, Docker packaging, and deployment documentation

EasyHire AI databases, customer data, membership logic, scoring prompts,
internal services, and production secrets are not included.

## Install

After the package and production MCP endpoint are published:

```bash
npx -y @easyhireai/codex@latest setup
```

The installer adds the hosted MCP server, opens EasyHire OAuth login, installs
the global Skill, and verifies the connection. It does not store OAuth tokens.

## Tools

### `find_jobs`

Find an open job owned by the authenticated EasyHire AI user, or list recent
open jobs.

### `import_candidates_to_job`

Accept up to 50 complete LinkedIn profile payloads and one required `job_id`.
The backend creates or reuses candidates, binds them to the job, and starts the
existing resume cleaning and JD Match scoring workflow.

Contact-only records and generated summaries are intentionally rejected.

### `create_or_continue_job`

Create a job from a validated `JobBriefV1`, or answer pending Intake questions
on the same EasyHire Agent job session. Repeated identical briefs reuse the
same creation result for 24 hours.

## Local Development

Requirements: Node.js 20+, pnpm 11+, and a running EasyHire Python API.

```bash
pnpm install
cp apps/mcp-server/.env.example apps/mcp-server/.env
pnpm check
pnpm dev:mcp
```

The local MCP endpoint is `http://127.0.0.1:8787/mcp`.

`EASYHIRE_MCP_AUTH_MODE=backend` is only for local integration against an
EasyHire API that validates the forwarded bearer token. Production must use
`EASYHIRE_MCP_AUTH_MODE=jwt`.

## Security

The MCP server never connects directly to the EasyHire database. It forwards a
verified bearer token to documented EasyHire API endpoints. Logs exclude access
tokens and candidate profile contents.

Candidate import is available to every active EasyHire AI membership tier.
Non-members are rejected by the backend, and existing AI-credit rules apply
when imported candidates enter JD Match.

See [SECURITY.md](SECURITY.md) and [docs/oauth.md](docs/oauth.md).

The required EasyHire API surface is documented in
[docs/backend-api-contract.md](docs/backend-api-contract.md).

## License

Apache-2.0.