TalentNex MCP Server (Python)
Model Context Protocol server for TalentNex (Cauldron backend). Exposes candidate and challenge data via MCP tools and resources, forwarding the Nexa Flow auth token as Authorization: Bearer <token> to Cauldron.
Features
- Tools:
getCandidateById,searchCandidates,getCompanies,getJobRoles(shaped like cauldron-mcp-server redactions, includingparsedResume). - Resources:
talentnex://candidates/recent,talentnex://challenges/all. - Transports: stdio (
mcp-talentnex) and HTTP/SSE (mcp-talentnex-http).
Requirements
- Python >= 3.10
- Env:
CAULDRON_API_BASE_URLbackend origin only (e.g.,https://api.cauldron.example.com) - Auth:
Authorization: Bearer <token>provided by Nexa Flow (passed through by client or HTTP header). For stdio, setTALENTNEX_BEARER_TOKENor provide per-call via HTTP wrapper.
Install
pip install mcp-talentnex
# or
uvx mcp-talentnex
Run (stdio)
export CAULDRON_API_BASE_URL="https://api.cauldron.example.com"
export TALENTNEX_BEARER_TOKEN="<nexa-flow-token>"
mcp-talentnex
Run (HTTP/SSE)
export CAULDRON_API_BASE_URL="https://api.cauldron.example.com"
uvx mcp-talentnex-http
# or
mcp-talentnex-http
HTTP endpoints (for Claude Desktop HTTP MCP):
GET /mcp/toolsPOST /mcp/tools/call{ name, arguments }GET /mcp/resourcesPOST /mcp/resources/read{ uri }GET /health
Pass Authorization: Bearer <token> on each HTTP call; the server forwards it to Cauldron.
Tools
getCandidateByIdargs: { userId, companyId, candidateId, token? }searchCandidatesargs: { userId, companyId, q?, skills?, status?, limit?, skip?, token? }getCompaniesargs: { userId, status?, limit?, skip?, token? }getJobRolesargs: { userId, companyId, status?, limit?, skip?, token? }
Optional runtime routing override:
baseUrlcan be passed in tool arguments when the caller needs to choose backend at runtime.baseUrlmust be host-only origin (for examplehttps://talentnex-backend-qa-...run.app) and cannot include path/query/fragment.- If
baseUrlis omitted, server falls back toCAULDRON_API_BASE_URL.
If token is omitted, the server uses TALENTNEX_BEARER_TOKEN (stdio) or the HTTP Authorization header.
Resources
talentnex://candidates/recent(uses limit 20, skip 0)talentnex://challenges/all(limit 50, skip 0)
Development (from source)
cd talentnex-mcp-server
python -m venv .venv && source .venv/bin/activate
pip install -e .[dev]
python -m pytest
Test Troubleshooting
- If collection fails with
ModuleNotFoundError: mcporModuleNotFoundError: requests_mock, your active interpreter is missing runtime/dev dependencies. - Reinstall into the same interpreter used for tests:
python -m pip install -e .[dev]python -m pytest
- Verify imports directly in that environment:
python -c "import mcp, requests_mock; print('ok')"
Configuration
CAULDRON_API_BASE_URL(required, host-only origin; no path/query/fragment)TALENTNEX_DEFAULT_LIMIT(optional, default 20)TALENTNEX_DEFAULT_SKIP(optional, default 0)TALENTNEX_BEARER_TOKEN(fallback token for stdio)TALENTNEX_ALLOWED_BASE_URL_HOSTS(optional, comma-separated host allowlist for bothCAULDRON_API_BASE_URLand runtimebaseUrl)
Common misconfiguration to avoid:
- Wrong:
https://.../candidates/:candidateId/resume - Correct:
https://...
Packaging / Release
- Bump version in
pyproject.toml python -m buildtwine upload dist/*- Smoke:
uvx mcp-talentnex --help
Metadata
Release files for mcp-talentnex 0.1.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| mcp_talentnex-0.1.7.tar.gz | 15.7 kB | Without provenance | Details for mcp_talentnex-0.1.7.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| mcp_talentnex-0.1.7-py3-none-any.whl | Python 3 | none | any | Details for mcp_talentnex-0.1.7-py3-none-any.whl |
Total release size: 32.6 kB
Release files / mcp_talentnex-0.1.7.tar.gz
| Download URL | mcp_talentnex-0.1.7.tar.gz |
|---|---|
| Size | 15.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc981eb206194b135579c3bd06327dd6e845c19008ce80a5b8c542f0df02b61e
|
|
BLAKE2b-256 checksum How to use checksums |
f928c331445e66ce3d756a6ad4c0696ebba6d0fd6c1c977fd721a52b6a3d54c3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / mcp_talentnex-0.1.7-py3-none-any.whl
| Download URL | mcp_talentnex-0.1.7-py3-none-any.whl |
|---|---|
| Size | 16.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
60797fca327e5a905e5bac5471f32641a6e1928e47ada9f8d2e4552cfb0e30a2
|
|
BLAKE2b-256 checksum How to use checksums |
43c4ab63045249be4008779e10e959b08ceda7608c12e37864299ad83ecf322a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Security for mcp-talentnex 0.1.7
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.