OTP/OJP MCP Server
by neogene-ai
README.md
# OTP/OJP MCP Server
An MCP server for the [Open Talent Protocol](https://opentalentprotocol.org) (OTP) and [Open Job Protocol](https://opentalentprotocol.org) (OJP) — open standards for structuring candidate profiles and job postings for AI agent reasoning.
## Tools
| Tool | Description |
|------|-------------|
| `otp_parse_resume` | Raw resume text → OTP skeleton with `_EXTRACT_*` placeholders for an LLM to fill |
| `otp_validate_profile` | Validate an OTP document against the JSON Schema |
| `otp_introspect_profile` | Extract an agent-friendly summary from an OTP document |
| `ojp_parse_job_posting` | Raw job posting text → OJP skeleton with `_EXTRACT_*` placeholders |
| `ojp_validate_job_posting` | Validate an OJP document against the JSON Schema |
| `ojp_introspect_job_posting` | Extract an agent-friendly summary from an OJP document |
## Key traits
- **Pure functions** — no LLM calls, no network calls, no API keys needed
- **JSON Schema draft 2020-12** validation via AJV
- **LLM-free parsers** — produce structured templates for the calling agent to complete
- **Zero config** — just install and run
## Install
```bash
npm install -g @opentalentprotocol/mcp-server
```
Or run directly with npx:
```bash
npx @opentalentprotocol/mcp-server
```
## Setup
### Claude Desktop
Add to your `claude_desktop_config.json`:
```json
{
"mcpServers": {
"otp-ojp": {
"command": "npx",
"args": ["-y", "@opentalentprotocol/mcp-server"]
}
}
}
```
### Claude Code
Add to your project or global MCP settings:
```json
{
"mcpServers": {
"otp-ojp": {
"command": "npx",
"args": ["-y", "@opentalentprotocol/mcp-server"]
}
}
}
```
### From source
```bash
git clone https://github.com/neogene-ai/otp-ojp-mcp-server.git
cd otp-ojp-mcp-server
npm install
npm run build
node dist/index.js
```
## How it works
### Parsing workflow
The parsers follow a **skeleton + fill** pattern:
1. Call `otp_parse_resume` (or `ojp_parse_job_posting`) with raw text
2. Get back a document skeleton with `_EXTRACT_*` annotations, confidence levels, and known gaps
3. The calling agent fills in the skeleton using its own reasoning
4. Call `otp_validate_profile` (or `ojp_validate_job_posting`) to verify the result
This keeps the MCP server LLM-free while giving agents structured guidance on what to extract.
### Introspection
The introspect tools flatten an OTP/OJP document into a normalized, agent-friendly object with an `agentSummary` string — ready for system prompts, retrieval-augmented context, or matching logic.
## Schemas
The JSON Schemas are bundled in the `schema/` directory:
- `schema/opentalent-protocol.schema.json` — OTP v0.1
- `schema/openjob-protocol.schema.json` — OJP v0.1
## Requirements
- Node.js >= 18
## License
MIT
TDQS
A4/5.0
Scored across 5 tools
Disambiguation5/5
Each tool has a distinct purpose clearly indicated by the name: OTP vs OJP, then validate, parse, or introspect. No two tools overlap in function.
Naming Consistency5/5
All tools follow a consistent pattern of 'protocol_action_target' in snake_case, e.g., otp_validate_profile, ojp_parse_job_posting. No deviations.
Tool Count5/5
5 tools cover two protocols (OTP and OJP) with essential operations: validation, parsing, and introspection (for OJP). The count feels well-scoped for the domain.
Completeness4/5
The set covers validation and parsing for both protocols, plus introspection for OJP. A minor gap is the lack of an introspection tool for OTP, but the stated purpose is sufficiently served.
Maintenance
ActivityInactive
ResponsivenessUnresponsive